在 NLP 中,在计算单词到向量时,我们尝试最大化 log(P(o|c))。其中 P(o|c) 是 o 是外部词的概率,假设 c 是中心词。
U o是外部词的词向量
V c是中心词的词向量
T 是词汇表中的词数
上面的等式是 softmax。并且U o和V c的点积作为分数,应该越高越好。如果单词 o 和 c 更接近,那么它们的点积应该很高,但点积并非如此。由于以下原因:
考虑向量
A=[1, 1, 1], B=[2, 2, 2], C=[100, 100, 100]
AB = 1 * 2 + 1 * 2 + 1 * 2 = 6
交流 = 1 * 100 + 1 * 100 + 1 * 100 = 300
与 A 和 C 相比,向量 A 和 B 更接近,但是点积 AC > AB
所以点积作为距离而不是相似性度量。那为什么在softmax中使用它。
请帮助我更好地理解
NLP中词向量计算相似度的点积
数据挖掘
nlp
词嵌入
word2vec
相似
软最大
2022-03-06 21:13:25
3个回答
参考指向word2vec 库(源代码)。
它在训练期间不使用归一化向量(尽管它确实使用余弦相似度度量来对已训练的向量进行语义比较)。
在训练过程中只使用点积而不是余弦相似度的原因可能是:
- 点积是余弦相似度的变体。
- 长度捕获一些语义信息,因为长度可以与给定上下文中的出现频率相关,因此使用点积也只能捕获这些信息(尽管仍然使用严格的相似性测试余弦度量)
- 当向量被归一化时,这两个度量重合。
- 效率(做更少的计算)
参考:
点积是一个向量的投影大小到,这不是一个很好的相似性度量,但是:
存在两个向量之间的角度。
和:
存在:
通过非常简单的数学,我们可以得到:
作为
如果向量除以它们的范数(归一化),我们可以说“点刺越高,越相似”
矢量 Uo 和 Vc 在幅度上或多或少相似。而且幅度非常小。由向量长度归一化的点积是余弦相似度。
其它你可能感兴趣的问题