基于提示学习的小样本文本分类方法
2023-09-27于碧辉蔡兴业魏靖烜
于碧辉,蔡兴业*,魏靖烜
(1.中国科学院大学,北京 100049;2.中国科学院 沈阳计算技术研究所,沈阳 110168)
0 引言
文本是信息传播的重要途径和载体,将文本数据正确归类,从而更好地组织、利用这些信息,具有重要的研究意义。文本分类致力于解决上述问题,是自然语言处理(Natural Language Processing,NLP)领域的经典任务之一,被广泛应用于舆情监测、情感分析等场景中。目前比较有效的文本分类方法,如经典的应用于文本的卷积神经网络(Text Convolutional Neural Network,Text-CNN)、循环神经网络(Text Recurrent Neural Network,Text-RNN)[1]等,多为建立在具有大量的标注数据下的有监督学习。在很多实际场景中,由于领域特殊性和标注成本高,导致标注训练数据缺乏,模型无法有效地学习参数,从而易出现过拟合现象。因此,如何通过小样本数据训练得到一个性能较好的分类模型是目前的研究热点。
在算法层面,超大规模预训练模型成为备受关注的热点之一,推动技术效果不断提升。依托预训练模型,NLP 的各项任务取得了飞速发展,小样本任务也因此受益。利用预训练模型进行迁移微调逐渐成为NLP 领域开展小样本学习的主要手段,提示学习的兴起更是减小了预训练阶段和下游任务之间的差异,在小样本任务上取得了显著的成果。
在上述研究基础上,本文提出了基于提示学习的小样本文本分类方法,分析了提示学习的优势与不足,并提出了一种基于预训练模型的自适应模板生成的方法用于小样本场景下的文本分类。采取构建模板和空缺的方式将分类任务转化为完形填空问题,并使用预训练模型自动构建模板代替传统的人工定义方法。在FewCLUE 的文本分类数据集上的实验表明,所提方法相较于直接微调的方法以及诸如度量学习等传统小样本学习方法,展现出了更优的性能。
1 相关工作
1.1 小样本学习方法
小样本学习(Few-Shot Learning,FSL)是研究利用目标类别的少量监督信息来训练机器学习模型的方法[2],主要分为基于模型优化、度量学习及数据增强三类学习方法。
基于模型优化的研究方法多采用元学习的方式。它期望模型具备学习能力[3],模型在训练过程中会根据样本集制定学习策略,即让模型学习得到优化器,自行学习调参策略,有学者基于该框架提出了新算法。如Andrychowicz 等[4]最早采用训练神经网络模型的方式,学习优化神经网络的规则,在当时取得了较好的效果。在此研究基础上,Ravi 等[5]发现长短期记忆(Long Short-Term Memory,LSTM)网络的更新规则与前馈网络的梯度下降过程相似,于是尝试利用LSTM 的结构训练神经网络的更新机制,学习到新的网络参数。Finn等[6]提出的模型无关元学习算法是元学习领域中标志性文章与代码框架,相较于梯度下降的基步长,该方法新增了采用随机梯度下降优化的元步长,即通过双层的梯度下降实现跨任务的元优化。
基于度量学习的研究方法通过计算训练样本和测试样本的相似度来确定样本的类别标签,从而实现分类。此类方法降低了模型复杂性,提高了泛化能力。Vinyals 等[7]提出的匹配网络为支持集和查询集构造了不同的特征编码器,采用对最近邻加权的方法计算待测样本与支持集样本的相似度。Cai 等[8]提出的记忆匹配网络将样本上下文信息集成到嵌入式体系结构中,提高了匹配网络的单样本学习能力。Snell等[9]提出的原型网络以嵌入空间支持集中各类别均值的中心作为类别的原型表达,将小样本学习问题转化为嵌入空间中的最近邻问题。但是度量学习存在数据分布易对度量准则产生显著影响的问题,难以确定一种度量准则来满足多个维度特征的分布。
基于数据增强的小样本学习方法主要包括扩充数据集及特征增强。Mehrotra 等[10]提出了生成对抗残差成对网络,将生成对抗网络引入到单样本学习问题中。Hou 等[11]基于直推式学习的思想,提出了一种交叉注意力网络,利用注意力机制为每对特征和查询生成交叉注意映射,对特征进行采样,从而达到特征增强的效果。
上述方法主要应用于计算机视觉的科研工作中,原因在于图像处理问题更多强调感知智能,依靠统计特征发现和函数拟合进行问题求解。目前针对NLP 下的小样本文本分类问题,阿里小蜜团队在对话场景中的意图识别任务中提出了归纳网络来解决少样本文本分类的问题,结合动态路由算法和元学习框架模拟人类的归纳能力[12]。Yu 等[13]提出了多指标文本分类方法,通过任务聚类组合多个指标,自动地从一组新出现的少量任务的元训练任务中确定最佳加权组合。Bailey 等[14]提出了基于预训练词嵌入和人工监督的小样本文本分类方法,通过聚类和度量学习的思想得到某一类别的向量表示,依据主题模型的思想进一步确定样本类别。
尽管上述科研工作均面向小样本领域,但它们的主要思想仍为在已知数据集上提高模型的学习上限,但是NLP 更注重感知之后的认知和理解,并非浅层的统计语义,少量的样本难以让模型学习到理解的能力,这就要求NLP 领域的小样本问题仍需要大量数据的支持。近年来预训练模型的提出在一定程度上解决了知识的获取和重复利用问题,因此本文利用预训练模型的先验知识,通过迁移的方式为模型引入更多的外部信息,从而解决小样本场景下的文本分类问题。
1.2 预训练模型
预训练语言模型(Pre-trained Language Model,PLM)是先在多元任务上预训练获得通用知识,然后使用少量目标任务上的标注数据进行微调的模型。模型训练和使用分别对应两个阶段:预训练阶段和微调阶段。在自然语言处理领域,首先通过一批文本语料进行模型训练,用自监督的方法从海量无监督数据中获取知识;然后在初步训练好的模型基础上继续训练,通过调整PLM 的参数来解决下游任务,包括文本分类、实体识别、关系抽取等。
预训练模型成功的关键在于自监督学习与Transformer的结合,具有代表性的工作是GPT(Generative Pre-trained Transformer)[15]和BERT(Bidirectional Encoder Representation from Transformer)[16]系列模型,同时还有XLNet[17]、MPNet[18]等。
GPT 采用单向Transformer 作为主要结构,应用了生成式预训练和鉴别式微调。BERT 使用双向深度Transformer 作为主要结构,在预训练阶段包含两个任务:MLM(Masked Language Model)和NSP(Next Sentence Prediction)。前者类似完形填空,遮盖掉待预测单词,然后利用这句话的其他单词去预测被遮盖部分的这个单词;后者是给定两句话,判断这两句话在原文中是否是相邻的关系。二者的主要区别在于GPT 是单向自回归语言模型,BERT 是自编码模型[19],MLM任务使它能够学习到双向的语义信息。因此,普遍认为GPT擅长自然语言生成,而BERT 更侧重于自然语言理解。
在小样本任务场景下,由于少量的数据无法支持模型学习到足够的参数,容易在训练集上过拟合,因此需要引入外部知识,应用迁移学习的思想将预训练模型迁移应用在小样本场景下。鉴于BERT 的双向编码能力能够更好地学习提示模板,而且模板的相对位置可以自由调整,因此本文采用BERT 模型作为学习器,然后利用BERT 的两个预训练任务,相较于微调的方法能更好地利用预训练模型。
1.3 提示学习
提示学习(Prompt Learning)[20]是最近兴起的模型训练方法,它实现了NLP 技术中由之前的先预训练再微调的模式转变为预训练、提示再预测的模式。自预训练模型提出后,NLP 任务就开始倾向于采用对预训练模型进行微调的方法,从而避免了重新学习的缺点,降低了NLP 任务的训练与应用难度,使NLP 各项任务取得了不同程度的突破。由于预训练与下游任务不一致,在基于预训练模型解决下游任务时的策略为让预训练模型调整参数去适应下游任务。提示学习的核心思想是按照特定模板处理输入的文本信息,把任务重构成一个更能充分利用预训练语言模型处理的形式。将下游任务转换为语言模型的任务,即完形填空。提示学习能广泛激发出预训练语言模型中的先验知识,让预训练语言模型和下游任务更接近,从而更好地利用预训练模型。
提示学习最初由人工设计模板。人工设计一般依赖于语言学知识,力求得到语义流畅且高效的模板。Schick 等[21]提出了PET(Pattern Exploiting Training),主要的思想是借助由自然语言构成的模板,将下游任务转化为一个完形填空任务,从而使用BERT 的MLM 进行预测。但是PET 方法的局限性在于需要人工选择模板,而且PET 的准确率对于模板的质量依赖性较高。为了解决人工设计模板的不足,探究如何自动学习到合适的模板成为一大研究热点。Li 等[22]提出Prefix tuning 和Liu 等[23]提出的P-tuning(Prompt-tuning)均放弃了模板由自然语言构成这一常规要求,使用了连续空间内的向量作为模板,二者都是连续空间内的模板优化方法,区别在于:P-tuning 中模板在句中的相对位置可变,主要面向自然语言理解任务;而Prefix tuning 的模板是前缀,只能放在句子开头,针对的是自然语言生成任务。
提示学习的方法使模型更多地利用先验知识,缓解了小样本场景下可学习到的知识不足的问题。本文借助了提示学习的思想,将文本分类任务转化为完形填空任务,进一步提出了利用预训练模型在标注数据上自动学习提示模板的方法,用于提高模板的提示能力,进而提高模型的性能。
2 BERT-P-tuning模型
本章主要介绍整体模型结构、各个层的实现方法和作用以及优化策略等。
2.1 模型整体结构
本文提出了基于提示学习的分类方法BERT-P-tuning,即基于BERT 的连续提示微调方法,采用可学习的连续向量作为提示模板。图1 为整体的模型结构,主要由三部分组成:模板学习层、BERT-MLM 层和标签映射层。其中:BERT模板学习层的作用是利用模型的双向Transformer 结构和在预训练阶段学习到的先验知识,在标注数据上学习到一组向量作为提示模板;BERT-MLM 层主要用于完形填空任务,在候选词集合中选择使句子概率最高、语义最合理的词填入空缺中;标签映射层用于定义描述候选词和标签之间的对应关系,通过映射来确定样本的类别标签,从而实现分类。
图1 BERT-P-tuning模型结构Fig.1 Structure of BERT-P-tuning model
2.2 模板学习层
本文的自动构建提示模板方法基于P-tuning 的思想,利用连续空间内的向量表示作为提示模板,将模板的构建转化为连续参数优化问题。即在标注样本集上学习到使整个句子表示置信度最高的一组向量作为模板提示,如图2 所示。
图2 模板提示Fig.2 Template prompt
图2 中的[u1]~[u4]代表BERT 词表中的[unused1]~[unused4]。该部分标记在BERT 预训练阶段未使用,通常用于扩充词表等。即本文通过未使用过的标记来初始化构成模板表示,之后通过标注数据计算出该模板。
在P-tuning[23]中,作者通过一个小型的LSTM 模型计算出提示模板部分的词嵌入,目的在于提高每个字符的相关性,帮助模板的向量表示更贴近自然语言。但LSTM 的捕捉距离与抽取特征能力较弱,并且它顺序处理的特性导致难以处理模板置于句首的情况;而BERT 模型经过预训练阶段同样可以让模板贴近自然语言,而且它的特征抽取能力更强,因此本文采用BERT 模型作为模板层的学习器。
将任务定义为在连续向量空间内搜寻最优向量使得在标注样本上获得最小损失的问题。具体如下:
定义语言模型为M,输入样本表示为X={X0,X1,…,XN},标签对应的词为Y,模板为P={P0,P1,…,Pk},定义E(X)表示X的词嵌入,E(Y)表示Y的词嵌入,因此完整的输入构成如下:
其中,E(P)为可求解的模板向量,在输入中与原始文本和标签词的相对位置可以自由确定。首先,随机初始化生成(k,768)维度的向量,利用下游损失函数L,采用随机梯度下降的方法训练连续优化模板部分对应的参数。求解目标为式(2):
在得到提示模板对应的向量后,将它拼接到BERT 的词嵌入层中作为完形填空模型的输入。自动构建模板的优势在于打破了人工构建模板的局限性,可以学习到超出原始词汇表限制的提示模板,得到模型可学习到的向量空间内的最优解。虽然可解释性不如人工构建模板的方案,但是模型在分类性能上具有优势。
2.3 BERT-MLM层
BERT 在训练阶段为了使模型具备有效的学习到双向编码的能力,使用了基于遮盖的语言模型,即随机对输入序列中的某些位置进行遮蔽,然后通过模型来进行预测。因此BERT 模型在完形填空任务上具备先验优势。
本文采用BERT-MLM 层用于完成完形填空任务。预测句中空缺部分为候选词集合对应的概率,以及它们填入文中的语义合理性。具体实现如下:
定义候选词集合W={W0,W1,…,Wm},对于每个句子S,M(S|W)表示语言模型在空缺位置为W时的得分。因此每个候选词对应的得分为:
之后通过Softmax 函数将它转化为概率分布,选择概率最大的词填入到空缺中。
2.4 标签映射层
在得到空缺部分的词之后,将结果输入标签映射层。标签映射层的主要作用为定义MLM 任务中的候选词和标签之间的对应关系。例如根据不同任务将[好,坏],[体育,军事,…,金融]等集合作为完形填空的候选词,构建[好→积极,坏→消极]的标签映射关系。因此文本分类任务可通过预测选取候选词集合中的词,之后通过映射关系得到最终的标签。
2.5 优化策略
在模型训练阶段,本文采取MLM 的损失作为最终的目标。通过预测空缺部分是候选集里的哪个词之后,标签映射得到最终的标签。由于标注数据的不足,仅通过少量数据很难学习到整个模型的参数,而且易出现过拟合。因此,在模型训练阶段借助了Adapter[24]的思想,固定模型原始权重,在BERT 的基础上添加残差模块,即本文的提示模板部分;并且在训练过程中只优化残差模块的参数,它的梯度回传过程如图2 反向传播部分所示。本文将需要优化的模板部分参数重新构建一个嵌入层,为图中E(P)。将它拼接到BERT 模型的嵌入层中,在训练过程中通过矩阵遮盖住原始模型的嵌入层E(M),使得它在回传过程中的梯度为0,不参与反向传播的计算,从而实现在更新阶段只更新模板部分的参数。
此外模型训练目标在于收敛模型预测标签和真实标签间的差距,采用交叉熵损失函数。由于仅预测空缺位置的词,全文计算损失无意义,因此在将模型的输入文本转化为序列的同时,将其他词以-1 的标注遮盖掉,使它们不参与交叉熵损失的计算。
3 实验与结果分析
3.1 数据集
本文采用的数据集来自中文语言理解权威测评榜单的子榜FewCLUE[25]。由于提示模板的长度有限,在长文本分类句子中的占比较小,因此选择其中的短文本二分类任务情绪分析电子商务产品评论数据集(EPRSTMT)和多分类任务新闻标题多分类数据集(Tnews)。EPRSTMT 共有两类标签:正向和负向;每条数据有3 个属性,分别是id、sentence 和label,对于label 标签,Positive 表示正向,Negative 表示负向。Tnews 来自今日头条的新闻版块,共包含15 个类别的新闻,包括军事、体育、文化等;每条数据有3 个属性,分别是分类ID、分类名称与新闻标题字符串。数据集具体信息如表1 所示。
表1 实验中使用的数据集Tab.1 Datasets used in experiments
3.2 实验环境及参数
实验基于PyTorch 框架搭建神经网络模型,详细实验环境参数如表2 所示。
表2 实验环境Tab.2 Experimental environment
实验采用的BERT 模型为RoBERTa-wwm-ext[26]。RoBERTa-wwm-ext 相较于BERT 主要有两方面的优化:1)在模型规模、算力和数据上均有提升;2)基于全词掩码的中文训练方式更适用于中文任务。
在模型训练的过程中,由于训练样本较少,为保证学习到更多的特征,因此采用较大的样本长度来避免截断所带来的语义信息丢失问题;其他参数通过实际实验中的手动调参,最终确定最优情况下的训练参数如表3 所示。
表3 实验参数Tab.3 Experimental parameters
3.3 实验结果分析
为探究不同模板对模型性能的影响,同时选取对比实验中PET 部分采用的人工模板。本文使用BERT 的预训练任务NSP[27],即下一句预测,来完成零样本文本分类任务。人工构造模板“这是一条[MASK]的评价:”,分别在测试样本前加入由模板和候选词组成的前缀来构成新的句子。
例1 “这是一条正面的评价:很好,已经第二次购买了。”
“这是一条负面的评价:很好,已经第二次购买了。”
通过BERT 模型的NSP 任务,计算两句话的概率,其中概率较大的前缀的候选词对应的标签,即为该条样本的标签。实验结果如表4 所示。
表4 零样本实验结果Tab.4 Results of zero-shot experiment
从表4 可以看出,在提示阶段,不同的提示模板对应的分类准确率不同且相差较大,模板的长度、候选词的选择均影响最终的实验结果,且模板中存在转折时在一定程度上影响了拼接后的语义,导致准确率较低。因此寻求最优模板是提示学习能否取得较好性能的关键。
人工构建模板时,通常倾向于选择模板句和待测样本的语义匹配度更高、更符合人类语言学知识的自然语句,在此限制下得到的模板由离散空间内的字符组成,它的解空间远小于连续空间,因此难以寻求到提示效果最好的模板。而采用连续向量作为模板则跳出这一限制,直接在编码阶段通过模型学习得到向量模板,从而使模型取得更优的实验效果。
为了体现提示学习方法在小样本任务上的优势,在同一实验环境下,本文复现对比了目前小样本学习领域的几类主流方法的实验结果。包括LSTM 分类方法、基于BERT 的微调方法(简写为BERT)、基于BERT 的度量学习(简写为Metric BERT)及PET[21]。其中Metric BERT 采用BERT 的CLS层的对应输出作为文本表征,使用欧氏距离作为度量标准;PET 采用模板为表4 中的最优模板,使用BERT-MLM 实现完形填空任务。在五个单条训练集上进行测评,实验的评价标准为平均准确率(Acc)和F1。
对比实验结果如表5 所示。通过表5 的实验结果可以看出,度量学习的方法在小样本任务上的表现效果较差,其原因主要在于标注样本不充足,覆盖的样本空间过小导致难以搜寻到与测试样本相似度最高的支持数据,从而出现匹配偏差问题。LSTM 相较于BERT 微调的方法的准确率较低,说明它的特征抽取能力弱于预训练模型,且在实验过程中应对多分类任务时经过多轮迭代训练仍无法收敛,表明该类传统神经网络模型难以直接处理低资源场景下的问题;基于人工构建模板的PET 方法,以及本文提出的自动构建模板方法BERT-P-Tuning,相较于直接使用BERT 微调性能都有一定程度的提升。与BERT 相比,在二分类任务上,BERT-P-Tuning的准确率与F1 分别提高了25.2 和26.7 个百分点;在多分类任务上,准确率与F1 分别提高了6.6 和8.0 个百分点。与PET 相比,BERT-P-Tuning 在两个任务上准确率提升了2.9 和2.8 个百分点,F1 值提升了4.4 和4.2 个百分点。以上结果说明在小样本任务上,基于提示学习的分类模型性能要优于传统的模型,更适用于小样本的场景。
表5 不同模型的结果对比 单位:%Tab.5 Comparison of results of different models unit:%
为了进一步验证本文方法提高了模板的提示能力,针对优化策略部分和模板学习层开展消融实验,其中BERT-PTuning-1、2、Final 分别对应全模型优化、全文计算损失和优化后的方法,实验结果如表6 所示。
表6 消融实验结果 单位:%Tab.6 Results of ablation experiment unit:%
在对模板进行编码过程中,分别采用LSTM 和BERT 模型,通过实验结果表明其中BERT-P-Tuning-1、2、Final 学习到的模板性能略优于LSTM-P-Tuning,体现了基于注意力机制的预训练模型在上下文的语义方面具有更强的理解能力,模型的双向编码在学习模板方面具备更强的优势。
在进行MLM 预测中,实验结果表明只对空缺词计算交叉熵损失的方法性能优于计算全文计算损失的方法,其原因在于非空缺词对于模型来说是可见的,无预测意义,这一点和BERT 预训练阶段的MLM 任务保持一致,而且在实际训练过程中损失收敛得更快。此外,只优化模板层部分参数的方法取得了更好的表现,因为它的参数较少,即使在样本不充足条件下也能学习到模板,不易出现过拟合的现象。`
综上所述,本文所提BERT-P-Tuning 相较于传统的文本分类方法,在小样本场景下取得了更优的表现,其中所采用的优化策略也进一步提高了模型的性能。
4 结语
本文对文本分类方法进行了研究,提出了一种基于提示学习的文本分类方法BERT-P-Tuning。该方法利用BERT 模型根据上下文信息和标签自适应地生成提示模板,通过拼接提示模板和空缺,将传统分类任务转化为完形填空任务,充分利用预训练模型的先验知识,最后通过标签映射关系得到样本的标签,从而实现文本分类。
实验结果表明,本文方法性能优于传统分类模型在小样本任务上的表现,且相较于其他小样本方法性能也有一定的提升。未来的研究工作将进一步扩大研究范围,包括长文本分类、英文任务等,提高模型的泛化能力;并研究将该方法扩展到自然语言处理的其他领域的方法,如实体识别、关系抽取等。