cs224笔记:Lecture 1 Introduction and Word Vectors

Lecture 1: Introduction and Word Vectors

Representing words as discrete symbols

在传统NLP使用discrete symbols表示词,即one-hot编码,各个单词向量之间是**正交(orthogonal)的,因此没有相似性(similarity)的概念。例如:
m o t e l = [ 0 , 0 , 0 , 0 , 1 , 0 , 0 ] T h o t e l = [ 0 , 0 , 0 , 0 , 0 , 1 , 0 ] T motel = [0,0,0,0,1,0,0]^T\\ hotel = [0,0,0,0,0,1,0]^T motel=[0,0,0,0,1,0,0]Thotel=[0,0,0,0,0,1,0]T
显然motel和hotel是语义相近的两个词汇,我们希望用
余弦相似度(cosine similarity)**来表示两个词汇的语义,但是由于两个向量是正交的,所以没有相似度的概念。

Word vectors

引入词向量,使用稠密的向量(dense vector)表达词,这样词之间引入了相似性的概念。

Word2vec: Overview

Mikilov在2013年提出了Word2vec 的框架Distributed representations of words and phrases and their compositionality ,用来学习词向量。

Idea:

  • 我们有大量的语料库(corpus)

  • 每个单词对应着向量空间的一个唯一的向量

  • 遍历文本,每个单词center c c c周围的单词构成它的context o o o

  • 使用词向量的相似度计算给定center c c c,context o o o的概率,即 P ( o ∣ c ) P(o|c) P(oc)

  • 不断的调整词向量,以最大化这些概率

所以目标就是最大化似然函数,**似然函数(Likelihood)**定义如下:
L i k e l i h o o d : L ( θ ) = ∏ t = 1 T ∏ − m ≤ j ≤ m P ( w t + j ∣ w t ; θ ) Likelihood:\quad L(\theta)=\prod_{t=1}^T\prod_{-m\le j \le m}P(w_{t+j}|w_t;\theta) Likelihood:L(θ)=t=1TmjmP(wt+jwt;θ)
其中 θ \theta θ代表所有要优化的变量, m m m代表context的大小或者说窗口的大小。

便于机器学习算法优化,将上式稍加转换,变成我们的目标函数(objective function):Average Negative Log Likelihood:
J ( θ ) = − 1 T ∑ t = 1 T ∑ − m ≤ j ≤ m log ⁡ P ( w t + j ∣ w t ; θ ) \quad J(\theta)=-\frac{1}{T}\sum_{t=1}^{T}\sum_{-m\le j \le m}\log{P(w_{t+j}|w_t;\theta)} J(θ)=T1t=1TmjmlogP(wt+jwt;θ)
最后只剩下一个问题,如何计算 P ( w t + j ∣ w t ; θ ) P(w_{t+j}|w_t;\theta) P(wt+jwt;θ)

这里引入两个向量:对于词汇表(vocabulary)中的每个单词w,使用 d d d维向量 v w v_w vw表示当 w w w是center单词的时候,使用 u w u_w uw表示当 w w w是context单词的时候。

所以对于给定center 单词 c,context 单词o:
P ( o ∣ c ) = e x p ( u o T v c ) ∑ w ∈ V e x p ( u w T v c ) P(o|c)=\frac{exp(u_o^Tv_c)}{\sum_{w\in V}exp(u_w^Tv_c)} P(oc)=wVexp(uwTvc)exp(uoTvc)
其中 V V V代表词汇表(vocabulary) u o T v c u_o^Tv_c uoTvc即向量的点积(dot product),点积的大小暗示了o与c之间的相似度,这里引入指数的目的是最后生成规范的概率(softmax的概念)。

目标函数有了,接下来就剩**优化(optimization)**目标函数了,即不断的调整参数以最小化目标函数,这里的目标函数也通常被称作损失函数(loss function)或者代价函数(cost function)。
J ( θ ) = − 1 T ∑ t = 1 T ∑ − m ≤ j ≤ m log ⁡ P ( w t + j ∣ w t ; θ ) \quad J(\theta)=-\frac{1}{T}\sum_{t=1}^{T}\sum_{-m\le j \le m}\log{P(w_{t+j}|w_t;\theta)} J(θ)=T1t=1TmjmlogP(wt+jwt;θ)
首先,给出 θ \theta θ,这里就是上面所讲的两类向量:
θ = [ v a , v a b a n d o n , . . . , v z e b r a , u a , u a b a n d o n , . . . u z e b r a ] T θ ∈ R 2 d ∣ V ∣ \theta=[v_a,v_{abandon},...,v_{zebra},u_a,u_{abandon},...u_{zebra}]^T \\ \theta\in \mathbb{R}^{2d|V|} θ=[va,vabandon,...,vzebra,ua,uabandon,...uzebra]TθR2dV
其中 d d d是每个向量的维度, ∣ V ∣ |V| V是vocabulary的大小(每个单词都有2个向量)

所以我们优化的目标如下:
M i n i m i z e : J ( θ ) = − 1 T ∑ t = 1 T ∑ − m ≤ j ≤ m log ⁡ P ( w t + j ∣ w t ) ⟮ P ( o ∣ c ) = e x p ( u o T v c ) ∑ w ∈ V e x p ( u w T v c ) ⟯ Minimize:\quad \quad J(\theta)=-\frac{1}{T}\sum_{t=1}^{T}\sum_{-m\le j \le m}\log{P(w_{t+j}|w_t)}\\ \lgroup P(o|c)=\frac{exp(u_o^Tv_c)}{\sum_{w\in V}exp(u_w^Tv_c)}\rgroup Minimize:J(θ)=T1t=1TmjmlogP(wt+jwt)P(oc)=wVexp(uwTvc)exp(uoTvc)
方法是经典的梯度下降(Gradiant Descent)算法:
∂ ∂ v c log ⁡ e x p ( u o T v c ) ∑ w ∈ V e x p ( u w T v c ) = ∂ ∂ v c log ⁡ e x p ( u o T v c ) − ∂ ∂ v c log ⁡ ∑ w ∈ V e x p ( u w T v c ) = ∂ ∂ v c u o T v c − ∂ ∂ v c log ⁡ ∑ w ∈ V e x p ( u w T v c ) \begin{aligned} \frac{\partial}{\partial v_c}\log\frac{exp(u_o^Tv_c)}{\sum_{w\in V}exp(u_w^Tv_c)}&=\frac{\partial}{\partial v_c}\log exp(u_o^Tv_c)-\frac{\partial}{\partial v_c}\log \sum_{w\in V}exp(u_w^Tv_c)\\ &=\frac{\partial}{\partial v_c}u_o^Tv_c-\frac{\partial}{\partial v_c}\log \sum_{w\in V}exp(u_w^Tv_c) \end{aligned} vclogwVexp(uwTvc)exp(uoTvc)=vclogexp(uoTvc)vclogwVexp(uwTvc)=vcuoTvcvclogwVexp(uwTvc)

到这里左边的 ∂ ∂ v c u o T v c \frac{\partial}{\partial v_c}u_o^Tv_c vcuoTvc结果为 u o u_o uo,右边的 ∂ ∂ v c log ⁡ ∑ w ∈ V e x p ( u w T v c ) \frac{\partial}{\partial v_c}\log \sum_{w\in V}exp(u_w^Tv_c) vclogwVexp(uwTvc)求解要用到链式法则(chain rule):
∂ ∂ v c log ⁡ ∑ w ∈ V e x p ( u w T v c ) = 1 ∑ w ∈ V e x p ( u w T v c ) ∂ ∂ v c ∑ x ∈ V e x p ( u x T v c ) = 1 ∑ w ∈ V e x p ( u w T v c ) ∑ x ∈ V ∂ ∂ v c e x p ( u x T v c ) = 1 ∑ w ∈ V e x p ( u w T v c ) ∑ x ∈ V e x p ( u x T v c ) ∂ ∂ v c u x T v c = 1 ∑ w ∈ V e x p ( u w T v c ) ∑ x ∈ V e x p ( u x T v c ) u x = ∑ x ∈ V e x p ( u x T v c ) u x ∑ w ∈ V e x p ( u w T v c ) = ∑ x ∈ V e x p ( u x T v c ) ∑ w ∈ V e x p ( u w T v c ) u x \begin{aligned} \frac{\partial}{\partial v_c}\log \sum_{w\in V}exp(u_w^Tv_c)&=\frac{1}{\sum_{w\in V}exp(u_w^Tv_c)}\frac{\partial}{\partial v_c}\sum_{x\in V}exp(u_x^Tv_c)\\ &=\frac{1}{\sum_{w\in V}exp(u_w^Tv_c)}\sum_{x\in V}\frac{\partial}{\partial v_c}exp(u_x^Tv_c)\\ &=\frac{1}{\sum_{w\in V}exp(u_w^Tv_c)}\sum_{x\in V}exp(u_x^Tv_c)\frac{\partial}{\partial v_c}u_x^Tv_c\\ &=\frac{1}{\sum_{w\in V}exp(u_w^Tv_c)}\sum_{x\in V}exp(u_x^Tv_c)u_x\\ &=\frac{\sum_{x\in V}exp(u_x^Tv_c)u_x}{\sum_{w\in V}exp(u_w^Tv_c)}\\ &=\sum_{x\in V}\frac{exp(u_x^Tv_c)}{\sum_{w\in V}exp(u_w^Tv_c)}u_x \end{aligned} vclogwVexp(uwTvc)=wVexp(uwTvc)1vcxVexp(uxTvc)=wVexp(uwTvc)1xVvcexp(uxTvc)=wVexp(uwTvc)1xVexp(uxTvc)vcuxTvc=wVexp(uwTvc)1xVexp(uxTvc)ux=wVexp(uwTvc)xVexp(uxTvc)ux=xVwVexp(uwTvc)exp(uxTvc)ux

将两个结果带回原式:
∂ ∂ v c log ⁡ e x p ( u o T v c ) ∑ w ∈ V e x p ( u w T v c ) = ∂ ∂ v c log ⁡ e x p ( u o T v c ) − ∂ ∂ v c log ⁡ ∑ w ∈ V e x p ( u w T v c ) = ∂ ∂ v c u o T v c − ∂ ∂ v c log ⁡ ∑ w ∈ V e x p ( u w T v c ) = u o − ∑ x ∈ V e x p ( u x T v c ) ∑ w ∈ V e x p ( u w T v c ) u x \begin{aligned} \frac{\partial}{\partial v_c}\log\frac{exp(u_o^Tv_c)}{\sum_{w\in V}exp(u_w^Tv_c)}&=\frac{\partial}{\partial v_c}\log exp(u_o^Tv_c)-\frac{\partial}{\partial v_c}\log \sum_{w\in V}exp(u_w^Tv_c)\\ &=\frac{\partial}{\partial v_c}u_o^Tv_c-\frac{\partial}{\partial v_c}\log \sum_{w\in V}exp(u_w^Tv_c)\\ &=u_o-\sum_{x\in V}\frac{exp(u_x^Tv_c)}{\sum_{w\in V}exp(u_w^Tv_c)}u_x \end{aligned} vclogwVexp(uwTvc)exp(uoTvc)=vclogexp(uoTvc)vclogwVexp(uwTvc)=vcuoTvcvclogwVexp(uwTvc)=uoxVwVexp(uwTvc)exp(uxTvc)ux
其中 e x p ( u x T v c ) ∑ w ∈ V e x p ( u w T v c ) \frac{exp(u_x^Tv_c)}{\sum_{w\in V}exp(u_w^Tv_c)} wVexp(uwTvc)exp(uxTvc)即为 p ( x ∣ c ) p(x|c) p(xc),所以上式为:
= u o − ∑ x ∈ V p ( x ∣ c ) u x \begin{aligned} &=u_o-\sum_{x\in V}p(x|c)u_x \end{aligned} =uoxVp(xc)ux

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值