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 $ 的词对),它们的总损失贡献可能远超常见事件,导致优化过程被罕见事件主导。

例子说明

假设语料库中有以下两类词对:

  1. 常见词对

    • $ (w_A, w_B) $,共现次数 $ x_{AB}=1000 $,模型预测 $ q_{AB}=0.1 $。
    • 损失值:$ -1000 \cdot \log(0.1) ≈ 2302.6 $。
  2. 罕见词对

    • $ (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 个罕见事件的损失,而非优化常见词对的预测。


后果分析

  1. 模型过拟合罕见噪声:罕见事件可能包含随机噪声(如拼写错误、临时搭配),模型过度拟合这些噪声会导致泛化能力下降。
  2. 常见模式被忽视:常见词对(如 "cat" 和 "animal")的损失贡献被稀释,影响核心语义关系的建模。
  3. 计算资源浪费:大量罕见事件的梯度更新消耗计算资源,但收益有限。

解决方案

  1. 截断或下采样罕见事件:例如忽略 $ x_{ij} < 5 $ 的词对,或对高频词对进行下采样(如 Word2Vec 中的负采样策略)。
  2. 使用加权损失函数:为不同词对分配权重,降低罕见事件的损失贡献。
  3. 改进损失函数设计:例如使用负采样(Negative Sampling),避免对所有词计算归一化项。

总结:交叉熵损失在跳元模型中可能因罕见事件的累积效应导致优化偏差,需通过技术手段平衡常见与罕见事件的影响。

以下是 Word2VecGloVe 在核心思想、训练方法、应用场景等方面的详细对比:


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 更依赖全局统计的稳定性。
posted @ 2025-03-02 20:39  最爱丁珰  阅读(47)  评论(0)    收藏  举报