
!
阅读大概需要41分钟

跟随小博主,每天进步一丢丢

转载 | NewBeeNLP
作者 | JayLou娄杰
预训练模型(Pre-trained Models,PTMs)的出现将NLP带入了一个全新时代。2020年3月18日,邱锡鹏老师发表了关于NLP预训练模型的综述《Pre-trained Models for Natural Language Processing: A Survey》,这是一篇全面的综述,系统地对PTMs进行了归纳分类。
本文以此篇综述论文为主要参考,通过借鉴不同的归纳方法进行总结,同时也整合了专栏之前已经介绍过的《nlp中的词向量对比》和《nlp中的预训练语言模型总结》两篇文章,以QA形式对PTMs进行全面总结归纳。
获取总结图片下载以及单模型精读请到下面的github地址,希望为大家的学习工作提供一些帮助。
https://github.com/loujie0822/Pre-trained-Models
笔者注:本文总结与原综述论文也有一些不同之处(详见文末),如有错误或不当之处请指正。很多总结归纳的点不太好拿捏,大家多给意见~

深度学习时代,为了充分训练深层模型参数并防止过拟合,通常需要更多标注数据喂养。在NLP领域,标注数据更是一个昂贵资源。PTMs从大量无标注数据中进行预训练使许多NLP任务获得显著的性能提升。总的来看,预训练模型PTMs的优势包括:
词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称。概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量,这也是分布式表示:向量的每一维度都没有实际意义,而整体代表一个具体概念。
分布式表示相较于传统的独热编码(one-hot)表示具备更强的表示能力,而独热编码存在维度灾难和语义鸿沟(不能进行相似度计算)等问题。传统的分布式表示方法,如矩阵分解(SVD/LSA)、LDA等均是根据全局语料进行训练,是机器学习时代的产物。
PTMs也属于分布式表示的范畴,本文的PTMs主要介绍深度学习时代、自NNLM[2]以来的 “modern” 词嵌入。
PTMs的发展经历从浅层的词嵌入到深层编码两个阶段,按照这两个主要的发展阶段,我们归纳出PTMs两大范式:「浅层词嵌入」和「预训练编码器」。
浅层词嵌入,这一类PTMs范式是我们通常所说的“词向量”,其主要特点是学习到的是上下文独立的静态词嵌入,其主要代表为NNLM[2]、word2vec(CBOW[3]、Skip-Gram[3])、Glove等。这一类词嵌入通常采取浅层网络进行训练,而应用于下游任务时,整个模型的其余部分仍需要从头开始学习。因此,对于这一范式的PTMs没有必要采取深层神经网络进行训练,采取浅层网络加速训练也可以产生好的词嵌入。
浅层词嵌入的主要缺陷为:

图1给出了三种常见的浅层词嵌入之间的对比,Glove可以被看作是更换了目标函数和权重函数的全局word2vec。此外,相关文献也提出了句子和文档级别的嵌入方式,如 Skip-thought[8]、Context2Vec[9]等。
第二类PTMs范式为预训练编码器,主要目的是通过一个预训练的编码器能够输出上下文相关的词向量,解决一词多义的问题。这一类预训练编码器输出的向量称之为「上下文相关的词嵌入」。

图2给出了NLP各种编码器间的对比。PTMs中预训练编码器通常采用LSTM和Transformer(Transformer-XL),其中Transformer又依据其attention-mask方式分为Transformer-Encoder和Transformer-Decoder两部分。此外,Transformer也可看作是一种图神经网络GNN[10]。
这一类「预训练编码器」范式的PTMs主要代表有ELMO[11]、GPT-1[12]、BERT[13]、XLNet[14]等。
PTMs按照任务类型可分为2大类:监督学习 和 无监督学习/自监督学习。
监督学习在NLP-PTMs中的主要代表就是CoVe[15],CoVe作为机器翻译的encoder部分可以应用于多种NLP下游任务。除了CoVe外,NLP中的绝大多数PTMs属于自监督学习。
自监督学习是无监督学习的一种方法[16],自监督学习[17]主要是利用辅助任务从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征。因此,从“构造监督信息”这个角度来看,自监督也可看作是监督学习和无监督学习的一种融合[1]。严格地讲,从是否由人工标注来看,自监督学习属于无监督学习的范畴。
综合各种自监督学习的分类方式,笔者将NLP-PTMs在自监督学习中分为两种类型[17]:基于上下文(Context Based)和基于对比(Contrastive Based)。
基于上下文的PTMs,主要基于数据本身的上下文信息构造辅助任务,在NLP中我们通常引入语言模型作为训练目标。PTMs中的语言模型主要分为三大类:

BERT[13]是自编码语言模型的一个典型代表,但其采用的MLM策略和Transformer-Encoder结构,导致其不适合直接处理生成任务。为了解决这一问题,也可采用基于Seq2Seq MLM方法:encoder部分采取masked策略,而decoder部分以自回归的方式预测encoder部分被mask的token。此外,还有很多基于自编码语言模型的PTMs提出了不同的MLM增强策略,称之为 Enhanced Masked Language Modeling (E-MLM) [1]。
上述DAE具体的PTMs方法见图4。
排列语言模型综合了LM和DAE-LM两者的优点。严格来讲,PLM和LM是标准的自回归语言模型(注:PLM是一种广义的自回归方法[14]),而MLM不是一个标准的语言模型,其引入独立性假设,隐式地学习预测token(mask部分本身的强相关性)之间的关系。如果衡量序列中被建模的依赖关系的数量,标准的自回归语言模型可以达到上界,不依赖于任何独立假设。LM和PLM能够通过自回归方式来显式地学习预测token之间的关系。然而,LM无法对双向上下文进行表征,借鉴 NADE[32]的思想,PLM将这种传统的自回归语言模型(LM)进行推广,将顺序拆解变为随机拆解(从左至右分解),产生上下文相关的双向特征表示。
PLM最为典型的代表就是XLNet[14],这是对标准语言模型的一个复兴[33]:提出一个框架来连接标准语言模型建模方法和预训练方法。
一个关键问题:为什么PLM可以实现双向上下文的建模?PLM的本质就是语言模型联合概率的多种分解机制的体现,其将LM的顺序拆解推广到随机拆解。PLM没有改变原始文本序列的自然位置,只是定义了token预测的顺序。PLM只是针对语言模型建模不同排列下的因式分解排列,并不是词的位置信息的重新排列。
最后,我们对基于上述三类语言模型的PTMs进行总结:

基于对比(Contrastive Based),不同于Context Based主要基于数据本身的上下文信息构造辅助任利用,Contrastive Based主要利用样本间的约束信息构造辅助任务,这类方法也是 Contrastive learning[34](CTL)。CTL假设观察到的文本对(正样本)在语义上比随机采样的文本(负样本)更相似。CTL 背后的原理是「在对比中学习」。相较于语言建模,CTL 的计算复杂度更低,因而在预训练中是理想的替代训练标准。
CTL通过构建正样本(positive)和负样本(negative),然后度量正负样本的距离来实现自监督学习[17]:可以使用点积的方式构造距离函数,然后构造一个 softmax 分类器,以正确分类正样本和负样本。鼓励相似性度量函数将较大的值分配给正例,将较小的值分配给负例:
相似性度量函数通常可采取两种方式:
或
第一类:Deep InfoMax (DIM)
DIM方法来源于CV领域,对于全局的特征(编码器最终的输出)和局部特征(编码器中间层的特征),DIM需要判断全局特征和局部特征是否来自同一图像[17]。
InfoWord [35]将DIM引入到NLP中,用Mutual Information的一个下界InfoNCE来重新解释BERT和XLNET的objective,并提出一个新的DIM objective以最大化一个句子的global representation和其中一个ngram的local representation之间的Mutual Information。
第二类:Replaced Token Detection (RTD)
噪声对比估计(Noise-Contrastive Estimation,NCE)[36]通过训练一个二元分类器来区分真实样本和假样本,可以很好的训练词嵌入。RTD于与 NCE 相同,根据上下文语境来预测token是否替换 。
第三类:Next Sentence Prediction (NSP)
NSP 区分两个输入句子是否为训练语料库中的连续片段,第二个句子50%为第一句子实际的连续片段,50%从其他语料随机选择。NSP可以引导模型理解两个输入句子之间的关系,从而使对此信息敏感的下游任务受益,如QA任务。而RoBERTa[23]表明:NSP在对单个文档中的文本块进行训练时,去除NSP任务或在下游任务上可以稍微提高性能。
第四类:Sentence Order Prediction (SOP)
SOP 使用同一文档中的两个连续片段作为正样本,而相同的两个连续片段互换顺序作为负样本。NSP融合了主题预测和相关性预测,主题预测更容易,这使得模型进行预测时仅依赖于主题学习。与NSP不同,SOP使用同一文档中的两个连续段作为正样本,但顺序互换为负样本。采取SOP任务的PTMs有ALBERT[39]、StructBERT[40]、BERTje[41]。
图5对上述基于对比(Contrastive Based)的四类PTMs进行了总结:

PTMs通常从通用大型文本语料库中学习通用语言表示,但是缺少特定领域的知识。PTMs中设计一些辅助的预训练任务,将外部知识库中的领域知识整合到PTMs中被证明是有效的[1]。
由于预训练的语言模型通常包含至少数亿个参数,因此很难将它们部署在现实应用程序中的在线服务和资源受限的设备上。模型压缩是减小模型尺寸并提高计算效率的有效方法。
5种PTMs的压缩方法为:

随着PTMs在NLP领域的成功,许多研究者开始关注多模态领域的PTMs,主要为通用的视觉和语言特征编码表示而设计。多模态的PTMs在一些庞大的跨模式数据语料库(带有文字的语音、视频、图像)上进行了预训练,如带有文字的语音、视频、图像等,主要有 VideoBERT[63]、CBT[64] 、UniViLM[65]、 ViL-BERT[66] 、 LXMERT[67]、 VisualBERT [68]、 B2T2[69] 、Unicoder-VL[70] 、UNITER [71]、 VL-BERT[72] 、 SpeechBERT[73]。
大多数PTM都在诸如Wikipedia的通用语料中训练,而在领域化的特定场景会收到限制。如基于生物医学文本的BioBERT[74],基于科学文本的SciBERT[75],基于临床文本的Clinical-BERT[76]。一些工作还尝试将PTMs适应目标领域的应用,如医疗实体标准化[77]、专利分类PatentBERT [78]、情感分析SentiLR[79]关键词提取[80]。
学习跨语言共享的多语言文本表示形式对于许多跨语言的NLP任务起着重要的作用。
虽然多语言的PTMs在跨语言上任务表现良好,但用单一语言训练的PTMs明显好于多语言的PTMs。此外一些单语言的PTMs被提出:BERT[83],ZEN[84],NEZHA[85], ERNIE-Baidu[27][28], BERTje[86], CamemBERT[87], FlauBERT[88], RobBERT [89]。
PTMs从大型语料库中获取通用语言知识,如何有效地将其知识适应下游任务是一个关键问题。迁移学习的方式主要有归纳迁移(顺序迁移学习、多任务学习)、领域自适应(转导迁移)、跨语言学习等。NLP中PTMs的迁移方式是顺序迁移学习。
1)选择合适的预训练任务:语言模型是PTM是最为流行的预训练任务;同的预训练任务有其自身的偏置,并且对不同的任务会产生不同的效果。例如,NSP任务可以使诸如问答(QA)和自然语言推论(NLI)之类的下游任务受益。
2)选择合适的模型架构:例如BERT采用的MLM策略和Transformer-Encoder结构,导致其不适合直接处理生成任务。
3)选择合适的数据:下游任务的数据应该近似于PTMs的预训练任务,现在已有有很多现成的PTMs可以方便地用于各种特定领域或特定语言的下游任务。
4)选择合适的layers进行transfer:主要包括Embedding迁移、top layer迁移和all layer迁移。如word2vec和Glove可采用Embedding迁移,BERT可采用top layer迁移,Elmo可采用all layer迁移。
5)特征集成还是fine-tune?对于特征集成预训练参数是freeze的,而fine-tune是unfreeze的。特征集成方式却需要特定任务的体系结构,fine-tune方法通常比特征提取方法更为通用和方便。
通过更好的微调策略进一步激发PTMs性能
(本部分来自[91],有删减和修正)
虽然 PTMs已经在很多 NLP 任务中显示出了他们强大的能力,然而由于语言的复杂性,仍存在诸多挑战。综述论文给出了五个未来 PTMs发展方向的建议。
目前,PTMs并没有达到其上限。大多数的PTMs可通过使用更长训练步长和更大数据集来提升其性能。目前NLP中的SOTA也可通过加深模型层数来更进一步提升。这将导致更加高昂的训练成本。因此,一个更加务实的方向是在现有的软硬件基础上,设计出更高效的模型结构、自监督预训练任务、优化器和训练技巧等。例如,ELECTRA [37]就是此方向上很好的一个解决方案。
在实践中,不同的目标任务需要 PTMs拥有不同功能。而 PTMs与下游目标任务间的差异通常在于两方面:模型架构与数据分布。尽管较大的PTMs通常情况下会带来更好的性能表现,但在低计算资源下如何使用是一个实际问题。例如,对于 NLP 的 PTM 来说,对于模型压缩的研究只是个开始,Transformer 的全连接架构也使得模型压缩具有挑战性。
对于PTMs,Transformer 已经被证实是一个高效的架构。然而 Transformer 最大的局限在于其计算复杂度(输入序列长度的平方倍)。受限于 GPU 显存大小,目前大多数 PTM 无法处理超过 512 个 token 的序列长度。打破这一限制需要改进 Transformer 的结构设计,例如 Transformer-XL[92]。
finetune是目前将 PTM 的知识转移至下游任务的主要方法,但效率却很低,每个下游任务都需要有特定的finetune参数。一个可以改进的解决方案是固定PTMs的原始参数,并为特定任务添加小型的finetune适配器,这样就可以使用共享的PTMs 服务于多个下游任务。
PTMs 的可解释性与可靠性仍然需要从各个方面去探索,它能够帮助我们理解 PTM 的工作机制,为更好的使用及性能改进提供指引。
写在最后:本文总结与原综述论文[1]的一些不同之处:

参考文献
[1] Pre-trained Models for Natural Language Processing: A Survey https://arxiv.org/abs/2003.08271v2
[2] A neural probabilistic language model. [3] Distributed representations of words and phrases and their compositionality. [4] GloVe: Global vectors for word representation [5] Character-aware neural language models. [6] Enriching word vectors with subword information. [7] Neural machine translation of rare words with subword units. [8] Skip-thought vectors [9] Context2Vec: Learning generic context embedding with bidirec- tional LSTM. [10] https://zhuanlan.zhihu.com/p/110805093 [11] Deep contextualized word representations. [12] Improving language understanding by generative pre-training. [13] abBERT: pre-training of deep bidirectional trans- formers for language understanding [14] abcXLnet: Generalized Autoregressive Pretraining for Language Understanding [15] Learned in translation: Contextualized word vectors. [16] abSelf-supervised Visual Feature Learning with Deep Neural Networks: A Survey [17] abcdSelf-supervised Learning 再次入门 https://zhuanlan.zhihu.com/p/108906502 [18] Language models are unsuper- vised multitask learners [19] ULMFiT:Universal Language Model Fine-tuning) [20] SiATL:An Embarrassingly Simple Approach for Transfer Learning from Pretrained Language Models [21] MASS: masked sequence to sequence pre-training for language generation. [22] Exploring the limits of transfer learning with a uni- fied text-to-text transformer [23] abRoBERTa: A ro- bustly optimized BERT pretraining approach [24] Unified language model pre-training for natural language un- derstanding and generation. [25] abCross-lingual lan- guage model pretraining. [26] SpanBERT: Improving pre- training by representing and predicting spans. [27] ERNIE: enhanced representation through knowledge integration [28] ERNIE 2.0: A continual pre-training framework for language understanding [29] BERT is not a knowledge base (yet): Factual knowledge vs. name-based reasoning in unsupervised QA [30] ERNIE: enhanced language representation with informative entities [31] BART: denoising sequence-to- sequence pre-training for natural language generation, transla- tion, and comprehension. [32] Neural autoregressive distribution estimation [33] 他们创造了横扫NLP的XLNet:专访CMU博士杨植麟 [34] A theoretical analysis of contrastive unsupervised representation learning. [35] A mutual information maximization perspective of language representation learning [36] Noise-contrastive estimation: A new estimation principle for unnormalized sta- tistical models. [37] ELECTRA: Pre-training text encoders as discriminators rather than generators [38] Pretrained encyclopedia: Weakly supervised knowledge-pretrained language model [39] aALBERT: A lite BERT for self-supervised learning of language representations. [40] StructBERT: Incorporating language struc- tures into pre-training for deep lanuage understanding [41] BERTje: A dutch BERT model [42] Informing unsupervised pre- training with external linguistic knowledge [43] Sentilr: Linguistic knowledge enhanced lan- guage representation for sentiment analysis [44] SenseBERT: Driving some sense into BERT [45] Knowledge enhanced contextual word representations [46] KG-BERT: BERT for Knowledge Graph Completion [47] K-BERT: Enabling lan- guage representation with knowledge graph [48] K-adapter: Infusing knowledge into pre-trained models with adapters [49] KEPLER: A unified model for knowledge embedding and pre-trained language representation [50] Enhancing pre-trained language representations with rich knowledge for machine reading comprehension. [51] Compressing BERT: Studying the effects of weight pruning on transfer learning [52] REDUCING TRANSFORMER DEPTH ON DEMAND WITH STRUCTURED DROPOUT [53] Q- BERT: Hessian based ultra low precision quantization of BERT. [54] Q8BERT: Quantized 8bit BERT. [55] BERT-of-Theseus: Compressing BERT by pro- gressive module replacing [56] DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter. [57] MT-DNN:Improving Multi-Task Deep Neural Networks via Knowledge Distillation for Natural Language Understanding [58] TinyBERT: Distilling BERT for natural language understanding [59] MobileBERT: Task-agnostic com- pression of BERT by progressive knowledge transfer [60] MiniLM: Deep self-attention distillation for task-agnostic compression of pre-trained transformers. [61] Extreme language model compression with optimal subwords and shared projections [62] Distilling task-specific knowledge from BERT into simple neural networks [63] VideoBERT: A joint model for video and language representation learning [64] Contrastive bidirectional transformer for temporal representation learning [65] Univilm: A unified video and language pre-training model for multimodal under- standing and generation. [66] ViL- BERT: Pretraining task-agnostic visiolinguistic representa- tions for vision-and-language tasks [67] LXMERT: learning cross- modality encoder representations from transformers. [68] VisualBERT: A simple and performant base- line for vision and language. [69] Fusion of detected objects in text for visual question answering. [70] Unicoder-vl: A universal encoder for vision and language by cross-modal pre-training [71] UNITER: learning universal image-text representations [72] VL-BERT: pre-training of generic visual- linguistic representations [73] SpeechBERT: Cross-modal pre-trained language model for end-to-end spoken question answering. [74] BioBERT: a pre-trained biomedical language representation model for biomedical text mining. [75] SciBERT: A pre- trained language model for scientific text [76] Clin-icalBERT: Modeling clinical notes and predicting hospital readmission. [77] BERT-based rank- ing for biomedical entity normalization. [78] PatentBERT: Patent clas- sification with fine-tuning a pre-trained BERT model. [79] SentiLR: Linguistic knowledge enhanced lan- guage representation for sentiment analysis. [80] Progress notes clas- sification and keyword extraction using attention-based deep learning models with BERT. [82] Unicoder: A universal language encoder by pre-training with multiple cross-lingual tasks. [83] Pre-training with whole word masking for chinese BERT [84] ZEN: pre-training chinese text encoder enhanced by n-gram representations. [85] NEZHA: Neural contextualized representa- tion for chinese language understanding [86] BERTje: A dutch BERT model. [87] CamemBERT: a tasty french language model [88] FlauBERT: Unsupervised language model pre-training for french [89] Rob-BERT: a dutch RoBERTa-based language model. [90] Multi-task deep neural networks for natural language understanding. [91] https://zhuanlan.zhihu.com/p/114785639 [92] Transformer-XL: Atten- tive language models beyond a fixed-length context.
下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套!后台回复【五件套】
下载二:南大模式识别PPT后台回复【南大模式识别】
说个正事哈
由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:(1)点击页面最上方“深度学习自然语言处理”,进入公众号主页。(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。
感谢支持,比心。
投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。记得备注呦
推荐两个专辑给大家:专辑 | 李宏毅人类语言处理2020笔记专辑 | NLP论文解读专辑 | 情感分析
整理不易,还望给个在看!