gensim word2vec访问进/出向量

Ale*_* R. 13 python gensim

在word2vec模型中,有两个线性变换,它们将词汇空间中的单词带到隐藏层("in"向量),然后返回到词汇空间("out"向量).通常这个out向量在训练后被丢弃.我想知道是否有一种简单的方法来访问gensim python中的out向量?同样,我如何访问out矩阵?

动机:我想实现最近这篇论文中提出的想法:文档排名的双嵌入空间模型

这里有更多细节.从上面的参考文献中我们得到以下word2vec模型:

在此输入图像描述

这里,输入层的大小为$ V $,词汇量大小,隐藏层大小为$ d $,输出层大小为$ V $.两个矩阵是W_ {IN}和W_ {OUT}.通常,word2vec模型仅保留W_IN矩阵.这是返回的地方,在gensim中训练word2vec模型后,你会得到如下内容:

模型[ '土豆'] = [ - 0.2,0.5,2,...]

如何访问或保留W_ {OUT}?这可能在计算上非常昂贵,而且我真的希望在gensim中使用一些内置方法来执行此操作,因为我担心如果我从头开始编写代码,它就不会提供良好的性能.

小智 6

虽然这可能不是一个正确的答案(无法评论),没有人指出这一点,看看这里.创作者似乎回答了类似的问题.这也是你有更高机会获得有效答案的地方.

在word2vec源代码中发布的链接中,您可以更改syn1删除以满足您的需求.记得在完成之后删除它,因为它被证明是一种记忆力.

  • 谢谢!这看起来像我在寻找.为了解释答案,输入/输出嵌入是:输入:model.syn0,输出:model.syn1,model.syn1neg (2认同)