预训练模型调研 - dylhhh/2020-LIC-RE- GitHub Wiki

1、自回归语言模型

  • 根据上文内容预测下一个可能跟随的单词,就是常说的自左向右的语言模型任务,或者反过来根据下文预测前面的单词
  • 优点:语言模型 ( language model,LM ) 联合概率的无偏估计,即为传统的语言模型,考虑被预测单词之间的相关性,适合处理自然生成任务。
  • 缺点:联合概率按照文本序列顺序拆解 ( 从左至右分解 ),无法获取双向上下文信息表征。

ELMO

GPT-1

  • GPT是生成式的语言模型,使用了一种半监督方式,它结合了无监督的预训练(pre-training)和有监督的微调(fine-tuning),旨在学习一种通用的表示方式,它转移到各种类型的NLP任务中都可以做很少的改变。
  • 主体使用的是Transform的decoder部分,代替了LSTM来更好的捕获长距离语言结构,应用于无标记文本,在fine-tuning的时候使用了task-aware的方法,并且使模型的变化最小的前提下获得有效的转化。
  • 优点: (1)循环神经网络所捕捉到的信息较少,而Transformer可以捕捉到更长范围的信息。 (2)计算速度比循环神经网络更快,易于并行化 (3)实验结果显示Transformer的效果比ELMo和LSTM网络更好
  • 缺点: 对于某些类型的任务需要对输入数据的结构作调整

GPT-2

  • GPT2 与 GPT 的大致模型框架和预训练目标是一致的,而区别主要在于以下几个方面: (1)使用了更大的模型 (2)使用了数量更大、质量更高、涵盖范围更广的预训练数据 (3)采用了无监督多任务联合训练的方式,即对于输入样本,给予一个该样本所属的类别作为引导字符串,这使得该模型能够同时对多项任务进行联合训练,并增强模型的泛化能力
  • 获取:https://github.com/Morizeyao/GPT2-Chinese

2、自编码语言模型

  • 优点:本质为降噪自编码 特征表示,通过引入噪声 [MASK] 构建MLM ( Masked language model ),获取双向上下文信息表征。
  • 缺点:引入独立性假设,为语言模型联合概率的有偏估计,没有考虑预测token之间的相关性;预训练时的 [MASK] 噪声在finetune阶段不会出现,造成两阶段不匹配问题。

BERT

  • BERT 的特征抽取结构为双向的 Transformer,直接套用了 《Attention is all you need》中的 Transformer Encoder Block 结构,用了Masked LM和Next Sentence Prediction两种方法分别捕捉词语和句子级别的representation。
  • 优点: (1)能够获取上下文信息 (2)Transformer相对rnn更加高效、能捕捉更长距离的依赖。 (3)模型有两个 loss,一个是 Masked Language Model,另一个是 Next Sentence Prediction。前者用于建模更广泛的上下文,通过 mask 来强制模型给每个词记住更多的上下文信息;后者用来建模多个句子之间的关系,强迫 [CLS] token 的顶层状态编码更多的篇章信息。
  • 缺点: (1)[MASK]标记在实际预测中不会出现,训练时用过多[MASK]影响模型表现 (2)每个batch只有15%的token被预测,所以BERT收敛得比left-to-right模型要慢

BERT-wwm

  • BERT中文预训练模型的升级版本,主要更改了原预训练阶段的训练样本生成策略。 简单来说,原有基于WordPiece的分词方式会把一个完整的词切分成若干个子词,在生成训练样本时,这些被分开的子词会随机被mask。
  • 采用全词Mask。如果一个完整的词的部分WordPiece子词被mask,则同属该词的其他部分也会被mask,即全词Mask。这样的做法强制模型预测整个词,而不是词的一部分,即对同一个词不同字符的预测将使得其具有相同的上下文,这将加强同一个词不同字符之间的相关性,或者说引入了先验知识,使得BERT的独立性假设在同一个词的预测上被打破,但又保证了不同的词之间的独立性。
  • 获取:https://github.com/ymcui/Chinese-BERT-wwm

RoBERTa

  • BERT的改进版,主要的区别有如下几点: (1)移除了NSP(下一句预测)预训练任务 (2)采用动态Masking,把数据复制10份,然后统一进行随机mask; (3)使用更多的数据,更长时间的训练,更大的bacth size
  • 获取:https://github.com/brightmart/roberta_zh

ERNIE 1.0

  • ERNIE增强了模型语义表示能力:直接对先验语义知识单元进行建模,并引入多源数据知识。具体来说,相较于 BERT 学习原始语言信号,ERNIE 模型通过对词、实体等语义单元的掩码,使得模型学习完整概念的语义表示。
  • 3种MASK策略: (1)Basic-Level Masking: 跟bert一样对单字进行mask,无法获得高层次的语义信息; (2)Phrase-Level Masking: 输入仍然是单字级别的,mask连续短语; (3)Entity-Level Masking: 首先进行实体识别,然后将识别出的实体进行mask。

ERNIE 2.0

  • ERNIE 2.0 在预训练引入多任务学习(与先验知识库进行交互),使模型能够从不同的任务中学到更多的语言知识。 主要包含3个方面的任务:[7] (1)word-aware 任务:捕捉词汇层面的信息; (2)structure-aware 任务:捕捉句法层面的信息; (3)semantic-aware 任务:捕捉语义方面的信息;
  • 获取:https://github.com/PaddlePaddle/ERNIE

3、排列语言模型

  • 排列语言模型 综合了LM和DAE-LM两者的优点,严格来讲,PLM是广义的自回归语言模型 。
  • LM和PLM能够通过自回归方式来显式地学习预测token之间的关系。然而,LM无法对双向上下文进行表征,PLM将这种传统的自回归语言模型(LM)进行推广,将顺序拆解变为随机拆解 ,产生上下文相关的双向特征表示。

XLNet

  • XLNet 不使用传统 LM模型中固定的前向或后向因式分解顺序,而是最大化所有可能因式分解顺序的期望对数似然。由于对因式分解顺序的排列操作,每个位置的语境都包含来自左侧和右侧的 token。因此,每个位置都能学习来自所有位置的语境信息,即捕捉双向语境。
  • 作为一个泛化 LM 模型,XLNet 不依赖残缺数据。因此,XLNet 不会有 BERT 的预训练-微调差异。同时,自回归目标提供一种方式,利用乘法法则对预测 token 的联合概率进行因式分解,这消除了 BERT 中的独立性假设。
  • XLNet 将 Transformer-XL 的分割循环机制(segment recurrence mechanism)和相对编码范式(relative encoding)整合到预训练中。
  • 获取:https://github.com/zihangdai/xlnet