GloVe: Global Vectors for Word Representation

作者: Jeffrey Pennington, Richard Socher, Christopher D. Manning 年份: 2014 会议: EMNLP 分类: NLP基础

论文笔记:GloVe: Global Vectors for Word Representation

元信息

项目内容
机构Stanford University
日期October 2014
项目主页nlp.stanford.edu/projects/glove
链接ACL Anthology

一句话总结

通过分析词-词共现矩阵的对数,推导出一种加权最小二乘目标函数,将全局统计信息与局部上下文窗口方法统一起来,学习的词向量在 词类比任务 上取得当时 SOTA 性能。

核心贡献

理论洞察: 证明词向量类比关系的线性结构源于共现概率比值(probability ratios),从而将词向量学习问题奠定在坚实的统计学基础上

统一两大范式: 将基于全局矩阵分解的方法(如 LSA)和基于局部窗口的方法(如 Word2Vec)统一到同一个框架中,证明 Skip-gram with Negative Sampling 本质上是在隐式分解 PMI 矩阵

加权最小二乘目标: 设计了带权重函数 f(Xij)f(X_{ij}) 的目标函数,有效处理共现频率的巨大动态范围(从零到极高频)

高效训练与开源: 在 6B tokens 语料上训练,开源代码和预训练向量(50d/100d/200d/300d),成为 NLP 社区标准工具

问题背景

要解决的问题

如何从语料的全局统计信息中高效学习词向量,使其同时具备 LSA 的全局统计优势和 Word2Vec 的局部上下文捕获能力?

现有方法的局限

基于矩阵分解的方法(LSA/HAL): 利用全局统计但在词类比等细粒度任务上表现不佳;LSA 对词频做了不够优雅的处理

基于局部窗口的方法(Word2Vec: 在类比任务上表现好,但只利用局部上下文,未充分利用全局共现统计;无法从理论上解释为何词向量会出现线性类比结构

缺乏理论基础: 为什么词向量能编码语义关系?当时缺少令人满意的理论解释

本文的动机

作者从共现概率的比值出发,发现这些比值天然编码了词与词之间的语义区分信息,由此推导出目标函数

方法详解

核心洞察:共现概率比值

XijX_{ij} 为词 ii 和词 jj 在上下文窗口内共现的次数,Pij=P(ji)=Xij/XiP_{ij} = P(j|i) = X_{ij}/X_i 为共现概率

考察两个词 ii(如 “ice”)和 jj(如 “steam”)相对于探测词 kk 的共现概率比值 Pik/PjkP_{ik}/P_{jk}

  • kk = “solid”:Pik/PjkP_{ik}/P_{jk} 很大(ice 与 solid 强相关)
  • kk = “gas”:Pik/PjkP_{ik}/P_{jk} 很小(steam 与 gas 强相关)
  • kk = “water”:Pik/Pjk1P_{ik}/P_{jk} \approx 1(两者都与 water 相关)
  • kk = “fashion”:Pik/Pjk1P_{ik}/P_{jk} \approx 1(两者都与 fashion 无关)

关键发现: 比值而非绝对概率才是区分语义关系的有效信号

目标函数推导

  1. 目标:找到函数 FF 使得 F(wi,wj,w~k)=Pik/PjkF(w_i, w_j, \tilde{w}_k) = P_{ik}/P_{jk}
  2. 词向量空间是线性的 → FF 应依赖于 (wiwj)(w_i - w_j)
  3. 左边是向量,右边是标量 → 取点积:F((wiwj)w~k)=Pik/PjkF((w_i - w_j)^\top \tilde{w}_k) = P_{ik}/P_{jk}
  4. 要求对称性(词作为目标词和上下文词的角色可互换)→ FF 应是同态映射
  5. 选择 F=expF = \exp → 得到 wiw~k=logPik=logXiklogXiw_i^\top \tilde{w}_k = \log P_{ik} = \log X_{ik} - \log X_i
  6. 吸收 logXi\log X_i 为偏置项 → 最终模型

共现矩阵构建

扫描整个语料,统计词对在窗口 ww 内共现的次数

距离越近的词对权重越大:距离为 dd 的共现计数贡献 1/d1/d

共现矩阵 XX 是对称的,但实际实现中 wiw_iw~j\tilde{w}_j 使用不同的向量

权重函数设计

f(x)f(x) 满足三个条件:

  • f(0)=0f(0) = 0(零共现不贡献损失)
  • f(x)f(x) 非递减(高频共现不应被低估)
  • 对极高频共现有上界(避免 “the” 等停用词主导损失)

关键公式

公式1: GloVe 目标函数

J=i,j=1Vf(Xij)(wiw~j+bi+b~jlogXij)2J = \sum_{i,j=1}^{V} f(X_{ij}) \left( w_i^\top \tilde{w}_j + b_i + \tilde{b}_j - \log X_{ij} \right)^2

含义: 加权最小二乘回归,拟合词向量点积与共现计数对数之间的关系

符号说明:

  • wiRdw_i \in \mathbb{R}^d: 目标词向量
  • w~jRd\tilde{w}_j \in \mathbb{R}^d: 上下文词向量
  • bi,b~jb_i, \tilde{b}_j: 标量偏置项
  • XijX_{ij}: 词 ii 和词 jj 的共现次数
  • f()f(\cdot): 权重函数

公式2: 权重函数

f(x)={(x/xmax)αif x<xmax1otherwisef(x) = \begin{cases} (x / x_{\max})^\alpha & \text{if } x < x_{\max} \\ 1 & \text{otherwise} \end{cases}

含义: 对共现频率进行截断加权,避免极高频词对主导训练

符号说明:

  • xmax=100x_{\max} = 100: 截断阈值(论文默认值)
  • α=3/4\alpha = 3/4: 幂次参数(实验确定优于线性 α=1\alpha=1

公式3: 共现概率比值

PikPjk=P(ki)P(kj)=Xik/XiXjk/Xj\frac{P_{ik}}{P_{jk}} = \frac{P(k|i)}{P(k|j)} = \frac{X_{ik} / X_i}{X_{jk} / X_j}

含义: 两个词相对于探测词的共现概率比值,编码了三者之间的语义关系

特性: 当 kkii 相关而与 jj 无关时比值远大于 1;与两者都相关或都无关时接近 1

公式4: 与 PMI 的关系

wiw~jlogXijbib~jw_i^\top \tilde{w}_j \approx \log X_{ij} - b_i - \tilde{b}_j

含义: 当偏置项吸收了边际分布信息时,词向量的点积近似于对数共现计数,这与 点互信息(PMI)密切相关

推论: Word2Vec 的 Skip-gram with Negative Sampling 本质上是在隐式分解偏移的 PMI 矩阵(Levy & Goldberg, 2014 的后续工作证实)

公式5: 最终词向量

wfinal=w+w~w_{\text{final}} = w + \tilde{w}

含义: 最终使用的词向量是目标词向量和上下文词向量的和,因为两者理论上应相等(对称性),但随机初始化打破了对称性,求和可以降低噪声

实验结果

词类比任务

模型维度训练数据语义句法总计
SVD3006B6.38.17.3
SVD-S3006B36.746.642.1
SVD-L3006B56.663.060.1
CBOW3006B63.667.465.7
SG3006B61.061.561.3
GloVe3006B77.467.071.7

GloVe 300d 在语义类比上以 77.4% 大幅领先 CBOW (63.6%) 和 Skip-gram (61.0%)

SVD 基线(原始矩阵分解)效果很差,但经过适当预处理(SVD-L)后可与 Word2Vec 竞争

词相似度任务

在 WordSim-353、MC-30、RG-65、SCWS、RW 等 5 个词相似度基准上评估

GloVe 300d 在大多数基准上达到或接近最佳,特别是在 RW(稀有词)数据集上表现优异

命名实体识别(NER)

将 GloVe 向量作为 CRF-based NER 系统的特征输入

CoNLL-2003 NER F1:GloVe (88.3) > Word2Vec CBOW (88.2) > SVD-L (85.7) > 无预训练向量 (85.4)

关键发现

向量维度: 300 维是最佳性价比点,超过 300 维收益递减

窗口大小: 语义任务偏好较大窗口(w=10w=10),句法任务偏好较小窗口(w=2w=2

语料大小: 从 1B 到 42B tokens,性能持续提升但增速放缓

w+w~w + \tilde{w} 的优势: 使用目标词和上下文词向量之和比仅用其一提升约 5 个百分点

局限性

静态词向量: 与 Word2Vec 同样无法处理多义词,每个词只有一个表示

共现矩阵的内存开销: 构建和存储全局共现矩阵需要 O(V2)O(V^2) 空间(实际中通过稀疏存储缓解),对超大词表不友好

窗口大小敏感: 语义和句法任务的最优窗口大小不同,无法同时最优化

权重函数的启发式设计: f(x)f(x) 的形式和 xmaxx_{\max}α\alpha 的取值基于经验,缺乏严格理论支撑

低频词表示质量差: 共现统计不足时向量不可靠,论文未提出解决方案

相关概念

Word2Vec: 基于局部上下文的词向量方法,GloVe 从理论上证明 Skip-gram + NS 与矩阵分解的等价性

点互信息: PMI 矩阵与词向量点积的理论联系是 GloVe 和 Word2Vec 统一的关键桥梁

LSA: 潜在语义分析,早期的全局矩阵分解方法,GloVe 可视为其现代改进版

FastText: 子词信息增强的词向量,解决 OOV 和形态学问题

ELMo: 上下文化词向量的里程碑,解决了静态词向量的多义词问题

共现矩阵: GloVe 的核心输入数据结构,统计词对在窗口内共现的频次

笔记创建时间: 2026-04-03