本文对ELMo以来的15个代表性的预训练语言模型进行了多维度的对比和分析。
在之前写过的《NLP的游戏规则从此改写?从word2vec,ELMo到BERT》一文中,介绍了从word2vec到ELMo再到BERT的发展路径。而在BERT出现之后的这大半年的时间里,模型预训练的方法又被Google、Facebook、微软、百度、OpenAI等极少数几个玩得起游戏的核心玩家反复迭代了若干版,一次次的刷新我们这些吃瓜群众的案板上的瓜。
有没有感觉出瓜速度太快以至于吃速跟不上?不用担心,小编帮你们找来了这篇总结的恰到好处的文章,对ELMo以来的15个代表性的预训练语言模型进行了多维度的对比和分析。尤其是近期找工作的小伙伴们注意啦,这篇文章里面提出来的一些问题很适合作为面试考点(划掉,交流点)噢~
七.预训练语言模型的未来一、不同视角下的预训练语言模型对比Q1:从不同维度对比【预训练语言模型】
优点:本质为降噪自编码特征表示,通过引入噪声[MASK]构建MLM,获取上下文相关的双向特征表示;
缺点:引入独立性假设,为联合概率的有偏估计,没有考虑预测[MASK]之间的相关性
不适合直接处理生成任务,MLM预训练目标的设置造成预训练过程和生成过程不一致;
预训练时的[MASK]噪声在finetune阶段不会出现,造成两阶段不匹配问题;
都通过一些技巧解决finetune过程中的灾难性遗忘问题:如果预训练用的无监督数据和任务数据所在领域不同,逐层解冻带来的效果更明显[9];
辅助目标(辅助目标对于大数据集有用,小数据反而有所下降,与SiATL相反),解决finetune过程中的灾难性遗忘;
没有针对特定模型的精调流程:GPT2.0认为预训练中已包含很多特定任务所需的信息。
这一部分对BERT的内核机制进行介绍,在回答“BERT为什么如此有效?”之前,首先介绍Transformer的内核机制。
本质是self attention通过attention mask动态编码变长序列,解决长距离依赖、无位置偏差、可并行计算
当输入信息的维度 d 比较高,点积模型的值通常有比较大方差,从而导致 softmax 函数的梯度会比较小。因此,缩放点积模型可以较好地解决这一问题。
双线性点积模型,引入非对称性,更具健壮性(Attention mask对角元素值不一定是最大的,也就是说当前位置对自身的注意力得分不一定最高)。
常用的Attention机制为加性模型和点积模型,理论上加性模型和点积模型的复杂度差不多,但是点积模型在实现上可以更好地利用矩阵乘积,从而计算效率更高(实际上,随着维度d的增大,加性模型会明显好于点积模型)。
Transformer中先通过切头(spilt)再分别进行Scaled Dot-Product Attention,可以使进行点积计算的维度d不大(防止梯度消失),同时缩小attention mask矩阵。
2)Position-wise Feed-Forward Networks
到一个更大维度的特征空间,然后使用ReLU引入非线性进行筛选,最后恢复回原始维度。
Transformer在抛弃了 LSTM 结构后,FFN 中的 ReLU成为了一个主要的提供非线性变换的单元。
1. 由于BERT本身在预训练过程和生成过程的不一致,并没有做生成任务的相应机制,导致在生成任务上效果不佳,不能直接应用于生成任务。2. 如果将BERT或者GPT用于Seq2Seq的自然语言生成任务,可以分别进行预训练编码器和解码器,但是编码器-注意力-解码器结构没有被联合训练,BERT和GPT在条件生成任务中只是次优效果。五、BERT系列模型进展介绍
Q12:针对BERT原生模型,后续的BERT系列模型是如何引入【知识】的?
在预训练阶段引入知识(实际是预先识别出的实体),引入3种[MASK]策略预测:
Basic-Level Masking:跟BERT一样,对subword进行mask,无法获取高层次语义;
过程有很大的不同,会产生两个独立的向量空间。为解决上述问题,在有实体输入的位置,将实体向量和文本表示通过非线性变换进行融合,以融合词汇、句法和知识信息;
引入改进的预训练目标 Denoising entity auto-encoder (DEA):要求模型能够根据给定的实体序列和文本序列来预测对应的实体;
Q13:针对BERT原生模型,后续的BERT系列模型是如何引入【多任务学习机制】的?
MTDNN是在下游任务引入多任务机制的,而ERNIE 2.0 是在预训练引入
持续更新预训练模型,这种连续交替的学习范式不会使模型忘记之前学到的语言知识。
将3大类任务的若干个子任务一起用于训练,引入新的任务时会将继续引入之前的任务,防止忘记之前已经学到的知识,具体是一个逐渐增加任务数量的过程[22]:
Q14:针对BERT原生模型,后续的BERT系列模型是如何改进【mask策略】的?
BERT WWM(Google):按照whole word维度进行mask,然后进行预测;
ERNIE等系列:引入外部知识,按照entity维度进行mask,然后进行预测;
SpanBert:不需要按照先验的词/实体/短语等边界信息进行mask,而是采取随机mask:
采用Span Masking:根据几何分布,随机选择一段空间长度,之后再根据均匀分布随机选择起始位置,最后按照长度mask;通过采样,平均被遮盖长度是3.8 个词的长度;
引入Span Boundary Objective:新的预训练目标旨在使被mask的Span 边界的词向量能学习到 Span中被mask的部分;新的预训练目标和MLM一起使用;
注意:BERT WWM、ERNIE等系列、SpanBERT旨在隐式地学习预测词(mask部分本身的强相关性)之间的关系[23],而在 XLNet 中,是通过 PLM 加上自回归方式来显式地学习预测词之间关系;
Q15:针对BERT原生模型,后续的BERT系列模型是如何进行【精细调参】的?
在BERT系列模型后,Google发布的XLNet在问答、文本分类、自然语言理解等任务上都大幅超越BERT;XLNet的提出是对标准语言模型(自回归)的一个复兴[25],提出一个框架来连接语言建模方法和预训练方法。
天然适合处理生成任务,但是无法对双向上下文进行表征,因此人们反而转向自编码思想的研究(如BERT系列模型);
BERT系列模型引入独立性假设,没有考虑预测[MASK]之间的相关性;
预训练时的[MASK]噪声在finetune阶段不会出现,造成两阶段不匹配问题;
有什么办法能构建一个模型使得同时具有AR和AE的优点并且没有它们缺点呢?
如果衡量序列中被建模的依赖关系的数量,标准的LM可以达到上界,不像MLM一样,LM不依赖于任何独立假设。借鉴 NADE[27]的思想,XLNet将标准的LM推广到PLM。
将LM的顺序拆解推广到随机拆解,但是需要保留每个词的原始位置信息(PLM只是
是共享的,PLM就一定可以学习到各种双向上下文;换句话说,当我们把所有可能的