GloVe 目标函数推导
分类: 词向量与表示学习 · 难度: 中级 · 关联讲座: L02
GloVe 目标函数推导
GloVe(Global Vectors for Word Representation)是另一种词向量训练方法,与 Word2Vec 的局部窗口 SGD 不同,GloVe 直接对全局共现统计建模。本文从 SVD 的局限出发,推导 GloVe 目标函数的设计动机,并通过共现比率的例子展示其核心洞察。
1. 目标函数的推导动机
📐 GloVe 目标函数的推导动机
从 SVD 到 GloVe 的思路链:
第 1 步:构建词-词共现矩阵 , = 词 在词 的上下文中出现的次数。
第 2 步:SVD 分解 ,取前 列得到词向量。问题: 极大(),SVD 不可行;且共现矩阵中高频词(如 “the”)的影响过大。
第 3 步:GloVe 的洞察——点积 应该逼近 (对数共现):
为什么对数?因为共现次数跨越多个数量级(cat-the 共现 1000 次,cat-galaxy 共现 0 次),对数压缩这个差异。
第 4 步:加入偏置项 + 加权函数,构造最终目标:
其中 (,限制高频词权重不超过 1)。
GloVe 的优势:只需遍历共现矩阵的非零元素,远小于全词汇表迭代;同时利用了全局统计而非局部窗口。
2. 共现比率的洞察
🔢 GloVe 共现比率的洞察
词 在词 上下文中出现的概率:
| 词 | 比率 | ||
|---|---|---|---|
solid | 高 | 低 | >> 1 |
gas | 低 | 高 | << 1 |
water | 高 | 高 | ≈ 1 |
fashion | 低 | 低 | ≈ 1 |
洞察:比率 比单独的概率更能区分词义相关性。GloVe 的词向量点积就在拟合这个比率关系(通过对数转换变为差)。
3. 常见误区
⚠️ 常见误区
- 误区:GloVe 和 Word2Vec 是完全不同的方法 → 正确:从信息论角度,两者都在隐式分解某种形式的词-词共现矩阵(PPMI 矩阵)。Word2Vec 做局部窗口的 SGD,GloVe 做全局共现的加权最小二乘。
- 误区: 的词对直接忽略即可 → 正确:GloVe 用 自然处理(权重为 0),但需注意这意味着大量词对的信息被丢弃——稀疏数据是 GloVe 的挑战之一。