Gensim Word2Vec 的内部工作原理

Inner workings of Gensim Word2Vec

我有几个关于 Gensim 的 Word2Vec 模型的问题。

首先是如果我将它设置为训练 0 个时期会发生什么?它是否只是创建随机向量并调用它完成。所以它们每次都必须是随机的,对吗?

第二个是关于文档页面中的 WV 对象说:

This object essentially contains the mapping between words and embeddings.
After training, it can be used directly to query those embeddings in various ways.  
See the module level docstring for examples.

但这对我来说不是很清楚,请允许我解释一下我有自己创建的词向量,我在

   word2vecObject.wv['word'] = my_own

然后用这些替换词向量调用训练方法。但是我想知道我要替换哪一部分,是隐藏权重层的输入还是隐藏的输入?这是为了检查它是否可以称为预训练。有什么帮助吗?谢谢。

我没有尝试过废话参数 epochs=0,但它可能会按您的预期运行。 (您是否尝试过并看到其他情况?)

但是,如果您的真正目标是能够在初始化之后但在训练之前篡改模型,通常的做法是在构建模型实例时不提供任何语料库,而是手动执行两个后续步骤,.build_vocab().train(),在您自己的代码中 - 在两者之间插入额外的步骤。 (对于更细粒度的控制,您可以检查 .build_vocab() 的源代码及其辅助方法,并确保您已执行所有这些必要的操作,并插入您自己的额外步骤。)

.wv 属性 类型 KeyedVectors 中的“词向量”本质上是模型的“输入投影层”:将单个词转换为vector_size维密集嵌入。 (你可以把键——单词标记字符串——想象成有点像单热单词编码。)

因此,分配到该结构只会改变“输入投影向量”,这是通常从模型中收集的“词向量”。如果你需要篡改隐藏到输出的权重,你需要查看模型的.syn1neg(或.syn1 for HS mode)属性.