2.8 GloVe 词向量(GloVe Word Vectors)

GloVe代表用词表示的全局变量(global vectors for word representation

假定XijX_{ij}是单词ii在单词jj上下文中出现的次数,iijjttcc的功能一样,可以认为XijX_{ij}等同于XtcX_{tc}。根据context和target的定义,会得出XijX_{ij}等于XjiX_{ji}

  • 如果将context和target的范围定义为出现于左右各10词以内的话,就有对称关系Xij=XjiX_{ij}=X_{ji}

  • 如果对context的选择是context总是目target前一个单词,那么XijXjiX_{ij}\neq X_{ji}

对于GloVe算法,可以定义context和target为任意两个位置相近的单词,假设是左右各10词的距离,那么XijX_{ij}就是一个能够获取单词ii和单词jj彼此接近的频率计数器

GloVe模型做的就是进行优化,将差距进行最小化处理:

minimizei=110,000j=110,000f(Xij)(θiTej+bi+bjlogXij)2\text{mini}\text{mize}\sum_{i = 1}^{10,000}{\sum_{j = 1}^{10,000}}{f\left( X_{ij} \right)\left( \theta_{i}^{T}e_{j} + b_{i} + b_{j}^{'} - \log X_{ij} \right)^{2}}

θiTej\theta_{i}^{T}e_{j}θtTec\theta_{t}^{T}e_{c}。对于θtTec\theta_{t}^{T}e_{c},这两个单词同时出现的频率是多少受XijX_{ij}影响,若两个词的embedding vector越相近,同时出现的次数越多,则对应的loss越小

Xij=0X_{ij}=0时,权重因子f(Xij)=0f(X_{ij})=0。这种做法直接忽略了无任何相关性的context和target,只考虑Xij>0X_{ij}>0的情况

出现频率较大的单词相应的权重因子f(Xij)f(X_{ij})较大,出现频率较小的单词相应的权重因子f(Xij)f(X_{ij})较小一些

因为θ\thetaee是完全对称的,所以θi\theta_{i}eje_{j}是对称的。因此训练算法的方法是一致地初始化θ\thetaee,然后使用梯度下降来最小化输出,当每个词都处理完之后取平均值:

ew(final)=ew+θw2e_{w}^{(final)}= \frac{e_{w} +\theta_{w}}{2}

GloVe算法不能保证嵌入向量的独立组成部分:

通过上面的很多算法得到的词嵌入向量,无法保证词嵌入向量的每个独立分量是能够理解的。但能够确定是每个分量和所想的一些特征是有关联的,可能是一些我们能够理解的特征的组合而构成的一个组合分量

使用上面的GloVe模型,从线性代数的角度解释如下:

ΘiTej=ΘiTATATej=(AΘi)T(ATej)\Theta_{i}^{T}e_{j} = \Theta_{i}^{T}A^{T}A^{-T}e_{j}=(A\Theta_{i})^{T}(A^{-T}e_{j})

加入的AA项,可能构成任意的分量组合

Last updated