Nlp word2vec:CBOW&;跳过gram性能wrt训练数据集大小

Nlp word2vec:CBOW&;跳过gram性能wrt训练数据集大小,nlp,word2vec,word-embedding,Nlp,Word2vec,Word Embedding,问题很简单。CBOW&skip gram中哪一个更适合大数据集?(下面是小数据集的答案。) 我很困惑,因为米科洛夫本人 Skip gram:适用于少量的训练数据,甚至可以很好地表示罕见的单词或短语 CBOW:训练速度比skip gram快几倍,对频繁单词的准确度略高 但是,根据谷歌TensorFlow的说法 CBOW平滑了许多分布信息(通过将整个上下文视为一个观察)。在大多数情况下,这对于较小的数据集是有用的。然而,skip gram将每个上下文目标对视为一个新的观察值,当我们有较大的数据集时,

问题很简单。CBOW&skip gram中哪一个更适合大数据集?(下面是小数据集的答案。)

我很困惑,因为米科洛夫本人

Skip gram:适用于少量的训练数据,甚至可以很好地表示罕见的单词或短语

CBOW:训练速度比skip gram快几倍,对频繁单词的准确度略高

但是,根据谷歌TensorFlow的说法

CBOW平滑了许多分布信息(通过将整个上下文视为一个观察)。在大多数情况下,这对于较小的数据集是有用的。

然而,skip gram将每个上下文目标对视为一个新的观察值,当我们有较大的数据集时,这往往会做得更好。在本教程的其余部分中,我们将重点讨论skip-gram模型

这是一篇支持第一个想法的Quora帖子,然后是另一篇提出第二个想法的Quora帖子——这两篇文章似乎都可以从前面提到的可信来源衍生出来

还是像米科洛夫说的那样:

总的来说,最佳实践是尝试一些实验,看看什么最适合您,因为不同的应用程序有不同的需求


但肯定有一个实证或分析结论或最终结论吗?

当Mikolov表示CBOW适用于较大的数据集,SG适用于较小的数据集时,我认为数据量是考虑在内的。由于CBOW考虑一个目标词和许多上下文词,因此与SG中使用的数据集相比,需要更大的数据集来训练目标向量。反之亦然,在SG中,由于单个上下文单词有许多目标单词,因此需要更小的数据集

Google Tensor Flow谈到数据集中单词的分布,以生成质量向量,而不是使用数据集的数量。由于CBOW模型更多地考虑了句子中所有目标词的相同上下文词,因此需要更大的(分布式)数据集,反之亦然

它们的共同含义是相同的:

  • CBOW模型=句子简短但样本数量较多的数据集(较大的数据集)
  • SG模型=句子较长且样本数较少的数据集(较小的数据集)