我一直在考虑使用Word2vec来解决一个问题。我知道可以使用余弦距离,这意味着如果超点相同,最小距离可以是0,或者因为余弦值在[-1,1]之间,所以最大值可以是1。欧几里得距离的最小值也是如此。我的问题是在实践中,使用word2vec将两个单词投影到同一个超空间时,它们之间可能达到的最大欧几里得距离是多少?能否通过数学方法进行估算?理论上它是否是无限的?
回答:
训练过程并不会严格限制一个词向量最终的位置,所以我认为两个词之间的欧几里得距离可以变得任意大。
但是,只有在经过任意多次训练迭代,并且可能只在某些极端的训练语料库上,距离才会变得任意大。正常的语言多样性和有限的训练次数意味着在实践中,词向量不会离原点太远。
通常会对词向量进行单位归一化,使它们都具有1.0的幅度(因此位于“单位超球面上”),然后再进行词与词之间的比较。如果你已经进行了这种归一化处理:
-
虽然欧几里得距离和余弦距离的值会不同,但使用哪种距离计算的最近邻的排名顺序将会相同
-
任何两个向量之间的最大距离将是2,对于在超球面上彼此径向相对的点来说