自然语言处理开发与应用-基于深度学习的NLP模型-ELMO模型理论及代码讲解 课件_第1页
自然语言处理开发与应用-基于深度学习的NLP模型-ELMO模型理论及代码讲解 课件_第2页
自然语言处理开发与应用-基于深度学习的NLP模型-ELMO模型理论及代码讲解 课件_第3页
自然语言处理开发与应用-基于深度学习的NLP模型-ELMO模型理论及代码讲解 课件_第4页
自然语言处理开发与应用-基于深度学习的NLP模型-ELMO模型理论及代码讲解 课件_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ELMO模型理论及实践01

ELMo模型理论讲解目录contents02

ELMo模型代码讲解ELMo模型理论讲解第一部分引言ELMo模型详解ELMo模型使用ELMo模型总结引言ELMo源于《DeepContextualizedWordRepresentations》这篇论文,是来自华盛顿大学的工作,发表在2018的NAACL会议上,并获得了最佳论文。他们认为一个预训练的词表示应该能够包含丰富的句法和语义信息,并且能够对多义词进行建模。ELMo模型的全称是EmbeddingsfromLanguageModels,是一种通过无监督语言模型任务训练得到的词语表征(Embeddings)。但其实,ELMo的重点,在其论文名称里:Deep

contextualizedwordrepresentations。需关注两个重点词,一个DEEP,一个是contextualized。contextualized,什么意思呢?就是ELMo模型学到的词语表征是同语境相关的,也就说是动态表征。同一个词语,在不同语境(上下文)下,表征是不一样的。这是ELMo相比较于word2vec等词向量模型最本质的区别。引言DEEP,是指在ELMo模型中,用的是深度神经网络模型,说明网络结构会比word2Vec这些词向量模型要复杂。如右图:ELMo模型中引入了多层BiLSTM结构。那么,ELMo是怎么个DEEP法,又是怎么实现contextualized的呢?ELMo模型详解ELMo模型结构如右图所示,ELMo模型由3层组成:①

嵌入层

嵌入层的作用是将文本转化为词嵌入②

特征抽取层

特征抽取层引入了2层双向LSTM,用于文本的词法、语义等的特征抽取③

输出层

输出层包含全连接层和softmax,预测出该词是词表中的哪个词。ELMo模型详解输入层(embeddinglayer)将文本中的词转换成原始词向量(rawwordvector)将这些原始词向量输入双向语言模型中第一层前向迭代中包含了该词以及该词之前的一些词汇或语境的信息后向迭代中包含了该词之后的信息这两种迭代的信息组成了中间词向量(intermediatewordvector)这些中间词向量被输入到模型的下一层最终表示(ELMo)就是原始词向量和两个中间词向量的加权和ELMo模型详解ELMo预训练任务

在训练时,ELMo模型采用语言模型,即给定前面词,预测下一个词。假设给定一个长度为N的文本序列:除此之外,ELMO采用的是“双向”语言模型,即给定后面的词,预测前面的词,即:ELMo结合前向和后向,最大化如下的目标:

ELMo模型详解ELMo词嵌入生成预训练完成之后,可以通过ELMo模型生成词向量,最后生成的词嵌入可由如下的公式表示:其中,

是一个放缩标量,可对词向量进行放缩。

是softmax归一化权重。L是隐藏层的层数。

可在下游任务训练时更新。k表示输入序列中第k个词。其中,具体步骤,可参考右图。ELMo模型使用ELMo模型使用

ELMo预训练完成之后,如何使用呢?如下图所示,只需将原模型的词嵌入替换为ELMo模型即可。在训练时,可以更新

,就可以按照实际任务的不同给ELMo不同隐藏层输出以不同的权重。从ELMo模型使用来看,使用过程简单,但ELMo的定位还是作为词表征的加强,并未要改变下游任务的模式。ELMo模型总结1.ELMo模型的主要结构由是L层的双向LSTM构成,对于L层的双向lstm语言模型,一共会有2L+1个表征(加上词嵌入层)。通常来讲,在多层模型中,浅层往往蕴含的是句法,语法信息,而高层蕴含的是语义信息,因此你可以选择将ELMo中最后的输出层作为最后的输出,也可以将各层的输出进行综合作为最后的输出。2.ELMo的各层参数实际上是为各种有监督的下游任务准备的,因此ELMo可以被认为是一种迁移学习(transferlearning)。通过这样的迁移策略,那些对词义消歧有需求的任务就更容易通过训练给第二隐层一个很大的权重,而对词性、句法有明显需求的任务则可能对第一隐层的参数学习到比较大的值(实验结论)。总之,这样便得到了一份”可以被下游任务定制“的特征更为丰富的词向量。ELMo模型总结3.ELMo是一种深度语境词表征,可对词进行复杂特征(如句法和语义)的编码。4.ELMo实现了词的动态表征,能够实现多义词的词向量随语境而变化。5.ELMo通过“双向”语言模型进行建模,但这个“双向”有点粗暴,正向建模时,模型学不到后面词的信息,反向建模时,模型没有前面词的信息。6.采用LSTM作为特征抽取器,模型能力有限。ELMo模型代码讲解第二部分ELMo模型代码讲解ELMo模型代码讲解代码文件入口及分布ELMo模型代码讲解模型参数:train_elmo.pymain函数ELMo模型代码讲解训练数据构造:data.pyELMo模型代码讲

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论