自然语言处理学习笔记

glove-论文阅读

2020-04-23  本文已影响0人  Pluto_wl

glove全称是Global Vectors for Word Representation,它是基于全局词频统计的词表征工具,他可以将一个单词表示为一个向量,这些向量捕捉到了单词之间的语义特征。

  1. glove提出原因
    在glove提出之前,主流模型的特点分别是全局矩阵分解(例如LSA)和局部上下文窗口(例如cbow),但是这两种模型都有显著的缺点。对于全局矩阵分解来说,没能捕捉到语义信息,所以在词语相似度等任务中表现较差;对于局部上下文窗口方式没能很好的利用数据中的统计信息。所以提出了一种新的词向量生成方式。
  2. glove model
    原理
    golve综合利用词的全局统计信息和局部统计信息来生成词向量。模型利用了词全局统计信息-共现矩阵。共现矩阵X中每一个元素ij表示单词i和单词j在特定大小的上下文窗口中出现到的次数。与传统的共现矩阵不同,glove根据两个单词在上下文窗口的距离d,提出了一个衰减函数:即decay=\frac{1}{d}用于计算权重,也就是说单词之间的距离越远那么两个单词所占的总计数权重也越小。

损失函数
两个词之间的相关程度,可以通过第三个词来衡量,如果这两个词都与第三个词相关或不相关,那么这两个词与第三个词的共现概率比接近于1;如果第一个词与第三个词相关而第二个与第三个词不相关,那么第一个词和第三个词的共线概率与第二个词和第三个词的共线概率比值要大于1.反之小于1;
w_iw_j是要衡量的词,w_k是第三个词,用公式表示上述思路:
F((w_i-w_j)^T \tilde{w_k})=\frac{F(w_i^T \tilde{w_k})}{F(w_j^T\tilde{w_k})} \tag{1},
其中
F(w_i^T\tilde{w_k})=p_{ik}=\frac{X_{ik}}{X_i} \tag{2}
经过变形,可将公式(1)变为如下所示
w_{i}^{T}\tilde{w_{j}} + b_i + \tilde{b_j} = \log(X_{ij}) \tag{3}
公式(3)可以很好的近似地表达ij之间的关系。

使用最小二乘法作为损失函数:
J = \sum_{i,j=1}^{V} (w_{i}^{T}\tilde{w_{j}} + b_i + \tilde{b_j} – \log(X_{ij}) )^2 \tag{4}

显然,为不同共现程度的词的损失赋予相同的权重是不合理的,所以提出根据共现频率来为损失赋予权重
J = \sum_{i,j=1}^{V} f(X_{ij})(w_{i}^{T}\tilde{w_{j}} + b_i + \tilde{b_j} – \log(X_{ij}) )^2 \tag{5}
此时f(x)要具有以下性质:

  1. 实验
    作者将GloVe模型得到的词向量分别用于Word analogies, Word similarity, Named entity recognition,在相同的数据集上和CBOW,SVD等方法进行比较。

  2. 最终词向量表示i
    公式(5)中的参数w\tilde{w}就是训练好的词向量,经过验证,w+\tilde{w}的效果要好于w\tilde{w}

参考文献

  1. https://cloud.tencent.com/developer/article/1183363 (推荐)
  2. https://blog.csdn.net/weixin_36711901/article/details/78508798
  3. http://www.fanyeong.com/2018/02/19/glove-in-detail/ (推荐)
  4. https://blog.csdn.net/czp_374/article/details/86757036
上一篇下一篇

猜你喜欢

热点阅读