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

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

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

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

答案是skip-gram

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

 

yayat   2018-08-11 23:27



   2个回答 
11

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面试题库 DS面经

mrhust   2018-09-24 08:55

6

在 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面试题库 DS面经

lpq29743   2018-09-08 21:18



  相关主题

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

h-softmax是什么意思?   1回答

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

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

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

教程中的利用Word2Vec判断是否是白话   1回答

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

jieba分词中最大正向匹配法是什么?   0回答

“阅读需要X分钟”这个功能是如何实现的?   2回答

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

怎么判断一句中文话语是否通顺   1回答

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



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

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

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

我们谢绝答非所问。

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

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