GloVe model

单词表示模型:GloVe,用于全局向量,全局语料的统计信息直接由模型获得。

符号

X:词共现矩阵
Xij:单词j出现在单词i的上下文中的次数。
Xi=kXik:所有出现在单词i的上下文中的单词次数。
Pij=p(j|i)=XijXi :单词j出现在单词i的上下文中的概率。

举例:
【论文阅读】《GloVe: Global Vectors forWord Representation》

通过观察图中的比率(第三行)可以看出,当结果大于1时,单词kice更相关,当结果小于1时,单词ksteam更相关。

上述论点表明,单词矢量学习的适当起点应该是共现概率的比率而不是概率本身。其中,比率Pik/Pjk取决于单词ijk,我们采用最通用的模型形式:

(1)F(wi,wj,w~k)=PikPjk

其中,wR表示单词向量,w~Rd表示单个的上下文词向量。
对于F的选择,由于向量空间本质上是线性结构,因此最自然的方法是使用向量差异。通过仅考虑两个目标词的差异可以修改为:

(2)F(wiwj,w~k)=PikPjk

采用参数点积来防止F函数以不和需要的方式进行矢量维度混合:

(3)F((wiwj)Tw~k)=PikPjk

对于单词共现矩阵,单词和上下文单词之间的区别是任意的,我们可以自由地交换这两个角色。我们的最终模型在这种重新标记下应该是不变的,因此我们通过两步骤来回复对称性。
首先要求F函数在(R,+)(R,×)之间应该是同态的。

(4)F((wiwj)Tw~k)=F(wiTw~k)F(wjTw~k)

(5)F(wiTw~k)=Pik=XikXi

我们提出了一种新的加权最小二乘回归模型来解决噪音等问题。

(6)J=i,j=1Vf(Xij)(wiTw~j+bi+b~jlogXij)2

其中,V是词汇表的大小。加权函数遵循以下规则:
1. f(0)=0。如果f函数是一个连续函数,那么当x0时,limx0f(x)log2x是有限的。
2. f(x)应该是非递减的。
3. f(x)对于大的x值,它应该相对较小,以使得频繁的共现值不会超重。

我们找到了合适的函数:

(7)f(x)={(x/xmax)α,if x<xmax1,otherwise

【论文阅读】《GloVe: Global Vectors forWord Representation》

其中,α=3/4时效果最好。

模型复杂度

从等式(8)和加权函数f(x)可以看出,模型的计算复杂度取决于矩阵X中非零元素的个数。因为这个数字总是小于矩阵大小,所以模型规模不会比O(|V|2)更差。但是典型的词汇表可以达到成千上万的单词,所以|V|2可能是数千亿,比大多数语料库都大得多。因此还需要对非零元素的个数进行约束。

有必要对单词共现的分布做一些假设,我们假定单词i和单词j之间共现次数Xij可以被建模为该单词对的频率等级的幂律函数rij

(8)Xij=k(rij)α

语料库中的单词总数与同现矩阵X的所有元素和成比例。
(9)|C| ijXij=r=1|X|krα=kH|X|,α

|X|是最大频率等级,与矩阵X中非零元素的数量一致,也是公式(8)中r的最大值。

相关文章: