NLP的12种后BERT预训练方法

作者:朝九晚九
学校:北京航空航天大学
研究方向:自然语言处理

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,使用两种预训练方法:

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

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

具体实现使用了几种策略: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为了减少模型参数主要有以下几点:

词嵌入参数因式分解;

隐藏层间参数共享

作者认为,词向量只是记忆了相对少量的词语的信息,更多的语义和句法等信息是由隐层记忆的,因此,他们认为,词嵌入的维度可以不必与隐藏层的维度一致,可以通过降低词嵌入的维度的方式来减少参数量。全连接层、注意力层的参数均是共享的,也就是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符号,而是采用排列组合的方式,借鉴自回归语言模型的方法预测下一个单词。且采用了双流自注意力机制。


本文转自:深度学习自然语言处理(微信号:zenRRan),转载此文目的在于传递更多信息,版权归原作者所有。
作者:朝九晚九
学校:北京航空航天大学
研究方向:自然语言处理

最新文章