为什么在 word2vec 模型下相似的词会彼此接近?

问题描述

word2vec 模型可以完成的任务之一是使用余弦相似度为给定单词找到最相似的单词。一个好的word2vec模型下的相似词为什么会在空间上靠得很近的直观解释是什么?

解决方法

该模型本质上是在执行压缩。

它必须将大量不同的词(例如 100,000 或数百万个)强制转换为维数少得多(例如 100 或 300)的向量。

因此,一个简单的“one-hot”编码是不可能的,其中每个词完全点亮一个维度(1.0),而其他的则根本不点亮(0.0)。词必须在少量维度上混合使用值。

为了让这样的模型在其训练任务上变得更好——预测附近的单词——通常具有相似邻居的单词将增长到具有相似的坐标。这允许坐标空间的“邻域”生成类似的预测。

而且,这些词应该预测不同邻居的其余方式也往往会反映在逐渐的坐标变化(方向或邻域)中。

例如,考虑多义性的情况。 “金库”和“银行”这两个词都会出现在“钱”(及相关概念)周围——但另一种意义上的“银行”也会出现在“河流”和“水”(及相关概念)周围。因此,在许多情况下的训练会促使“银行”和“金库”更加相似(以生成与“金钱”相关的共享预测)。但是随后其他交错的示例用法上下文将“bank”推向“river”/“water”。

在充分且参数化的训练结束时,这些各种拔河反向传播更新的净效果倾向于以有趣的方式排列单词 - 相似的单词更接近,甚至某些方向/邻域与人类可描述的概念模糊相关。 (例如,“那个方向”可能会模糊地将概念转向金钱,“另一个方向”在性别概念方面,“第三个方向”在颜色方面,等等 - 尽管这些方向必然是模糊的,充满了模式训练数据可能会因运行而异,并且不会与每个维度的垂直轴整齐对齐。)

最常见的是:为了模型优化的目的,必须预测相同相邻词的词往往会获得相似的坐标。他们剩余的差异与他们需要不同地预测哪些相邻词相关。