为什么 gensim doc2vec 中的单词或文档向量之间几乎所有余弦相似度都是正的?
Why are almost all cosine similarities positive between word or document vectors in gensim doc2vec?
我在 gensim 中使用 Doc2Vec.docvecs.similarity() 计算了文档相似度。现在,如果 gensim 使用余弦的绝对值作为相似度度量,我希望余弦相似度在 [0.0, 1.0] 范围内,如果不使用,则大约有一半是负数。
然而,我看到的是 一些 相似性是负面的,但它们非常罕见——在我的 30000 份文档中不到两两相似性的 1%。
为什么几乎所有的相似点都是正面的?
Word2Vec/Doc2Vec 并不能保证生成的向量集围绕原点对称分布。它们在某些方向上可能不成比例,这会产生您所看到的结果。
在我刚刚对捆绑的 gensim docs/notebooks/doc2vec-lee.ipynb
笔记本中使用的玩具大小的数据集 ('lee corpus') 进行的一些测试中,检查所有文档与第一个文档的余弦相似性,依稀看来:
- 使用 hierarchical-softmax 而不是负采样 (
hs=1, negative=0
) 在 >0.0 和 <0.0 的余弦相似度之间取得平衡,更接近(但还不完全)一半和一半
- 使用较少数量的负样本(例如
negative=1
)会产生更平衡的结果集;使用更大的数字(例如 negative=10
)会产生相对更多的 >0.0 余弦相似度
虽然不是决定性的,但这有点暗示向量的排列可能会受到 negative
参数的影响。具体来说,典型的负采样参数,例如默认的 negative=5
,意味着单词作为非目标而不是作为正目标被训练的次数更多。 可能将最终坐标的优势推向一个方向。 (对更大的数据集和模式进行更多测试,以及对模型设置如何影响最终矢量位置的更多分析,对于对这个想法更有信心是必要的。)
如果出于某种原因你想要一个更平衡的向量排列,你可以考虑变换它们的位置,post-training。
最近在 word2vec space、"All-but-the-Top: Simple and Effective Postprocessing for Word Representations" 中有一篇有趣的论文,发现经过训练的词向量集不一定具有 0 级均值——它们的平均从原点的一个方向。此外,这篇论文报告说,减去共同均值(到 're-center' 集),并删除其他一些主要方向,可以提高向量对某些任务的实用性。
凭直觉,我怀疑这种 'all-but-the-top' 转换可能有助于增加结果向量中的判别力 'contrast'。
类似的过程可能 为文档向量产生类似的好处——并且可能使整套余弦相似性与任何文档向量在 >0.0 之间更加平衡和 <0.0 值。
我在 gensim 中使用 Doc2Vec.docvecs.similarity() 计算了文档相似度。现在,如果 gensim 使用余弦的绝对值作为相似度度量,我希望余弦相似度在 [0.0, 1.0] 范围内,如果不使用,则大约有一半是负数。
然而,我看到的是 一些 相似性是负面的,但它们非常罕见——在我的 30000 份文档中不到两两相似性的 1%。
为什么几乎所有的相似点都是正面的?
Word2Vec/Doc2Vec 并不能保证生成的向量集围绕原点对称分布。它们在某些方向上可能不成比例,这会产生您所看到的结果。
在我刚刚对捆绑的 gensim docs/notebooks/doc2vec-lee.ipynb
笔记本中使用的玩具大小的数据集 ('lee corpus') 进行的一些测试中,检查所有文档与第一个文档的余弦相似性,依稀看来:
- 使用 hierarchical-softmax 而不是负采样 (
hs=1, negative=0
) 在 >0.0 和 <0.0 的余弦相似度之间取得平衡,更接近(但还不完全)一半和一半 - 使用较少数量的负样本(例如
negative=1
)会产生更平衡的结果集;使用更大的数字(例如negative=10
)会产生相对更多的 >0.0 余弦相似度
虽然不是决定性的,但这有点暗示向量的排列可能会受到 negative
参数的影响。具体来说,典型的负采样参数,例如默认的 negative=5
,意味着单词作为非目标而不是作为正目标被训练的次数更多。 可能将最终坐标的优势推向一个方向。 (对更大的数据集和模式进行更多测试,以及对模型设置如何影响最终矢量位置的更多分析,对于对这个想法更有信心是必要的。)
如果出于某种原因你想要一个更平衡的向量排列,你可以考虑变换它们的位置,post-training。
最近在 word2vec space、"All-but-the-Top: Simple and Effective Postprocessing for Word Representations" 中有一篇有趣的论文,发现经过训练的词向量集不一定具有 0 级均值——它们的平均从原点的一个方向。此外,这篇论文报告说,减去共同均值(到 're-center' 集),并删除其他一些主要方向,可以提高向量对某些任务的实用性。
凭直觉,我怀疑这种 'all-but-the-top' 转换可能有助于增加结果向量中的判别力 'contrast'。
类似的过程可能 为文档向量产生类似的好处——并且可能使整套余弦相似性与任何文档向量在 >0.0 之间更加平衡和 <0.0 值。