[翻译] Word2Vec Tutorial Part I: The SkipGram Model

原作者:Alex Minnaar

原文地址(已失效):Word2Vec Tutorial Part I: The Skip-Gram Model

原文的copy版本:Word2Vec Tutorial Part I: The Skip-Gram Model

在许多NLP任务中,单词通常通过它们的tf-idf得分来表示。但是这种表示只提供了单词在文档中的相对重要程度,并没有提供它们的语义信息。相反,Word2Vec是这样一类神经网络模型,它们使用未标记的训练语料库,得到每个单词的向量表示,这种表示编码了它的语义信息。这些向量是很有用的,有两个理由:

1. 我们可以通过计算词向量之间的余弦相似度来衡量单词之间的语义相似度。

2. 我们可以使用这些词向量作为许多有监督的NLP任务的特征,比如分类,命名实体识别(named entity recognition)和情感分析(sentiment analysis)。这些向量中的语义信息使它们在这些任务中成为强大的功能。

你可能会问“我们如何知道这些向量有效地捕捉到单词的语义信息呢?”。答案是因为这些向量令人惊讶地符合我们的直觉。例如,在这个模型下,近义词向量之间的余弦相似度趋于相同,反义词则相反。更令人惊讶的是,这些词向量趋于遵守类比法则(laws of analogy)。例如,考虑这个类比,“Woman is to queen as man is to king“,实际上有

其中v_queen,v_woman,v_man,v_king分别是单词queen,woman,man,king的词向量。这些事实强有力地说明了词向量编码了单词所代表的有价值的语义信息。

在这个系列文章中我会描述两个主要的Word2Vec模型——skip-gram模型和CBOW(continuous bag of words)模型。

它们都是简单的只有一层隐藏层的神经网络,通过反向传播和随机梯度下降学习词向量,这两种方法在原作者之前的博文中介绍过。

skip-gram模型

在我们定义skip-gram模型之前,有必要理解它所接受的训练数据的格式。skip-gram模型的输入是一个由窗口大小c定义的单词w_i的上下文{w_1, ..., w_c}。例如,考虑句子”I drove my car to the store”,如果单词“car”是输入,那么{"I", "drove", "my", "to", "the", "store"}就是输出。所有这些单词都被one-hot编码,所以它们是长度为V(词典的大小)的向量,且与单词相对应的索引为1,其他的索引为0。正如你所见,我们实际上从纯文本创造了训练数据,这意味着我们可以按自己的意愿创造无数的训练数据。

前向传播

现在让我们如下所示定义skip-gram神经网络模型。

在上面的模型中X代表输入单词的one-hot编码向量,{y_1, ..., y_c} 是输出单词的one-hot编码向量。V x N 的矩阵W是输入层和隐藏层间权重矩阵,其中第i行表示单词表第i个单词的权重,也就是我们感兴趣的词向量。每个输出词向量也有相应的N x V输出矩阵W^i。隐藏层由N个节点组成(N的值是一个我们自己决定的训练参数,亦即词向量的特征数)。由于输入向量x是one-hot编码的,只有值为1的那一个元素才对隐藏层有贡献。因此,对输入x,x_k = 1且对所有的k‘ != k,x_k' = 0,隐藏层的输出等于权重矩阵W的第k行(也就是第k个单词的词向量)。数学公式表示的话,

注意这里没有使用激活函数,这是有意的,因为输入的格式是one-hot编码。同样的方式,C x V个输出节点的输入由其加权和计算。因此第c个输出单词的第j个节点的输入为(W的第k行向量h乘以W'的第j列)

然而我们注意到输出层的每个单词共享相同的权重(因为权重矩阵W‘是唯一的),所以有

我们最终能通过softmax函数计算出第c个输出的第j个节点,它是一个多项分布(multinomial distribution)

用简单的话讲,这个值就是第c个输出单词的第j个节点等于第c个输出向量(one-hot编码了的单词)的第j个分量的实际值的概率。

用反向传播和随机梯度下降学习权重

现在我们知道输入如何通过前向传播产生输出了,此外我们可以推导出用于学习W和W'的反向传播算法所需的误差梯度。推导梯度的第一步是定义loss函数。这个loss函数的形状为

简单来说,这就是给定输入单词的(在输入单词上下文中的)输出单词的概率,其中j^*_c是第c个输出单词的索引。如果我们对上式的u_{c,j}求导得到

其中t_{c,j} = 1,如果第c个输出单词的第j个节点等于1(即one-hot编码为1的那个节点),否则t_{c,j} = 0。这是节点c, j(或称为第c个输出单词的第j的节点)的预测误差。

现在我们拥有最后一层输入的误差导数,我们可以推导出输出矩阵W'的导数了。这里使用链式法则

因此为输出矩阵W‘更新梯度下降的等式为

现在我们可以推导输入-隐藏层中权重矩阵W的更新等式了。先从计算隐藏层的误差导数开始。

现在我们可以计算出W的导数了

最终得到输入权重的梯度下降等式

正如你所见,每次梯度下降更新都需要对字典V里所有的词求和,这会造成很高的计算复杂度。实际计算时,通常使用如hierarchical softmax和negative sampling的方法来使计算更高效。

参考文献

Word2Vec Tutorial Part II: The Continuous Bag-of-Words Model

Distributed Representations of Words and Phrases and their Compositionality, Mikolov et al.

Natural Language Processing (almost) from Scratch, Collobert et al.

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

推荐阅读更多精彩内容