我一直在阅读有关Word2Vec的论文(例如this one),并且我认为我理解训练向量以最大程度地提高在相同上下文中发现其他单词的可能性。

但是,我不明白为什么余弦是正确的单词相似度。余弦相似度表示两个向量指向相同的方向,但是它们的大小可能不同。

例如,余弦相似度比较文档的单词袋是有意义的。两个文档的长度可能不同,但单词分布相似。

为什么不说欧几里得距离呢?

谁能解释为什么余弦相似性适用于word2Vec?

最佳答案

两个n维向量A和B的余弦相似度定义为:

nlp - 为什么word2Vec使用余弦相似度?-LMLPHP

简单来说就是A与B之间的夹角的余弦值

而欧几里得距离定义为

nlp - 为什么word2Vec使用余弦相似度?-LMLPHP

现在考虑向量空间中两个随机元素的距离。对于余弦距离,最大距离为1,因为cos的范围为[-1,1]。

但是,对于欧几里得距离,它可以是任何非负值。

当维数n变大时,两个随机选择的点的余弦距离越来越近,接近90°,而R ^ n的单位立方体中的点的欧氏距离约为0.41(n)^ 0.5()

TL; DR

由于维数的诅咒,余弦距离对于高维空间中的矢量更好。 (不过,我对此不太确定)

关于nlp - 为什么word2Vec使用余弦相似度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38423387/

10-12 18:51