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

2024-04-20 13:45:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

另一个想法是使用向量作为word的输入,而不是一个热编码,但是我不确定docs的输出向量是否有意义。在

谢谢你的回答!在


Tags: 模型docs编码word2vec理论向量word意义
1条回答
网友
1楼 · 发布于 2024-04-20 13:45:28

您可能认为Doc2Vec(又称Mikolov/Le的“段落向量”算法)需要单词向量作为第一步。这是一个共同的信念,也许有些直觉,通过类比人类如何学习一种新的语言:先理解较小的单位,然后再从较小的单位中组合出大的含义。在

但这是一个常见的误解,Doc2Vec并不能做到这一点。在

一种模式,纯PV-DBOW(gensim中的dm=0)根本不使用传统的每字输入向量。而且,这种模式通常是最快的训练和最好的表现之一。在

另一种模式,PV-DM(gensim中的dm=1)确实利用了相邻的词向量,与doc向量结合起来,就像word2vec的CBOW模式一样,但是它需要的任何词向量都将与doc向量同时训练。他们是在一个单独的步骤中第一次训练的,所以你不可能很容易地从别处提供单词向量。在

(您可以将skip-gram单词训练混合到PV-DBOW中,在gensim中使用dbow_words=1,但这将在一个交叉的、共享的模型过程中从头开始训练单词向量。)

从某种程度上来说,你可以用其他地方的词向量来预先设定一个模型,但这并不一定会改善结果:它很容易使它们的质量偏离正轨或更糟。在一些幸运的管理良好的情况下,它可能会加快模型收敛速度,或者是一种加强向量空间与早期向量集的兼容性的方法,但这并不是没有额外的陷阱和警告,即不是原始算法的一部分,或是描述良好的实践。在

相关问题 更多 >