Gensim的Word2vec Skip-gram模型默认估计方法是什么?
Gensim Word2Vec 损失函数相关问题解答
问题1:Skip-gram模式下Gensim Word2Vec默认估计方法是否为NCE?
- 答案是否定的。Gensim官方原生Word2Vec实现(包括Skip-gram和CBOW模式)从未将NCE(噪声对比估计)作为默认估计方法,也没有内置NCE损失的官方支持。
- Gensim Word2Vec的
negative参数默认值为5,代表默认启用*负采样(Negative Sampling)*作为优化估计方法,采样的噪声词数量为5。
补充说明:负采样本质是NCE的简化实现,两者核心逻辑都是通过对比正样本和噪声样本避免计算全量Softmax,但负采样去掉了NCE中对噪声分布的归一化项,计算更简便,二者并不等价。
问题2:negative参数设为0时采用的估计方法是什么?
- 当
negative=0时,Gensim Word2Vec会自动启用*分层Softmax(Hierarchical Softmax)*作为估计方法。 - 分层Softmax基于霍夫曼树构建输出层,将普通Softmax的O(V)计算复杂度降低到O(logV),适合词汇量较大的训练场景。
额外说明
若相关论文作者仅使用Gensim Word2Vec默认配置就声称使用NCE训练,大概率是混淆了负采样和NCE的概念,原生Gensim无法通过默认参数实现NCE损失,需要自行修改模型的损失层代码才能完成适配。
内容的提问来源于stack exchange,提问作者krcoder
相关产品推荐
相关产品推荐

