目录

  • 前言
  • 一、ERNIE: Enhanced Representation through Knowledge Integration
    • Knowledge Masking Strategies
    • 对话语言模型
    • 成绩
  • 二、ERNIE 2.0: A Continual Pre-training Framework for Language Understanding
    • 多任务预训练
    • Word-aware Pretraining Tasks
    • Structure-aware Pretraining Tasks
    • Semantic-aware Pretraining Tasks
    • 成绩

前言

最近一段日子,我们很惊喜地看到越来越多的华夏面孔出现在自然语言处理领域的前沿。从最近叱诧风云的 XLNet 到上个星期自然语言处理顶会 ACL 2019 年的最佳长论文 (还有更多入会论文),主要负责人都是华人/国人。夹杂着这些好消息,带着 16 项中英文 SOTA 成绩,ERNIE 2.0 的发布更是把自然语言处理的舆论氛围推向了巅峰。就百度而言,无论在产品上如何遭人诟病,其依旧是 IT 从业者们的技术天堂,ERNIE 2.0 向我们展现了它的实力。本篇文章中,我们同样以论文作为标题开始我们的解读:

  • ERNIE: Enhanced Representation through Knowledge Integration (19 April 2019)
  • ERNIE 2.0: A Continual Pre-training Framework for Language Understanding (29 July 2019)

一、ERNIE: Enhanced Representation through Knowledge Integration

论文链接:https://arxiv.org/abs/1904.09223
代码链接:https://github.com/PaddlePaddle/ERNIE/tree/develop/ERNIE

在讲 2.0 版本之前,我们先回顾一下在 ERNIE 1.0 (以下统称 ERNIE) 中,百度做了什么,熟悉 1.0 的朋友可以先跳过这一节。ERNIE 的雏形来自于 2018 年 10 月发布的 BERT。关于 BERT 的简介可参考笔者另一篇博文中的相关内容:链接。ERNIE 沿袭了 BERT 中绝大多数的设计思路,包括 预训练 (Pretraining) 加 微调 (Fine-tuning) 的流程,去噪自编码 (DAE, abbr. denoising autoencoding) 的模型本质,以及 Masked Language ModelNext Sentence Prediction 的训练环节。主要的不同,在于 ERNIE 采用了更为复杂的 Masking 策略:Knowledge Masking Strategies,并针对对话型数据引入一套新的训练机制:对话语言模型 (Dialogue Language Model)。


从图中我们可以看到,ERNIE 不再仅仅只是如同 BERT 中那样,简单地对 token 进行随机选取,而后附上 Mask,而是同时对 token 所在的短语中其他词进行 Masking。这样的设计初衷,在于将更高级的语义信息融入到最终的 embedding 中。事后证明这样的设计,尽管在英文的下游任务中没能刷新 SOTA 成绩,但在对付中文 NLP 任务上相当凑效。

Knowledge Masking Strategies

为了将这样的设计思想融入到模型里,ERNIE 选择逐步推进,将预训练分为三个阶段,分别采用三种 Masking 机制:

  • Basic-level Masking:如同 BERT,随机选取 15% 的语料单元。
  • Phrase-level Masking:改为随机挑选短语进行 Masking;短语的识别在于预先使用语言工具进行标注,英文语料使用词法分析以及语义组块,中文语料应用中文分词技术。
  • Entity-level Masking:改为随机挑选命名实体进行 Masking;预先使用命名实体识别技术对命名实体进行标注,例如人名、地名、组织名。

对话语言模型

上文中的 Knowledge Masking Strategies 应用于一般的句子型语料,而 ERNIE 在训练数据中增加了问答形式下的对话型文本。针对这一类特殊的文本输入,ERNIE 特别地采用另一种 Masking 模型,将 Masked Language Model 取而代之:对话语言模型 (DLM, abbr. Dialogue Language Model)。

DLM 中,不再构建如同 “[CLS] + Sentence_A + [SEP] + Sentence_B + [SEP]” 的句子对,而是如同 “[CLS] + Query + [SEP] + Response_A + [SEP] + Response_B + [SEP]” 的对话三元组,是否上下文连续的二分类训练目标转为预测该对话是否真实 (real/fake)。三元组随机地采用 QRQ、QRR、QQR 其中一种构建形式,上面的例子便是其中的 QRR。为了给处理后的数据添加噪声,部分的 Query 和 Response 使用不相关的语句进行随机替换,以强制模型学习对话中的语境关联。

在训练一般语料时,ERNIE 采用 Knowledge Masking Strategies 改造后的 Masked LM;而在训练对话型语料时,ERNIE 采用 DLM;两者交替使用。

成绩

为了方便进行对比,试验中的 ERNIE 采用同 BERT-base 同样的超参数,包含 12 个 Transformer 层、768 个隐藏单元以及 12 个自注意力头。训练语料来自于中文维基百科、百度百科、百度新闻和百度贴吧 (对话型数据),总共包含约 1.7 亿个中文语句。在对繁体字进行简体转换后,词汇集的大小最终确定在 17,964。最终,ERNIE 在以下五个中文数据集上战胜 BERT,得到了 SOTA 结果:

  • 自然语言推理:XNLI
  • 语义相似度:LCQMC
  • 命名实体识别:MSRA-NER
  • 情绪分析:ChnSentiCorp
  • 问答:NLPCC-DBQA

作为 BERT 的简单改良版,我们很遗憾没能看到模型表现有大范围的提升,论文中甚至出现不止一处英文书写不规范的问题,显得论文的发表有些急于求成。但这无疑是一个很好的开端,为 ERNIE 2.0 刷新各类中英文成绩做了铺垫。

二、ERNIE 2.0: A Continual Pre-training Framework for Language Understanding

论文链接:https://arxiv.org/abs/1907.12412
代码链接:https://github.com/PaddlePaddle/ERNIE

ERNIE 2.0 将 1.0 版本中的功能特性全部予以保留,并在此基础上做更为丰富的扩展和延伸。论文指出,近几年来基于未标注语料进行无监督编码的预训练模型,包括 Word2Vec、ELMo、GPT、BERT、XLNet、ERNIE 1.0, 存在一个共同缺陷:仅仅只是利用了 token 与 token 之间的 共现 (Co-occurance) 信息。当两个 token 拥有相似的上下文语境时,最终的编码必然具有极高的相似度。这使得模型无法在词向量中嵌入语料的 词汇 (lexical)、语法 (syntatic) 以及 语义 (semantic) 信息。为此,ERNIE 2.0 首次引入 连续预训练 (Continual Pre-training) 机制 —— 以串行的方式进行多任务学习,学习以上三类特征。设计的初衷在于模拟人类的学习行为:利用已经积累的知识,持续地进行新的学习。

多任务预训练

多任务学习并不是什么特别新鲜的事物,BERT 中 Masked LM + Next Sentence Prediction 便是一种范例。多任务学习更直接地表现在损失函数的变化上,如下图。


这些任务并非强制性地加入到训练流程中,而是可以针对下游任务,有选择性地挑选一些加入模型。需要注意的是,每次添加任务都需要重新进行一次完整的训练。在开始训练前,每一个任务都会得到一套独立的编码,称为 Task Embedding,附加在原始的语料输入上。在应用于下游任务的微调时,这一套编码会用于模型的初始化。完整的 ERNIE 2.0 架构如下图所示:


需要指出的是,在多数情况下 ERNIE 2.0 输入的是由两个句子组成的句子对 (如同 BERT 中那样),但在应用于对话型数据时使用 ERNIE 1.0 中的 对话语言模型 (DLM, abbr. Dialogue Language Model),构建对话三元组,具体的形式请见上一节。

多任务预训练的模式使得模型能够在下游任务中具备更优秀的表现;但相对地,模型的可迁移性将会下降。由于部分任务专门针对特定下游任务设计,当模型的应用场景发生变化时,可能将不得不重新进行预训练以保证模型效果。

Word-aware Pretraining Tasks

多任务中的第一类,用于捕捉词汇 (lexical) 级别的信息。

  • Knowledge Masking Task:沿袭 ERNIE 1.0 中的 Knowledge Masking Strategies,预测被 Mask 的对象。
  • Capitalization Prediction Task:预测对象是否大小写 (cased/uncased);ERNIE 2.0 认为大写开头的词汇具备特定的含义,例如人名、地名、机构名等,这将对命名实体识别一类的下游任务有所帮助。
  • Token-Document Relation Prediction Task:预测对象是否在文档中其他文段有出现;正案例通常包含文档的关键词以及语言通用词,因此添加这一任务有助于模型将更多的注意力放在这一类词汇上。

Structure-aware Pretraining Tasks

这一类用于捕捉语料中语法 (syntactic) 级别的信息,有助于模型应用在自然语言推理、问答等领域。

  • Sentence Recording Task:针对文档中的每一个段落,以句子为单位划分为 1 1 1 ~ m m m 段,而后对整个文档所有文段进行打乱排列,对每一个文段预测原始位置,成为 k k k 分类问题 ( k = ∑ n = 1 m n ! k=\sum_{n=1}^mn! k=n=1mn!)。
  • Sentence Distance Task:取代 Next Sentence Prediction,预测输入句子对的相对距离;三分类问题, 0 0 0 代表两个句子在同一篇文档且距离相近, 1 1 1 代表两个句子在同一片文档但距离较远, 2 2 2 代表两个句子在不同文档。

Semantic-aware Pretraining Tasks

最后一类用于提取语义 (semantic) 类的信息。

  • Discourse Relation Task:预测两个句子之间的语法及修辞关联。
  • IR Relevance Task:专门为百度搜索引擎日志设计的任务,预测 Query-Title 对的相关性;三分类问题, 0 0 01 1 12 2 2 分别代表强相关、弱相关以及不相关;这将有助于标题自动生成以及文本摘要类任务。

成绩

模型的流程架构上,ERNIE 2.0 相对于 BERT 及 ERNIE 1.0 无疑都更为复杂,但参数结构基本保持一致 (仅添加了可训练的 Task Embedding)。试验中,ERNIE2.0-base 的参数大小向 BERT-base 靠齐,包含 12 个注意力层、768 个隐藏单元以及 12 个自注意力头;而 ERNIE2.0-large 则相应地对齐 BERT-large,包含 24 个注意力层、1024 个隐藏单元以及 16 个自注意力头。最终,ERNIE 2.0 以小于 BERT、XLNet 数倍的训练语料,在 16 项任务上全面超越两者,获得了 SOTA 成绩:

  • 自然语言推理 (英文):GLUE (CoLA, SST-2, MNLI, RTE, WNLI, QQP, MRPC, STS-B, QNLI, AX)
  • 机器阅读理解 (中文):CMRC 2018, DRCD, DuReader
  • 自然语言推理 (中文):XNLI
  • 语义相似度 (中文):LCQMC, BQ Corpus
  • 命名实体识别 (中文):MSRA-NER (SIGHAN 2006)
  • 情绪分析 (中文):ChnSentiCorp
  • 问题 (中文):NLPCC-DBQA



ERNIE 2.0 创新地将过去单一的预训练流程拆解为串行的多个预训练任务,无疑是其最大的贡献。如何通过多任务的形式将更多的语法信息有效地融入到模型的自编码中,相信会成为未来新的研究方向。

ERNIE: 2.0带来了什么相关推荐

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

    作者:Michael Ye 翻译:陈雨琳 校对:吴金笛 本文约1500字,建议阅读7分钟. 本文将介绍多任务学习. 科技巨头百度于今年早些时候发布了其最新的NLP架构ERNIE 2.0,在GLUE基准 ...

  2. 文心 ERNIE 3.0加持!小样本也可实现全量数据99%的效果!

    近几年,随着 AI 技术的发展,NLP 技术已经陆续 "上岗" 至各类产业应用场景中,自动处理繁杂而重复性的工作,如新闻内容自动分类.智能客服自动回复.评论敏感词审核.用户评论情感 ...

  3. 做人类语言谜题的破壁人:百度ERNIE 2.0的突破与创造

    这两天AI圈有一个广受关注的新闻,百度发布了持续学习的语义理解框架ERNIE 2.0,这个模型在1.0版本中文任务中全面超越BERT的基础上,英文任务取得了全新突破,在共计16个中英文任务上超越了BE ...

  4. 详细介绍ERNIE 3.0: Large-scale Knowledge Enhanced Pre-training for Language Understanding and Generation

    系列阅读: 详细介绍百度ERNIE1.0:Enhanced Representation through Knowledge Integration 详细介绍百度ERNIE 2.0:A Continu ...

  5. 《预训练周刊》第47期:屏蔽自编码器、结构化知识注入预训练、ERNIE 3.0

    No.47 智源社区 预训练组 预 训 练 研究 观点 资源 活动 周刊订阅 告诉大家一个好消息,<预训练周刊>已经开启"订阅功能",以后我们会向您自动推送最新版的&l ...

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

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

  7. 百度ERNIE 2.0发布!16项中英文任务表现超越BERT和XLNet

    整理 | 夕颜出品 | AI科技大本营(ID:rgznai100) 导读:2019 年 3 月,百度正式发布 NLP 模型 ERNIE,其在中文任务中全面超越 BERT 一度引发业界广泛关注和探讨.今 ...

  8. 百度发布ERNIE 2.0,性能超BERT、XLNet

    作者 | Khari Johnson 译者 | 赵雪 编辑 | 夕颜 出品 | AI科技大本营(ID: rgznai100) 中国科技巨头百度于今日提出了 ERNIE 2.0--一个中英双语的会话式人 ...

  9. 【译】Spring 4.0带来的@Conditional注解

    Spring 4.0带来的@Conditional注解 本文会接触spring 4的新功能:@Conditional注解.在之前的spring版本中,你处理conditions只有以下两个方法: 在3 ...

最新文章

  1. p1口输入输出实验c语言程序,51单片机P1口输入输出实验实验报告.doc
  2. 35.angularJS的ng-repeat指令
  3. apache 设置session超时时间_深入分析 Session 和 Cookie,看这篇就对了
  4. android长按home键关闭程序,应用程序退出后Dialog弹出
  5. HTML5 Canvas和EaselJS入门(译)
  6. 关于数据库的水平切分和垂直切分的一些概念(转)
  7. 全球蜂窝基带芯片厂商去年营收209亿美元,华为海思占16%
  8. SQL Server 2016中的新PowerShell Cmdlet
  9. R语言读取Excel的神器——openxlsx
  10. Android 创建随机数生成器
  11. 柬埔寨之旅——穿越千年,感受震撼
  12. PPT转Word文档及word图片批量居中
  13. flutter 内网安装包生成二维码
  14. php 配置文件设置时区_PHP中设置时区方法
  15. airpods版本号_airpods蓝牙版本是多少,苹果AirPods正式版使用评测
  16. HNUST OJ 2207 函数最小值
  17. 关于数据的封包发送和拆包使用
  18. 散户超额64倍认购蚂蚁IPO;AMD350亿美元收购赛灵思丨钛晚报
  19. Power Platform基本介绍
  20. 继电器是如何成为CPU的

热门文章

  1. 【Java】Java获取昨天日期的正确姿势
  2. excel表格经纬度同表格分成经度纬度两个表格
  3. 橡胶支座抗压弹性模量计算公式_(完整版)橡胶支座计算
  4. python星星排列_python中怎么实现星星排列
  5. 修改 Docker 镜像默认存储位置的方法
  6. python实现图书管理系统(简单版)
  7. STM32 FLASH的擦写寿命
  8. 站在营销看工作,偶发几点小心得
  9. SEO(搜索引擎优化)是不是任何行业、产品都适合做SEO?
  10. 闲鱼爬虫 闲鱼爬取 批量搬运上架淘宝软件,闲鱼.上架淘宝辅助软件批量改价/改库存/改标题,批量采集店铺店铺,全店宝贝采集,批量采集店铺高销量自动加水印