Lecture 1 Word Vectors
1.如何表示一个单词的含义
A. Representing words by their context:
通过一个词汇上下文的其他词汇来表达,这是现代统计NLP的思想,比如:
…government debt problems turning into banking crises as happened in 2009… …saying that Europe needs unified banking regulation to replace the hodgepodge… …India has just given its banking system a shot in the arm…
B.通过词向量word vectors:
词向量又叫词嵌入(word embeddings)。
词向量能够在一定程度上表示词与词的关系,将很多词降维可视化之后,可以得到如下图形:
2 Word2vec总览
Word2vec是指采用一定的方法得到词向量,它的主要idea是:
- 有大量的语料库的文本
- 每一个语料库里的单词都可以用词向量来表示
- 对与文本里的每一个位置t,都存在一个center word c和context word o
- 根据c与o在词向量上的相似性,计算给定c后的o的可能性
- 调整词向量使这个可能性最大化
比如我们以下图为例:
上图中给定了中心词 into,计算图中的四个概率。运行完成之后,将中心词向下移动,继续计算,如图所示:
2.Word2Vec的目标函数(object funtion)
对于前所所说的文本的位置t=1…T,把他们计算得到的概率连乘,得到总的可能性。
目标函数就是上述公式取对数后平均。
那么最小化目标函数,就是最大化预测的精度。
那么如何计算后面的概率公式呢?
对于每一个单词w,有:
此时,对于center word c和一个context word o,其预测概率公式如下图:
3.Word2vec: prediction function
预测函数如图:
黄色部分计算的这o和c两个向量的相似程度,蓝色部分相当于计算一个和,这样总体来看就是一个softmax函数,得到概率。
这样就得到了总的目标函数,之后通过优化参数来训练这个模型。
4.通过计算向量梯度train the model
theta是上面目标函数的参数,前面说过要通过这个来训练词向量,所以theta就是所有词的词向量。
注意:这里每一个词,有两个词向量,而图中展示的是两个词向量合并后的,所以维度是2dV。
之后我们通过计算梯度来优化参数,从而训练词向量。
5.计算Word2vec derivations of gradient
具体公式,参加视频里面的推到,这里不再列举了。
这里为了计算梯度求导的时候,要对函数中的每一个变量求偏导,要对向量v和u(center word 和context word),同时在每个窗口,也要计算更新参数,如图所示:
对于这个模型,还有一些其他细节,如图所示:
6.Optimization: Gradient Descent
就是最小化目标函数的方法,使用梯度下降。
目标函数减去梯度的值乘以一个系数,梯度下降的公式:
为了减少运算量,使用随机梯度下降,Stochastic gradient descent (SGD)。