为什么skip-gram对于不常用词比CBOW更好?

机器算法验证 自然语言 word2vec 词嵌入
2022-02-06 16:00:25

我想知道为什么在 word2vec 中,skip-gram 对于不常用的单词比 CBOW 更好。我已阅读https://code.google.com/p/word2vec/上的声明。

3个回答

这是我对差异的过于简单且相当幼稚的理解:

众所周知,CBOW正在学习根据上下文预测单词。或者通过查看上下文来最大化目标词的概率。这恰好是稀有词的问题。例如,给定上下文yesterday was really [...] dayCBOW 模型会告诉您这个词很可能是beautifulor nice像这样的词delightful将很少受到模型的关注,因为它旨在预测最可能的词。稀有词将在许多具有更频繁词的示例上进行平滑处理。

另一方面,skip-gram旨在预测上下文。给定这个词delightful,它必须理解它并告诉我们,有很大的概率,上下文是yesterday was really [...] day,或者其他一些相关的上下文。使用skip-gram,单词delightful不会尝试与单词竞争,beautiful而是delightful+context将成对视为新的观察结果。正因为如此,skip-gram需要更多的数据,这样它才能学会理解甚至是罕见的单词。

在 CBOW 中,来自上下文词的向量在预测中心词之前被平均。在skip-gram中没有嵌入向量的平均。在进行预测的过程中,当稀有词的向量没有与其他上下文词平均时,该模型似乎可以为稀有词学习更好的表示。

我刚刚遇到了一篇相反的论文:CBOW 对于不常用的单词比skip-gram https://arxiv.org/abs/1609.08293更好。我想知道https://code.google.com/p/word2vec/上所述声明的来源是什么