我是靠谱客的博主 和谐纸飞机,最近开发中收集的这篇文章主要介绍CS224n笔记三之词向量模型与GloVe,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


词向量模型

  • 语言学家J. R. Firth提出,通过一个单词的上下文可以得到它的意思,所以我们可以定义一个以预测某个单词的上下文的模型:

    p(context|wt)= ...

  • 我们的目标当然是希望概率p越大越好,所以我们可以定义一个目标函数:

    J(θ)=t=1Tmjm, j0P(wt+j|wt;θ)

  • 我们的目的就是最大化上面这个目标函数。但一般来说,我们都是想最小化目标函数的,所以我们可以改写目标函数为:

    J(θ)=1Tt=1Tmjm,j0log 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)。所以参数 θ 如下:

计算梯度

mjm,j0log P(wt+j|wt;θ)

  • 在对上式进行求梯度时,其实只对 2m+1 个词向量进行了求导(一个 vc ,2m个 uo ),所以 θJt(θ) 是非常稀疏的。即:
  • 视频中只是演示了对 vc 的求导,其实还需要对 uo 求导,因为 θ 里面包含有v,u两部分向量,当然都需要求导啦。

GloVe

  • GloVe模型的目标函数是:

    J(θ)=12i,j=1Wf(Pij)(uTivjlogPij)2

  • 其中, Pij 是两个词的共现频次,也就是两个词同时出现的次数(在拿到数据的时候就可以统计出来了)。f是一个max函数,如下所示:

  • 从图中可以看出,频次 Pij 越高, f(Pij) 的值一开始也会越大,达到 xmax 之后,即使频次再高, f(Pij) 值也不会再增加了,这在一定程度上对共现频次太高的词起到了抑制作用。
  • 前面说到的 θ 包含了v和u两部分向量,也就是每个词都有两个词向量的,那么最后究竟要选哪一个作为最终的词向量呢?最佳方案是将它们相加作为最终的词向量:
    Xfinal=U+V

最后

以上就是和谐纸飞机为你收集整理的CS224n笔记三之词向量模型与GloVe的全部内容,希望文章能够帮你解决CS224n笔记三之词向量模型与GloVe所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部