第四章: 大模型(LLM)
第一部分:Embedding is all you need
第四节:Word2Vec之 CBOW 与 Skip-Gram
一、Word2Vec 的基本思想
Word2Vec 是一种将词语转换为向量的算法,核心目标是通过上下文预测中心词或通过词预测上下文,使得相似词语在向量空间中彼此接近。
Word2Vec 有两种核心架构:
-
CBOW(Continuous Bag-of-Words)
-
Skip-Gram
二、CBOW模型:用上下文预测中心词
输入: 上下文词(多个)
输出: 目标词(中心词)
举例:
句子:“The cat sits on the mat”
上下文窗口大小为 2,中心词为 “sits”
输入为:[“The”, “cat”, “on”, “the”]
目标为:[“sits”]
原理:
-
对每个上下文词取词向量并求平均
-
输入平均向量乘以权重矩阵,输出为 softmax 层预测中心词
-
采用交叉熵损失进行优化
特点:
-
适合大语料小词表
-
训练速度快、效率高
-
对频繁词表现更好
三、Skip-Gram模型:用中心词预测上下文
输入: 中心词
输出: 上下文词(多个)
举例:
句子:“The cat sits on the mat”
中心词为 “sits”,窗口大小为 2
预测目标为:[“The”, “cat”, “on”, “the”]
原理:
-
输入为中心词向量
-
通过权重矩阵映射,输出向量与上下文词向量计算相似度
-
使用 softmax 对整个词表概率建模,优化目标是最大化正确上下文词的概率
特点:
-
适合小语料大词表
-
可学习罕见词的表示
-
模型训练较慢,但效果更强大
四、模型对比总结
特性 | CBOW | Skip-Gram |
---|---|---|
输入 | 上下文词 | 中心词 |
输出 | 中心词 | 上下文词 |
性能 | 快、稳定 | 准确、适合少数词 |
数据稀疏处理 | 平均向量简化语义 | 强调单词之间的个体语义 |
应用建议 | 高频词汇建模 | 稀有词学习 |
五、负采样(Negative Sampling)与层次Softmax
Word2Vec在训练过程中使用以下技巧提升性能:
-
负采样:只优化目标词与部分负样本,减少计算量
-
Hierarchical Softmax:构建词汇树,减少 softmax 计算复杂度
六、简化流程图示(CBOW vs Skip-Gram)
flowchart TB
subgraph CBOW
A1[上下文词1] --> C[平均嵌入]
A2[上下文词2] --> C
A3[上下文词3] --> C
A4[上下文词4] --> C
C --> D1[预测中心词]
end
subgraph SkipGram
B1[中心词] --> E1[预测上下文1]
B1 --> E2[预测上下文2]
B1 --> E3[预测上下文3]
B1 --> E4[预测上下文4]
end
七、实践建议
-
使用
gensim
或torch.nn.Embedding
构建 Word2Vec 模型 -
在中文语料处理时先进行分词(如jieba)
-
调整窗口大小(window)、负采样数量(negative)、维度(vector_size)等参数可提高精度