gpt4 book ai didi

python - 为什么 gensim doc2vec 中的单词或文档向量之间几乎所有余弦相似度都是正的?

转载 作者:行者123 更新时间:2023-12-05 03:08:56 27 4
gpt4 key购买 nike

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

但是,我看到的是一些相似性是负的,但它们非常罕见——在我的 30000 份文档集中不到两两相似性的 1%。

为什么几乎所有的相似点都是正面的?

最佳答案

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

在一些测试中,我刚刚对捆绑的 gensim docs/notebooks/doc2vec-lee.ipynb 笔记本中使用的玩具大小的数据集('lee 语料库')进行了测试,检查余弦相似性在第一个文件的所有文件中,隐约似乎是:

  1. 使用 hierarchical-softmax 而不是负采样 (hs=1, negative=0) 在 >0.0 和 <0.0 的余弦相似度之间取得平衡,这更接近(但还不完全)一半一半
  2. 使用较少数量的负样本(例如 negative=1)会产生一组更平衡的结果;使用更大的数字(例如 negative=10)会产生相对更多的 >0.0 余弦相似度

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

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

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

凭直觉,我怀疑这种“除顶级外”的转换可能有助于增加结果向量中的判别性“对比度”。

类似的过程可能对文档向量产生类似的好处——并且可能使整套余弦相似性与任何文档向量在 >0.0 和 <0.0 值之间更加平衡。

关于python - 为什么 gensim doc2vec 中的单词或文档向量之间几乎所有余弦相似度都是正的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44345576/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com