核心要点

  • CBOW:用周围上下文词预测中心词,训练快、在小数据上表现好

  • Skip-gram:用中心词预测每个上下文词,对低频/罕见词学得更好

  • 两者都把词映射为稠密向量,使语义相近的词在空间中靠近

  • 原始 softmax 计算开销大,用负采样或层次 softmax 大幅加速训练

标准回答

共同目标

Word2Vec 通过自监督地预测词的共现关系,把每个词学成稠密向量(embedding),使语义/句法相近的词在向量空间中接近,并支持「king - man + woman ≈ queen」式线性类比。

CBOW(Continuous Bag-of-Words)

输入窗口内的上下文词(求和/平均),预测中心词。相当于多对一,训练速度快,在数据量较小或高频词上表现稳定,但会平滑掉低频词信息。

Skip-gram

输入中心词,分别预测窗口内的每个上下文词,一对多。训练样本更多、更细,对罕见词和小语料的语义刻画通常更好,但计算量更大。

加速技巧

原始输出层是全词表 softmax,代价高。实践用负采样(把多分类转成少量正负样本的二分类)或层次 softmax(用哈夫曼树把复杂度降到对数级)来加速。详见 NLP 基础:从词嵌入到 Transformer

常见误区

⚠️ 常见踩坑

别把 CBOW 和 Skip-gram 的方向说反:CBOW 是上下文→中心词,Skip-gram 是中心词→上下文;负采样是训练加速技巧,不改变模型预测目标本身。

追问

追问 1负采样为什么能加速?

全词表 softmax 每步要对几十万词归一化,开销巨大。负采样把它改成:对真实上下文词(正样本)和少量按词频采样的噪声词(负样本)做逻辑回归二分类,每步只更新少数向量,复杂度从词表规模降到采样数,大幅提速且效果相当。

追问 2Word2Vec 和上下文相关的 BERT embedding 有什么本质差异?

Word2Vec 是静态词向量,每个词不论语境只有一个固定向量,无法区分多义词;BERT 等是上下文相关表示,同一个词在不同句子里向量不同,能消歧。但 Word2Vec 轻量、训练快,在资源受限或浅层特征场景仍有用。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。