GloVe(Global Vectors)先汇总语料中的词共现,再用向量和偏置拟合这些计数的对数。 它与 SGNS 都利用上下文,但学习材料的组织和损失函数不同。(Pennington et al., 2014)

这里的“全局”指对整个语料汇总统计,不是默认把一篇文档中的所有词互相配对。构造共现计数时,仍要规定上下文窗口、方向及距离权重。

从共现计数开始

记 为中心词 与上下文词 的共现量。若使用距离权重,它可以是加权计数。教学上假设“道路—城市”的计数为 4,而另一个词对为 40。

原始计数相差十倍;取自然对数后,目标值从 变为 ,相差 。对数把乘法比例转成加法差异,降低计数量级悬殊的问题。

但计数 40 不表示语义相似度就是计数 4 的十倍:词本身出现得多,也会产生大量共现。模型需要共同拟合多组关系,不能只读一个计数下结论。

模型怎样拟合这些关系

GloVe 的目标可以写作

其中 是两种角色的词向量; 是分别对应中心词与上下文的标量偏置; 决定每个词对在拟合中的权重。模型拟合的是点积加两项偏置,不是要求点积单独等于对数计数。(Pennington et al., 2014)

原论文使用的权重函数形式为

是权重达到上限的计数阈值, 控制曲线。小计数的影响较弱,超过阈值后权重不再继续增长;本文不把论文中的具体参数当作所有语料的通用最优值。目标只处理非零共现,也就不直接计算 。

它与 SGNS、PMI、SVD 有什么不同

方法主要拟合对象训练方式
GloVe非零共现的对数,加上两类偏置加权平方误差
SGNS数据词对与噪声词对的来源采样的逻辑损失
PMI/SPPMI 加 SVD事先定义的关联矩阵显式低秩近似

SGNS 的 PMI 推导解释了采样目标如何关联到共现统计,但没有让这些方法变成同一个算法。GloVe 也不是“直接对原始共现次数做 SVD”。

尤其不要因为 GloVe 权重中可以出现 ,就把它与 SGNS 的 词频噪声分布混为一谈:一个决定平方误差项的权重,另一个决定负样本如何抽取。

使用时仍要面对的限制

GloVe 通常产生静态词向量,同一个词不会随当前句子自动换一套表示。它也不自带 fastText 那样的字符片段组合机制,训练词表外的词需要额外策略。

显式共现需要统计和保存非零词对;大词表或大窗口会影响这部分成本。选择它还是 SGNS,应一起比较语料、内存、训练预算和下游评价,不能只凭“全局”或“预测式”给方法排高低。

返回 词向量与表示学习专题。

参考文献

Pennington, J., Socher, R., & Manning, C. D. (2014). GloVe: Global Vectors for Word Representation. Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing, 1532–1543. https://doi.org/10.3115/v1/D14-1162