GloVe: Global Vectors for Word Representation
Word2Vec虽然取得了很好的效果,但模型上仍然存在明显的缺陷,比如没有考虑词序,再比如没有考虑全局的统计信息。本篇分享的是GloVe: Global Vectors for Word Representation,作者是stanford的Jeffrey Pennington, Richard Socher(metamind CEO)和Christopher Manning。同时作者还开源了相应的工具GloVe和一些训练好的模型。
本文的思路是将全局词-词共现矩阵进行了分解,训练得到词向量。整体上的思路和推荐系统当年横扫Netflix百万美元比赛的LFM模型类似,也和信息检索中LSI的思路类似。不同的地方是,本文采用的词-词共现矩阵比起词-文档矩阵更加稠密,模型中对低频词和高频词的影响做了一定地弱化处理。
首先,构建词-词共现矩阵,共现是建立在一个固定窗口范围内,给定范围之后,可以得到一个V*V的矩阵,这里V是词汇表大小。(虽然矩阵的稠密程度比词-文档矩阵好一些,但大多数也都是0)
然后,本文的模型如下:
通过使该目标函数最小来得到最终的词向量,在计算误差时只考虑共现矩阵中非0的项。因为不同频次的词对目标的贡献不同,所以设定了一个权重函数f(x),具有以下特点:
1、f(0) = 0
2、f(x)是增函数,这样低频词不会被over weight。
3、当x很大时,f(x)相对小一些,这样高频词也不会被over weight。
根据以上特性,选择下面的函数来作为f(x):
本文的模型在Word Analogy Task(Tomas Mikolov提出的测试集)中获得了75%的正确率,击败了Word2Vec。
虽然paper中GloVe有着指标上的领先,但在实际使用中Word2Vec的使用率相对来说更多一些,可能的原因是Word2Vec可以更快地提供一个相对来说不错的word embedding层的初始值。从中得到的启发是,指标上的胜利有些时候只是paper上的胜利,不一定能代表在工程中也是赢家,而只有更加好的model被提出,才会真正地既赢得指标上的胜利,也赢得工程上的胜利。
来源:paperweekly