Glove 词向量

GloVe(Global Vectors)是通过基于整个语料构建的共现矩阵来表征词的模型。

1. 共现矩阵

共现矩阵顾明思议就是用来统计共同出现词的信息的矩阵,例如我们有语料如下:

I like deep learning.
I like NLP.
I enjoy flying.

对语料内容分词,去重之后,会得到不重复的:I like enjoy deep learning NLP flying . 等词。然后我们就两两词为一组,统计该组两个词在语料中共同出现的次数。

我们可以通过共现矩阵计算得到共现概率,比如:P(I|like) 表示 like 和 I 在所有与 like 共现词中的比重。

  1. like 和 I 出现 2 次
  2. like 和 deep 出现 1 次
  3. like 和 NLP 出现 1 次

所以部分贡献概率为:

  1. P(I|like) = 2 / (2 + 1 + 1) = 0.5
  2. P(deep|like) = 1 / (2 + 1 + 1) = 0.25
  3. P(NLP|like) = 1 / (2 + 1 + 1) = 0.25

在 like 环境下,发现 like 和 I 的概率大于其他的词的概率,说明在 like 与 I 相关程度比较高。

2. 共现概率比

上图中,P(k|ice)、P(k|steam) 表示共现概率,P(k|ice) / P(k|steam) 表示共现概率比。这个共现概率比的含义如下:

当 k = solid 时,共现概率比为 8.9,说明:在 ice 环境下出现 solid 的概率要比在 steam 环境下出现的 solid 的概率大得多。

当 k = gas 时,共现概率比为:0.085,说明:在 ice 环境下出现 gas 的概率要远远低于在 steam 环境下出现 gas 的概率。

从这里可以看到,共享概率比也能够很好的说明:k(solid、gas、water、fashion)、ice、steam 三个词之间的相关程度。那么,在构建 k、ice、steam 三个词向量时,也希望词向量也能够反映出这种关系。

上面公式中,共现概率比是能够通过语料计算获得,现在问题就变了寻找一种映射 F,使得输入 i j k 三个词向量,得到一个贡献概率比值,这似乎是一个回归模型。

Paper:https://aclanthology.org/D14-1162.pdf
Glove 实现源码:https://nlp.stanford.edu/projects/glove/

未经允许不得转载:一亩三分地 » Glove 词向量
评论 (0)

2 + 9 =