自然语言处理预训练模型的研究综述

2020-12-07 08:20余同瑞韩晓臻李家辉
计算机工程与应用 2020年23期
关键词:微调向量文本

余同瑞,金 冉 ,2,韩晓臻,李家辉,郁 婷

1.浙江万里学院 大数据与软件工程学院,浙江 宁波 315100

2.浙江大学 计算机科学与技术学院,杭州 310027

1 概述

自然语言处理(Natural Language Processing,NLP)是一门把语言学、计算机科学、数学等相关领域融为一体的交叉学科,该领域的相关应用如:机器翻译、智能语音助手、文本自动分类等都取得了突破性的成就,这离不开预训练技术的支持。预训练技术是指预先设计网络结构,并对编码后的数据输入到网络结构中进行训练,增加模型的泛化能力。预训练技术最初是针对图像领域的问题提出(如ResNET[1]、VGG[2]),因为效果良好,相关技术被应用到NLP 领域。预训练后的模型可以直接根据下游任务需求进行微调,免去了从零开始的过程。

语言模型可以看作是一串词序列的概率分布,因此在早期,研究人员提出了N-gram 模型[3],它是基于统计语言模型的算法,但是这种做法只能通过概率统计进行判断,会使数据出现严重的稀疏性,无法考虑词内部的关联。

随着深度学习技术的迅速发展,词嵌入正式登上历史的舞台,Bengio 等人在 2003 年提出 NNLM 模型[4],随后出现了一系列词向量技术(如Word2Vec[5]、Glove[6]、FastTest[7]等)为文本提供了一种数值化的表示方法,但是无法解决一词多义的问题。于是ELMo[8]应运而生,它采用双向的长短期记忆网络(Long Short-Term Memory,LSTM)进行进行预训练,将词向量由静态转化为动态,使其可以结合上下文来赋予词义。GPT[9]首次提出了无监督的预训练和有监督的微调,使得训练好的模型能够更好地适应下游任务。BERT[10]首次将双向Transformer[11]用于语言模型,使得该模型相对GPT对语境的理解会更加深刻。自此进入了预训练技术的新时代,为后续NLP领域的发展提供了更多可能性。

本文将按照预训练模型的历史发展顺序进行概述,将预训练技术的发展主要分为两个阶段,分别是基于概率统计的传统预训练模型阶段和基于深度学习的预训练模型阶段。

2 传统预训练技术模型

在NLP 领域上,其发展趋势可以概括为三阶段:规则-统计-深度学习。一开始,研究人员的研究的重点放在如何设定语言规则上面,但是这个阶段不能处理复杂的语言问题,因此没有太大的应用价值。20 世纪70 年代后互联网高速发展,丰富的语料库和完善的硬件系统极大地推动了NLP的发展,它开始由理性主义向经验主义过渡发展,让实际应用更贴合人们的需求。N-gram采用的特征处理方法尽管还有很多不足,但是在NLP发展史上极具代表性。2006年后深度学习(Deep Learning,DL)[12]被应用于自然语言处理领域,出现了一批基于神经网络(Neural Network,NN)的预处理模型,本章主要介绍一些早期具有代表性的经典预处理模型,并对它们进行分析比较。

2.1 统计语言模型

统计语言模型是基于语料库对语句进行预处理,然后对下游任务进行基于概率的判别。N-gram是自然语言处理领域中具有显著历史意义的特征处理模型,基本思想是将文本内容按照字节大小为N的滑动窗口进行操作,形成长度是N的字节片段序列,然后对所有的序列的出现频度进行统计,并且按照实现设定好的阈值进行过滤,形成了这个文本的特征向量空间。然后用训练后的模型对语句进行概率评估,来判断组成是否合理。Brants等人[13]经过测试发现,N-gram模型可以使用万亿个单词进行训练,并且模型性能会得到很好的提升。Cavnar[14]利用N-gram进行文本分类,在测试中取得了很好的成绩。

然而若文本较长,词汇链概率的计算复杂度很高,作者通过马尔可夫的假设去减少关联词的数量来简化算式。然而N-gram中n的取值对模型性能也会产生较为明显的影响,所以为了平衡约束信息和数据稀疏性之间的关系,对于百万级的数据,目前一般采用二元或者三元模型,但是其局限性也很明显,就是无法建模更远的关系,训练中要是有些n元组未出现则需要使用平滑法[15]和回退法[16]来解决。

2.2 传统预训练模型分析

N-gram 模型是对文本特征进行预处理,它是将相邻的n个词作为一组进行编码,这就导致它过于依赖训练语料的丰富程度,否则就很容易出现数据稀疏问题,并且计算复杂度会随着n的增加而产生指数级的增长。NNLM模型首次采用词向量的思想,分布式表示的低维词向量很好地解决了词编码带来的离散问题,但是对于计算复杂度过高的问题仍然难以解决。Word2Vec模型的计算复杂度和选取的窗口大小无关,而是由词典大小和词向量维度来决定。通过在大型语料库上进行训练,利用训练后的词向量嵌入可以明显改善很多下游任务。研究人员通过测试证实了使用词嵌入的好处[17-18],但是静态的词向量对一词多义等问题仍然无法解决,仍然属于浅层语言模型,因此迫切需要更有效的模型对数据集进行更灵活的处理。

3 基于深度学习的预训练模型

尽管Word2Vec 极大改善了对文本的处理任务,但是难以捕获上下文的高级概念,如多义词消除、句法结构等问题,为了解决这些问题,Zhou 等人[19]提出的方法是通过利用子词信息来丰富它们的语义,Neelakantan等人[20]提出为每个词义学习单独的向量。ELMo等动态预训练模型的提出很好地解决了这些问题,比如ELMo中的词向量不再是简单的向量对应关系,而是通过前后语境对多义词进行理解,用其内部函数来表达。

3.1 基于浅层词嵌入的预训练模型

因为N-gram模型在词与词之间关系建模具有很大的局限性,2000 年,Xu 等人[21]试图将 NN 引入到语言模型中,实验表明基于NN的模型相较N-gram模型可以具有更好性能。于是NNLM 应运而出,它属于浅层的预训练模型,开创性地在模型中引入了词向量的概念。如图1所示,NNLM分为输入层、隐藏层和输出层三部分。

图1 NNLM模型的结构

NNLM的目标是训练出模型:

其中,wt表示词序列中第t个单词,表示第1个词到第t-1 个词组成的子序列。

模型需要满足的约束条件是:

由式(2)可知模型中词的概率都要大于0,并且由于该语言模型是通过每个词的输入来预测下个词的输出,因此式(3)要求向量中各个分量组成|V|维的概率值一定要有一个最大概率值。

针对之前词袋模型中因为词组的不规则分布带来的数据稀疏问题,NNLM采用低维紧凑的词向量保证词之间完整的内部关系不会被影响,Wallach[22]则提出了单词二元组相结合的超越词袋主题模型以及Blei 等人[23]提出的LDA 主题模型,也是一种解决办法。在相似上下文的语境中,基于神经网络的模型性能显著优于N-gram模型[24-25],不过缺点也很明显,比如准确度低、计算复杂度高等问题。于是Mikolov等人[26]提出了循环神经网络(Recurrent Neural Network,RNN)语言模型,将NNLM的映射层删去,用来解决NNLM运行效率低,对于上下文预测准确度过低的问题。

NNLM的词向量技术在Word2Vec模型的提出中起到了关键作用,词向量为词之间的潜在语法和语义相似性提供了很好的评价尺度,Collobert等人[18]研究表明将预训练的词嵌入未标记的数据中可以明显改善许多NLP任务。

Word2Vec提出了两个新的模型体系结构:Skip-gram和CBOW,其中Skip-gram模型是通过输入特定词向量,输出上下文对应的词向量。CBOW 是通过输入某一特征词的上下文对应词向量来输出特定向量。两个模型基本思想相似,都是通过训练学习得到权重矩阵,根据矩阵得到文本中词所对应的词向量,节省了再次训练的时间和资源。它们在模型结构上与NNLM 相比,隐藏层无激活函数,输入层与输出层两者维度相同直接相连,大大减少了模型的参数数量,更多地利用了上下文的信息。

针对softmax操作时计算复杂度过高的问题,Word2Vec采用了负采样和层序两种方法来减少计算量。负采样借鉴了C&W 模型[18]和NCE[27]的思想,在输入训练样本进行NN的训练时,它每次只按照一定概率采集K个词当作负例,让一个训练样本更新一小部分权重,降低梯度下降过程中的计算量,计算开销由O(|V|) 下降到O(|k|)。层序利用的是二叉树结构,把出现频率高的词放在前面的叶子节点可以减少计算量,每次迭代的计算开销由O(|V|)下降至O(lb| |v)。

因为词嵌入取得较好的性能表现,研究人员也尝试了其他方法,比如Le等人[28]提出的段向量,Kiros等人[29]提出的Skip-Thought向量,该模型利用当时流行的序列到序列(Sequence to Sequence,Seq2seq)框架[30],实现了在大规模文本集下的无监督训练。Melamud 等人[31]提出了Context2Vec来生成上下文相关的表示。

3.2 ELMo模型

ELMo是基于特征的语言模型,可以结合上下文语境对词进行建模。与Word2Vec等采用的简单查表获取唯一表示的词向量不同,ELMo中词向量表示的是内部网络状态函数,对于相同的词它所展现出来的词向量是动态变化的。

所以它首先采用双向LSTM进行预训练,这个模型包括前向 LSTM 模型和后向 LSTM 模型,Jozefowicz 等人[32]的研究表明增加LSTM 的宽度和深度可以大大提高测试的准确性。ELMo 的双向概念是通过网络结构得以体现的,模型结构如图2所示。

图2 ELMo模型的结构

前向LSTM的模型公式:

其中,(t1,t2,…,tN)表示组成的N个单词、序列,对第k个词前文中k-1 个词进行建模,预测第k个词的概率。

后向LSTM的模型公式:

其中该公式通过已知下文建模,实现对第k个单词的概率预测。

最大化对数前向和后向的似然概率:

其中,Θx表示输入的初始词向量参数,Θs表示softmax层的参数,保证LSTM在各个方向的独立参数,两者共享部分权重,并非完全独立。

这里预训练的最终产物是biLM,Peters等[33]研究也表明使用biLM的重要性远高于使用前向语言模型和进行大规模训练语言。

ELMo 是带有任务属性的,它是由biLM 中间层表示的线性组合。针对某一单词tk,一个L层的biLM可以得到2L+1 层表示:

将卷积神经网络(Convolutional Neural Networks,CNN)获取的原始词向量、通过在biLM中计算获得的两个中间词向量进行加权平均,获得最终的ELMo:

其中,stask为正则化的softmax权重,γtask则属于标量参数,根据任务模型进行合理化缩放,对于优化过程有重要意义。

同期提出的 ULMFit 模型[34]借鉴了 Merity 等人[35]提出的AWD-LSTM框架,也是将预训练与微调相结合,只不过在微调阶段进行了两次,首先在数据集上利用预训练好的模型进行微调,然后把该模型作为具体任务模型上的多层,进行第二次微调,经过测试发现其在分类任务上性能优异。

ELMo和ULMFit相较之前模型有两点改进:(1)不同于之前固定窗口的大小,加入了上下文信息,保证向量可以包含这部分信息。(2)增加模型的神经深度,保证每一层向量都用于预测。

ELMo在6个自然语言处理任务测试中都表现出了良好的性能,尤其是在阅读理解任务上,在加入ELMo模型后提升了4.7个百分点。对于输入原始词向量也可以使用Word2Vec 采用的传统词向量,能够很好地缩短训练时间,这表明了迁移学习在NLP任务中有很好的发展前景,后续相关研究由此也得到了一种新的思路。

3.3 GPT模型

GPT首次无监督的预训练和有监督的微调相结合,使得模型更加符合下游任务的需求。此前在进行模型训练时,需要大量手动标记的数据,这限制了它们在许多缺乏注释资源的领域中的适应性[36]。如图3 所示,与ELMO 相比,GPT 针对NLP 下游任务采用统一框架,直接在Transformer[11]上的最后一层接上softmax作为任务输出层,减少了计算复杂度。Dai等[37]和Howard等[34]曾尝试先对语言模进行预训练,然后针对下游任务进行微调,在文本分类相关的工作取得了很好的改善,但是LSTM 的使用限制了它们的预测局限在短范围内。GPT 尽管采用单向的Transformer 进行编码,但是相较ELMo而言可以更好地捕获长距离语言结构。

图3 GPT模型的结构

GPT的训练过程也包括两个阶段,第一阶段是在大型文本语料库上对模型进行预训练,第二阶段是微调阶段,让模型更好地适应下游任务。

在无监督的预训练阶段,根据语料库u={u1,u2,…,un}来最大化似然函数:

其中,k表示上下文窗口大小,Θ表示参数进行建模。

使用多层Transformer decoder作为语言模型,对于上文输入进行self-attention 操作,然后结合前馈神经网络(Feedforward Neural Network,FNN),使用softmax输出目标词的分布。

其中,U代表代表上文的词向量,We代表词嵌入矩阵,Wp代表位置嵌入矩阵,对于输入的向量计算其概率分布。

在有监督的微调阶段,线性输出层为:

其中,x1,x2,…,xm和标签y组成实例,将序列输入到预训练的模型后得到输出向量,然后将其输出到具有参数Wy的附加线性输出层中来预测标签y。

需要极大化的似然函数为:

使用语言模型来辅助有监督的微调,可以改进监督模型的泛化以及加速收敛,最终下游任务使用的监督模型函数为:

其中,C表示数据集,L1(C)表示基于特征训练出的函数,L2(C)表示基于特征和标签训练出的函数,λ表示权重。

从论文中的消除实验来看,预训练部分对于测试性能影响很大,除去预训练部分模型在多个任务中的性能平均下降14.8 个百分点,并且使用Transformer 替换LSTM后,效果提升5.6个百分点。

3.4 BERT模型

BERT 证明了使用双向预训练效果更好,解决了GPT模型为了防止泄密,在进行预测时舍弃了下文信息的局限性。使用多层双向LSTM 的ELMo 前向LSTM和后向LSTM 相互独立,并未进行双向信息融合,所以并不会存在泄密的问题。但是BERT 使用的双向结构不同于ELMo 只是将两个单向的LSTM 的最高层进行简单的拼接。如图4所示,它使用的是Transformer编码器,由于self-attention机制,所以模型上下层直接全部互相连接的。

图4 BERT模型的结构

在模型输入方面,BERT输入的编码向量是词向量、位置向量、句子切分向量这三个嵌入特征的单位和。

在模型的预训练上,BERT 利用两个监督任务进行预训练。

第一个任务是Mask LM(MLM),为了解决GPT完全舍弃下文的问题,不再进行整个句子的预测而是对某个词去做预测,首先屏蔽一定百分比的词,然后通过模型实现对屏蔽词的预测,来进行训练。但是会存在两点不足:一是由于屏蔽的词在微调期间并不会出现,在进行微调时会出现与预训练不匹配的问题。二是预测的是屏蔽掉的是词而非句子,会使整个句子预训练的收敛速度更慢。针对第一个不足的解决办法是在80%时间保持屏蔽的状态,10%的时间里进行随机词替换,10%的时间使用词本身。对于第二个问题,作者认为收敛速度算是对模型效果提升的妥协。

第二个任务是Next Sentence Prediction(NSP),主要是为了实现基于上个句子对下个句子的预测,首先在50%的时间是拼接原始的上下句子,标签设为正例。50%的时间里拼接原始句子与随机的下一句,标签设为负例,这样做的目的是提取句子间的关系。但是这样的随机选择会导致随机性太强,很难针对句意进行建模。在随后发布的XLNet取消了这个任务,并且RoBERTa[38]和SpanBERT[39]通过测试发现,没有NSP 的话模型的效果会更好。

BERT首次将无监督的预训练和有监督的微调这一模式推广到更深层的双向结构中,它对自然语言处理领域带来的提升是里程碑式的。NLP 领域中存在着大量的无监督数据,通过在数据集上进行预训练,得到较为完善的语言模型。Hewitt等[40]、Jawahar等[41]、Kim 等[42]提出了几种从BERT中提取依存树和成分句法树的方法,证明了BERT 编码语法结构的能力。在处理NLP 的相关任务时可以进行迁移学习,针对任务进行有监督的微调,节约了训练模型所需的时间和资源。

但BERT模型参数量众多,预训练时对硬件要求高并且消耗时间很长,一般难以自行完成预训练过程。

3.5 基于深度学习的预训练模型分析

目前的研究表明,在大型无标注语料库进行预训练,可以在NLP任务上显著提高模型性能。由此也拉开了迁移学习的序幕,目前主要有两种常见的迁移学习方式:特征提取和微调,两者的区别就是以ELMo 等为代表的模型使用的特征提取方法冻结了预训练参数,而以BERT 等为代表的模型采用的微调则是动态地改变参数,根据下游任务进行参数上的微调。特征提取需要更复杂的任务架构,并且就综合性能来看,微调的方法更适合下游任务。

GLUE是多种自然语言理解任务的集合,可以用于评测模型的性能。如表1所示[10],使用Transformer编码器进行特征抽取的GPT、BERT 模型相较使用LSTM 编码器的ELMo 模型在情感分析、文本匹配、阅读理解等多个测试中效果取得了大幅提升,并且由于BERT采用深度双向Transformer 进行预训练,可以获取更深层次的文本表征,取得了很好的实验结果。

表1 BERT、ELMo、GPT在GLUE数据集上的实验结果 %

4 模型的相关改进工作

近年来,随着预训练技术的蓬勃发展,自然语言处理领域进入了快速发展阶段。但是由于语言的复杂性,目前仍存在很大挑战。尽管BERT 等预训练模型有了显著的性能提升,但是不同方法之间进行仔细比较都有不足,目前主要任务都是针对现有模型进行评估改进以及对高性能深度学习架构的研究。

4.1 处理性能改进

BETR 虽然功能强大,但在实际应用中仍存在问题。Lan等人[43]提出了ALBERT模型来降低BERT预训练时的内存消耗和训练速度。Liu等人[38]针对其训练不足的问题,提出了RoBERTTa 模型对其进行性能改进,主要改进体现在:(1)对模型进行更长时间的培训;(2)删除下一段句预测目标;(3)长序列训练;(4)动态改变应用于训练数据的掩蔽模式。

GPT-2[44]尽管与GPT 都使用的单向语言模型,但是它将Transformer 堆叠到了48 层,并且通过超大语料库进行了训练,生成高质量的数据集。这种不计成本地进行超大规模训练使得模型的性能得到了大大提升。得益于海量的模型容量,GPT-2针对不同任务模型进行识别调整,而不是采用微调的方式。

研究人员发现尽管目前的模型效果显著,但是针对特定的下游任务,仍然需要基于任务的微调数据集。但是研究发现,扩大语言模型的训练规模可以极大提高与任务无关的性能,因此推出了GPT-3[45],它把模型尺寸扩大到了1 750亿个参数,使用45 TB数据进行训练,通过实验证明,针对特定下游任务无需微调就能够有很好的性能表现。

XLNet[46]可以看作是改进版的BERT,因为BERT在预训练中采用了MASK标记,破坏了其与下游任务的一致性。因此XLNet采用了自回归模型代替自编码模型,尽管自回归模型属于单向模型,但是研究人员巧妙地利用排列语言模型保留了序列的上下文信息,并且消除了mask标记引起的负面影响。为了避免这种改变产生和Transformer结构引起冲突,导致模型无法实现目标位置感知,论文中提出了引进双流自注意力机制,采用两种表述来代替之前的表述,并且针对模型更新了Transformer-XL[47]两个重要的技术点,分别是相对位置编码和片段循环机制。如表2 所示,改进后的RoBERT 和XLNet 相较BERT在自然语言推断、文本蕴含任务取得了较大的效果提升,在语义相似、情感分析类数据集中也有很好的性能表现。

4.2 处理任务改善

(1)多语言理解任务

早期多语言文本表示是通过词嵌入[48]的方式,将要处理的词映射到相同的双语空间中,但是这需要高质量对齐的句子或词典。该任务的相关模型MultilingualBERT 在零样本迁移学习上表现良好,但是针对语言类型的结构转换还有待优化。

表2 BERT、XLNet、RoBERTa在GLUE数据集上的实验结果 %

针对mBERT 对于跨语言任务优化有限,Lample 等人[49]借鉴GPT采用的生成式预训练的方法提出了XLM模型,该模型并不是简单地将每种语言都作为一个模型进行封装,而是将多语语料进行采样拼接,构建多语词表,并且提出了三项预训练任务:因果语言建模(Causal Language Modeling,CLM)、掩码语言建模(Masked Language Model,MLM)、翻译语言建模(Translation Language Modeling,TLM)。CLM用Tramsform作特征抽取,由前面的词对下一个词的概率进行预测。MLM与BERT的单语言模型类似,它的不同点在于使用的是任意长度的文本流进行替换;翻译语言建模是对MLM的扩展,将并行的句子连接起来,提高跨语言训练的效果。评估实验基于零样本学习的配置,使用英语的训练集和多语言的测试集,其中train是将英语翻译成多种语言,test 是将多种语言翻译成英语,如表3 所示[49],在英文、西班牙文、德文、阿拉伯文、中文、乌尔都语等语料中与BERT 进行对比,实验结果表明XLM 在跨语言任务上具有很强性能。

表3 BERT、XML在跨语言分类的实验结果%

(2)生成任务

GPT 和BERT 模型在自然语言理解类任务处理上取得了很好的效果,但是因为模型框架的限制,它们文本生成任务的问题上测试效果并不是很理想。于是Song 等人[50]提出了MASS 模型,采用编码器-解码器框架,编码器输入带有屏蔽字段的句子,然后解码器对屏蔽部分进行预测,通过对编码器和解码器的联合训练提高表示提取和语言建模能力,在文章中通过对英法翻译的测试,该模型取得了最高的成绩,甚至超过了早期基于注意力的监督模型。Dong 等人[51]提出了UNILM 模型,如表4 所示,与之前模型相比UNILM 使用单向模型、双向模型、Seq2Seq 模型进行预训练,因此它对于自然语言理解和自然语言生成的相关任务都能够很好地处理。

表4 预训练模型对比

在自然语言生成任务上,以摘要生成和生成式问答为例。摘要生成要求模型有更强的表征、理解和生成文本的能力,如表5 所示[51],将UNILM 与一些先进的模型进行比较,选取的PGNet[52]、S2S-ELMo[53]和 Bottom-Up[54]都属于序列对序列模型,不同点在于PGNet模型是基于指针生成器,而S2S-ELMo 是通过预先训练的ELMo 表示进行扩充,Bottom-Up是通过自下而上的内容选择器来选择突出的短语进行文本摘要,通过实验结果可以看出UNILM的测试效果最好。

表5 CNN/DailyMail摘要的评价结果%

问答系统可以分为抽取式问答和生成式问答,然而生成式问答对系统要求更高。“抽取+合成”的生成式问答系统模块之间独立性强,信息共享性差,产生错误难以解决。基于Seq2Seq 模型的问答系统无法准确生成命名实体,容易出现答非所问的情况。UNILM 采用Seq2Seq模型来完成,对于超过最大长度的段落,使用滑动窗口将文章分为几块,并选择单词重叠度最高的部分进行处理,如表6 所示[51],CoQA[55]是用于构建会话问答系统的数据集,用于评估模型的会话和阅读理解能力。与该数据集中描述的生成式问答模型Seq2Seq和PGNet进行比较,其中Seq2Seq 是具有注意力机制的Seq2Seq模型,PGNet通过序列间的复制机制扩充Seq2Seq,通过实验发现,UNILM的测试结果表现突出,比PGNet高出了40个百分点。

表6 在CoQA中的生成问答结果

但是综合来看的话,相比自然语言理解任务目前取得的成就而言,目前生成任务的改善工作仍然有很大的改善空间。

(3)特定语言的处理任务

目前研究发现[56],针对特定语言进行预训练,效果明显好于多语言训练模型。FlauBERT[57]利用大型法语语料库进行预训练,在大多数任务中表现都优于其他训练方法。

中文由于没有明确的语言边界,很容易导致重要语义的丢失,ZEN[58]是基于BERT 的文本编码器,采用N-gram增强表现,有效地集成大颗粒度文本信息,具有收敛速度快性能表现良好的特点。ERNIE2.0[59]引入多任务学习,实现对词法、语法、语义的预训练,如表7所示,ERNIE2.0在9个GLUE任务上实现了对BERT的超越。

表7 BERT、ERNIE2.0在GLUE数据集上的实验结果%

如表8 所示[59],将 ERNIE2.0 和 BERT 放在 9 个常见的中文NLP处理任务中进行测试,结果表明在中文阅读理解任务、命名实体识别、自然语言推断、情感分析、自然语言推断、问答匹配等任务中取得了更好的成绩。

(4)多模态处理任务

VideoBERT[60]属于视频和语言表示学习的联合模型,通过对视频数据和语音识别的输出数据进行训练,实现高级语义特征的学习。VisualBERT[61]则是利用Transformer 图层实现输入文本元素和输入图像中的区域隐式对齐,实现视觉和语言任务的建模。SpeechBERT[62]实现了音频和文本的联合学习,通过实验表明其在问答任务模型的潜力。

4.3 新式模型的综合分析

BERT、GPT等模型的提出掀起了迁移学习的热潮,基于深度学习的模型预训练模型不断涌现,目前预训练技术已经成为该领域的发展重心。目前模型常见的特征抽取器可以分为LSTM、Transformer、Transformer-XL三大类,自XLNet 模型引入了自回归模型的概念,也可以将语言模型分为以BERT 系列模模型为代表的自编码模型和ELMo、XLNet、GPT系列模型为代表的自回归模型两大类。

表8 BERT、ERNIE2.0在GLUE数据集上的实验结果%

NLP常见的下游任务可以分为四大类:第一类任务是序列标注,比如分词、命名实体识别、语义标注等;第二类任务是分类任务,比如文本分类、情感分析等;第三类任务是句子关系判断,比如句法分析、问答QA、自然语言推理等;第四类是生成式任务,比如机器翻译、文本摘要、阅读理解、对话系统等。如表9所示,归纳出各个模型的深度学习架构及其预训练任务,按照模型特点总结出其适用的NLP相关任务。

5 模型后续发展的展望

预训练模型的出现具有划时代的意义,目前基于DL的各种预训练模型已经广泛应用到解决下游各种自然语言处理的任务中。但是目前结合实际应用场景来看,仍有很多需要改进的地方,下面是对后续发展方向的四点看法。

5.1 大规模的预训练

目前预训练模型还有很大改善空间,需要更多的训练场景和更大的语料库来完善模型的准确度。Shoeybi等人[64]利用层内模型并行方法训练具有数十亿参数的Transformer 模型,研究发现在 GPT-3 模型和 BERT 模型上都获得了很好的表现。但是对于模型的大规模训练也是很大的挑战,不但要高性能硬件上的支撑,更需要有更有效的训练技术支持,针对BERT只对15%的词进行学习导致的算力浪费,Clark 等人[65]提出将BERT 中MLM 进行替换,采用了replaced token dection 任务进行预训练,经过测试发现,相较BERT性能有2.9个百分点的提高,并且性能和RoBRETa 相差不多但是训练所需时间缩短了75%,这也是一种很好的发展方向。

表9 基于深度学习的预训练模型对比

5.2 面向任务的预训练

目前的预训练模型趋于大型化,如何针对不同的下游任务进行匹配也同样重要,最近也出现了一些针对专业语料库进行训练的预训练模型,如用于科学文本的SciBERT[66],用于临床文本的 ClinicalBERT 模型[67-68],不过目前仍有很大进步空间。

5.3 模型轻量化

目前流行的预训练模型大都经过了大量预训练,并且由于模型框架设计等方面的原因对硬件需求很高,高门槛导致研究人员难以去从头训练,要针对模型进行进一步研究改进,只能对模型进行微调。这种情况不利于相关研究工作的开展,使整个领域发展受到阻碍。针对这些问题,也出现了一些新的模型,如百度公司发布的ERNIE-Tiny 是小型化的ERNIE[63],减少了层数,预测提速4.7倍,但是处理效果下降明显。

5.4 防止对抗性示例攻击

Qiu等[69]在文章中提到深层神经网络很容易受到对抗性示例的攻击,很容易误导模型产生特定的错误预测。在图像处理领域,对抗性攻击和防御已经得到了很好的研究。但是由于自然语言处理领域中语言特有的离散型,很难进行处理。Jin等[70]通过生成自然对抗的文本,成功攻击了BERT、CNN 和RNN 三个目标模型,这表明目前的语言处理模型针对这方面还有很高的提升空间。

6 结束语

本文主要按照自然语言处理相关经典模型的改进更迭进行概述,根据模型对数据的处理特点分为以Word2Vec为代表的静态预处理模型、ELMo为代表的动态预处理模型、新式的改进模型三部分进行介绍。并结合了同时期的相关研究通过对模型的数据处理、相关的架构设计、整体的性能评估三部分分析比较,将自然语言处理领域的相关研究梳理出来。

尽管近两年自然语言处理领域迎来了蓬勃的发展,但是由于语言的复杂性,目前预训练技术还存在很大挑战,如何去训练出高兼容性、高性能的自然语言处理模型仍然是需要长期努力的目标。

猜你喜欢
微调向量文本
文本联读学概括 细致观察促写作
向量的分解
乐海乐器“微调轴”研发成功
聚焦“向量与三角”创新题
在808DA上文本显示的改善
基于doc2vec和TF-IDF的相似文本识别
向量垂直在解析几何中的应用
文本之中·文本之外·文本之上——童话故事《坐井观天》的教学隐喻
向量五种“变身” 玩转圆锥曲线
宏观政策适时适度进行预调微调