预训练模型调研 - 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
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
🗂️ Page Index for this GitHub Wiki