为什么基于skip-gram的word2vec在低频词汇相比cbow更有效?

  统计/机器学习 自然语言处理 人工神经网络    浏览次数: 452
2

面试题库里卷38里的一道题目

对于基于skip-gram和基于CBOW的word2vec,哪个模型对低频词汇表现更好?

答案是skip-gram

不是非常理解,求大神分析下

 

yayat   2018-08-11 23:27



   2个回答 
8

CBOW是根据上下文预测当中的一个词,也就是用多个词预测一个词

比如这样一个句子yesterday was really a [...] day,中间可能是good也可能是nice,比较生僻的词是delightful。当CBOW去预测中间的词的时候,它只会考虑模型最有可能出现的结果,比如goodnice,生僻词delightful就被忽略了。

而对于[...] was really a delightful day这样的句子,每个词在进入模型后,都相当于进行了均值处理(权值乘以节点),delightful本身因为生僻,出现得少,所以在进行加权平均后,也容易被忽视。

Skip-Gram是根据一个词预测它的上下文,也就是用一个词预测多个词,每个词都会被单独得训练,较少受其他高频的干扰。所以对于生僻词Skip-Gram的word2vec更占优。


SofaSofa数据科学社区 DS面经 问答 实战

mrhust   2018-09-24 08:55

5

在 Google Groups 中,Milokov 提到:

“Skip-gram: works well with small amount of the training data, represents well even rare words or phrases

CBOW: several times faster to train than the skip-gram, slightly better accuracy for the frequent words

This can get even a bit more complicated if you consider that there are two different ways how to train the models: the normalized hierarchical softmax, and the un-normalized negative sampling. Both work quite differently.”


关于这段话,stackoverflow 就数据量这个问题进行过讨论:https://stackoverflow.com/questions/39224236/word2vec-cbow-skip-gram-performance-wrt-training-dataset-size


但关于低频词汇的有效性,并没有过多的说明,我是这样反向理解的:由于 CBOW 需要更多的数据,所以它对高频词汇更敏感,从而在低频词汇上表现没有 skip-gram 好。


觉得这样解释不是很好,欢迎补充!

SofaSofa数据科学社区 DS面经 问答 实战

lpq29743   2018-09-08 21:18



  相关主题

word2vec的网络里为什么没有bias偏置项   2回答

gensim训练出的Word2Vec模型每次都不一样   1回答

nlp里的stemming是什么意思?   2回答

文本处理中stop word什么意思   2回答

自然语言处理中的Tf-idf是什么意思   2回答

文本处理中的tf是什么意思?如何计算?   1回答

wordcloud安装报错error: Microsoft Visual C++ 14.0 is required   1回答

怎么把英文字符串转为小写(python)?   2回答

用python统计字符串中空格的个数   3回答

python里实现词云的package   3回答

如何用python统计一个txt文本的行数   3回答

python里怎么把中文字符串转化为成list   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!