NLP的12种后BERT预训练方法

2020 年 2 月 18 日 深度学习自然语言处理

点击上方,选择星标置顶,每天给你送干货

阅读大概需要11分钟

跟随小博主,每天进步一丢丢


作者:朝九晚九

学校:北京航空航天大学 

研究方向:自然语言处理



目录



1. RoBERTa
2. ERNIE
3. ERNIE 2.0
4. XLMs
5. MASS
6. UNILM
7. CMLM
8. ELECTRA
9. SpanBERT
10. ALBERT
11. MT-DNN
12. XLENET



1. RoBERTa



论文:A Robustly Optimized BERT Pretraining Approach.

在更长的句子上训练,动态更改mask的模式。



2. ERNIE



论文:Enhanced Representation through Knowledge Integration.

使用NLP的工具来识别短语和实体,包括3种层级的Masking:基本、phrase和entity。依次对基于基本级别、短语级别、实体级别分别进行mask训练。对于对话数据,还训练了Dialogue LM。使用Q和R标记query和response。

与BERT 的对比图如下:
 


3. ERNIE 2.0



论文:A Continual Pre-training Framework for Language 

Understanding.

其框架如下:
构造多个无监督任务来学习词法、句法和语义的信息;且通过增量的方式进行多任务学习,引入新任务后,并不是只使用新的任务来训练,而是通过多任务学习同时学习之前的任务和新增加的任务,这样既要学习新的信息的同时也不能忘记老的信息。多个无监督任务包括:
  • 词法任务:Word、phrase、entity级别的mask;预测一个词是否首字母大小的任务;预测当前词是否出现在其他文档里

  • 句法任务:把一个段落切分成1到m个段,随机打散,让模型来恢复;两个句子距离的任务,对于两个句子有三种关系:前后相邻,不相邻但是属于同一个文档,属于不同的文档

  • 语义任务:预测两个句子的语义和修辞关系;利用搜索引擎的数据,给定query和搜索结果,预测两个句子是强相关,弱相关和完全不相关

这几篇文章都是对 BERT 模型的  Pretraining 阶段的 Mask  进行了不同方式的改进,但是对于 BERT 模型本身(基于 Mask LM 的 Pretraining、Transformer 模型和 Fine-tuning)没有做任何修改。
 

4. XLMs


 

论文:Cross-lingual Language Model Pretraining.

跨语言版的bert,使用两种预训练方法:

  1. 基于单语种语料的无监督学习

  2. 基于跨语言的平行语料的有监督学习

具体实现使用了几种策略:shared sub-word vocabulary、causal language modeling、masked language modeling、translation language modeling,如下图所示:


5. MASS



论文:Masked Sequence to Sequence pre-training for language generation.
框架如下图所示:
Bert只是用了transformer的encoder部分,其下游任务不适用于生成任务,提出联合训练encoder和decoder模型,训练分为两步。
  • Encoder:输入为随机mask掉连续部分token的句子,使用transformer对其进行编码

  • Decoder:输入为与encoder同样的句子,但是mask掉的正好与encoder相反,使用attention机制训练,但是只预测encoder端被mask的单词。该操作可以迫使decoder预测的时候更依赖于source端的输入而不是前面预测出的token,防止误差传递。

此外,还提出一个对于mask长度的超参数k,实验表明k为句子长度的50%~70%模型效果最好。
 

6. UNILM



论文:UNIfied Language Model Pre-training for Natural Language Understanding and Generation.
框架如下图所示:

预训练了一个微调后可以同时用于自然语言理解和自然语言生成的下游任务模型,核心框架transformer,预训练和目标结合了以下三个:

  • 单向语言模型(同ELMO/GPT),在做attention时只能mask其中一个方向的上下文

  • 双向语言模型(同BERT),可以同时看到两个方向的上下文

  • seq2seq语言模型,输入为两个片段S1和S2,encoder是双向的,decoder是单向的,仅能attention到一个反向的token以及encoder的token



7. CMLM



论文:Cross-lingual masked language model.

即跨语言掩码语言模型。对于无监督机器翻译而言,跨语言预训练模型XLM已被证实是有作用的,但是现有的工作中,预训练模型的跨语言信息只是通过共享BPE空间得到。这样得到的跨语言信号非常隐式,而且受限。CMLM可以将显式的跨语言信息作为训练信号,更好的训练跨语言预训练模型。方法分为3步:

  • 由n-gram向量推断得到n-gram翻译表。分别用两种语言的单语语料通过fasttext训练单语的n-gram向量,之后通过无监督跨语言词向量的方法得到跨语言n-gram向量,并由两种语言的n-gram向量相似度推断得到两种n-gram之间的翻译表。

  • 在n-gram翻译表的辅助下,用提出的新的训练任务CMLM进行跨语言预训练:随机的mask掉n-gram的字符,在模型输出端,让其预测被mask掉的n-gram字符对应的几个翻译选项。由于n-gram BPE字符的长度与其对应的翻译候选可能不一样,为此借助IBM Model 的思想进行改进。

  • 用预训练的模型初始化翻译模型得到的编码器和解码器,进行无监督机器翻译模型的训练。



8. ELECTRA



论文:Efficiently Learning an Encoder that Classifies Token Replacements Accurately.

提出了新的预训练任务和框架,把生成式的Masked language model(MLM)预训练任务改成了判别式的Replaced token detection(RTD)任务,判断当前token是否被语言模型替换过。使用一个MLM的G-BERT来对输入句子进行更改,然后给D-BERT去判断哪个字被改过,如下:

生成器的训练目标还是MLM(作者在后文也验证了这种方法更好),判别器的目标是序列标注(判断每个token是真是假),两者同时训练,但判别器的梯度不会传给生成器。
 

9. SpanBERT



论文:SpanBERT:Improving Pre-training by Representing and Predicting Spans.

在跨度选择任务(例如问答和共指解析)方面取得了实质性进展。训练的方法主要是通过:

(1)掩码连续随机跨度,而不是随机令牌。
(2)优化跨边界目标(SBO),训练跨度边界表示以预测被屏蔽跨度的整个内容,而不依赖于其中的各个令牌表示。


10. ALBERT



论文:A Lite BERT For Self-Supervised Learning Of Language Representations.

试图解决大部分预训练模型训练成本高,参数量巨大的问题。ALBERT为了减少模型参数主要有以下几点:

  1. 词嵌入参数因式分解;

  2. 隐藏层间参数共享

作者认为,词向量只是记忆了相对少量的词语的信息,更多的语义和句法等信息是由隐层记忆的,因此,他们认为,词嵌入的维度可以不必与隐藏层的维度一致,可以通过降低词嵌入的维度的方式来减少参数量。全连接层、注意力层的参数均是共享的,也就是ALBERT依然有多层的深度连接,但是各层之间的参数是一样的
此外,为了提升模型性能,ALBERT提出了一种新的训练任务:
句子间顺序预测,是给模型两个句子,让模型去预测两个句子的前后顺序。
 

11. MT-DNN



论文:Multi-Task Deep Neural Networks for Natural Language Understanding
BERT的fine-tune是针对不同的任务在编码层后面加上task-layer,而MT-DNN就是把所有任务fine-tune的步骤都拼到了一起。这里根据输出的不同将任务分成了四种。如下图所示:



12. XLENET



论文:Net: Generalized Autoregressive Pretraining for Language Understanding.

结合了自回归和自编码的优势,仍遵循两阶段的过程,第一个阶段是语言模型预训练阶段;第二阶段是任务数据Fine-tuning阶段,但是改动第一个阶段,不像Bert那种带Mask符号,而是采用排列组合的方式,借鉴自回归语言模型的方法预测下一个单词。且采用了双流自注意力机制。

  



方便交流学习,备注: 昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多: 机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等
记得备注呦


推荐阅读:
【ACL 2019】腾讯AI Lab解读三大前沿方向及20篇入选论文
【一分钟论文】IJCAI2019 | Self-attentive Biaffine Dependency  Parsing
【一分钟论文】 NAACL2019-使用感知句法词表示的句法增强神经机器翻译
【一分钟论文】Semi-supervised Sequence Learning半监督序列学习
【一分钟论文】Deep Biaffine Attention for Neural Dependency Parsing
详解Transition-based Dependency parser基于转移的依存句法解析器
经验 | 初入NLP领域的一些小建议
学术 | 如何写一篇合格的NLP论文
干货 | 那些高产的学者都是怎样工作的?
一个简单有效的联合模型
近年来NLP在法律领域的相关研究工作




让更多的人知道你“在看”
登录查看更多
1

相关内容

BERT全称Bidirectional Encoder Representations from Transformers,是预训练语言表示的方法,可以在大型文本语料库(如维基百科)上训练通用的“语言理解”模型,然后将该模型用于下游NLP任务,比如机器翻译、问答。
基于多头注意力胶囊网络的文本分类模型
专知会员服务
76+阅读 · 2020年5月24日
深度学习自然语言处理概述,216页ppt,Jindřich Helcl
专知会员服务
212+阅读 · 2020年4月26日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
BERT进展2019四篇必读论文
专知会员服务
67+阅读 · 2020年1月2日
一文读懂最强中文NLP预训练模型ERNIE
AINLP
25+阅读 · 2019年10月22日
站在BERT肩膀上的NLP新秀们(PART II)
AINLP
35+阅读 · 2019年6月8日
站在BERT肩膀上的NLP新秀们:XLMs、MASS和UNILM
PaperWeekly
16+阅读 · 2019年6月6日
中文版-BERT-预训练的深度双向Transformer语言模型-详细介绍
BERT-预训练的强大
微信AI
60+阅读 · 2019年3月7日
3分钟看懂史上最强NLP模型BERT
机器学习算法与Python学习
7+阅读 · 2019年2月27日
自然语言处理中的语言模型预训练方法
PaperWeekly
14+阅读 · 2018年10月21日
Arxiv
15+阅读 · 2019年9月11日
Arxiv
11+阅读 · 2019年6月19日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Conditional BERT Contextual Augmentation
Arxiv
8+阅读 · 2018年12月17日
VIP会员
相关VIP内容
相关资讯
一文读懂最强中文NLP预训练模型ERNIE
AINLP
25+阅读 · 2019年10月22日
站在BERT肩膀上的NLP新秀们(PART II)
AINLP
35+阅读 · 2019年6月8日
站在BERT肩膀上的NLP新秀们:XLMs、MASS和UNILM
PaperWeekly
16+阅读 · 2019年6月6日
中文版-BERT-预训练的深度双向Transformer语言模型-详细介绍
BERT-预训练的强大
微信AI
60+阅读 · 2019年3月7日
3分钟看懂史上最强NLP模型BERT
机器学习算法与Python学习
7+阅读 · 2019年2月27日
自然语言处理中的语言模型预训练方法
PaperWeekly
14+阅读 · 2018年10月21日
Top
微信扫码咨询专知VIP会员