赞
踩
分类目录:《自然语言处理从入门到应用》总目录
相关文章:
· 预训练模型总览:从宏观视角了解预训练模型
· 预训练模型总览:词嵌入的两大范式
· 预训练模型总览:两大任务类型
· 预训练模型总览:预训练模型的拓展
· 预训练模型总览:迁移学习与微调
· 预训练模型总览:预训练模型存在的问题
预训练属于迁移学习的范畴。现有的神经网络在进行训练时,一般基于后向传播(Back Propagation,BP)算法,先对网络中的参数进行随机初始化,再利用随机梯度下降(Stochastic Gradient Descent,SGD)等优化算法不断优化模型参数。而预训练的思想是,模型参数不再是随机初始化的,而是通过一些任务进行预先训练,得到一套模型参数,然后用这套参数对模型进行初始化,再进行训练。在正式探讨自然语言处理的预训练之前,回顾一下计算机视觉领域的预训练过程。在图片分类任务中,常用的深度学习模型是卷积神经网络(Convolutional Neural Network,CNN)。对于由多个层级结构组成的CNN来说,不同层学到的图像特征是不一样的,越浅的层学到的特征越通用,越深的层学到的特征和具体任务的关联性越强。在下图中,对基于人脸(Faces)、汽车(Cars)、大象(Elephants)和椅子(Chairs)的任务而言,最浅层的通用特征“线条”都是一样的。因此,在大规模图片数据上预先获取“通用特征”,会对下游任务有非常大的帮助。
再举个简单的例子,假设一个《怪物猎人:世界》的游戏玩家想给游戏中的怪物(如飞雷龙、浮空龙、风漂龙、骨锤龙等)做一个多分类系统,而有标注的数据只有游戏中的若干图片,重新训练一个神经网络模型显然不太可能。幸运的是,现有的大规模图片数据库ImageNet中一共有20000多类标注好的数据集,包含超过1400万张图片。通过ImageNet训练出来的CNN网络参数,可以迁移至怪物猎人的训练任务中。在比较浅层的CNN网络初始化时,可以使用已经训练好的参数,而在模型的高层,其参数可以随机初始化。在训练怪物猎人的特定任务时,既可以采用冻结(Frozen)参数的方式,也就是浅层参数一直保持不变;也可以采用微调的方式,也就是浅层参数仍然随着任务的训练不断发生改变,从而更加适应怪物的分类。将图片转换为计算机可以处理的表示形式(如像素点的RGB值),就可以输入至神经网络进行后续处理。对自然语言来说,如何进行表示是首先要考虑的问题。
从上面的例子我们就可以知道,预训练模型并不是自然语言处理领域的首创技术。在计算机视觉(Com-puter Vision,CV)领域,以ImageNet为代表的大规模图像数据为图像识别、图像分割等任务提供了良好的数据基础。因此,在计算机视觉领域,通常会使用ImageNet进行一次预训练,让模型从海量图像中充分学习如何从图像中提取特征。然后,会根据具体的目标任务,使用相应的领域数据精调,使模型进一步“靠近”目标任务的应用场景,起到领域适配和任务适配的作用。这好比人们在小学、初中和高中阶段会学习数学、语文、物理、化学和地理等基础知识,夯实基本功并构建基本的知识体系(预训练阶段)。而当人们步入大学后,将根据选择的专业(目标任务)学习某一领域更深层次的知识(精调阶段)。从以上介绍中可以看出,“预训练+精调”模式在自然语言处理领域的兴起并非偶然现象。
由于自然语言处理的核心在于如何更好地建模语言,所以在自然语言处理领域中,预训练模型通常指代的是预训练语言模型。广义上的预训练语言模型可以泛指提前经过大规模数据训练的语言模型,包括早期的以Word2vec、GloVe为代表的静态词向量模型,以及基于上下文建模的CoVe、ELMo等动态词向量模型。在2018年,以GPT和BERT为代表的基于深层Transformer的表示模型出现后,预训练语言模型这个词才真正被大家广泛熟知。因此,目前在自然语言处理领域中提到的预训练语言模型大多指此类模型。预训练语言模型的出现使得自然语言处理进入新的时代,也被认为是近些年来自然语言处理领域中的里程碑事件。相比传统的文本表示模型,预训练语言模型具有“三大”特点——大数据、大模型和大算力:
近些年基于深度学习的自然语言处理技术的重大进展主要包括NNLM(2003)、Word Embedding(2013)、Seq2Seq(2014)、Attention(2015)、Transformer(2017)、GPT(2018)、BERT(2018)、XLNet(2019)、GPT-2(2019)、GPT-3(2020)等,主要预训练模型的大致发展脉络见下图:
各种主要预训练模型的特征、抽取特征方法、使用语言模型类别等内容:
模型 | 语言模型 | 特征提取 | 上下文 | 创新点 |
---|---|---|---|---|
ELMO | LM | Bi-LSTM | 单向 | 拼接两个单向语言模型的结果 |
GPT | LM | Transformer(Decoder) | 单向 | 首次使用Transformer进行特征提取 |
BERT | MLM | Transformer(Encoder) | 双向 | 使用MLM同时获取上下文特征表示 |
ENRIE | MLM | Transformer(Encoder) | 双向 | 引入知识 |
XLNet | PLM | Transformer-XL | 双向 | PLM+双注意力流+Transformer-XL |
ALBERT | MLM | Transformer(Encoder) | 双向 | 词嵌入参数因式分解+共享隐藏层数+句子间顺序预测 |
这些模型各有优点和缺点,新模型往往是在解决旧模型缺点的基础上提出的:
预训练模型很多,发展也很迅速,下面我们介绍几种常用的预训练模型。
2018年的早些时候,AllenNLP的Matthew E. Peters等人在论文《Deep Contextualized Word Representations》(该论文获得了NAACL最佳论文奖)中首次提出了ELMo(Embedding from Language Model)预训练模型。从名称上可以看出,ELMo为了利用无标记数据,使用了语言模型。ELMo是最早进行语境化词嵌入的方法之一,是典型的自回归预训练模型,包括两个独立的单向LSTM实现的单向语言模型。ELMo的基本框架是一个双层的Bi-LSTM,每层对正向和反向的结果进行拼接,同时为增强模型的泛化能力,在第一层和第二层之间加入了一个残差结构。因此,ELMo在本质上还是一个单向的语言模型,其结构如下图所示:
预训练模型GPT是在OpenAI团队于2018年6月发表的一篇论文《Generative Pre-Training》中提出的。从名字上就可以看出GPT是一个生成式的预训练模型,与ELMo类似,也是一个自回归语言模型。与ELMo不同的是,其采用多层单向的Transformer Decoder作为特征抽取器,多项研究也表明,Transformer的特征抽取能力是强于LSTM的。GPT-2、GPT-3与GPT模型框架没有大的区别,GPT-2和GPT-3使用了更大的模型、更多的且质量更高的数据、涵盖范围更广的预训练数据,并采用了无监督多任务联合训练等。
BERT模型是由Google AI的Jacob Devlin和他的合作者们于2018年10月在arXiv上发表的一篇名为《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》的论文中提出的。BERT属于MLM模型,通过超大数据、巨大模型和极大的计算开销训练而成,在11个自然语言处理的任务中取得了最优(SOTA)结果,并在某些任务性能方面得到极大提升。
参考文献:
[1] 车万翔, 崔一鸣, 郭江. 自然语言处理:基于预训练模型的方法[M]. 电子工业出版社, 2021.
[2] 邵浩, 刘一烽. 预训练语言模型[M]. 电子工业出版社, 2021.
[3] 何晗. 自然语言处理入门[M]. 人民邮电出版社, 2019
[4] Sudharsan Ravichandiran. BERT基础教程:Transformer大模型实战[M]. 人民邮电出版社, 2023
[5] 吴茂贵, 王红星. 深入浅出Embedding:原理解析与应用实战[M]. 机械工业出版社, 2021.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。