【问题标题】:How to use pretrained word2vec vectors in doc2vec model?如何在 doc2vec 模型中使用预训练的 word2vec 向量?
【发布时间】:2019-07-12 17:37:26
【问题描述】:

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

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

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

感谢您的回答!

【问题讨论】:

标签: python machine-learning nlp word2vec doc2vec


【解决方案1】:

您可能认为Doc2Vec(又名 Mikolov/Le 的“段落向量”算法)需要词向量作为第一步。这是一个普遍的信念,也许有些直观,类似于人类如何学习一门新语言:先理解较小的单元,然后再理解较大的单元,然后从较小的单元中组合出较大单元的含义。

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

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

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

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

如果您可以使用来自其他地方的词向量预先植入模型,它不一定会改善结果:它很容易将它们的质量发送到侧面或更糟。在一些幸运的管理良好的情况下,它可能会加速模型收敛,或者是一种强制向量空间与早期向量集兼容的方法,但并非没有额外的陷阱和警告不是原始算法的一部分,或描述良好的实践。

【讨论】:

    猜你喜欢
    • 2017-06-26
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 2023-03-17
    • 2017-11-25
    • 2016-08-17
    • 1970-01-01
    • 2018-11-27
    相关资源
    最近更新 更多