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

问题描述 投票:0回答:1

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

问题是,我不确定如何在理论上使用pretrained word2vec向量doc2vec。我想,我可以用向量预填充隐藏层,隐藏层的其余部分用随机数填充

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

谢谢您的回答!

python machine-learning nlp word2vec doc2vec
1个回答
1
投票

您可能认为Doc2Vec(又名Mikolov / Le的'Paragraph Vector'算法)需要将单词向量作为第一步。通过类比人类学习新语言的方式,这是一种常见的信念,也许有点直观:在较大的单位之前理解较小的单位,然后从较小的单位构成较大的单位的意义。

但这是一种常见的误解,而Doc2Vec并不这样做。

一种模式,纯PV-DBOW(gensim中的dm=0),根本不使用传统的每单词输入向量。而且,这种模式通常是培训速度最快,性能最佳的选择之一。

另一种模式,PV-DM(gensim中的dm=1,默认值)确实利用相邻的单词向量,结合doc-vectors,以一种类似于word2vec的CBOW模式的方式 - 但它需要的任何单词向量都将被训练 - 与doc-vectors同时进行。他们没有在单独的步骤中进行第一次训练,因此没有一个简单的拼接点可以从其他地方提供单词向量。

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

在某种程度上,您可以使用来自其他地方的单词向量预先建立模型,这不一定会改善结果:它可以轻松地将其质量发送到横向或更差。它可能在一些幸运的管理良好的情况下加速模型收敛,或者是一种与早期矢量集强制执行矢量空间兼容的方法,但不是没有额外的陷阱和不是原始算法的一部分的警告,或者精心描述的做法。

© www.soinside.com 2019 - 2024. All rights reserved.