doc2vec DBOW 中的词向量如何与段落向量共同训练?

How are word vectors co-trained with paragraph vectors in doc2vec DBOW?

我完全不明白在 DBOW 模式 (dm=0) 中使用 gensim 的 doc2vec 训练过程中词向量是如何参与的。我知道默认情况下禁用 dbow_words=0。但是当我们将 dbow_words 设置为 1 时会发生什么?

在我对DBOW的理解中,上下文词是直接从段落向量中预测出来的。所以模型的唯一参数是 N p 维段落向量加上分类器的参数。

但多个消息来源暗示,在 DBOW 模式下可以共同训练单词和文档向量。例如:

那么,这是怎么做到的? 任何澄清将不胜感激!

注意:对于DM,段落向量averaged/concatenated与预测目标词的词向量。在那种情况下,很明显词向量是与文档向量同时训练的。并且有 N*p + M*q + classifier 个参数(其中 M 是词汇大小,q 词向量 space 暗淡)。

如果设置 dbow_words=1,则将 skip-gram 词向量训练添加到训练循环中,与正常的 PV-DBOW 训练交错。

因此,对于文本中的给定目标词,首先(单独)使用候选文档向量来尝试预测该词,然后对模型和文档向量进行反向传播调整。然后,分别使用一堆周围的单词,一次一个,以 skip-gram 的方式尝试预测同一个目标单词——并进行后续调整。

然后,文本中的下一个目标词得到相同的PV-DBOW加上skip-gram处理,依此类推。

由此产生的一些逻辑结果:

  • 训练时间比普通 PV-DBOW 长 - 大约等于 window 参数的一个因数

  • word-vectors 总体上比 doc-vectors 获得更多的训练注意力,同样是一个等于 window 参数

  • 的因子