GloVe

分类: NLP基础

GloVe

定义

GloVe 是一种基于全局词-词共现统计的词嵌入方法,通过对共现矩阵的对数进行加权最小二乘回归来学习词向量,兼具全局矩阵分解方法和局部上下文窗口方法(如 Word2Vec)的优点。

数学形式

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

XijX_{ij}: 词 ii 和词 jj 在上下文窗口中的共现次数

wi,w~jRdw_i, \tilde{w}_j \in \mathbb{R}^d: 词 ii 和词 jj 的嵌入向量

bi,b~jb_i, \tilde{b}_j: 偏置项

权重函数:

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(原始论文推荐值)

作用:抑制高频共现对(如 “the”, “a”)的过大权重

核心要点

核心直觉:如果词 ii 和词 jj 语义相近,它们与其他词的共现模式应该相似;共现比率 P(ki)/P(kj)P(k|i)/P(k|j) 编码了词间的语义差异

显式利用全局共现统计,而非像 Word2Vec 那样仅使用局部窗口

训练目标是让词向量的点积近似共现次数的对数,可理解为对 PMI 矩阵的加权低秩分解

权重函数 f(x)f(x) 对低频共现(可能是噪声)和高频共现(信息量递减)进行平衡

最终词向量取 wi+w~iw_i + \tilde{w}_i(两个嵌入矩阵的和),实践中效果略优于仅用一个

在词类比任务和多数下游任务上与 Word2Vec 性能相当或略优

代表工作

Pennington, Socher & Manning (2014): “GloVe: Global Vectors for Word Representation” (EMNLP 2014)

Levy, Goldberg & Dagan (2015): “Improving Distributional Similarity with Lessons Learned from Word Embeddings”,系统对比 GloVe 与 Word2Vec

相关概念

Word2Vec

Language Model

BERT

Tokenization