首页 > 解决方案 > 为什么词嵌入技术有效

问题描述

我研究了一些词嵌入技术,例如

  1. CBOW:从上下文到单个单词。生成的权重矩阵用作嵌入向量
  2. Skip gram:从单词到上下文(据我所知,它实际上是单词到单词,单一预测就足够了)。再次生成的权重矩阵用作嵌入

这些工具的介绍总是引用“余弦相似度”,它表示具有相似含义的词将转换为相似向量。

但是这些方法都基于“上下文”,只考虑目标词周围的词。我应该说它们是“综合性的”而不是“范式的”。那么为什么句子中的距离很近表示意思很近呢?我能想到很多经常出现的反例

  1. “祝你有美好的一天”。(good 和 day 有很大的不同,虽然距离很近)。
  2. “toilet”“washroom”(两个词意思相似,但一个句子包含一个不太可能包含另一个)

有什么可能的解释吗?

标签: nlpword2vecword-embedding

解决方案


这种“为什么”不太适合 StackOverflow,但有一些想法:

word2vec 和类似嵌入模型的本质可能是压缩:模型被迫使用比记住整个训练集所需的更少的内部状态来预测邻居。所以它必须在参数空间的相似区域中强制相似的词在一起,并强制词组进入各种有用的相对关系。

因此,在您的第二个“厕所”和“洗手间”示例中,即使它们很少一起出现,但它们确实倾向于出现在相同的相邻词周围。(在许多用法中它们是同义词。)当典型词围绕它们时,该模型试图将它们都预测到相似的水平。反之亦然:当它们出现时,模型通常应该预测附近的相同类型的单词。

为了实现这一点,它们的向量必须通过迭代训练非常接近。通过浅层前馈网络,让 'toilet' 和 'washroom' 预测相同邻居的唯一方法是将它们的词向量聚集到附近的地方。(此外,在某种程度上,它们的含义略有不同——“厕所”更多的是设备,“洗手间”更多的是房间——它们仍然会稍微远离彼此,朝向更多的“对象”与“地方”。)

同样,形式上是反义词但在相似上下文中很容易相互替代的单词,例如“热”和“冷”,在训练结束时会彼此接近。(并且,它们的各种更近的同义词将聚集在它们周围,因为它们往往被用来描述相似的附近的范式上更温暖或更冷的词。)

另一方面,您的示例“有美好的一天”可能对“美好”或“美好的一天”都没有巨大的影响。这两个词的更独特(因此对预测有用)的意义与其他词更相关。单独的“好”这个词可以出现在任何地方,因此到处都有弱关系,但仍然与评估中的其他同义词/反义词有很强的关系(“好或坏”、“喜欢或不喜欢”、“喜欢或不喜欢”等)规模。

所有这些随机/非预测性实例都倾向于作为噪声抵消;对邻近词有一定预测能力的关系,即使是轻微的,最终也会在高维空间中找到一些相对/邻近的排列,从而帮助模型进行一些训练样例。

请注意,word2vec 模型不一定是预测附近单词的有效方法。它可能永远不会擅长这项任务。但是,尝试使用比允许对训练数据进行完美查找更少的自由参数来擅长相邻词预测,这迫使模型反映数据中的潜在语义或句法模式。

(另请注意,一些研究表明,更大的window影响词向量以反映更多的主题/领域相似性——“这些词用于相同的事物,在关于 X 的广泛讨论中”——而微小window使词向量反映了更多的句法/典型相似性 - “这些词是彼此的替代品,适合在句子中扮演相同的角色”。参见例如 Levy/Goldberg “基于依赖的词嵌入”,围绕其表 1。)


推荐阅读