gensim 实现中 DBOW doc2vec 的 word2vec 映射来自哪里?

Where is word2vec mapping coming from for DBOW doc2vec in gensim implementation?

我正在尝试将 gensim 用于 doc2vec 和 word2vec。

由于PV-DM方法可以同时生成word2vec和doc2vec, 我认为 PV-DM 是正确的模型。

因此,我通过为 PV-DM

指定 dm=1 使用 gensim 创建了一个模型

我的问题如下:

  1. 当我在 Doc2vec 对象上调用 train 时,word2vec 模型与 doc2vec 一起训练是真的吗??

  2. 似乎 属性 wv 包含 word2vec 并且甚至在训练之前就可用。这是word2vec的静态版本吗?

  3. 我还创建了 DBOW 模型并注意到它也包含 wv。这也是我在上一个问题中提到的静态版本的word2vec吗?

(1) 是的,word-vectors 在 PV-DM 模式下与 doc-vectors 同时训练。

(2)训练前wv属性的内容是randomly-initialized,未训练word-vectors。 (与 word2vec 一样,所有向量都是随机的,low-magnitude 个起始位置。)

(3) 在普通 PV-DBOW 模式 (dm=0) 中,由于 code-sharing,wv 向量仍然被分配和初始化——但从未被训练。在 PV-DBOW 训练结束时,wv word-vectors 将保持不变,因此 random/useless。 (他们根本不参加训练。)

如果您启用可选的 dbow_words=1 参数,那么 skip-gram word-vector 训练将是 mixed-in 普通 PV-DBOW 训练。这将以交错的方式完成,因此每个目标词(待预测)将用于训练 PV-DBOW doc-vector,然后是相邻的上下文 word-vectors。结果,wv word-vectors 将被训练,并在 "same space" 中与 doc-vectors 进行有意义的比较。

使用此选项,训练将比普通 PV-DBOW 花费更长的时间(与 window 大小相关的一个因素)。对于任何特定的 end-purpose,此模式下的 doc-vectors 可能更好(如果 word-to-word 预测有效地帮助以有用的方式扩展语料库)或更糟(如果模型花费太多精力word-to-word 预测有效 diluted/overwhelmed full-doc doc-to-word 预测中的其他模式)。