word2vec:CBOW&跳过
问题很简单。 哪一个CBOW和skip-gram对于大数据集更好? (小数据集的答案如下。)
自米科洛夫本人以来,我感到困惑,[链接]
Skip-gram:适用于少量训练数据 ,代表甚至罕见的单词或短语。
CBOW:训练比skip-gram要快几倍,对于频繁的单词准确度略高一些
但据Google TensorFlow称,[链接]
CBOW平滑了许多分布信息(将整个上下文视为一个观察)。 对于大多数情况来说,这对于较小的数据集来说是有用的。
然而,skip-gram将每个上下文对象作为一个新的观察对象,而当我们拥有更大的数据集时,这往往会做得更好。 我们将在本教程的其余部分重点介绍skip-gram模型。
这是一个支持第一个思想[链接]的Quora文章,然后是另一个Quora文章,其中提出了第二个思想[链接] - 两者似乎都可以从上述可信来源推导出来。
还是像米科洛夫所说的那样:
总的来说,最好的做法是尝试一些实验,看看最适合你的是什么,因为不同的应用程序有不同的要求。
但是,在这个问题上肯定有一个经验或分析的结论或最终说法?
当Mikolov意味着CBOW适用于更大的数据集,SG适用于更小的数据集时,我认为数据量是被考虑的。 由于CBOW考虑一个目标词和许多上下文词,因此与SG中使用的数据集相比,它需要一个更大的数据集来训练目标向量。 正如反过来一样,在SG中由于单个上下文单词有许多目标单词,因此它需要较小的数据集。
谷歌Tensor Flow讲述了数据集中用于生成质量向量的单词分布,而不是所用数据集的数量。 由于CBOW模型考虑对一个句子中所有目标词汇的相同情境词汇,因此需要更大(分布式)的数据集合,反之亦然。
通常,它们都是相同的: