分类目录:《自然语言处理从入门到应用》总目录
相关文章:
· 预训练模型总览:从宏观视角了解预训练模型
· 预训练模型总览:词嵌入的两大范式
· 预训练模型总览:两大任务类型
· 预训练模型总览:预训练模型的拓展
· 预训练模型总览:迁移学习与微调
· 预训练模型总览:预训练模型存在的问题
从大量无标注数据中进行预训练使许多自然语言处理任务获得显著的性能提升。总的来看,预训练模型的优势包括:
- 在庞大的无标注数据上进行预训练可以获取更通用的语言表示,并有利于下游任务
- 为模型提供了一个更好的初始化参数,在目标任务上具备更好的泛化性能、并加速收敛
- 是一种有效的正则化手段,避免在小数据集上过拟合,而一个随机初始化的深层模型容易对小数据集过拟合
下图就是各种预训练模型的思维导图,其分别按照词嵌入(Word Embedding)方式分为静态词向量(Static Word Embedding)和动态词向量(Dynamic Word Embedding)方式分类、按照监督学习和自监督学习方式进行分类、按照拓展能力等分类方式展现:
思维导图可编辑源文件下载地址:https://download.csdn.net/download/hy592070616/87954682
预训练模型按照任务类型可分为2大类:监督学习和自监督学习两类。监督学习在预训练模型中的主要代表就是CoVe,CoVe作为机器翻译的Encoder部分可以应用于多种NLP下游任务。除了CoVe外,NLP中的绝大多数预训练模型都属于自监督学习。自监督学习实际是无监督学习的一种方法,自监督学习主要是利用辅助任务从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征。因此,从“构造监督信息”这个角度来看,自监督也可看作是监督学习和无监督学习的一种融合。严格地讲,从是否由人工标注来看,自监督学习属于无监督学习的范畴。综合各种自监督学习的分类方式,我们可以将预训练模型在自监督学习中分为两种类型:基于上下文(Context Based)和基于对比(Contrastive Based)。
基于上下文(Context Based)的预训练模型
基于上下文的预训练模型主要基于数据本身的上下文信息构造辅助任务,在NLP中我们通常引入语言模型作为训练目标。预训练模型中的语言模型主要分为三大类:
模式 | 语言模型类型 | 优点 | 缺点 |
---|---|---|---|
LM | 自回归语言模型 | 语言模型联合概率的无偏估计,考虑被预测单词之间的相关性,适合生成任务 | 按照文本序列顺序拆解(从左至右分解),无法获取双向上下文信息表征 |
DAE | 自编码语言模型 | 本质为降噪自编码(DAE)特征表示,通过引入噪声[MASK] 构建MLM获取双向上下文信息表征 |
引入独立性假设,为语言模型联合概率的有偏估计,没有考虑预测token之间的相关性;预训练时的[MASK] 噪声在微调不会出现,造成两阶段不匹配问题 |
PLM | 排列语言模型 | 综合了LM和DAE两者的优点 | 收敛速度较慢; XLNet对于多种排列方式随机采样,并仅预测了排列后序列的最后几个token |
自回归语言模型(LM): p ( x 1 : T ) = ∏ t = 1 T p ( x t ∣ x 0 : t − 1 ) p(x_{1:T})=\prod_{t=1}^Tp(x_t|x_{0:t-1}) p(x1:T)=∏t=1Tp(xt∣x0:t−1)
- 优点:语言模型(Language Model,LM)联合概率的无偏估计,即为传统的语言模型,考虑被预测单词之间的相关性,天然适合处理自然生成任务
- 缺点:联合概率按照文本序列顺序拆解(从左至右分解),无法获取双向上下文信息表征
- 代表模型:ELMO、GPT-1、GPT-2、ULMFiT、SiATL
自编码语言模型(DAE): p ( x 1 : T ) ≈ ∑ t = 1 T m t log p ( x t ∣ x ~ ) p(x_{1:T})\approx\sum_{t=1}^Tm_t\log p(x_t|\tilde{x}) p(x1:T)≈∑t=1Tmtlogp(xt∣x~)
BERT是自编码语言模型的一个典型代表,但其采用的MLM策略和Transformer Encoder结构,导致其不适合直接处理生成任务。为了解决这一问题,也可采用基于Seq2Seq MLM方法:Encoder部分采取masked策略,而Decoder部分以自回归的方式预测Encoder部分被masked的token。此外,还有很多基于自编码语言模型的预训练模型提出了不同的MLM增强策略,称之为 Enhanced Masked Language Modeling(E-MLM)。
- 优点:
- 本质为降噪自编码(DAE)特征表示,通过引入噪声
[MASK]
构建MLM(Masked Language Model),获取双向上下文信息表征(DAE旨在采用部分损坏的输入,期望在恢复原始的未失真输入,故自编码语言模型MLM也可以视为DAE的一种) - 如果当前token被预测,则 m t = 1 m_t=1 mt=1,否则 m t = 0 m_t=0 mt=0 , x ~ \tilde{x} x~为原始文本被替换后的输入
- 本质为降噪自编码(DAE)特征表示,通过引入噪声
- 缺点:
- 引入独立性假设,为语言模型联合概率的有偏估计,没有考虑预测token之间的相关性
- 预训练时的
[MASK]
噪声在微调阶段不会出现,造成两阶段不匹配问题,为解决这一问题,在15%被预测的token中,80%被替换为[MASK]
,10%被随机替换,10%被替换为原词。
- 代表模型:BERT、MASS、T5、RoBERTa、UniLM、XLM、SpanBERT、ERNIE-Baidu、E-BERT、ERNIE-THU、BART。
排列语言模型(PLM)
排列语言模型(Permuted Language Model,PLM)综合了LM和DAE两者的优点。严格来讲,PLM和LM是标准的自回归语言模型(PLM是一种广义的自回归方法),而MLM不是一个标准的语言模型,其引入独立性假设,隐式地学习预测token(mask部分本身的强相关性)之间的关系。如果衡量序列中被建模的依赖关系的数量,标准的自回归语言模型可以达到上界,不依赖于任何独立假设。LM和PLM能够通过自回归方式来显式地学习预测token之间的关系。然而,LM无法对双向上下文进行表征,而PLM将这种传统的自回归语言模型(LM)进行推广,将顺序拆解变为随机拆解(从左至右分解),产生上下文相关的双向特征表示。PLM最为典型的代表就是XLNet,这是对标准语言模型的一个复兴:提出一个框架来连接标准语言模型建模方法和预训练方法。PLM的本质就是语言模型联合概率的多种分解机制的体现,其将LM的顺序拆解推广到随机拆解。PLM没有改变原始文本序列的自然位置,只是定义了token预测的顺序。PLM只是针对语言模型建模不同排列下的因式分解排列,并不是词的位置信息的重新排列。
下表是上述三类语言模型的总结:
模型 | 语言模型 | 编码器 | 特点 |
---|---|---|---|
ELMo | LM | LSTM | 2个单向语言模型(前向和后向)的拼接 |
ULMFiT | LM | LSTM | 引入逐层解冻解决微调中的灾难性问题 |
SiATL | LM | LSTM | 引入逐层解冻+辅助LM解决微调中的遗忘问題 |
GPT-1 | LM | Transformer-Decoder | 首次将Transformer应用于预训练语言模型 |
GPT-2 | LM | Transformer-Decoder | 没有特定模型的微调流程,生成任务取得很好效果 |
BERT | DAE(MLM) | Transformer-Encoder | MLM获取上下文相关的双向特征表示 |
MASS / T5 | DAE(Seq2SeqMLM) | Transformer | 统一为类似Seq2Seq的预训练框架来改进BERT生成任务 |
UNILM | DAE(E-MLM) | Transformer-Encoder | 通过3个mask矩阵改进BERT生成任务 |
RoBERTa | DAE(E-MLM) | Transformer-Encoder | 预训练过程中采用动态mask |
XLM | DAE(E-MLM) | Transformer-Encoder | 在翻译语言模型的平行语料上执行MLM |
SpanBERT | DAE(E-MLM) | Transformer-Encoder | 采用random span mask和span boundary objective2个预训练目标 |
ENRIE-BAIDU | DAE(E-MLM) | Transformer-Encoder | mask实体和短语,2.0版本引入多任务进行增量学习 |
ENRIE-THU / E-BERT | DAE(E-MLM) | Transformer-Encoder | 引入知识:将实体向量与文本表示融合 |
BART | DAE | Transformer | 采用Seq2Seq框架和5中DAE方法 |
XLNET | DAE(PLM) | Transformer-XL | 双向上下文表征和双注意力流 |
基于对比(Contrastive Based)的预训练模型
基于对比(Contrastive Based)的预训练模型不同于基于上下文(Context Based)的预训练模型通过数据本身的上下文信息构造辅助任务,基于对比的预训练模型主要是利用样本间的约束信息构造辅助任务,这类方法也称为对比学习(Contrastive learning,CTL)。对比学习假设观察到的文本对(正样本)在语义上比随机采样的文本(负样本)更相似。对比学习背后的原理是在对比中学习。相较于语言建模,对比学习的计算复杂度更低,因而在预训练中是理想的替代训练标准。
对比学习通过构建正样本和负样本,然后度量正负样本的距离来实现自监督学习。可以使用点积的方式构造距离函数,然后构造一个Softmax 分类器,以正确分类正样本和负样本。鼓励相似性度量函数将较大的值分配给正例,将较小的值分配给负例:
L
N
=
−
E
x
,
y
+
,
y
∗
−
[
log
exp
(
s
(
x
,
y
+
)
)
exp
(
s
(
x
,
y
+
)
)
+
∑
j
=
1
N
−
1
exp
(
(
s
(
x
,
y
j
−
)
)
)
]
L_N = -E_{x, y^+, y*-}[\log\frac{\exp{(s(x, y^+))}}{\exp{(s(x, y^+))+\sum_{j=1}^{N-1}\exp((s(x,y_j^-)))}}]
LN=−Ex,y+,y∗−[logexp(s(x,y+))+∑j=1N−1exp((s(x,yj−)))exp(s(x,y+))]
相似性度量函数通常可采取两种方式: s ( x , y ) = f enc ( x ) T f enc ( x ) s(x, y)=f_{\text{enc}(x)}^Tf_{\text{enc}(x)} s(x,y)=fenc(x)Tfenc(x)或 s ( x , y ) = f enc ( x ⨁ y ) s(x, y)=f_{\text{enc}}(x\bigoplus y) s(x,y)=fenc(x⨁y)
Deep InfoMax (DIM)
DIM 方法来源于计算机视觉领域,对于全局的特征(编码器最终的输出)和局部特征(编码器中间层的特征),DIM需要判断全局特征和局部特征是否来自同一图像。InfoWord将DIM引入到NLP中,用Mutual Information的一个下界InfoNCE来重新解释BERT和XLNET的objective,并提出一个新的DIM objective以最大化一个句子的global representation和其中一个n-gram的local representation之间的Mutual Information。
Replaced Token Detection(RTD)
噪声对比估计(Noise-Contrastive Estimation,NCE)通过训练一个二元分类器来区分真实样本和假样本,可以很好的训练词嵌入。RTD与NCE相同,根据上下文语境来预测token是否替换 。word2vec中的negative sampling可看作是RTD,负样本从词表中进行带权采样。ELECTRA提出了一种新的预训练任务框架,构建生成器—判别器,生成器通过MLM任务对被mask的token进行预测,迭代器判断原始句子中的每个token是否被替代过。生成器相当于对输入进行了筛选,使判别器的任务更难,从而学习到更好的表示。生成器—判别器共享embedding,生成器部分采用small-BERT,判别器部分对每一个token采用sigmoid计算loss。微调阶段只采用判别器部分。RTD也被看作解决MLM中[MASK]
在预训练和微调间差异的一种手段。WKLM在实体层进行替换,替换为具有相同实体类型的实体名称。
Next Sentence Prediction (NSP)
NSP 区分两个输入句子是否为训练语料库中的连续片段,第二个句子50%为第一句子实际的连续片段,50%从其他语料随机选择。NSP可以引导模型理解两个输入句子之间的关系,从而使对此信息敏感的下游任务受益,如QA任务。而RoBERTa表明:NSP在对单个文档中的文本块进行训练时,去除NSP任务或在下游任务上可以稍微提高性能。
Sentence Order Prediction(SOP)
SOP 使用同一文档中的两个连续片段作为正样本,而相同的两个连续片段互换顺序作为负样本。NSP融合了主题预测和相关性预测,主题预测更容易,这使得模型进行预测时仅依赖于主题学习。与NSP不同,SOP使用同一文档中的两个连续段作为正样本,但顺序互换为负样本。采取SOP任务的PTMs有ALBERT、StructBERT、BERTje等。
下表是对上述四类预训练模型的总结:文章来源:https://www.toymoban.com/news/detail-517633.html
基于对比的方法 | 特点 | 预训练模型 |
---|---|---|
DIM:Deep InfoMax | 最大化全局特征和局部特征间的互信息 | InfoWord |
RTD:Replaced Token Detection | 根据上下文语境来预测token是否替挨 | word2vec-ns / ELECTRA / WKLM |
NSP:Next Sentence Prediction | 区分两个输入句子是否为语料库中的连续片段 | BERT / UniLM |
SOP:Sentence Order Prediction | 相关性预测,将两个连续片段互换顺序 | ALBERT / StructBERT / BERTje |
参考文献:
[1] QIU XIPENG, SUN TIANXIANG, XU YIGE, et al. Pre-trained models for natural language processing: A survey[J]. 中国科学:技术科学(英文版),2020.文章来源地址https://www.toymoban.com/news/detail-517633.html
到了这里,关于自然语言处理从入门到应用——预训练模型总览:两大任务类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!