14.5.1 带全局语料库的跳元模型
最后一段最后一句话的含义及示例说明:
核心问题:交叉熵损失在处理大型语料库中的罕见共现事件时,会赋予它们过高的权重,导致模型过度关注这些不常见的情况,从而影响整体性能。
具体解释
在跳元模型中,损失函数为:
\[-\sum_{i \in V} \sum_{j \in V} x_{ij} \log q_{ij},
\]
其中 $ x_{ij} $ 是词 $ w_i $ 和 $ w_j $ 的共现次数,$ q_{ij} $ 是模型预测的条件概率。
- 罕见事件:若某个词对 $ (w_i, w_j) $ 的共现次数 $ x_{ij} $ 极小(例如 $ x_{ij}=1 $),但模型预测的概率 $ q_{ij} $ 极低(接近 0),则其损失项 $ -x_{ij} \log q_{ij} $ 会非常大(因为 $ \log q_{ij} $ 接近负无穷)。
- 大量罕见事件的累积效应:尽管单个罕见事件的权重 $ x_{ij} $ 很小,但若语料库中存在海量此类事件(例如数百万个 $ x_{ij}=1 $ 的词对),它们的总损失贡献可能远超常见事件,导致优化过程被罕见事件主导。
例子说明
假设语料库中有以下两类词对:
-
常见词对:
- $ (w_A, w_B) $,共现次数 $ x_{AB}=1000 $,模型预测 $ q_{AB}=0.1 $。
- 损失值:$ -1000 \cdot \log(0.1) ≈ 2302.6 $。
-
罕见词对:
- $ (w_C, w_D) $,共现次数 $ x_{CD}=1 $,模型预测 $ q_{CD}=0.0001 $。
- 损失值:$ -1 \cdot \log(0.0001) ≈ 9.2103 $。
单个罕见事件的损失看似较小,但若存在 1000 个类似罕见词对(总损失 $ 1000 \times 9.2103 ≈ 9210.3 $),其总损失将远超常见词对的损失(2302.6)。此时,模型优化的主要目标是减少这 1000 个罕见事件的损失,而非优化常见词对的预测。
后果分析
- 模型过拟合罕见噪声:罕见事件可能包含随机噪声(如拼写错误、临时搭配),模型过度拟合这些噪声会导致泛化能力下降。
- 常见模式被忽视:常见词对(如 "cat" 和 "animal")的损失贡献被稀释,影响核心语义关系的建模。
- 计算资源浪费:大量罕见事件的梯度更新消耗计算资源,但收益有限。
解决方案
- 截断或下采样罕见事件:例如忽略 $ x_{ij} < 5 $ 的词对,或对高频词对进行下采样(如 Word2Vec 中的负采样策略)。
- 使用加权损失函数:为不同词对分配权重,降低罕见事件的损失贡献。
- 改进损失函数设计:例如使用负采样(Negative Sampling),避免对所有词计算归一化项。
总结:交叉熵损失在跳元模型中可能因罕见事件的累积效应导致优化偏差,需通过技术手段平衡常见与罕见事件的影响。
以下是 Word2Vec 和 GloVe 在核心思想、训练方法、应用场景等方面的详细对比:
1. 核心思想
| Word2Vec | GloVe |
|---|---|
| 基于预测模型:通过神经网络预测词与上下文之间的关系。 | 基于统计模型:通过全局共现统计和矩阵分解学习词向量。 |
| 通过局部上下文(滑动窗口)捕捉词的局部语义和语法关系。 | 通过全局共现频率(整个语料库)捕捉词的全局语义关系。 |
2. 训练方法
Word2Vec
- 模型结构:
- CBOW(Continuous Bag of Words):根据上下文词预测目标词。
- Skip-gram:根据目标词预测上下文词。
- 训练目标:
- 最大化似然:通过神经网络优化,使得目标词与上下文词的联合概率最大化。
- 通过反向传播更新词向量。
- 动态学习:
- 逐句处理语料库,逐个窗口滑动,实时更新词向量。
GloVe
- 模型结构:
- 共现矩阵(Co-occurrence Matrix):统计每对词在固定窗口内的共现次数。
- 矩阵分解:将共现矩阵分解为低维词向量,结合全局统计信息。
- 训练目标:
- 最小化损失函数:通过优化目标,使得词向量的点积能近似共现频率的对数。
- 使用梯度下降或直接矩阵分解(如SVD)。
- 全局统计:
- 需要先构建共现矩阵(离线处理),再进行矩阵分解。
3. 数据处理
| Word2Vec | GloVe |
|---|---|
| 在线学习:逐句处理,无需预存全部数据,适合大规模语料。 | 离线处理:需要先构建共现矩阵,内存消耗大(尤其是语料库较大时)。 |
| 窗口大小可调,直接影响局部上下文的范围。 | 窗口大小固定(默认10),但通过权重函数平衡远近词对的影响。 |
4. 优缺点
Word2Vec
- 优点:
- 能捕捉局部语法关系(如词性、短语结构)。
- 训练速度快,适合实时处理。
- 可通过调整窗口大小和模型类型(CBOW/Skip-gram)适应不同任务。
- 缺点:
- 对高频词和低频词的处理可能不够平衡。
- 窗口大小选择对结果影响较大。
- 需要调整超参数(如窗口大小、迭代次数)。
GloVe
- 优点:
- 结合了全局共现统计,能捕捉更广泛的语义关系(如主题相关性)。
- 对高频词和低频词的处理更平衡(通过权重函数)。
- 窗口大小影响较小,鲁棒性较强。
- 缺点:
- 构建共现矩阵需要大量内存,不适合超大规模语料。
- 训练速度较慢(尤其是矩阵分解阶段)。
- 无法动态调整窗口大小。
5. 应用场景
| Word2Vec | GloVe |
|---|---|
| 适合任务:需要捕捉局部上下文关系的任务,如句子结构分析、短文本分类。 | 适合任务:需要全局语义信息的任务,如文本相似度、主题建模。 |
| 适用场景:实时处理、在线学习、对局部语法敏感的场景。 | 适用场景:离线处理、全局语义分析、对高频词和低频词平衡要求高的场景。 |
6. 关键差异总结
| 对比维度 | Word2Vec | GloVe |
|---|---|---|
| 核心方法 | 神经网络预测模型(CBOW/Skip-gram) | 共现矩阵 + 矩阵分解 |
| 训练目标 | 最大化局部上下文的预测概率 | 最小化全局共现统计的重构误差 |
| 数据处理方式 | 在线学习,逐句处理 | 离线处理,依赖共现矩阵 |
| 窗口灵活性 | 窗口大小可调,直接影响结果 | 窗口大小固定,但通过权重函数平衡影响 |
| 对高频/低频词 | 可能对低频词效果较差 | 通过权重函数平衡高频和低频词的贡献 |
| 计算效率 | 训练速度快,内存占用较低 | 训练较慢,内存占用高(共现矩阵) |
7. 选择建议
- 选 Word2Vec:当任务需要捕捉局部上下文(如句子结构、短语搭配)或处理大规模语料时。
- 选 GloVe:当需要全局语义关系(如词义相似性、主题建模)或对高频/低频词的平衡要求较高时。
补充说明
- 词向量质量:两者生成的词向量在下游任务中的表现可能不同,建议通过实验选择。
- 扩展性:Word2Vec 可以通过调整窗口和模型类型灵活适配任务,而 GloVe 更依赖全局统计的稳定性。

浙公网安备 33010602011771号