问题描述
我研究了一些词嵌入技术,例如
- CBOW:从上下文到单个单词。产生的权重矩阵用作嵌入向量
- 跳过语法:从单词到上下文(从我的角度看,它的单词到单词之间,单个预测就足够了)。再次产生权重矩阵作为嵌入
在介绍这些工具时,总是会引用“余弦相似度”,即具有相似含义的单词会转换为相似向量。
但是这些方法都是基于“上下文”的,只考虑目标词周围的词。我应该说它们是“句法”而不是“范式”。那么,为什么句子中的距离接近表示含义接近呢?我可以想到很多经常发生的反例
有什么可能的解释吗?
解决方法
这种“为什么”不适合StackOverflow,但有一些想法:
word2vec和类似嵌入模型的本质可能是压缩:该模型被迫使用比记住整个训练所需的少得多的内部状态来预测邻居组。因此,它必须在参数空间的相似区域中将相似的单词强制在一起,并将单词组强制为各种有用的相对关系。
因此,在您的“厕所”和“盥洗室”的第二个示例中,即使它们很少同时出现,但它们的确倾向于出现在相同的相邻单词周围。 (它们在许多用法中都是同义词。)当典型的单词围绕它们时,该模型会尝试将它们预测到相似的水平。反之亦然:当它们出现时,模型通常应该在附近预测相同种类的单词。
要实现这一点,必须通过迭代训练将它们的向量微调到很近。通过浅薄的前馈网络让“厕所”和“洗手间”预测同一邻居的唯一方法是将他们的单词向量散布到附近的地方。 (此外,在某种程度上,它们具有不同的含义-“厕所”更多的设备和“洗手间”更多的房间-他们仍然会稍微彼此倾斜,朝着更多“物体”比“邻居”倾斜的邻居地方”。
类似地,在培训结束时,形式上为反义词但在相似的上下文中很容易彼此替代的词(如“热”和“冷”)会彼此接近。 (而且,它们的各种近义同义词将聚集在它们周围,因为它们倾向于用来描述相似的附近范式或温暖词。)
另一方面,您的示例“过得好”可能不会对“好”或“好”产生重大影响。这两个词的独特性(因而可预测地有用)感与其他词的关联性更高。单独出现“好”一词,到处都有弱关系,但在评估上与其他同义词/反义词仍然有很强的关系(“好或坏”,“喜欢或不喜欢”,“喜欢或不喜欢”等)规模。
所有这些随机/非预测性实例往往会被抵消为噪声;具有 some 能力(甚至略有预测)的关系最终会在高维空间中找到 some 相对/邻近排列,从而为某些模型提供帮助培训示例。
请注意,word2vec模型不一定是预测附近单词的有效方法。在这项任务上可能永远做不到。但是尝试变得擅长于邻词预测,其空闲参数少于允许对训练数据进行完美查找的自由参数,这迫使模型在数据中反映出潜在的语义或句法模式。 >
(也请注意,一些研究表明,较大的window
影响词向量以反映更多的主题/领域相似性-“在有关X的广泛论述中,这些词用于相同的事物” –微小的window
使单词向量反映出更句法/典型的相似性-“这些单词是彼此的直接替换,在句子中具有相同的作用。”例如,参见Levy / Goldberg的“基于依赖关系表1)。