0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

自然语言处理的ELMO使用

电子工程师 来源:工程师曾玲 2019-05-02 14:32 次阅读

1、概述

word embedding 是现在自然语言处理中最常用的 word representation 的方法,常用的word embedding 是word2vec的方法,然而word2vec本质上是一个静态模型,也就是说利用word2vec训练完每个词之后,词的表示就固定了,之后使用的时候,无论新句子上下文的信息是什么,这个词的word embedding 都不会跟随上下文的场景发生变化,这种情况对于多义词是非常不友好的。例如英文中的 Bank这个单词,既有河岸的意思,又有银行的意思,但是在利用word2vec进行word embedding 预训练的时候会获得一个混合多种语义的固定向量表示。即使在根据上下文的信息能明显知道是“银行”的情况下,它对应的word embedding的内容也不会发生改变。

ELMO的提出就是为了解决这种语境问题,动态的去更新词的word embedding。ELMO的本质思想是:事先用语言模型在一个大的语料库上学习好词的word embedding,但此时的多义词仍然无法区分,不过没关系,我们接着用我们的训练数据(去除标签)来fine-tuning 预训练好的ELMO 模型。作者将这种称为domain transfer。这样利用我们训练数据的上下文信息就可以获得词在当前语境下的word embedding。作者给出了ELMO 和Glove的对比

自然语言处理的ELMO使用

对于Glove训练出来的word embedding来说,多义词play,根据他的embedding 找出的最接近的其他单词大多数几种在体育领域,这主要是因为训练数据中包含play的句子大多数来源于体育领域,之后在其他语境下,play的embedding依然是和体育相关的。而使用ELMO,根据上下文动态调整后的embedding不仅能够找出对应的“表演”相同的句子,还能保证找出的句子中的play对应的词性也是相同的。接下来看看ELMO是怎么实现这样的结果的。

2、模型结构

ELMO 基于语言模型的,确切的来说是一个 Bidirectional language models,也是一个 Bidirectional LSTM结构。我们要做的是给定一个含有N个tokens的序列

t1, t2, ... , tN

其前向表示为:

自然语言处理的ELMO使用

反向表示为:

自然语言处理的ELMO使用

从上面的联合概率来看是一个典型的语言模型,前向利用上文来预测下文,后向利用下文来预测上文。假设输入的token是自然语言处理的ELMO使用,在每一个位置 k ,每一层LSTM 上都输出相应的context-dependent的表征自然语言处理的ELMO使用

这里 j = 1 , 2 , ... , L ,L 表示LSTM的层数。顶层的LSTM 输出,通过softmax层来预测下一个

对数似然函数表示如下:

自然语言处理的ELMO使用

模型的结构图如下:

自然语言处理的ELMO使用

ELMO 模型不同于之前的其他模型只用最后一层的输出值来作为word embedding的值,而是用所有层的输出值的线性组合来表示word embedding的值。

对于每个token,一个L层的 biLM要计算出 2L + 1 个表征:

自然语言处理的ELMO使用

在上面等于,表示的是token层的值。

在下游任务中会把 Rk压缩成一个向量:

自然语言处理的ELMO使用

其中是softmax标准化权重,γtask 是缩放系数,允许任务模型去缩放整个ELMO向量。

ELMO的使用主要有三步:

1)在大的语料库上预训练 biLM 模型。模型由两层bi-LSTM 组成,模型之间用residual connection 连接起来。而且作者认为低层的bi-LSTM层能提取语料中的句法信息,高层的bi-LSTM能提取语料中的语义信息。

2)在我们的训练语料(去除标签),fine-tuning 预训练好的biLM 模型。这一步可以看作是biLM的domain transfer。

3)利用ELMO 产生的word embedding来作为任务的输入,有时也可以即在输入时加入,也在输出时加入。

ELMO 在六项任务上取得了the state of the art ,包括问答,情感分析等任务。总的来说,ELMO提供了词级别的动态表示,能有效的捕捉语境信息,解决多义词的问题。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    7325

    浏览量

    87600
  • 人工智能
    +关注

    关注

    1789

    文章

    46545

    浏览量

    236823
收藏 人收藏

    评论

    相关推荐

    python自然语言

    最近,python自然语言是越来越火了,那么什么是自然语言自然语言(Natural Language )广纳了众多技术,对自然或人类语言
    发表于 05-02 13:50

    【推荐体验】腾讯云自然语言处理

    `相信大家对NLP自然语言处理的技术都不陌生,它是计算机科学领域和AI领域中的一个分支,它与计算机和人类之间使用自然语言进行交互密切相关,而NLP的最终目标是使计算机能够像人类一样理解语言
    发表于 10-09 15:28

    自然语言处理的分词方法

    自然语言处理——75 自动分词基本算法
    发表于 03-19 11:46

    自然语言处理语言模型

    自然语言处理——53 语言模型(数据平滑)
    发表于 04-16 11:11

    自然语言处理的词性标注方法

    自然语言处理——78 词性标注方法
    发表于 04-21 11:38

    自然语言处理笔记

    自然语言处理笔记9-哈工大 关毅
    发表于 06-04 16:34

    自然语言处理——总结、习题

    自然语言处理——79 总结、习题
    发表于 06-19 11:22

    什么是自然语言处理

    会识别出我们正确说的话。 我们使用免费服务将在线遇到的外语短语翻译成英语, 有时它们可以为我们提供准确的翻译。 尽管自然语言处理取得了长足的进步,但仍有很大的改进空间。[理...
    发表于 07-23 10:22

    什么是自然语言处理

    什么是自然语言处理自然语言处理任务有哪些?自然语言处理的方法是什么?
    发表于 09-08 06:51

    什么是自然语言处理_自然语言处理常用方法举例说明

    自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理
    发表于 12-28 16:56 1.8w次阅读
    什么是<b class='flag-5'>自然语言</b><b class='flag-5'>处理</b>_<b class='flag-5'>自然语言</b><b class='flag-5'>处理</b>常用方法举例说明

    自然语言处理怎么最快入门_自然语言处理知识了解

    自然语言处理就是实现人机间自然语言通信,实现自然语言理解和自然语言生成是十分困难的,造成困难的根本原因是
    发表于 12-28 17:10 5272次阅读

    自然语言处理(NLP)的学习方向

    自然语言处理(Natural Language Processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究人与计算机之间用自然语言进行有效通信的理论和方法。融语言
    的头像 发表于 07-06 16:30 1.3w次阅读

    自然语言处理的概念和应用 自然语言处理属于人工智能吗

      自然语言处理(Natural Language Processing)是一种人工智能技术,它是研究自然语言与计算机之间的交互和通信的一门学科。自然语言
    发表于 08-23 17:31 1244次阅读

    自然语言处理和人工智能的概念及发展史 自然语言处理和人工智能的区别

    自然语言处理(Natural Language Processing, NLP)的定义是通过电脑软件程序实现人们日常语言的机器自动处理。为了帮助计算机理解,掌握
    发表于 08-23 18:22 796次阅读

    自然语言处理包括哪些内容

    自然语言处理(Natural Language Processing,简称NLP)是人工智能领域的一个重要分支,它涉及到计算机与人类语言之间的交互。NLP的目标是让计算机能够理解、生成和处理
    的头像 发表于 07-03 14:15 655次阅读