1

我在 gensim 中使用 Doc2Vec.docvecs.similarity() 计算了文档相似度。现在,如果 gensim 使用余弦的绝对值作为相似度度量,我希望余弦相似度在 [0.0, 1.0] 范围内,或者如果不是,则大约一半为负值。

然而,我看到的是一些相似性是负面的,但它们非常罕见——在我的 30000 个文档集中,成对相似性不到 1%。

为什么几乎所有的相似之处都是积极的?

4

1 回答 1

3

Word2Vec/Doc2Vec 中没有内在保证生成的向量集围绕原点对称分布。它们在某些方向上可能不成比例,这会产生您所看到的结果。

在我刚刚对捆绑的 gensimdocs/notebooks/doc2vec-lee.ipynb笔记本中使用的玩具大小的数据集('lee corpus')进行的一些测试中,检查了所有文档与第一个文档的余弦相似度,模糊地似乎是:

  1. hs=1, negative=0使用hierarchical-softmax而不是负采样(
  2. 使用较少数量的负样本(例如negative=1)会产生一组更平衡的结果;使用更大的数字(例如negative=10)产生相对更多的 >0.0 余弦相似度

虽然不是决定性的,但这只是暗示向量的排列可能会受到negative参数的影响。具体来说,典型的负采样参数,例如默认的negative=5,意思是词将作为非目标训练更多次,而不是作为正目标。这可能会将最终坐标的优势推向一个方向。(对更大的数据集和模式进行更多的测试,以及对模型设置如何影响最终矢量位置的更多分析,对于对这个想法更有信心是必要的。)

如果出于某种原因你想要一个更平衡的向量排列,你可以考虑在训练后改变它们的位置。

word2vec 领域最近有一篇有趣的论文,“All-but-the-Top: Simple and Effective Postprocessing for Word Representations”,发现经过训练的词向量集不一定具有 0 幅度均值——它们是平均从原点的一个方向。此外,本文还报告说,减去共同均值(以“重新居中”集合),并删除一些其他主要方向,可以提高向量对某些任务的有用性。

直觉上,我怀疑这种“除了最顶层”的转换可能有助于增加结果向量中的区别性“对比度”。

类似的过程可能会为 doc-vector 产生类似的好处——并且可能会使所有 doc-vector 的余弦相似性在 >0.0 和 <0.0 值之间更加平衡。

于 2017-06-04T03:22:51.607 回答