CS224N笔记——第二讲——word vector representations,word2vec

Natural Language Processing with Deep Learning课程代号CS224N,是斯坦福大学的有关自然语言处理的课程,并且是世界上有关神经网络与自然语言处理方面优秀的课程。找遍了网络也没有找到有中文翻译的,所以我这个英语渣只能强行听英文课程。因此做一些笔记方便以后复习。记录得也比较混乱。

第一讲是一个总体介绍,就没有写了。


以下内容来自课程视频以及PPT


在处理自然语言的过程中,需要将语言进行表示,无论是什么学派,一般nlp研究者都将单词作为最小的单位。使用one-hot形式,语料越多,维度越大,直到非常大,非常巨大...并且两个one-hot形式是正交的,无法表示有关两个单词的相似度。

因此需要找到其他的办法来表示单词。
其中一个很有用的思想是——可以通过一个单词的上下文了解这个单词的意思,或者有一些其他的不同说法,但是思想都是统一的,就是在表示一个单词的时候,你可以根据其上下文得到很多有用的信息。如下图:


我们按照向量的形式来定义单词的意思。

每个单词一个dense vector, 为了便于预测其上下文出现的其他单词。这些单词也是用向量表示。形成一种递归。


word2vec

定义一个从某一个单词来预测上下文的模型,也需要有一个loss function,优化loss function来更好地预测上下文。

(注:-t表示的是除了t的内容,也就是t的上下文。)

如果loss为0了那就是完美的预测,可是我们无法做到,因此我们的目标是在一个大的语料库中不同位置得到训练实例,改变单词的表示来尽可能的最小化loss function。

word2vec的主要思想

通过上下文预测单词或者是通过单词预测上下文。

有两种算法:
Skip-grams 单词预测上下文
CBOW 上下文预测单词

两种(稍微有效率些的)训练方法:
Hierarchical Softmax
Negative sampling

以上四个内容,在课程中,将会讲到的只是Skip-grams。


这是Skip-grams的模型。我们要做的就是确定一个中心词,在图中是bank,来预测某个window size中的围绕中心词的上下文。模型定义了给定中心词后其上下文中出现某个单词的概率。我们选择单词的向量表示来最大化分布概率。也就是图中的P(wt - 2 | wt)这样的概率。

需要了解的是这里只有一个概率分布,而不是每个单词有一个。对上下文的单词只有一个作为output的概率分布。

word2vec的细节

目标函数

对于每一个t,也就是对于每一个中心词语,都要预测一个window size m的上下文。这就是上图中第一个式子的含义。也就是模型的目标,这个式子作为目标函数。我们要最大化上下文的概率也就是最大化这个目标函数。
将这个式子取log,因为这样会使所有的乘法变成加法,让计算变得简单一些。不是计算全部语料库的概率,而是可以对每一个位置都求平均,从而在某种意义上达到对每一个词的标准化。最后取负,从而可以最小化这个式子。如上图中第二个式子所示。我们得到了一个negative log likelihood作为可以用来最小化的目标函数。

而P( | )又是什么呢,使用softmax来定义,softmax的公式不再多说,见下图:


vc和uo分别是中心词和输出词的向量。

两个向量的点积,可以代表两者之间的相似度,点积越大越相似。而softmax函数可以得到数字到概率分布的映射,也就是说可以讲数字转化为概率。因此这里使用softmax将一堆相似度转化为概率。

(这是一个学生问的问题:)
answer:
你可能会认为一个单词应该只有一个向量表示,如果你想这么做你就可以这么做,但是如果一个单词有两个向量可以相当大地简化计算,其中一个表示单词,另一个表示单词的上下文。不仅简化了计算,也会在优化的过程中将两个向量分离,而不会存在联系。


Skip-gram模型总体叙述

下图是Skip-gram模型的样子。


从左向右看,先是一个中心单词的one-hot形式。W是中心词语representation的矩阵。(上方藕荷色文字已经标注了向量和矩阵的shape)。这两个相乘,得到我们所需要的那个中心词语的vector表示。中间的三个红色的框代表的是存储上下文单词的representation的矩阵。(这里作为例子只画出三个)中心词语的vector表示上下文单词的representation的矩阵相乘得到每个上下文备选词语与已经选定的中心词语的相似度,就是上文中提到的vc·uo。最相似的一个或几个我们就认为它们是中心词语的上下文。使用softmax得到的概率与真实上下文单词的one-hot形式作比较。还可以看出目前的预测并不准确。
因此我们需要进行对模型进行训练,让模型的预测变得尽可能准确。


训练Skip-gram模型

将模型中所有的参数放到向量θ中。我们这里是容量为V的语料库 * 一个单词的d维。并且如前文所说,一个单词有两个向量表示(一个是上下文表示,一个是中心词表示)。具体见下图:


然后,优化:

就是梯度下降,对目标函数求偏导,如下图所示:
将原式变形成图中①②两个部分,然后分别求偏导,具体见图中。

两部分分别求完,然后再合到一起:

以上步骤只是对中心单词求偏导,我们也需要对其他的每一个上下文单词(window中的)做同样的计算。

最后,更新参数:

done

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容