什么是 gensim 的“docvecs”?

Mic*_*son 4 python nlp gensim doc2vec

Doc2Vec 图 2

上图来自Distributed Representations of Sentences and Documents,介绍 Doc2Vec 的论文。我正在使用 Gensim 的 Word2Vec 和 Doc2Vec 实现,它们很棒,但我正在寻找一些问题的清晰度。

  1. 对于给定的 doc2vec 模型dvm,什么是dvm.docvecs?我的印象是它是平均或连接的向量,包括所有的词嵌入段落向量,d。这是正确的,还是d?
  2. 假设dvm.docvecs不是d,可以自己访问 d 吗?如何?
  3. 作为奖励,如何d计算?报纸上只说:

在我们的段落向量框架(见图 2)中,每个段落都映射到一个唯一的向量,由矩阵 D 中的一列表示,每个词也映射到一个唯一的向量,由矩阵 W 中的一列表示。

感谢您的任何线索!

goj*_*omo 5

docvecsDoc2Vec 模型的属性包含训练期间看到的“文档标签”的所有训练向量。(这些在源代码中也称为“doctags”。)

在最简单的情况下,类似于 Paragraph Vectors 论文,每个文本示例(段落)只有一个序列号整数 ID 作为它的“标签”,从 0 开始。这将是docvecs对象的索引——而model.docvecs.doctag_syn0numpy 数组是本质上与段落向量论文摘录中的(大写)D相同。

(Gensim 还支持使用字符串标记作为文档标签,每个文档使用多个标签,并在许多训练文档中重复标签。对于字符串标签,如果有的话,它们被映射到docvecsdict末尾附近的索引model.docvecs.doctags。)

  • 实际上`model.docvecs` 是一个辅助对象,持有*所有* 正在训练的文档向量。它(特别是它的“doctag_syn0”数组,就像图中的“Paragraph Matrix”)被咨询以获得一个单独的向量 *D*(如橙色图中),与单词向量混合用于单个训练示例. (2认同)