word2vec 算法中 2 个超点之间的最大欧氏距离是多少?

What's the maximum euclidean distance between 2 hyperpoints in word2vec algorithm?

一道题一直在考虑用Word2vec。 我知道您可以使用余弦距离,这意味着如果超点相同,则最小距离可以为 0,或者 1,因为余弦在最大值的情况下从 [-1,1] 跨度。 这同样适用于欧氏距离的最小值。 我的问题是在实践中,当使用 word2vec 将它们投射到同一个超空间中时,两个所说的词可以达到的最大欧氏距离是多少?可以用数学方法估计吗?理论上是无限的吗?

这至少取决于向量的维数。即使它被归一化为 0-1,最大距离也将为 sqrt(n),其中 n 是您在向量中选择的维数。所以即使在那种情况下,它也是无界的。

训练过程不一定限制词向量结束的位置,所以我相信两个词之间的欧氏距离可以变得任意大。

但是,它们只会通过任意多的训练遍数变得任意大,而且可能只在某些极端训练语料库上。正常的语言多样性和有限的训练次数意味着在实践中向量不会远离原点。

对词向量进行单位归一化是很常见的,因此在进行词对词比较之前,它们的幅度都为 1.0(因此在 "unit-hypersphere" 上)。如果您已完成此规范化:

  • 虽然欧几里得距离和余弦距离会是不同的值,但无论您使用哪个,最近邻的 rank order 都是相同的

  • 任何两个向量之间的最大距离为 2,对于超球体上彼此直径相对的点