概述
词向量模型
语言学家J. R. Firth提出,通过一个单词的上下文可以得到它的意思,所以我们可以定义一个以预测某个单词的上下文的模型:
p(context|wt)= ...我们的目标当然是希望概率p越大越好,所以我们可以定义一个目标函数:
J′(θ)=∏t=1T∏−m≤j≤m, j≠0P(wt+j|wt;θ)我们的目的就是最大化上面这个目标函数。但一般来说,我们都是想最小化目标函数的,所以我们可以改写目标函数为:
J(θ)=−1T∑t=1T∑−m≤j≤m,j≠0log P(wt+j|wt;θ)所以我们接下来的目标就是如何计算 P(wt+j|wt;θ) ,或者说如何定义 P(wt+j|wt;θ) 。
定义 P(wt+j|wt;θ)
P(wt+j|wt;θ)⇒ exp(uTovc)∑Vw=1exp(uTwvc)
- 其中,
vc
就是中心词
wt
的词向量,
uo
就是
wt+j
的词向量,这就是softmax。所以我们的目标就是不断调整词库中每个词的词向量,使得这个P最大。所以我们的参数就是词库中的这些词向量,并且每个词都有两个词向量,一个是作为中心词的时候(即
v
),一个是作为上下文的时候(即
u )。所以参数 θ 如下:
计算梯度
∑−m≤j≤m,j≠0log P(wt+j|wt;θ)
- 在对上式进行求梯度时,其实只对
2m+1
个词向量进行了求导(一个
vc
,2m个
uo
),所以
∇θJt(θ)
是非常稀疏的。即:
- 视频中只是演示了对 vc 的求导,其实还需要对 uo 求导,因为 θ 里面包含有v,u两部分向量,当然都需要求导啦。
GloVe
GloVe模型的目标函数是:
J(θ)=12∑i,j=1Wf(Pij)(uTivj−logPij)2其中, Pij 是两个词的共现频次,也就是两个词同时出现的次数(在拿到数据的时候就可以统计出来了)。f是一个max函数,如下所示:
- 从图中可以看出,频次 Pij 越高, f(Pij) 的值一开始也会越大,达到 xmax 之后,即使频次再高, f(Pij) 值也不会再增加了,这在一定程度上对共现频次太高的词起到了抑制作用。
- 前面说到的
θ
包含了v和u两部分向量,也就是每个词都有两个词向量的,那么最后究竟要选哪一个作为最终的词向量呢?最佳方案是将它们相加作为最终的词向量:
Xfinal=U+V
最后
以上就是和谐纸飞机为你收集整理的CS224n笔记三之词向量模型与GloVe的全部内容,希望文章能够帮你解决CS224n笔记三之词向量模型与GloVe所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复