【预训练语言模型】ERNIE 2.0: A Continual Pre-Training Framework for Language Understanding

  ERNIE(百度)系列主打知识增强的预训练语言模型,在ERNIE1.0版本基础上,再次提出深度融合知识的预训练语言模型。核心要点包括:

  • 增加了pre-training Task的数量;
  • 提出Continual Multi-Task Learning融合多个Task进行训练,避免模型遗忘;

简要信息:

序号

属性


1

模型名称

ERNIE-2.0

2

发表位置

AAAI 2020

3

所属领域

自然语言处理、预训练语言模型

4

研究内容

知识增强的预训练语言模型、Continual Learning

5

核心内容

BERT改进

6

GitHub源码

​https://github.com/PaddlePaddle/ERNIE​

7

论文PDF

​https://ojs.aaai.org/index.php/AAAI/article/view/6428/6284​


一、动机

  • 现有的预训练模型在诸多下游任务上很有效;
  • 预训练的语料上除了共现的word或phrase外,还存在大量的词法、语法、语义等信息;
  • continual learning(持续学习) 表示用多个任务依次训练模型,以便模型在遇见新的Task时可以记住先前学习的任务;

「Inituition」:
  就像是我们学习一个新语言的时候,我们需要很多之前的知识,在这些知识的基础上,我们可以更快地学习新语言,如此就有了迁移学习的效果。我们的语言模型如果增加多个任务的话,是不是可以获得更好的效果?
  事实上,经发现,ERNIE 1.0 加了DLM任务以及其他的模型。如Albert 加了sentence order prediction(SOP)任务之后或者SpanBERT: Improving Pre-training by Representing and Predicting Spans[6]在加上了SBO目标之后 ,模型效果得到了进一步的优化,同时MT-DNN[7]也证明了,在预训练的阶段中加入多个GLUE下游任务(有监督)进行多任务学习,可以得到state-of-the-art的效果。

二、方法

  采用continual pre-training的策略:

  • 先前的预训练语言模型只在一两个预训练任务上进行训练,而ERNIE2.0则在多个不同的预训练任务上进行训练;
  • Continual Training是指多个task按照顺序依次训练,但连续训练容易导致灾难性遗忘(忘记很久之前学习过的任务);

  ERNIE的框架如下图:

【预训练语言模型】ERNIE2.0: A Continual Pre-Training Framework for Language Understanding_语言模型


  框架大致包括:

  • Pre-training Task Construction:构建预训练的任务;
  • Continual Multi-task Learning:多个任务依次训练;

2.1 Pre-training Task Construction

  首先获得大规模无监督语料,并获得先验知识(例如知识库),然后构建三种类型的预训练任务,如下图所示:

【预训练语言模型】ERNIE2.0: A Continual Pre-Training Framework for Language Understanding_语言模型_02

(1)Word-aware Pre-training Task:

  • Knowledge Masking:根据实体,挑选文本中的实体进行mask,而不是只mask单一的token;
  • Capitalization Prediction Task(大写预测):认为大小写具有不同的语义,因此添加大小写预测;
  • Token-Document Relation Prediction Task:预测一个segment中的词是否也出现在同一个document的其他segment中,该任务旨在发现一个document中频繁的词或主题词;

(2)Structure-aware Pre-training Tasks

  • Sentence Reordering Task:假设一个段落随机划分为 【预训练语言模型】ERNIE2.0: A Continual Pre-Training Framework for Language Understanding_数据_03 个片段,对于每一种分法都有 【预训练语言模型】ERNIE2.0: A Continual Pre-Training Framework for Language Understanding_深度学习_04 种类型,因此一共有 【预训练语言模型】ERNIE2.0: A Continual Pre-Training Framework for Language Understanding_自然语言处理_05
  • Sentence Distance Task:三分类任务,判断两个文本是否相邻(0),是否不相邻但在同一个文档里(1),以及其他(2);

(3)Semantic-aware Pre-training Tasks

  • Discourse Relation Task:判断语义相似情况;
  • IR Relevance Task:输入一个query以及对应的title,判断是否相关,属于三分类,0表示用户输入query且搜索引擎返回了title,并被用户点击查看,1表示被搜索引擎返回但用户未点击,2表title并未被搜索引擎返回。

2.2 Continual Multi-task Learning

  为了能够同时训练多个任务来提取词法、语法和语义方面信息,可以选择如下三种类型的训练策略:

【预训练语言模型】ERNIE2.0: A Continual Pre-Training Framework for Language Understanding_搜索引擎_06


给定 【预训练语言模型】ERNIE2.0: A Continual Pre-Training Framework for Language Understanding_搜索引擎_07 个Task,记作 【预训练语言模型】ERNIE2.0: A Continual Pre-Training Framework for Language Understanding_自然语言处理_08

  • Continual Learning:按照顺序 【预训练语言模型】ERNIE2.0: A Continual Pre-Training Framework for Language Understanding_深度学习_09 依次学习每个Task。但是缺点很明显,当学习后面的Task时,模型会遗忘先前学习的Task
  • Multi-task Learning:同时训练所有的任务,loss目标函数上进行加权求和(或平均),但该方法需要在训练之前准备所有训练数据,比较费时;
  • Sequential Multi-task Learning:依然选择multi-task,例如BERT中,同时完成word-level task(MLM)和sentence-level task(NSP)。然后采用continual training,每个step挑选多个任务进行训练。

2.3 ERNIE2.0 Model

  ERNIE2.0模型依然采用多层Transformer的Encoder作为模型架构,Transformer模型详解相见博客:​​Transformer模型​​。
  除了word emebdding、segment embedding和position embedding,额外添加Task Embedding:类似segment embedding,为每个Task进行编号,并映射到对应的embedding table上。

三、实验

3.1 对比方案:

  • 英文数据上,对比XLNet、BERT,并在GLUE评测任务上测试;
  • 中文数据上,对比BERT、ERNIE1.0;
  • 对比不同的multi-task learning和continual learning;

3.2 实验设置

(1)pre-training语料:

  • 英文:Wikipedia、BookCorpus、Reddit、Discovery;
  • 中文:encyclopedia, news, dialogue, information retrieval and discourse relation data from a search engine.(来自百度)

    (2)pre-training设置:
  • 模型规模:Base:12 layers、12 self-attention heads、768 dim;Large:24 layers、16 self-attention heads、1024 dim;
  • 设备:Base:48 Nvidia V100 GPU;Large:64 Nvidia V100 GPU;优化器:Adam;
  • 参数:max_len=512,batch_size=393216/512=768

(3)Fine-tuning设置:

  英文GLUE:

【预训练语言模型】ERNIE2.0: A Continual Pre-Training Framework for Language Understanding_数据_10


  中文数据:

【预训练语言模型】ERNIE2.0: A Continual Pre-Training Framework for Language Understanding_搜索引擎_11

3.3 实验结果

【预训练语言模型】ERNIE2.0: A Continual Pre-Training Framework for Language Understanding_自然语言处理_12

3.4 Continual Pre-training对比:

  • 挑选4个Pre-training Task,语料挑选原始的10%进行训练;
  • 对比三种不同类型的training,包括multi-task learning、continual learning以及本文提出的方法:
  • 对比效果如下所示,可知continual multi-task learning可以进一步提高下游任务fine-tuning的效果: