中国石油天然气第六建设公司网站,在线设计平台行业概况,广州室内设计培训学校,外链官网近年来#xff0c;在深度学习和大数据的支撑下#xff0c;自然语言处理技术迅猛发展。而预训练语言模型把自然语言处理带入了一个新的阶段#xff0c;也得到了工业界的广泛关注。通过大数据预训练加小数据微调#xff0c;自然语言处理任务的解决#xff0c;无须再依赖大量… 近年来在深度学习和大数据的支撑下自然语言处理技术迅猛发展。而预训练语言模型把自然语言处理带入了一个新的阶段也得到了工业界的广泛关注。通过大数据预训练加小数据微调自然语言处理任务的解决无须再依赖大量的人工调参。借助预训练语言模型自然语言处理模型进入了可以大规模复制的工业化时代。那到底什么是预训练为什么需要预训练呢以下内容节选自《预训练语言模型》一书--正文--01预训练预训练属于迁移学习的范畴。现有的神经网络在进行训练时一般基于后向传播Back PropagationBP算法先对网络中的参数进行随机初始化再利用随机梯度下降Stochastic Gradient DescentSGD等优化算法不断优化模型参数。而预训练的思想是模型参数不再是随机初始化的而是通过一些任务进行预先训练得到一套模型参数然后用这套参数对模型进行初始化再进行训练。在正式探讨自然语言处理的预训练之前回顾一下计算机视觉领域的预训练过程。在图片分类任务中常用的深度学习模型是卷积神经网络Convolutional Neural NetworkCNN。对于由多个层级结构组成的CNN来说不同层学到的图像特征是不一样的越浅的层学到的特征越通用越深的层学到的特征和具体任务的关联性越强。在图1中[6]对基于人脸Faces、汽车Cars、大象Elephants和椅子Chairs的任务而言最浅层的通用特征“线条”都是一样的。因此在大规模图片数据上预先获取“通用特征”会对下游任务有非常大的帮助。图1 图像预训练示例再举个简单的例子假设一个《怪物猎人世界》的游戏玩家想给游戏中的怪物如飞雷龙、浮空龙、风漂龙、骨锤龙等做一个多分类系统而有标注的数据只有游戏中的若干图片重新训练一个神经网络模型显然不太可能。幸运的是现有的大规模图片数据库ImageNet 中一共有20000多类标注好的数据集包含超过1400 万张图片。通过ImageNet 训练出来的CNN 网络参数可以迁移至怪物猎人的训练任务中。在比较浅层的CNN网络初始化时可以使用已经训练好的参数而在模型的高层其参数可以随机初始化。在训练怪物猎人的特定任务时既可以采用冻结Frozen参数的方式也就是浅层参数一直保持不变也可以采用微调的方式也就是浅层参数仍然随着任务的训练不断发生改变从而更加适应怪物的分类。将图片转换为计算机可以处理的表示形式如像素点的RGB 值就可以输入至神经网络进行后续处理。对自然语言来说如何进行表示是首先要考虑的问题。02自然语言表示语言是离散的符号自然语言的表示学习就是将人类的语言表示成更易于计算机理解的方式。尤其是在深度神经网络技术兴起之后如何在网络的输入层使用更好的自然语言表示成了值得关注的问题。举例来说每个人的名字就是我们作为自然人的一个“表示”名字可以是若干个汉字也可以是英文或法文单词。当然也可以通过一些方法表示成由0 和1 组成的字符串或者转换为一定长度的向量让计算机更容易处理。自然语言的表示有很多方式图2 给出了自然语言表示学习的发展路径。图2 自然语言表示学习的发展路径最早期的n-gram 模型是基于统计的语言模型通过前n个词来预测第n1个词。分布式理论Distributional Hypothesis在20世纪50年代被提出这也是近10年从word2vec到BERT 等一系列预训练语言模型的自然语言表示的基础思想。早期的词袋模型虽然能够方便计算机快速处理却无法衡量单词间的语义相似度。到了1986 年分布式表示Distributed Representation被提出。虽然分布式理论和分布式表示同样都有“分布式”这个词但其英文表述是不一样的含义也不尽相同。分布式理论的核心思想是上下文相似的词其语义也相似是一种统计意义上的分布而在分布式表示中并没有统计意义上的分布。分布式表示是指文本的一种表示方式。相比于独热表示分布式表示将文本在更低的维度进行表示。随着word2vec和GloVe等基于分布式表示的方法被提出判断语义的相似度成为可能。图3给出了GloVe 词向量的可视化结果。图3 Glove 词向量的可视化结果2013 年之后基于大规模的文本数据训练得到的分布式表示逐渐成了自然语言表示的主流方法。在这种方式下每个单词都有了一个固定的词向量表示语义相近的单词其向量也是相似的。从图3中可以看出queen 和king以及woman 和man 就是以“性别”为基准来对应的单词。有了自然语言的表示就可以将表示后的词向量送入神经网络进行训练。这就是第一代预训练语言模型。一些读者可能已经注意到word2vec 的提出时间是2013 年那么为何在2018 年ELMo出现之后预训练语言模型才有了突飞猛进的发展呢最重要的原因就是之前的词向量表示无法很好地解决一词多义的问题。我们都知道多义词是自然语言中的常见现象也体现了语言的灵活性和高效性。例如单词play 可以表示玩游戏可以表示播放可以表示做某项运动还可以表示演奏某个乐器。但在以word2vec 为代表的第一代预训练语言模型中一个单词的词向量是固定不变的也就是说在对单词play 进行向量表示的过程中不会区分单词的不同含义这就导致无法区分多义词的不同语义。美国语言学家Zellig S. Harris 在1954 年的一篇文章[10] 中提到“在相近上下文中出现的单词是相似的”words are similar if they appear in similar contexts。英国语言学家John Rupert Firth 在1957 年的A synopsis of linguistic theory 中提到“你可以通过单词的上下文知道其含义”You shall know a word by the company it keeps。EMLo 论文的原始标题是Deep contextualized word representation从“contextualized”一词可以看出ELMo 考虑了上下文的词向量表示方法以双向LSTM 作为特征提取器同时考虑了上下文的信息从而较好地解决了多义词的表示问题后续章节会详细介绍。ELMo 开启了第二代预训练语言模型的时代即“预训练 微调”的范式。自ELMo 后Transformer[11] 作为更强大的特征提取器被应用到后续的各种预训练语言模型中如GPT、BERT 等不断刷新自然语言处理领域任务的SOTAState Of The Art当前最优结果表现。Transformer 是由谷歌在2017 年提出的其创新性地使用了Self-Attention自注意力更善于捕捉长距离的特征同时其并行能力也非常强大逐步取代了RNN成了最主要的自然语言处理特征提取工具。03预训练语言模型发展史及分类图4 给出了预训练语言模型的发展史。图4 预训练语言模型的发展史可以看到2013 年word2vec 开启了自然语言预训练的序章。随后Attention的出现使得模型可以关注更重要的信息之后的几年基于上下文的动态词向量表示ELMo以及使用Self-Attention 机制的特征提取器Transformer的提出将预训练语言模型的效果提升到了新的高度。随后BERT、RoBERTa、XLNet、T5、ALBERT、GPT-3 等模型从自然语言理解及自然语言生成等角度不断刷新自然语言处理领域任务的SOTA 表现。《预训练语言模型》一书的后面章节会详细介绍典型的预训练语言模型。这里我们简单区分自回归Autoregressive和自编码Autoencoder两种不同的模型。简单来讲自回归模型可以类比为早期的统计语言模型Statistical Language Model也就是根据上文预测下一个单词或者根据下文预测前面的单词。例如ELMo 是将两个方向从左至右和从右至左的自回归模型进行了拼接实现了双向语言模型但本质上仍然属于自回归模型。自编码模型如BERT通常被称为是降噪自编码Denosing Autoencoder模型可以在输入中随机掩盖一个单词相当于加入噪声在预训练过程中根据上下文预测被掩码词因此可以认为是一个降噪denosing的过程。这种模型的好处是可以同时利用被预测单词的上下文信息劣势是在下游的微调阶段不会出现掩码词因此[MASK] 标记会导致预训练和微调阶段不一致的问题。BERT 的应对策略是针对掩码词以80% 的概率对这个单词进行掩码操作10% 的概率使用一个随机单词而10% 的概率使用原始单词即不进行任何操作这样就可以增强对上下文的依赖进而提升纠错能力。XLNet 改进了预训练阶段的掩码模式使用了自回归的模式因此XLNet 被看作广义的自回归模型。国际计算语言学协会The Association for Computational Linguistics主席、微软亚洲研究院前副院长周明曾给出了一个关于自回归和自编码模型的示例如图5所示。图5 自回归模型和自编码模型的示例自回归模型就是根据句子中前面的单词预测下一个单词。例如通过“LM is a typical task in natural language ____”预测单词“processing”而自编码模型则是通过覆盖句中的单词或者对句子做结构调整让模型复原单词和词序从而调节网络参数。在图5 (a) 所示的单词级别的例子中句子中的“natural”被覆盖而在图5 (b) 所示的句子级别的例子中不仅有单词的覆盖还有词序的改变。可以看出ELMo、GPT 系列和XLNet 属于自回归模型而BERT、ERINE、RoBERTa 等属于自编码模型。前文提到在利用CNN 进行图像的预训练时浅层特征更加通用深层特征更加具体。通过对BERT 的观察研究人员发现预训练语言模型也有相同的表现随着模型由浅至深特征也更具体。图6 给出了针对BERTLARGE提取语义和语法信息的结果其中语法信息Syntactic Information如词性Part-Of-SpeechPOS、成分Constituents、依存Dependencies更早出现在BERTLARGE 的浅层而语义信息Semantic Information如共指消解Coreference、语义原型角色Sementic Proto-RolesSPR等则出现在BERTLARGE 的深层。图6 BERTLARGE 提取语义和语法信息的结果目前预训练语言模型的通用范式是1基于大规模文本预训练得出通用的语言表示。2通过微调的方式将学习到的知识传递到不同的下游任务中。在微调的过程中每种预训练语言模型的用法不尽相同《预训练语言模型》一书的后面章节将对典型的模型进行详细阐述。这里以GPT为例简单介绍在预训练之后在下游不同的自然语言处理任务的具体用法如图7所示。图7 GPT 架构图及下游任务图7的左边是基于Transformer 的GPT 的基本框架而图7的右边则展示了如何将不同的自然语言处理任务调整至适应GPT 框架的形式。以分类任务为例在一段文本的开头和结尾分别加上“Start”和“Extract”标示符对其进行改造然后使用Transformer 进行处理最后通过线性层Linear完成监督学习任务并输出分类结果。类似地对于多选Multiple Choice任务需要根据上下文Context选择正确答案Answer。具体来说如图7所示将答案“Answer”与其上下文“Context”通过添加首尾标示符及中间分隔符的方式进行改造对其他答案进行相同的操作然后分别经过Transformer再经过线性层得到每一个选项的可能性概率值。由于不同的预训练语言模型的结构不同、优势不同在实际应用中需要根据具体的任务选择不同的模型。例如BERT 系列模型更适用于理解任务而GPT 系列模型更适用于生成任务。预训练语言模型在近两年得到了蓬勃发展复旦大学的邱锡鹏教授在Pretrained models for natural language processing: A survey这篇综述论文中整理了一张预训练语言模型分类体系图图8为笔者翻译后的版本。图8 预训练语言模型分类体系图依据四种不同的分类标准对主流预训练语言模型进行了分类整理。第一个标准是语言表示是否上下文相关。正如前文提到的早期的预训练语言模型如word2vec、GloVe都是上下文无关的而ELMo 之后的大多数预训练语言模型都是上下文相关的。第二个标准是模型的核心结构。例如ELMo 使用的是双向LSTM 结构而BERT 的核心结构是Transformer EncoderGPT 的核心结构是Transformer Decoder。第三个标准是任务类型可以分为有监督模型和无监督/自监督模型两类。例如机器翻译模型训练数据通常是句对属于有监督模型如CoVe等而大多数预训练语言模型都属于无监督/自监督模型如ELMo、BERT等。第四个标准是模型扩展。随着预训练语言模型的发展出现了不同的扩展方向如模型结构的扩展、领域的扩展、任务的扩展和模态的扩展等。每个模型的细节在《预训练语言模型》一书的后面章节会有更详细的介绍。预训练语言模型为自然语言处理开启了新的篇章模型结构和训练方法不断创新从单语言到多语言再到多模态几乎支持了所有自然语言处理任务并可扩展到视觉、语音等领域大大降低了自然语言处理研究和应用的门槛。周明曾提到“大数据预训练 小数据微调标志着自然语言处理进入了大工业化的时代。”但GPT-3 的“大力出奇迹”有1750 亿参数量是否真正标志着人工智能从感知智能到认知智能的跨越预训练语言模型的缺陷在哪里未来的发展趋势如何《预训练语言模型》一书的第8章对这些问题进行了探讨感兴趣的同学可以阅读《预训练语言模型》一书▼参考文献[1] MIKOLOV T, CHEN K, CORRADO G S, et al. Efficient estimation of word representations in vector space[C]//ICLR. 2013.[2] PENNINGTON J, SOCHER R, MANNING C D. Glove: Global vectors for word representation[C]//EMNLP. 2014.[3] PETERS M E, NEUMANN M, IYYER M, et al. Deep contextualized word representations[C]//NAACL-HLT. 2018.[4] TENNEY I, DAS D, PAVLICK E. Bert rediscovers the classical nlp pipeline [C]//ACL. 2019.[5] RADFORD A. Improving language understanding by generative pretraining[C], 2018.[6] QIU X, SUN T, XU Y, et al. Pre-trained models for natural language processing:A survey[J]. ArXiv, 2020, abs/2003.08271.▊《预训练语言模型》邵浩 刘一烽 编著梳理预训练语言模型的发展历史、基本概念剖析具有代表性的预训练语言模型的实现细节配代码预训练语言模型的评测、应用及趋势分析京东限时活动快快扫码抢购吧好书值得分享这次我们有4本相送哦~ 各位小可爱可通过以下两种方式参与方式一本文『评论点赞』前3名方式二『最走心评论』幸运儿1名注意活动截止时间为【6月13日(周日) 18点整】哦~▼点击阅读原文获取本书详情~