2

只需阅读 gensim 页面上的 doc2vec 命令即可。

我对命令“intersect_word2vec_format”很好奇。

我对这个命令的理解是它让我可以将预训练的 word2vec 模型中的向量值注入到我的 doc2vec 模型中,然后使用预训练的 word2vec 值训练我的 doc2vec 模型,而不是从我的文档语料库中生成词向量值。结果是我得到了一个更准确的 doc2vec 模型,因为与我相对较小的文档语料库相比,我使用的是从更大的数据语料库生成的预训练 w2v 值。

我对这个命令的理解是正确的还是不接近?;-)

4

1 回答 1

13

是的,这intersect_word2vec_format()将使您将来自外部文件的向量带入已经初始化了自己的词汇表的模型中(就像 by 一样build_vocab())。也就是说,它只会加载那些在本地词汇表中已经存在单词的向量。

此外,默认情况下,它将锁定那些加载的向量,以防止在后续训练期间进行任何进一步的调整,尽管预先存在的词汇表中的其他单词可能会继续更新。lockf=1.0(您可以通过提供一个值而不是默认值 0.0来更改此行为。)

但是,最好将其视为实验性功能,它可能提供的好处(如果有的话)将取决于您的设置特定的许多事情。

对应dm=0参数的 PV-DBOW Doc2Vec 模式在速度和 doc-vector 质量上往往表现最好,并且根本不使用或训练词向量——因此任何向量的预加载都不会任何效果。

默认dm=1设置下启用的 PV-DM 模式可在训练文档向量的同时训练所需的任何词向量。(也就是说,没有首先创建词向量的单独阶段,因此对于相同的iter传递,PV-DM 训练花费相同的时间,无论词向量是从默认随机值开始还是从其他地方预加载.) 使用来自其他地方的一些词向量预先植入模型可能有助于或损害最终质量——这可能取决于您的语料库、元参数和目标的具体情况,以及这些外部向量是否同步表示词义与当前的语料库/目标。

于 2017-09-03T20:54:19.240 回答