如何在doc2vec模型中使用预训练的word2vec向量?

时间:2019-02-19 09:11:20

标签: python machine-learning nlp word2vec doc2vec

我正在尝试实现doc2vec,但是我不确定如果预先训练了word2vec向量,模型的输入应该是什么样子。

问题是,我不确定如何在理论上将预训练的word2vec向量用于doc2vec。我想,我可以用矢量预先填充隐藏层,而其余的隐藏层则填充随机数

另一种想法是使用向量作为单词的输入,而不是单次编码,但是我不确定文档的输出向量是否有意义。

谢谢您的回答!

1 个答案:

答案 0 :(得分:1)

您可能会认为Doc2Vec(又名Mikolov / Le的“段落向量”算法)需要单词向量作为第一步。与人类学习新语言的类比是一种普遍的看法,也许有些直觉:先理解较小的单元,然后再理解较大的单元,然后从较小的单元中组合较大的单元。

但这是一个常见的误解,Doc2Vec不会那样做。

一种模式,纯PV-DBOW(在gensim中为dm=0)根本不使用常规的每字输入向量。而且,此模式通常是最快的培训和性能最好的选项之一。

另一种模式PV-DM(gensim中的dm=1为默认设置)确实使用了邻近的单词向量,并与doc-vector结合使用,其方式类似于word2vec的CBOW模式-但任何单词-它需要的向量将与doc-vector同时进行训练。他们没有经过第一步的 培训,因此没有一个简单的拼接点可以在其中提供其他地方的字向量。

(您可以将跳跃语法词训练与gensim中的dbow_words=1混合到PV-DBOW中,但这将在交错的共享模型过程中从头开始训练词向量。)

在某种程度上,您可以使用其他地方的词向量来预先植入模型,但这不一定会改善结果:它可以轻松地将其质量横向发送或更差。在某些幸运的,管理得当的情况下,它可能会加快模型的收敛速度,或者是使用较早的向量集来实现向量空间兼容性的一种方式,但并非没有没有的额外陷阱和警告原始算法的一部分,或描述良好的做法。