NLP(三)学习《Efficient Estimation of Word Representations in Vector Space》

本篇是学习SkipGram算法,对论文内容进行概括,方便查阅和总结

1 介绍

传统的N-Gram方法在很多任务具有其局限性,比如,用于自动演讲识别中域数据量是有限的,而这部分的性能通常以高质量转录的语音数据的大小为主。在机器翻译中,现存的许多语言的预料库仅仅有数以十亿的词汇或者更少。因此,简单地把这种基本方法扩大并不会在一些场景带来显著的进步,我们需要关注更加先进的技术。

1.1 本文目标

本文的主要目标是介绍可以用于从数以十亿单词的巨大数据集学习高质量单词向量。就目前来说,没有一种模型可以成功地训练超过数亿有着50-100维的词汇。
我们使用最近提出的方法去测量向量表示的质量,希望相似的单词不仅彼此相距较近,而且有不同维度的相似性。比如,名词可以有多个词尾,如果我们在原始的向量空间巡展相似的单词,可能会发现这些单词有相同的结尾。有点出人意料的是,据发现单词表示相似度超越了简单的合成规则。运用字偏移技术,对词向量进行简单代数运算,结果显示,King向量-Man向量+Woman向量接近于单词Queen的向量表示。
在本文中,我们试图通过开发新的模型结构来保持单词之间的线性规律,来最大化这些向量操作的精度。我们设计了一个测量语法和语义规则的新的测试集。进一步,我们讨论了训练时间和准确率(accuracy)如何依赖于训练数据集大小与单词向量维度。

2 模型框架

在本文,我们关注通过神经网络学习单词的分布式表示。
与[18]的工作相似,为了计算不同模型框架的复杂度,我们定义了一个模型的计算复杂度是由训练这个模型所需要获得参数数量决定的。然后,我们会尝试最大化准确度,同时最小化计算的复杂度。
对于接下来的模型,训练的复杂度与下式成比例:
O=E \times T \times Q其中,E是训练的次数,T是训练集的单词数,Q是需要每个模型来决定。一般来说,E=3-50T最大为十亿。所有的模型使用随机梯度下降和后向传播。

3 新对数线性模型

对于之前的模型,复杂度主要来源于模型中非线性的隐藏层。尽管这部分使神经网络如此迷人,我们决定探索不想神经网络表示地准确但是相对简单的模型,不过可以通过在很多数据集上进行训练使之变得好用。?(吴恩达的机器学习中有讲,对于欠拟合的模型,增加数据反而会使准确度变差。)
这个模型的框架与我们之前所做的工作相关,我们发现神经网络语言模型可以成功地在两步进行训练:首先,通过简单模型学习获得连续的词向量,然后,在这些分布的词表示之前对N-Gram进行训练。然而后来有大量的工作集中在学习向量表示上,我们认为之前[13]所提出的是一个最简单的方法。

3.1 连续词袋模型

第一个提出的方法与前馈神经网络语言模型有些类似,它把非线性的隐藏层去掉,然后映射层是对所有词共享的。因此,所有的词被映射到相同的位置。我们之所以称之为词袋是在因为历史单词的顺序不影响后面的映射。更进一步,我们还使用了将来的单词。训练的复杂度为Q=N \times D+D \times log_2(V)我们把这个模型的改进版称为CBOW,与标准的词袋模型不同,它使用内容的连续分布表示。另外,输入和投影层之间的权重矩阵是为所有词共享的,这一点与NNLM相同。

CBOW模型

3.2 连续Skip-gram模型

Skip-gram模型不是基于上下文去预测当前词,而是通过在相同句子的另一个单词最大化一个词的分类。更准确的说,我们把每一个当前词作为一个拥有连续映射层的对数线性模型的输入,然后预测当前词上下文一定范围内出现的单词。我们发现增加这个范围会提高结果向量的质量,但是会增加计算的复杂度。因为距离最远的单词通常比距离较近的单词与当前词的关联程度低,我们通过在训练样本中抽取较少那些单词给予距离远的单词较小的权重。

这里是否可以这样理解,距离就已经考虑到一部分权重问题,因为距离越近的越容易出现在上下文,而距离较远的很少出现在上下文。

这个模型的训练复杂度与下式成比例:
Q=C \times (D+D \times log_2(V))其中,C是最大距离。因此,如果我们选择C=5,对于每个训练的单词,我们会从<1;C>随机选择一个数字R,然后从当前词之前挑选R个单词,从当前此之后挑选R个单词作为正确的标签。这会需要我们去做R \times 2个单词的分类,输入时当前词,每个R+R单词作为输出。

Skip-gram模型

通过对比可以发现,词袋模型是通过上下文预测当前词,而Skip-gram模型是通过当前词预测上下文。现在问题的关键是,如何进行映射?这个映射结果有什么意义?

4 结果

去比较不同版本之间词向量的质量,之前文章的典型做法是使用一张表显示关键词和它们最相似的单词,然后从直觉上理解它们。虽然显示单词France和单词Italy是很容易的,但是当把这些向量进行更复杂的相似任务时可能会面临更多挑战。我们通过之前的观察发现单词之间存在许多种不同种类的相似性,例如单词bigbigger是相似的,同时smallsmaller是相似的。另一种形式可能是单词对big-biggestsmall-smallest。我们然后把拥有相同关系的两对单词作为一个问题,然后问:“什么单词与small更接近,就像biggestbig更接近一样。”
令人惊奇的是,这些问题可以对词向量进行通过简单的线性操作来回答。去寻找与small更相似,就像biggestbig相似一样,我们可以简单的计算X=vector("biggest")-vector("big")+vector("small")。然后我们在向量空间寻找与X在余弦距离和最接近的单词,然后用它来回答这个问题(我们把这个问题的输入单词在搜索过程种舍弃了)。当这个词向量被很好地训练的时候,可能用这个方法发现正确的答案(单词smallest)。
最终,我们发现,当我们在大规模数据集上训练高纬词向量的时候,所得到的向量可以用来回答单词之间非常微妙的语义关系。例如一个城市和这个城市所属的国家。例如法国对巴黎相似于德国对柏林。有这种语义关系的词向量可以用来提高现在的许多NLP应用,例如机器翻译,信息提取和问答系统,还有可能促使一些应用被发明。

本文没有对两种模型进行详细的阐述,是因为这个模型太简单了吗?


更新:2018年11月9日 11点04分
找到了一个外国学者对这篇文章的评价,可以参考一下。

This paper introduces the Continuous Bag of Words (CBOW) and Skip-Gram models. However, don’t expect a particularly thorough description of these models in this paper…
I believe the reason for this is that these two new models are presented more as modifications to previously existing models for learning word vectors. Some of the terminology and concepts in this Word2Vec paper come from these past papers and are not redifined in Google’s paper.
A good example are the labels “projection layer” and “hidden layer” which come from the “NNLM” model. The term “projection layer” is used to refer to a middle layer of the neural network with no activation function, whereas “hidden layer” implies a non-linear activation.

他对模型进行了解释,对于一个单词“ants”,通过Skip-gram模型获得与单词表中其他单词的相似度,从而选择最优词对。目标就是获得隐藏层的参数矩阵,通过学习得到这个矩阵之后就可以对单词进行更好的向量表示。具体的学习方法这里不作介绍。
Skip-gram网络结构

输入向量为单词“ants”的one-hot表示,然后通过隐藏层进行降维,获得300维度的词表示,最后通过输出层,输出与每个单词的相似度。


计算输出神经元对单词“car”的输出
上面这个图对每个输出神经元的工作进行了生动的说明,对于每个单词对应的输出神经元,与“ants”的计算可以得到这两个单词的相似度,然后进行softmax操作进行归一化,选择概率最大的单词与输入单词组成单词对。

参考文献:
[1]Mikolov T, Chen K, Corrado G, et al. Efficient estimation of word representations in vector space[J]. arXiv preprint arXiv:1301.3781, 2013.
[2]Word2Vec Tutorial - The Skip-Gram Model

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