skip-gram 和连续词袋之间的主要区别是什么?

人工智能 自然语言处理 比较 word2vec 弓箭 跳过语法
2021-10-22 21:21:40

skip-gram 和连续词袋(CBOW)是两种不同类型的 word2vec 模型。

它们之间的主要区别是什么?两种方法的优缺点是什么?

2个回答

因此,您可能已经知道,CBOW 和 Skip-gram 只是彼此的镜像版本。训练 CBOW 从固定窗口大小的上下文词预测单个词,而 Skip-gram 则相反,并尝试从单个输入词预测多个上下文词。

直观地说,第一个任务要简单得多,这意味着 CBOW 的收敛速度比 Skip-gram 快得多,在原始论文(下面的链接)中,他们写道 CBOW 需要数小时来训练,Skip-gram 需要 3 天。

对于任务难度的相同逻辑,CBOW 可以更好地学习单词之间的句法关系,而 Skip-gram 在捕获更好的语义关系方面更好。在实践中,这意味着对于单词 'cat' CBOW 将检索为最接近的向量形态相似的单词,如复数,即'cats',而 Skip-gram 将考虑形态不同的单词(但语义相关),如 'dog' 更接近'相比之下,猫。

进行交易的最后一个考虑因素是对稀有和频繁单词的敏感性。因为 Skip-gram 依赖于单个词的输入,所以对频繁词的过度拟合不太敏感,因为即使在训练过程中频繁词出现的次数多于稀有词,它们仍然单独出现,而 CBOW 因为出现频繁词容易出现过度拟合几次以及相同的上下文。这种优于频繁词过拟合的优势导致 Skip-gram 在获得良好性能所需的文档方面也更有效,远低于 CBOW(这也是 Skip-gram 在捕获语义关系方面表现更好的原因)。

无论如何,您可以在原始论文(第 4.3 节)中找到一些比较。 米科洛夫等人。2013

关于架构,没什么好说的。他们只是为每个词随机初始化词嵌入,然后在每次迭代中生成一个投影矩阵 NxD(上下文词的数量乘以嵌入维度),没有隐藏层,向量只是一起平均,然后输入到激活函数中预测维数为 V(词汇量)的向量中的索引概率。

对于更具体的解释(即使 Mikolov 的论文也缺乏一些细节),我建议查看这个博客页面(Words as Vectors),尽管那里描述的模型确实应用了隐藏层,这与原始架构不同。

在此处输入图像描述

词嵌入是深度学习算法学习的结果,它可以通过特征提取从数据中学习字符。词嵌入的一种实现是 word2vec。

Word2vec 有两种模型,即

  • 连续词袋 (CBOW) 和
  • 跳过 Gram 模型。

这两种方法都使用神经网络的概念,将单词映射到目标变量,目标变量也是单词。在这些技术中,“权重”被用作词向量表示。CBOW 试图根据它的邻居来预测一个单词,而 Skip Gram 试图预测一个单词的邻居。

简而言之,CBOW 倾向于找到一个词在上下文中出现的概率。因此,它概括了可以使用单词的所有不同上下文。而 SkipGram 倾向于分别研究不同的上下文。Skip Gram 需要更多的数据进行训练,包含更多关于上下文的知识。

如需进一步解释,您可以阅读 Mikolov 关于词嵌入和 word2vec 的论文