【发布时间】:2017-03-20 09:59:52
【问题描述】:
在 word2vec 模型中,有两个线性变换将词汇空间中的单词带到隐藏层(“in”向量),然后返回到词汇空间(“out”向量)。通常这个输出向量在训练后被丢弃。我想知道是否有一种简单的方法可以访问 gensim python 中的输出向量?等效地,如何访问输出矩阵?
动机:我想实现最近这篇论文中提出的想法:A Dual Embedding Space Model for Document Ranking
这里有更多细节。从上面的参考资料中,我们有以下 word2vec 模型:
这里,输入层大小为$V$,词汇量大小,隐藏层大小为$d$,输出层大小为$V$。这两个矩阵是 W_{IN} 和 W_{OUT}。 通常,word2vec 模型只保留 W_IN 矩阵。这是返回的内容,在 gensim 中训练 word2vec 模型后,您会得到如下内容:
模型['potato']=[-0.2,0.5,2,...]
如何访问或保留 W_{OUT}?这可能在计算上非常昂贵,我真的希望 gensim 中的一些内置方法可以做到这一点,因为我担心如果我从头开始编写代码,它不会提供良好的性能。
【问题讨论】:
-
目前有代码吗?