热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【自用】预训练语言模型>ELMo模型

[2018]ELMo模型参考:[论文]DEEPCONTEXTUALIZEDWORDREPRESENTATIONS[g6v5][知乎]NAACL2018:高级词向量(

[2018] ELMo 模型

参考:[论文] DEEP CONTEXTUALIZED WORD REPRESENTATIONS [g6v5]
[知乎] NAACL2018:高级词向量(ELMo)详解(超详细) 经典
[文章] 从Word Embedding到Bert模型——自然语言处理预训练技术发展史
ELMo全称Embeddings from Language Models,是一个双向语言模型。在ELMo出现之前,词嵌入模型的缺点是对于每一个单词都有唯一的一个词向量表示。然而对于同一个单词的含义,其实有一定程度上是与上下文相关的,同一个单词可能在不同的语境下会展现不同的含义。对于“多义词”来说,只使用一个词向量显然不符合直觉。
ELMo的做法是只预训练language model,而词向量是通过输入的句子实时输出的, 这样词向量的含义就是上下文相关的了,在很大程度上缓解了歧义的发生。

1.ELMo的结构

ELMO 采用了典型的两阶段过程:

  • 第一个阶段是利用语言模型进行预训练
  • 第二个阶段是在做下游任务时,从预训练网络中提取对应单词的网络各层的 Word Embedding 作为新特征补充到下游任务中。
    王六六

上图展示的是其预训练过程,它的网络结构采用了双层双向 LSTM,目前语言模型训练的任务目标是根据单词的上下文去正确预测单词,之前的单词序列 Context-before 称为上文,之后的单词序列 Context-after 称为下文。

图中左端的前向双层LSTM代表正方向编码器,输入的是从左到右顺序的除了预测单词外的上文 Context-before;
右端的逆向双层 LSTM 代表反方向编码器,输入的是从右到左的逆序的句子下文 Context-after;
每个编码器的深度都是两层 LSTM 叠加。这个网络结构其实在 NLP 中是很常用的。

使用这个网络结构利用大量语料做语言模型任务就能预先训练好这个网络,如果训练好这个网络后,输入一个新句子,句子中每个单词都能得到对应的三个Embedding:

  • 最底层是单词的 Wrd Embedding
  • 往上走是第一层双向 LSTM中对应单词位置的 Embedding,这层编码单词的句法信息更多一些;
  • 再往上走是第二层 LSTM 中对应单词位置的 Embedding,这层编码单词的语义信息更多一些。
    也就是说,ELMO 的预训练过程不仅仅学会单词的 Word Embedding,还学会了一个双层双向的 LSTM 网络结构,而这两者后面都有用。

2.ELMo的使用

上面介绍的是ELMo的第一阶段:预训练阶段。
那么预训练好网络结构后,如何给下游任务使用呢?
下图展示了下游任务的使用过程,比如我们的下游任务仍然是 QA 问题,此时对于问句 X,我们可以先将句子 X 作为预训练好的ELMo网络的输入,这样句子 X 中每个单词在ELMo网络中都能获得对应的三个 Embedding,之后给予这三个 Embedding 中的每一个 Embedding 一个权重 a,这个权重可以学习得来,根据各自权重累加求和,将三个 Embedding 整合成一个。

然后将整合后的这个 Embedding 作为 X 句在自己任务的那个网络结构中对应单词的输入,以此作为补充的新特征给下游任务使用。对于上图所示下游任务 QA 中的回答句子 Y 来说也是如此处理。

因为 ELMo给下游提供的是每个单词的特征形式,所以这一类预训练的方法被称为Feature-based Pre-Training。
在这里插入图片描述
在这里插入图片描述

3. ELMo 评价

优点
(1)对于 Glove 训练出的 Word Embedding 来说,多义词比如 play,根据它的 embedding 找出的最接近的其它单词大多数集中在体育领域,这很明显是因为训练数据中包含 play 的句子中体育领域的数量明显占优导致;而使用 ELMO,根据上下文动态调整后的 embedding 不仅能够找出对应的「演出」的相同语义的句子,而且还可以保证找出的句子中的 play 对应的词性也是相同的,这是超出期待之处。之所以会这样,是因为我们上面提到过,第一层 LSTM 编码了很多句法信息,这在这里起到了重要作用;
(2)见下图,ELMo在6 个 NLP 任务中性能都有幅度不同的提升,最高的提升达到 25% 左右,而且这 6 个任务的覆盖范围比较广,包含句子语义关系判断,分类任务,阅读理解等多个领域,这说明其适用范围是非常广的,普适性强,这是一个非常好的优点。
在这里插入图片描述
在这里插入图片描述

局限性
一个非常明显的缺点在特征抽取器选择方面:ELMo使用了 LSTM 而不是Transformer,很多研究已经证明了 Transformer 提取特征的能力是要远强于 LSTM 的。


推荐阅读
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 本文整理了常用的CSS属性及用法,包括背景属性、边框属性、尺寸属性、可伸缩框属性、字体属性和文本属性等,方便开发者查阅和使用。 ... [详细]
  • 干货 | 携程AI推理性能的自动化优化实践
    作者简介携程度假AI研发团队致力于为携程旅游事业部提供丰富的AI技术产品,其中性能优化组为AI模型提供全方位的优化方案,提升推理性能降低成本࿰ ... [详细]
  • 深度学习与神经网络——邱锡鹏
    深度学习与神经网络——邱锡鹏-一、绪论人工智能的一个子领域神经网络:一种以(人工))神经元为基本单元的模型深度学习:一类机器学习问题,主要解决贡献度分配问题知识结构:路线图:顶 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • Word2vec from scratch (Skip-gram & CBOW)
    在自然語言處理領域中,如何透過向量表達一個詞彙,是近幾年非常火熱的議題,在distributedrepresentation(densevector)尚未風行前,大多數的任務都以1-hotencoding作為詞彙的表示,其方法得到了高維度的稀疏向量,雖容易理解、簡單計算,但也帶來許多副作用;直至2013年,ThomasMikolov等人提出了word2vec,word2vec引用了一個概念,作者導 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了10分钟了解Android的事件分发相关的知识,希望对你有一定的参考价值。什么是事件分发?大家 ... [详细]
  • 推荐 :以数据驱动的方式讲故事
    直觉vs数据首先,你有思考过一个问题吗?当你的直觉与你所掌握的数据矛盾的时候,你是听从于直觉还是相信你所掌握的数据呢?201 ... [详细]
  • 「爆干7天7夜」入门AI人工智能学习路线一条龙,真的不能再透彻了
    前言应广大粉丝要求,今天迪迦来和大家讲解一下如何去入门人工智能,也算是迪迦对自己学习人工智能这么多年的一个总结吧,本条学习路线并不会那么 ... [详细]
  • bat大牛带你深度剖析android 十大开源框架_请收好!5大领域,21个必知的机器学习开源工具...
    全文共3744字,预计学习时长7分钟本文将介绍21个你可能没使用过的机器学习开源工具。每个开源工具都为数据科学家处理数据库提供了不同角度。本文将重点介绍五种机器学习的 ... [详细]
  • CodeBERT理解
    1.动机大型的预训练模型,比如ELMo、GPT、Bert等提高了NLP任务的最新技术。这些预训练模型在NLP的成功驱动了多模态预训练模型,比如ViBE ... [详细]
author-avatar
从妖妖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有