首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >word2vec模型在小数据上表现不佳的科学解释

word2vec模型在小数据上表现不佳的科学解释
EN

Stack Overflow用户
提问于 2017-12-14 20:02:09
回答 1查看 628关注 0票数 0

我想知道是否有任何科学解释为什么像CBOW这样的word2vec模型在小数据上表现不佳。这是我测试过的;

代码语言:javascript
复制
data=[[context1], [context2], [context3]......[contextn]]

model=trained word2vec model

model.most_similar('word')
output=[word not in even in top-10]

我用10倍的数据集重新训练了模型。

代码语言:javascript
复制
model.most_similar(word)
output=[word in the 10 most similar words]

除了字数随着数据量的增加而增加之外,性能随着数据大小的增加而提高,是否有任何科学原因?

EN

回答 1

Stack Overflow用户

发布于 2017-12-15 02:09:56

单词在随机位置开始Word2Vec训练,Word2Vec只有在看到许多有启发性的例子时才能“推断”出一对单词相似,这些例子在所有训练中逐渐将这些单词推到相似的位置。它只能排列许多许多单词,以便如果它获得许多、许多、许多不同的例子,那么所有这些成对的相似性都会同时得到维护,从而有很多、许多、许多机会逐步将它们推向更好的地方。

如果你有一个很小的数据集:

(1)可能没有,或者很少的例子,其中期望相似的单词在相似的邻近单词上下文中。由于没有共享邻近单词的示例,因此几乎没有将这两个单词推到同一位置的基础-预测邻近单词的内部Word2Vec任务不需要它们彼此靠近,如果它们预测的是完全不同的单词。但即使只有几个例子,也存在一些问题,比如...

(2)单词需要从原始的随机位置移动很多,才能最终到达从成功的word2vec会话中获得的有用的“星座”。如果一个单词在你的数据集中只出现了10次,而你对数据集进行了10次迭代训练,那么这个单词只会得到100次CBOW微调。相反,如果单词出现1000次,那么10次训练迭代将为其提供10,000个CBOW更新-从最初的任意位置移动到有用的位置的机会要好得多。因此,您有时可以通过增加训练迭代来从较小的数据集中挤出稍微更好的结果。这在某种程度上模拟了一个更大的语料库。但是在这些重复的上下文中仍然没有真正的变化,所以你仍然有问题...

(3)较小的数据集,具有较大的模型(大量的“自由参数”,如每个上下文词和预测的目标词的独立坐标),会导致“过拟合”。也就是说,他们可以变得非常擅长训练任务,本质上是通过“记忆”数据的特性,而不是实现通常希望能够将结果应用于新的变化数据的那种压缩/泛化。例如,在一个很小的语料库中,有很多内部参数,也许“快乐”和“欣喜若狂”不需要彼此靠近-它们的上下文只有一点重叠,模型中有大量的“空间”可以将它们放在完全不同的位置,但仍然可以很好地预测相邻的单词。有时,您可以通过缩小模型来压缩任何可能的泛化,例如,当数据集很小时,使矢量size参数更小。然后,它仍然被迫利用存在的任何(几个)上下文相似性。

但Word2Vec的本质是使用批量数据和批量训练,以强制发现可概括的模式-因此,将小语料库扩展为仅-勉强-工作的东西的技巧并没有以它最强的方式利用它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47812930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档