写点什么

为什么预训练语言模型 ELMo 是 NLP 的最大进步之一?

2020 年 10 月 22 日

为什么预训练语言模型 ELMo 是NLP的最大进步之一?

本文最初发表于 Medium 博客,经原作者 Jerry Wei 授权,InfoQ 中文站翻译并分享。


ELMo,是来自语言模型的嵌入(Embedding fromLanguageModels)的缩写,这是一种最先进的语言建模思想。是什么让它如此成功?


2018 年发表的论文《深度上下文的词嵌入》(Deep Contextualized Word Embeddings),提出了语言模型嵌入(ELMo)的思想,在问答、情感分析和命名实体提取等多项热门任务上都实现了最先进的性能。事实证明,ELMo 可以带来高达 5% 的性能提升。但是,是什么让这个想法如此具有革命性呢?


ELMo 是什么?


Elmo 不仅仅是一个木偶人物玩具的名字,而且 ELMo 还是一个强大的计算模型,可以将单词转换成数字。这一重要的过程允许机器学习模型(以数字而不是单词作为输入)可以在文本数据上进行训练。


为什么 ELMo 这么厉害?


当我通读原始论文时,有几个主要观点引起了我的注意:


  1. ELMo 解释了单词的上下文。

  2. ELMo 是基于大型文本语料库进行训练的。

  3. ELMo 是开源的。


让我们详细讨论一下这些要点,并讨论它们的重要性。


1. ELMo 可以唯一地解释单词的上下文


像 GloVe、词袋和 Word2Vec 只是根据单词的字面拼写生成嵌入。它们不会考虑单词的使用方式。例如,在下面的示例中,这些语言模型将为“trust”返回相同的嵌入:


I can’ttrustyou.

They have notrustleft for their friend.

He has atrustfund.


然而,ELMo 会根据其周围的单词,返回不同的嵌入:其嵌入是上下文相关的。在这些示例中,它实际上会返回“trust”不同的答案,因为它会识别出该词在不同的上下文中使用。这种独特的能力本质上意味着 ELMo 的嵌入有更多的可用信息,因此性能可能会提高。一种类似的解释上下文的语言建模方法是BERT


2. ELMo 是基于大型文本语料库训练的


无论你是一名资深的机器学习研究者,还是一名普通的观察者,你都可能熟悉大数据的威力。最初的 ELMo 模型是在 55 亿个单词的语料库上进行训练的,即使是“小”版本也有 10 亿个单词的训练集。这可是一个很大的数据量啊!在如此多数据上进行训练,意味着 ELMo 已经学习了很多语言知识,在大范围的数据集上都会有不错的性能。


3. 任何人都可以使用 ELMo


推动机器学习领域发展的因素是将研究予以开源的文化。通过将代码和数据集开源,研究人员可以让该领域的其他人轻松地应用并构建现有的想法。与这种文化相一致,ELMo 是广泛开源的。它有一个网站,不仅包括它的基本信息,还包括了模型的小版本、中版本和原始版本的下载链接。想使用 EMLo 的人一定要看看这个网站,来获取模型的快速拷贝。此外,该代码还发布在GitHub上,并包括一个相当详尽的自述文件,让用户知道如何使用 ELMo。如果有人花了几个小时的时间才能让 EMLo 模型正常运行,我会感到很惊讶。



ELMo 在著名的任务上取得了最先进的性能,如 SQuAD、NER 和 SST


作为上下文感知词嵌入和大数据的强大组合,ELMo 在自然语言处理中的大数据集(包括 SQuAD、NER 和 SST)上取得了最先进的性能。ELMo 彻底改变了我们处理计算语言学任务的方式,比如问答和情感检测,这显然是该领域的一个关键进展,因为原始论文已被引用了 4500 多次。此外,在发表 ELMo 的论文后,提交给最大的国际自然语言处理会议——计算语言学协会(Association for Computational Linguistics,ACL)会议收到的投稿量翻了一番,从 2018 年的 1544 份增加到 2019 年的 2905 份(不过这也可能是由于 2019 年初发表的 BERT)。


我还要指出的是,ELMo 和 BERT 非常相似,因为它们都来自芝麻街(译注:Elmo 和 Bert 都是美国经典动画片《芝麻街》的角色)!好吧,它们都是解释单词上下文的语言模型,都是基于大型数据集进行训练的,并且正如给我们所知的自然语言处理领域带来了革命性的变革。我还写了一篇关于 BERT 的博文,如果你有兴趣的话,可以读一读。


ELMo 是自然语言处理最大的进步之一,因为它本质上是第一个关注上下文的语言模型,允许在多种任务中实现更好的性能。


延伸阅读



作者介绍:


Jerry Wei,对人工智能,尤其对医学图像分析和自然语言处理感兴趣。


原文链接:


https://towardsdatascience.com/elmo-why-its-one-of-the-biggest-advancements-in-nlp-7911161d44be


2020 年 10 月 22 日 08:00742
用户头像
刘燕 InfoQ记者

发布了 491 篇内容, 共 151.8 次阅读, 收获喜欢 882 次。

关注

评论

发布
暂无评论
发现更多内容

“云”上教与学,让教育不止步于课堂

Geek_116789

内存总是不够?HBase&GeoMesa配置优化了解一下

华为云开发者社区

内存模型 内存 HBase 大集群 GeoMesa

学生党学编程,有这个开源项目就够了!

JackTian

GitHub 学习 编程 程序员 学生党

数据库外键

will

数据库 性能 外键

超英文邮件50%!Flink 中文邮件列表必须有姓名

Apache Flink

flink

Android 原生 SQLite 数据库的一次封装实践

vivo互联网技术

sqlite android 数据库

程序员陪娃系列——小娃的到来

孙苏勇

程序员人生 陪伴 随笔杂谈

程序员陪娃系列——见你的第一面

孙苏勇

程序员人生 陪伴 随笔杂谈

低代码平台会让程序员失业?测评了5个工具,谁能让效率提高N倍?

代码制造者

编程 编程语言 低代码 零代码 测评

Linkerd 2.8 - 實現超級簡單又安全的多叢集(multicluster) Kubernetes 架構

Rammus

Kubernetes DevOps 运维 云原生 Service Mesh

程序员陪娃系列——育儿路上二三事续

孙苏勇

程序员人生 陪伴 随笔杂谈

多角度分析,通讯时序数据的预测与异常检测挑战

华为云开发者社区

时序数据库 即时通讯 异常检测 网络智能体 时序预测

主权投资基金或有助于实现可持续发展目标

CECBC区块链专委会

程序员陪娃系列——小小免费按摩师

孙苏勇

程序员人生 陪伴 随笔杂谈

移卡荣登2020「AI 最佳成长榜」,AI+金融科技赋能商业服务

DT极客

煌煌中原 化鲲为鹏

脑极体

【漫画】最近,老王又双叒get了CDN的新技能—可编程化敏捷开发

阿里云Edge Plus

CDN

程序员陪娃系列——育儿路上二三事

孙苏勇

程序员人生 陪伴 随笔杂谈

联盟链落地与激励机制

CECBC区块链专委会

一款基于 Python 语言的 Linux 资源监视器!

JackTian

Python GitHub Linux bashtop bpytop

太赞了!程序员应该访问的最佳网站都在这里了!

JackTian

GitHub 学习 编程 程序员 网站平台

构造、析构期间被调虚函数发生的惨案,长教训!

华为云开发者社区

代码 组合模式 封装、继承、多态 bug 回调函数

MySQL“被动”性能优化汇总!

王磊

MySQL

云图说 | 3分钟创建一个游戏类工作负载

华为云开发者社区

Docker 容器 华为云 工作负载 2048游戏

程序员陪娃系列——和孩子聊生死

孙苏勇

程序员人生 陪伴 随笔杂谈

使用 supervisor 配置 ngrok 内网穿透为守护进程

jerry.mei

Linux 操作系统 ngrok 守护进程 内网穿透

F5G的星光闪烁,为工业而明,向未来而歌

脑极体

趣文:那天我被拉入 C++ 亲友群

程序员生活志

c c++ 程序员趣事

入职两周,怀疑自己进了假百度!跟传说中完全不一样!难道真有两家百度公司?

程序员生活志

百度 程序员生活

BIGO技术:实时计算平台建设

InfoQ_3597a20b53cc

互联网 BIGO

LeetCode题解:21. 合并两个有序链表,递归,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

为什么预训练语言模型 ELMo 是NLP的最大进步之一?-InfoQ