【NLP论文笔记】Deep contextualized word representations(ELMO词向量理解)

本文主要用于记录华盛顿大学计算机院发表于2018年的一篇论文。该论文主要提出了ELMO词向量模型。本笔记主要为方便初学者快速入门,以及自我回顾。

论文链接:https://arxiv.org/pdf/1802.05365.pdf
Github:https://github.com/allenai/allennlp

基本目录如下:

  1. 摘要
  2. 核心思想
  3. 总结

------------------第一菇 - 摘要------------------

1.1 论文摘要

本文作者推出了一种新的基于深度学习框架的词向量表征模型,这种模型不仅能够表征词汇的语法和语义层面的特征,也能够随着上下文语境的变换而改变。简单来说,本文的模型其实本质上就是基于大规模语料训练后的双向语言模型内部隐状态特征的组合。实验证明,新的词向量模型能够很轻松的与NLP的现有主流模型相结合,并且在六大NLP任务的结果上有着巨头的提升。同时,作者也发现对模型的预训练是十分关键的,能够让下游模型去融合不同类型的半监督训练出的特征。

------------------第二菇 - 核心思想------------------

2.1 论文模型结构 - 双向语言模型

ELMO(Embeddings from Language Models)模型,从他的缩写就可以看出,他的模型本质是从语言模型而来的。因此,我们先聊一聊双向语言模型。

对于一个给定的句子(t_1,t_2,...t_N),我们构建的语言模型就是通过一个词汇的上下文去,预测一个词t_k

p(t_1, t_2,...t_N) = \prod_{k=1}^Np(t_k|t_1, t_2, ..., t_{k-1})

一般来说,NLP相关的首选肯定是LSTM,本文的作者当然也是采用了该模型。该语言模型的输入就是词向量(获取的途径多种多样,作者提了一个是字符卷积),然后通过一个多层的前向LSTM网络,在LSTM的每一层,我们都能输出基于文本的一个向量表达,\overrightarrow{h}_{k,j}^{LM}。其中j代表层数。其最后的一层的输出,\overrightarrow{h}_{k,L}^{LM},经过一层softmax归一,就可以来预测词t_k,大概流程长下面这样【1】,

语言模型.png

当然,现在都流行双向语言模型,本质就是把句子再逆序输入一遍,再把前向逆向的结果结合起来,就是我们最终的双向语言模型,而我们最终的目标函数就是去最大化,

\sum_{k=1}^N(logp(t_k|t_1,...t_{k-1};\Theta_x, \overrightarrow{\Theta}_{LSTM}, \Theta_s) + logp(t_k|t_k+1,...t_{N};\Theta_x, \overleftarrow{\Theta}_{LSTM}, \Theta_s))

其中两个方向的LSTM的参数不是共享的,\Theta_x就是一开始输入的词向量,\Theta_s就是softmax层参数。因此,双向语言模型的结构图,可以表达如下【1】,

双向语言模型.png
2.2 论文模型结构 - ELMO模型

对于每一个词t_k,一个L层的biLM可以计算出2L + 1个表达如下,

R_k = \{x_k^{LM}, \overrightarrow{h}_{k,j}^{LM}, \overleftarrow{h}_{k,j}^{LM} | j = 1,...L\}

如果我们统一用h_{k,j}^{LM} = [\overrightarrow{h}_{k,j}^{LM};\overleftarrow{h}_{k,j}^{LM}]来表示biLM的每一层输出,h_{k,0}^{LM}来表示第一层向量,那么整个表达可以统一表示为,

R_k = \{h_{k,j}^{LM} | j = 0,...L\}

而前面也说了,ELMO本质上就是一个任务导向的,双向语言模型(biLM)内部的隐状态层的组合。通用的表达式如下,

ELMO_k^{task} = E(R_k;\Theta^{task}) = \gamma^{task}\sum_{j=0}^Ls_j^{task}h_{k,j}^{LM}

其中,\gamma是用来控制ELMO模型生成的向量大小,原文中说该系数对于后续的模型优化过程有好处(在附件中,作者强调了这个参数的重要性,因为biLM的内核表达,与任务需要表达,存在一定的差异性,所以需要这么一个参数去转换。并且,这个参数对于,last-only的情况(就是只取最后一层,ELMO的特殊情况),尤其重要),另一个参数s,原论文只说了softmax-normalized weights,所以我的理解,其实它的作用等同于层间的归一化处理。

在面对具体的NLP下游任务时,ELMO模型的应用也很简单。首先,大部分的NLP的模型都会有一层词向量层,而我们要做的无非就是用ELMO与词向量层结合,让模型去训练学习ELMO的内部状态的线性组合,然后,生成一个共同的词向量[x_k, ELMO_k^{task}],用于后续的训练,整个模型结构见下图【1】,

ELMO.png
2.3 论文模型结构 - 预训练过程

至此,整个模型结构已经说清楚了。作者在实验论证该预训练模型之前,阐述了一下其预训练过程。最终作者用于实验的预训练模型,为了平衡语言模型之间的困惑度以及后期NLP模型的计算复杂度,采用了2层Bi-Big-Lstm,共计4096个单元,输入及输出纬度为512,并且在第一层和第二层之间有残差连接,包括最初的那一层文本向量(用了2048个过滤器, 进行基于字符的卷积计算,详细可查看字符卷积的原论文),整个ELMO会为每一个词提供一个3层的输出,而下游模型学习的就是这3层输出的组合。另外,作者强调了一下,对该模型进行FINE-TUNE训练的话,对具体的NLP任务会有提升的作用。

2.4 论文实验结果分析

作者的论文的实验部分,具体展示了ELMO模型在六大nlp任务上的表现,证实了该模型的有效性。这里就不具体展开,有兴趣的读者,可以自行阅读原论文,包括附录有更详细的分析。这里直接聊几个论文中说的我认为比较有趣的点,

1)作者实验了一把,ELMO的特殊情况,只取最后一层的输出,和多层的线性组合,实验结果发现,只取最后一层也取得了很好的效果,而且多层的效果提升并不是特别的明显(较之于只取最后一层),结果见下图,

实验结果1.png

2)ELMO加的地方。刚才前面说了,是与之前的词向量层一起,在最开始的地方。作者还实验了一把,放在模型的输出那里,并且还取得了不错的效果。

3)ELMO不同的层,能从不同的纬度表达一个词,作者经过实验发现,低层的输出能更好的从句法语法的层面表达一个词,而高层的输出能更好的从语意的层面表达一个词。

2.3 论文模型实践

这里先留个坑,以后有时间,把ELMO的实践也摆上来。

------------------第三菇 - 总结------------------

3.1 总结

到这里,整篇论文的核心思想及其创新点已经说清楚了。本论文主要集中在于阐述ELMO架构及其预训练的思想,并且用具体NLP实验证明了使用这一套架构的原理,并证实了其可行性。

简单总结一下本文就是先罗列了一下该论文的摘要,再具体介绍了一下ELMO架构,最后也谈了一点自己对ELMO架构的理解,总的来说,这篇论文也是首次提出的预训练模型的思想。希望大家读完本文后能进一步加深对该论文的理解。有说的不对的地方也请大家指出,多多交流,大家一起进步~😁

参考文献:
【1】https://jalammar.github.io/illustrated-bert/

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

推荐阅读更多精彩内容