作者:Michael Ye

翻译:陈雨琳

校对:吴金笛

本文约1500字,建议阅读7分钟

本文将介绍多任务学习。

科技巨头百度于今年早些时候发布了其最新的NLP架构ERNIE 2.0,在GLUE基准测试中的所有任务上得分均远高于XLNet和BERT。NLP的这一重大突破利用了一项被称为“连续增量式多任务学习”的创新技术。在本文中,我们将直观地解释“连续多任务学习”的概念,构建ERNIE 2.0模型,并解决有关ERNIE 2.0结果的疑虑。
预备知识:
  1. 神经网络

  2. 梯度下降

  3. 预训练&微调

(请看这个视频:https://bit.ly/2lIADHm)

什么是多任务学习?
为了理解多任务学习,让我们从单任务学习示例开始:为了简单起见,想象一下在NLP(自然语言处理)预训练中使用的简单前馈神经网络。任务是预测句子中的下一个单词。

输入字符串是“ I like New”,正确的输出是字符串“ York”。
训练过程(梯度下降)可以看成是滚下山坡的球:这里的地形是损失函数(也称为成本/误差函数),球的位置代表所有参数的当前值(权重和偏差)。

此图仅有两个维度以用于可视化目的。 如果这个比喻让你无法理解,请查看对梯度下降的理解:https://bit.ly/2C080IK。现在,如果你希望神经网络执行多个任务怎么办? 例如,预测句子中的下一个单词并进行情感分析(预测态度分为正面,中立或负面。例如,“你很棒”被归为正面)。

实际上,你可以直接加上另一个输出!

输入为“I like New”,下一个单词预测为“York”,情感预测为正面。
然后,将两个输出的损失相加并求平均值,最后的损耗用于训练网络,因为这样就可以将两个任务的损失都降至最低。
这次,可以将训练过程可视化为将两种地形(两个损失函数)加在一起以获得一个新的地形(最终损失函数),然后执行梯度下降。

Figure 1: Calculating the final loss function and performing gradient descent

图1:计算最终损失函数并执行梯度下降

这就是多任务学习的本质-训练一个神经网络执行多个任务,以便该模型可以开发语言的通用表达形式,而不是将自身限制到一个特定的任务上。实际上,ERNIE 2.0训练其神经网络执行7个任务,后面将对此进行详细说明。
多任务学习在自然语言处理中尤其有用,因为预训练过程的目标是“理解”语言。同样,在语言理解方面,人类也会执行多项任务。
我们已经解释了多任务学习,而ERNIE 2.0架构中还有另一个关键概念,那就是……
持续学习
训练神经网络面临的一个挑战是这样一个事实:局部最小值并不总是全局最小值。
作为示例,让我们看一下上个例子种最终损失函数的形态-如果我们对权重进行不同的初始化,即将球放置在其他位置,会怎么样?

图 2

这次的局部最小值远非理想值。为解决此问题并找到更好的局部最小值,使得该最小值更可能是全局最小值,ERNIE 2.0提出了“持续学习”的概念。
不是训练所有任务(图2),而是按顺序训练它们:
  1. 在任务1上进行训练

  2. 使用上一步中的参数,并在任务1、2上进行训练

  3. 使用上一步中的参数,并在任务1、2、3上进行训练,以此类推…

这是受人类启发的,因为我们是逐步学习而不是一次学习多个任务。之所以行之有效,是因为如果达到任务1的全局最小值,那么将两个损失函数加在一起时,与使用完全随机参数开始时相比,更有可能获得全局最小值(图3)。

图 3

持续学习还可以轻松添加新任务-只需在序列中添加一个额外的步骤即可(例如,第3步:训练任务1、2、3)。但是,请记住,必须训练所有先前的任务以及新任务,以确保将损失函数相加。

此外,在ERNIE 2.0中,Adam Optimizer用于保证有更大机会定位到全局最小值,但这不在本文的讨论范围之内。如果您想了解更多信息,请访问以下链接:

https://arxiv.org/pdf/1412.6980.pdf。

ERINE 2.0模型
于是,我们终于可以构建ERINE2.0模型了!

这张图在论文4.2.3节

让我们从输入开始:输入包含token embedding, sentence embedding, sentence embedding, position embedding, task embedding。如果您没有听说过embedding,它们实际上是一种表示形式,可以将人类可以理解的内容转换为机器可以理解的内容。(在此处了解更多信息:https://bit.ly/2k52nWt)
接下来,将其输入可以是任何形式神经网络的“编码器”中。当然,如果你想要在自然语言处理种获得最好的效果,就应该使用RNN或者一种Transformer。
ERINIE 2.0使用的transformer与BERT和XLNET相同。
最后,输出结果包含了7个任务的输出,分别是:
  1. 知识遮盖

  2. 标记-文档关系

  3. 大写预测

  4. 句子重新排序

  5. 句子距离

  6. 话语关系

  7. 相关性

这些任务是专门挑选用来学习语言的词汇,句法(结构)和语义(含义)信息的。阅读论文第4.2节,以详细了解每个任务。
训练过程基本上与我们之前在持续学习部分演示的示例相同:
先训练任务1,然后任务1&2,然后任务1&2&3,以此类推……直到训练完7个任务。

图 4

如图4所示,当任务在训练过程中处于非活动状态时,其损失函数基本上始终为零。
另外,ERNIE 2.0设置中的一个不同之处是最终对损失进行平均(而不是求和)。
有关ERNIE 2.0结果的疑虑
ERNIE 2.0在GLUE基准测试的每个任务中都击败了所有以前的模型,例如XLNet和BERT。虽然该论文暗示该开创性的结果是由持续多任务学习引起的,但尚无模型简化测试来证明这一点。持续多任务学习之外的某些因素可能在击败XLNET和BERT方面发挥了关键作用:
  • 使用了更多数据来训练模型(Reddit,发现数据…)。但是,这在一定程度上是不可避免的。由于多任务学习的训练目标更多,因此需要更多的数据。

  • 该神经网络在PaddlePaddle中实现

  • 更重要的是,为了将ERNIE 2.0的结果归因于“持续多任务学习”,需要回答以下问题:

  • 多任务学习对结果有多大影响?

  • 持续学习对结果有多大影响?如果一次训练了所有七个任务而不是依次进行会怎么样?

  • 任务的顺序有影响吗?

结论
总而言之,ERNIE 2.0引入了“连续多任务学习”的概念,并且在所有NLP任务中均成功胜过XLNET和BERT。可以说连续多任务学习是开创性结果中的第一大因素,但仍然有许多问题需要解决。
当然,本文不会涵盖论文的全部主题,例如具体的实验结果,也没有这个必要。本文只是对ERNIE 2.0核心概念进行了直观解释。如果您想全面了解ERNIE 2.0,请同时阅读论文!

论文:

“ERNIE 2.0: A Continual Pre-training Framework for Language Understanding”

作者:

Yu Sun, Shuohuan Wang, Yukun Li, Shikun Feng, Hao Tian, Hua Wu, Haifeng Wang

链接:

https://arxiv.org/pdf/1512.03385.pdf

Related:

相关文章:

  • Interpolation in Autoencoders via an Adversarial Regularizer

  • Pre-training, Transformers, and Bi-directionality

  • Large-Scale Evolution of Image Classifiers

原文标题:
Multi-Task Learning – ERNIE 2.0: State-of-the-Art NLP Architecture Intuitively Explained
原文链接:
https://www.kdnuggets.com/2019/10/multi-task-learning-ernie-sota-nlp-architecture.html
编辑:于腾凯
校对:林亦霖

译者简介

陈雨琳,清华大学大二在读,英语专业。专业学习之外喜欢学些数学、计算机类课程,被数据和模型的魅力所吸引,希望未来能往这个方向发展。道阻且长,行则将至。

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。

点击文末“阅读原文”加入数据派团队~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:datapi),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

点击“阅读原文”拥抱组织

独家 | 最新NLP架构的直观解释:多任务学习– ERNIE 2.0(附链接)相关推荐

  1. 最新NLP架构的直观解释:多任务学习– ERNIE 2.0(附链接)| CSDN博文精选

    作者 | Michael Ye 翻译 | 陈雨琳,校对 | 吴金笛 来源 | 数据派THU(ID:DatapiTHU) 百度于今年早些时候发布了其最新的NLP架构ERNIE 2.0,在GLUE基准测试 ...

  2. 独家 | 你的神经网络不起作用的37个理由(附链接)

    作者:Slav Ivanov 翻译:吴金笛 校对:丁楠雅 本文约4400字,建议阅读12分钟. 本文列举了在搭建神经网络过程中的37个易错点,并给出了解决建议. 有一个网络已经训练了12个小时.一切看 ...

  3. 独家 | 展望未来:数据科学、数据工程及技术(附链接)

    作者:SeattleDataGuy (Zack Shapiro)翻译:殷之涵 校对:欧阳锦本文约2800字,建议阅读8分钟本文通过6位科技工作者的观察及感受,为大家介绍2021年即将发生在数据科学及数 ...

  4. 独家 | 在PyTorch中用图像混合(Mixup)增强神经网络(附链接)

    作者:Ta-Ying Cheng翻译:陈之炎校对:车前子本文约2000字,建议阅读5分钟随机混合图像,效果是不是会更好? 标签:神经网络.图像混合 一直以来,在深度学习领域,图像分类是呈指数级增长的课 ...

  5. 独家 | 为什么要尝试A/B测试的贝叶斯方法(附链接)

    作者:Michael Armanious 翻译:欧阳锦 校对:阿笛 本文约3400字,建议阅读8分钟 本文通过一个A/B测试的实例,介绍了贝叶斯方法的各种优点和具体的实现方法,同时也将贝叶斯推断方法与 ...

  6. 独家 | 构建符合道德规范的用于人才管理的AI(附链接)

    作者:Tomas Chamorro-Premuzic,Frida Polli,Ben Dattner 翻译:wwl 校对:吴金笛 本文约2800字,建议阅读5分钟 在人才管理中,相较于依赖招聘经理的人 ...

  7. 独家 | ​数据科学家必知的五大深度学习框架!(附插图)

    作者:Pulkit Sharma 翻译:陈之炎 校对:丁楠雅 本文约3900字,建议阅读10+分钟. 本文为大家分析并比较五种非常有用的深度学习框架的优点及应用. 概述 从出道起,我就一直是一名程序员 ...

  8. 独家 | 5个步骤开启你的数据科学职业生涯!(附链接)

    作者:Thomas 翻译:王雨桐 校对:丁楠雅 本文约2000字,建议阅读10分钟. 本文为刚刚接触数据科学的新人,提出五个职场准备的建议. 数据科学已经成为21世纪最热门的工作领域,但如何才能成为数 ...

  9. 资源 | Yann LeCun最新演讲:大脑是如何高效学习的?(附PPT+视频)

    整理 | 周翔 作为深度学习的奠基人之一,Yann LeCun 的一言一行都颇受关注.近日,Yann LeCun 在 CCN 2017 (认知计算神经科学大会)上发表了主题为"How doe ...

最新文章

  1. 4.二叉树的先序、中序以及后序遍历的递归写法与非递归写法(LeetCode第94、144、145题)
  2. java代码混淆框架_Android常用框架混淆代码
  3. MySQL三大范式详解(小白也能懂哦)
  4. SLinkList(静态链表)
  5. Visual Studio Code里一个查看括号匹配的神器 - Bracket Pair Colorizer
  6. 传感与检测技术,光电二极管和光敏电阻的特性研究实验报告,江南大学物联网工程学院自动化
  7. 二分法:两个有序数组长度为N,找到第N、N+1大的数
  8. 下列哪一项不是计算机网络的典型应用,09级计算机信息网络试卷A
  9. 蒂法html5游戏,《最终幻想7:重制版》大量新截图:蒂法招式/支线任务
  10. 程序无法启动计算机丢失,没法启动程序,说是计算机丢失user32.dll
  11. 理解一下ThreadLocal线程存储---springcloud工作笔记160
  12. mysql为什么用B 树做索引_mysql为什么用b+树做索引
  13. 大数据笔记_Hadoop基础知识
  14. 阿里云视频点播配置步骤
  15. java打开dex文件_dex文件反编译工具(Dedexer)
  16. 基于Python的宋词生成器
  17. DLL劫持技术解析(DLL Hijack)
  18. mysql转dm7_DM7 达梦数据库 数据库级 数据复制(DATA REPLICATION) 搭建手册
  19. 微服务拆分原则之AKF
  20. DataView对象

热门文章

  1. 电信应在短时间内放弃CDMA网络
  2. PMP知识要点(第七章)
  3. 微信开放JS-SDK,助力网页开发[转自微信官方]
  4. iDoNews 业界报不道:大众点评最有价值的两个东西
  5. [转]解决安装m2eclipse插件后,eclipse启动时在控制台提示的警告
  6. 应该使用c# 预定义类型 还是绝对不要使用预定义类型。
  7. mysql 报错10614_golang使用go-sql-driver实现mysql增删改操作-Go语言中文社区
  8. python毫秒级时间戳
  9. 2021-03-28为什么用SCALA语言优势在哪里 Scala适合服务端、大数据、数据挖掘、NLP、图像识别、机器学习、深度学习…等等开发。
  10. 30百度人撑起自动驾驶半壁江山