为什么 word2Vec 使用余弦相似度?
Why does word2Vec use cosine similarity?
我一直在阅读有关 Word2Vec 的论文(例如 this one),我认为我理解训练向量以最大化在相同上下文中找到其他单词的概率。
但是,我不明白为什么余弦是衡量单词相似度的正确方法。余弦相似度表示两个向量指向同一方向,但它们的大小可能不同。
例如,余弦相似度在比较文档的词袋时很有意义。两个文档的长度可能不同,但词的分布相似。
为什么不,比方说,欧氏距离?
任何人都可以解释为什么余弦相似度适用于 word2Vec 吗?
这两个距离指标可能密切相关,因此您使用哪一个可能并不重要。正如您所指出的,余弦距离意味着我们根本不必担心向量的长度。
这篇论文表明词频与word2vec向量长度之间存在关系。 http://arxiv.org/pdf/1508.02297v1.pdf
两个n维向量A和B的余弦相似度定义为:
这就是 A 和 B 夹角的余弦。
而欧氏距离定义为
现在想想向量的两个随机元素的距离space。对于余弦距离,最大距离为1,因为cos的范围是[-1, 1].
但是,对于欧氏距离,这可以是任何非负值。
当维度n变大时,随机选择的两个点的余弦距离越来越接近90°,而R^n的单位立方体中的点的欧氏距离约为0.41 (n) ^0.5 (source)
TL;DR
余弦距离对于高维 space 中的向量更好,因为 维数灾难 。 (虽然我不是很确定)
我一直在阅读有关 Word2Vec 的论文(例如 this one),我认为我理解训练向量以最大化在相同上下文中找到其他单词的概率。
但是,我不明白为什么余弦是衡量单词相似度的正确方法。余弦相似度表示两个向量指向同一方向,但它们的大小可能不同。
例如,余弦相似度在比较文档的词袋时很有意义。两个文档的长度可能不同,但词的分布相似。
为什么不,比方说,欧氏距离?
任何人都可以解释为什么余弦相似度适用于 word2Vec 吗?
这两个距离指标可能密切相关,因此您使用哪一个可能并不重要。正如您所指出的,余弦距离意味着我们根本不必担心向量的长度。
这篇论文表明词频与word2vec向量长度之间存在关系。 http://arxiv.org/pdf/1508.02297v1.pdf
两个n维向量A和B的余弦相似度定义为:
这就是 A 和 B 夹角的余弦。
而欧氏距离定义为
现在想想向量的两个随机元素的距离space。对于余弦距离,最大距离为1,因为cos的范围是[-1, 1].
但是,对于欧氏距离,这可以是任何非负值。
当维度n变大时,随机选择的两个点的余弦距离越来越接近90°,而R^n的单位立方体中的点的欧氏距离约为0.41 (n) ^0.5 (source)
TL;DR
余弦距离对于高维 space 中的向量更好,因为 维数灾难 。 (虽然我不是很确定)