融合动态掩码注意力与多教师多特征知识蒸馏的文本分类
2024-05-09王润周张新生王明虎
王润周,张新生,王明虎
(西安建筑科技大学 管理学院,陕西 西安 710055)
0 引言
文本分类是自然语言处理(Natural Language Processing,NLP)领域的一个重要任务,旨在将文本文档分为不同的类别或标签,帮助用户能够从文本资源中提取关键信息[1]。这一任务在多个领域中发挥着重要作用,包括情感分析、垃圾邮件过滤、金融文本挖掘和新闻分类等[2-4]。随着互联网的不断发展,网络新闻、社交媒体评论等数据源导致可用的文本数据量急剧增加。这些数据不仅在数量上庞大,而且在多样性方面非常丰富,包括来自不同领域、不同语言以及不同文本风格的内容。这种多样性使文本分类的复杂性增加,因为需要适应不断变化的数据背景和多种文本表达方式。此外,文本数据通常需要经过复杂的预处理过程,如分词、去除停用词、词干提取和将文本转化为向量表示,以此获取关键信息[5]。这些预处理步骤既耗费时间又需要大量计算资源,尤其是在应对大规模数据集时。因此,在应对复杂、庞大的数据集时,寻求精准、快速且低资源消耗的文本分类方法变得至关重要。
目前,大型语言模型通过在大规模文本数据上进行预训练,在多种自然语言处理任务中表现出卓越的性能。然而,这些大型模型的复杂性和计算成本逐渐增加,限制了它们在资源有限环境下的广泛应用[6]。知识蒸馏的出现缓解了这些问题,其将大型语言模型的知识传递给具有轻量化参数的小型模型,使得小型模型学习到大部分大型模型的知识,这不仅可以实现高效、快速的预测,并且不会显著降低模型的性能[7]。通常,知识蒸馏采用“师-生模型”训练模式,通过一个预训练好的大型教师模型的输出,辅助新的小型学生模型训练[8]。由于单教师知识蒸馏通常只依赖一个大型教师模型来传递知识,且这个教师模型可能受限于特定任务、数据领域或训练数据,导致其无法提供全面性和多样性的知识。为此,“师-生-师模型”的多教师训练模式开始出现。多教师知识蒸馏允许整合来自多个教师模型的知识,这些教师模型经过在不同任务和数据领域上进行专门训练,提供了更广泛、全面的知识[9]。这保证了学生模型可以获得更丰富和多元的知识,提高了学生模型在多个任务和领域的性能。基于上述特性,知识蒸馏为解决文本分类任务中的资源消耗和效率问题提供了一种有效途径,同时保持了高分类性能。
尽管知识蒸馏在文本分类任务中的研究已经十分丰富,并且取得了良好的分类效果,但仍然存在一些不足: 首先,当前知识蒸馏的方法主要关注模型在最后一层的输出,较少同时结合多个教师模型的性能与其在不同特征层的语义信息。这不仅会忽略模型其他层之间的丰富信息,影响学生模型的特征表示能力,而且当最后一层的特征层受到噪声干扰时,学生模型的学习效果更容易受到干扰。再者,知识蒸馏过程需要传输大量长度不等的文本数据信息,现有的蒸馏过程通过全局填充引入大量冗余信息,不能动态关注数据中关键信息的变化。
因此,本文提出了一种融合动态掩码注意力机制与多教师多特征知识蒸馏模型,并将其应用于文本分类任务。通过结合多种教师模型的强大性能、不同特征层的语义信息来大幅度提升学生模型的预测性能,并采用动态掩码注意力机制实现动态截断数据,使得蒸馏过程更加关注有效信息,减少无效信息的干扰。本文的主要贡献如下:
(1) 提出了一种同时结合多种大型教师模型与多种特征层语义信息的知识蒸馏方法,使得轻量化的学生模型可以学习多元化知识与多种特征表示。
(2) 在知识蒸馏过程中提出了动态掩码注意力机制,其可以在知识蒸馏过程中动态屏蔽无效输入信息,减少冗余信息干扰,保证模型尽可能关注关键信息。
(3) 多种对比实验结果表明,经过本文方法的蒸馏后,学生模型TinyBERT不仅取得了比其他基准蒸馏方法更佳的性能,而且只用了大型教师模型1/10的参数量、约1/2的运行时间就取得了与教师模型相当的预测结果。
1 相关工作
本节主要介绍文本分类的常用方法以及知识蒸馏在文本分类模型中的应用。我们对现有研究方法进行总结,将目前文本分类的方法分为四类: 即基于传统机器学习、基于深度学习、基于预训练模型以及基于知识蒸馏的方法。
基于传统机器学习方法的文本分类依赖于特征提取和模型训练。文本数据首先经过特征提取过程,将文本转化为机器学习算法可以处理的数值特征。因此,特征提取成为了文本分类的关键步骤,在这一阶段,文本数据的特性主要基于词袋模型或TF-IDF值将文本转化为数值特征向量[10]。结合词频、词语的重要程度,一些常用的机器学习如朴素贝叶斯[11]、支持向量机(Support Vector Machine, SVM)[12]、随机森林(Random Forest, RF)[13]等方法被广泛用在了文本分类任务中。然而,在处理大规模、复杂的自然语言处理任务时,传统机器学习方法依赖于手工设计的特征,而这些特征难以准确表示大量的文本数据[14]。更重要的是,传统机器学习中的特征提取方法主要基于词语的词频和重要性,忽略了词语之间的语义关系。
随着深度学习的发展,神经网络方法与词嵌入技术不断在文本分类任务中得到应用。在这一阶段,依据Word2Vec方法,文本数据可以被转化为包含文本数据语义相关性的词嵌入向量[15]。这减轻了特征工程的负担,使得模型更加通用和适应不同类型的文本数据。并且,深度学习方法还可以自动提取文本中的语义信息,学习词语、短语和文本之间的复杂语义关系。例如,卷积神经网络(Convolutional Neural Networks, CNN)可以捕获文本中的局部特征,通过卷积层和池化层,识别文本中的重要模式[16]。循环神经网络(Recurrent Neural Network, RNN)、长短时记忆网络(Long Short Term Memory Network, LSTM)可以在文本分类中用于捕获文本的上下文信息[17-18]。随后,基于CNN、RNN、LSTM的混合深度学习模型也被用在了文本分类任务中,并达到了较优的预测性能[19-20]。然而,基于深度学习的分类方法通常需要用大规模标记的文本数据来进行训练,以达到良好的性能,这导致训练一个性能较好的深度学习模型需要大量的数据与机器资源。因此,如何设计一种自身就具有丰富语言知识,并将其迁移到不同的任务的模型就成为了焦点。
基于预训练模型的方法的核心思想是在大规模文本数据上预训练一个深度学习模型,然后将该模型微调到特定任务。因此,在训练开始前,预训练模型就已经具备在大规模文本数据上获取丰富语义能力。它们可以迁移到不同的文本分类任务,即使在小规模标记数据上也能表现出色。于是预训练模型如BERT、RoBERTa、Electra等模型成为了提取文本语义信息的重要一环,并结合一些深度学习方法取得了更加优秀的预测性能[21-23]。但是,大多数预训练模型具有大量参数,因此在训练和推理时需要大量计算资源,包括高性能的GPU或TPU。这可能使得在资源受限的环境中难以使用这些模型。
基于知识蒸馏的方法缓解了预训练模型的问题,其允许将大型预训练模型的知识传递给小型模型,以获得更轻量、高效的模型,同时保持高性能。这使得知识蒸馏成为在文本分类任务中提供轻量、高效预测模型的有力工具。例如,一些学者将12层网络的BERT模型蒸馏到6层网络的浅层模型,得到的学生模型推理速度提高近一倍[24]。此后,一些研究人员将复杂的混合教师模型蒸馏到轻量化的双向门控循环单元网络中,达到了与BERT-Base模型相当的文本分类效果[25]。Zhang等人基于多教师模型的知识蒸馏将知识从多教师模型转移到学生模型,其方法在多个公开数据集上表现出更少参数和更少推理时间[26]。Guo等人在蒸馏过程中引入注意力图来构建知识蒸馏的样本相关性,保证蒸馏过程中能最大程度地关注有效信息[27]。因此,本文基于上述研究提出了一种融合动态掩码注意力机制与多教师多特征知识蒸馏的方法,使得得到的轻量化学生模型在文本分类任务上易于部署,并达到更精准、高效的预测结果。
2 理论基础
2.1 问题描述
传统的多教师知识蒸馏策略主要考虑多个教师模型与学生模型最后一层输出之间的关系。即教师模型在最后一层网络输出各个类别的概率分布,而学生模型则尝试在相同数据上拟合这些概率分布,这导致在知识蒸馏过程中忽略其他特征层的影响。再者,在引入注意力阶段,传统的知识蒸馏过程未能考虑到文本数据长度的不一致性,通常采用固定长度进行注意力机制的掩码操作,这也为蒸馏过程带来更多的无效信息。
本文提出了一种融合动态掩码注意力机制与多教师多特征的知识蒸馏方法。该方法旨在让学生模型整合多个教师模型的强大语义能力,同时将多个教师模型的不同特征层的输出与学生模型结合。并且,引入了动态掩码注意力机制来动态地关注不同教师模型的特征层,使得模型可以更好地选择和集成有效的知识。下面对用到的理论方法进行简单阐述。
2.2 多教师多特征知识蒸馏
多教师多特征的知识蒸馏是一种进阶的知识蒸馏技术,其目标是通过将多种教师模型(Teacher Model)的知识以及多种特征表示传递给一个轻量化的学生模型(Student Model)。与传统的知识蒸馏方法相比,多教师多特征知识蒸馏结合多种教师模型的强大语义能力,并深入学习到每个教师模型在不同特征层的丰富表征,使预测性能与抗噪声能力大幅度提升[28]。
多教师多特征知识蒸馏过程涉及以下概念: 软标签(Soft Label, SL)、软输出(Soft Output, SO)、硬输出(Hard Output, HO)和硬标签(Hard Label, HL),各概念的含义如表1所示。
表1 不同的输出标签
软标签与软输出的计算如式(1)所示,其中i表示第i个类别的标签,zi为教师模型的输出概率,vi为学生模型的输出概率,T为温度参数。
(1)
在蒸馏过程中,温度参数T主用于控制教师模型和学生模型的输出分布,即模型在进行预测时生成的概率分布。较高的温度参数会使输出分布更加平缓,负类标签携带的信息会被相对地放大,学生模型从教师模型中学到的知识信息会更加丰富,如图1所示。
图1 硬标签与经过蒸馏后的软标签
具体而言,在没有蒸馏的情况下,教师模型的输出通常是硬化的,即它们对于每个类别只能选择一个概率为1的类别,而其他类别的概率为0。经过蒸馏后,输出结果会得到每一个类别的概率表示,因此带有更丰富的知识表示。
通常,知识蒸馏的输出损失函数通常需要考虑教师模型与学生模型之间输出的损失误差。而多教师知识蒸馏的输出损失(Lpre)由学生模型的软输出与不同教师模型软标签之间的损失(Lsoft)、学生模型的硬输出与硬标签之间的损失(Lhard)组成。具体如式(2)~式(4)所示。
另外,多教师多特征知识蒸馏的过程还要关注不同特征层的输出,因此需要加入不同特征层之间的损失。多教师多特征知识蒸馏在不同层的损失可综合表示为式(5):
(5)
其中,Tm与Sm表示教师模型与学生模型的第m层,M表示模型的总层数。Lhid表示不同特征层的损失。
最终,多教师多特征知识蒸馏模型的损失函数需整合每一个特征层的损失与最后一层的蒸馏损失。整体损失如式(6)所示。
(6)
2.3 RoBERTa模型
RoBERTa是一种在BERT(Bidirectional Encoder Representations from Transformers)基础上进行改进的自然语言处理领域的预训练模型。因此RoBERTa的模型框架也基于Transformer结构,它通过大规模的无监督训练来学习语言表示,包括丰富的语法和语义知识[29]。其运行过程如图2所示。
图2 RoBERTa模型框架图
RoBERTa的运行结构主要包含Embedding获取与12层Transformer模型两个部分。第一部分利用位置嵌入、分割嵌入和符号嵌入来获取文本的语义嵌入向量。第二个部分是模型架构,它主要由12层Transformer模型的编码器部分构成,编码器层部分包括自注意力机制、前馈神经网络和残差连接。其中,Mask LM是一种预训练任务,用于获取词语级别的上下文依赖关系,其通过对输入文本中的一部分Token进行掩码,然后让模型去预测这些被遮盖的部分。
2.4 Electra模型
Electra是一种用于自然语言处理任务的预训练模型,其构建了一种称为生成器-判别器(Generator-Discriminator)的架构[30]。生成模型产生假的文本片段,而判别模型则试图区分真实文本和生成的文本,这加强了模型对单词之间相互关系的理解。另外,Electra在预训练过程中引入了“替代分类任务”,模型只需要计算被替换的词的损失,而不是计算整个句子中所有词的损失。这使得Electra在相同的计算资源下可以训练得更快,更适合在资源受限的环境中使用。具体流程如图3所示。
图3 Electra模型框架图
2.5 TinyBERT
TinyBERT模型是一种轻量级的变种BERT模型,其采用了精细的剪枝和量化技术,通常仅为4层或6层Transformer结构,因而在资源受限的环境中运行更高效[31]。
如图4所示,TinyBERT的训练过程通常分为两个关键阶段: 通用蒸馏和特定任务蒸馏。在通用蒸馏阶段,TinyBERT的教师模型是大型的预训练模型,而学生模型(TinyBERT)在通用领域的语料库上进行蒸馏来模仿教师模型的行为。在特定任务蒸馏阶段,使用微调过的BERT模型作为教师模型,随后对增强任务数据集进行蒸馏。
图4 TinyBERT训练框架图
2.6 动态掩码注意力机制
在自然语言处理任务中,输入序列的长度可能不一致,为了对齐序列,会在较短的序列中使用填充符号。当数据量不断增多时,填充的无效信息也会变多,这会干扰模型的输出结果。为了减少冗余信息的干扰,掩码机制被用在了注意力计算中[32]。传统的掩码机制主要根据全局最大长度(Global Max Length)来对文本数据进行截断或填充。这种方法虽然易于实现,但忽略了不同批次数据之间的区别,导致在文本填充时加入无效信息。
因此,本文构建了一种动态掩码机制用于注意力计算过程,可以实现对无效位置的屏蔽,确保模型只关注有效的输入信息,从而提升模型的准确性和泛化能力。具体过程如下:
Step1:根据每个批次大小中的最大长度(Batch Max Length)来截断和填充文本。传统的全局处理设置固定的全局最大长度处理数据,批次处理则根据不同Batch中的最大长度处理数据。这样做的目的是在整个训练过程中保留每个批次中原有文本的语义特征,而不添加多余的掩码符号[PAD]。处理过程如图5所示。
图5 全局长度处理与批次长度处理
Step2:构建掩码矩阵,对不同批次的填充位置进行掩码。在进行批次长度大小截断或填充后便可获得原始数据位置与填充位置。随后,对原始数据的位置填充标签1,即原始位置数值保持不变。将填充位置上的数值变为负无穷(-inf)。这是由于在注意力机制打分时采用 Softmax 函数分配注意力权重,填充位置上的数值越小,分配的注意力权重越小。Softmax函数计算如式(7)所示。
(7)
其中,xi为输入序列x的第i个值,xj为数据x中除掉xi的其他序列,K为序列x的维度。
Step3:计算动态掩码注意力得分,注意力机制输出的是原始数据与动态掩码矩阵的乘积,如图6所示。
图6 掩码矩阵构建
最终,动态多头注意力掩码机制的整体计算如式(8)所示。
(8)
3 融合动态掩码注意力机制与多教师多特征的知识蒸馏
3.1 模型选择
在知识蒸馏过程中,教师模型需要具有强大的性能和知识源,而学生模型通常具有相对轻量级的参数量。为此,我们选取RoBERTa-wwm-ext和Electra-base作为教师模型,选择TinyBERT作为学生模型。具体模型的特点如表2所示。
表2 教师模型与学生模型
3.2 参数设置
本文提出了一种融合动态掩码注意力机制与多教师多特征知识蒸馏的策略。各蒸馏策略的主要参数设置如表3所示,其中,软标签SL、软输出SO、硬输出HO的计算公式见2.1节。
表3 蒸馏参数设置
在进行最终输出层的损失计算时,选择交叉熵损失作为损失函数衡量两个概率分布之间的差异,量化学生模型的预测分布与教师模型的软标签之间的距离。这是由于当学生模型的预测结果与教师模型的软标签之间存在较大的差异时,交叉熵损失会赋予这些差异较高的损失值,从而有效地引导学生模型更好地逼近教师模型的输出[33]。其计算流程如式(9)所示。
(9)
其中,P(i)是真实概率分布P中第i个类别的概率,Q(i)是预测概率分布Q中第i个类别的概率。
另外,在进行特征层、注意力层的损失计算时,本文选用均方误差(Mean Square Error,MSE)作为损失函数。MSE一般用来检测模型的预测值和真实值之间的偏差,可以度量学生模型在特征层与教师模型之间的特征表示的相似性。
(10)
3.3 蒸馏过程构建
经过该蒸馏方法的学生模型具有以下优势:
(1) 知识融合: 学生模型能够从多个教师模型中提取并融合有用的知识。这种综合性的知识传递有助于提高学生模型的泛化能力,使其能够应对多样化的输入数据。
(2) 多层次特征抽取: 教师模型的多个特征层对应着不同层次的特征抽取。结合多个特征层可以提供丰富的特征表示,有助于学生模型更好地理解和捕捉输入数据中的信息。
(3) 减少冗余信息干扰: 动态掩码注意力机制有助于减少模型学习不相关或冗余的知识。通过动态屏蔽重要的信息,模型可以更高效地学习有效知识,提高模型的效率和性能。
蒸馏运行过程如图7所示。
图7 融合动态掩码注意力机制与多教师多特征的蒸馏
Step1: 数据输入。数据同时传入到RoBERTa (Teacher模型1)、Electra (Teacher模型2),TinyBERT (Student模型)训练。
Step2: 前向传播计算特征层损失。对于每个教师模型与学生模型对应的特征层,分别计算其特征层对应的输出损失。由于RoBERTa、Electra以及TinyBERT模型在结构上具有很强的相似性,即教师模型RoBERTa、Electra均由12层Transformer结构组成,学生模型TinyBERT由4层Transformer组成。因此,本文采用一种特征层相互对应的知识蒸馏策略,即将教师模型的特定层与学生模型的对应层进行匹配。
具体蒸馏层数对应如表4所示。由于在特征提取层最上端加入Embedding层,因此Embedding编号为0,特征层的对应编号从1开始,模型共计M层(共计13层,包括Embedding层)。这种设置充分考虑了模型性能和模型复杂性之间的平衡。根据对应的特征层设置,知识蒸馏过程中可以充分利用多个教师模型在不同特征层的知识。再者,将教师模型的所有特征层的知识都传递给学生模型,可能导致学生模型变得复杂,参数量变多,因此选择将特定层的知识传递给对应的学生模型层以保持模型的轻量级。
表4 特征层对应的网络层
由于TinyBERT模型的维度为312维,还需要引入线性变换向量使其与教师模型的维度保持相同。结合对应特征层设置,蒸馏过程中特征层损失的计算如式(11)、式(12)所示。
其中,We为学生模型在Embedding层的线性变换向量,保证学生模型与多个教师模型的数据维度相同。同理,WS为学生模型在特征层的线性变换向量。
Step3: 前向传播计算注意力损失。由于在不同特征层中引入了动态掩码注意力机制,因此在计算特征层的损失时,还需考虑后续注意力损失的变化。其主要考虑不同教师模型与学生模型之间的注意力权重关系,其层数设置如表5所示。注意力损失的计算如式(13)所示。
表5 注意力层对应的网络层
Latt,i=MSE(ATim,ASm)
(13)
其中,动态掩码注意力机制阶段不包含Embedding层,因此注意力层数的编号从0开始。
Step4: 特征融合和知识传递。使用注意力权重将不同教师模型的特征融合到学生模型中,得到学生模型的多层特征表示,并将结果传递至下一层网络。
Step5: 计算最后一层的蒸馏损失。输入数据在经过两个教师模型训练后,在最后一层网络输出不同的软标签。同时,输入数据经过学生模型在最后一层网络后产生软输出。由于知识蒸馏过程中加入了新的教师模型,因此,知识蒸馏的输出损失计算需要引入新加入的教师模型的蒸馏损失。
蒸馏损失(Lpre)由多个教师模型的软标签与学生模型的软输出之间的损失(Lsoft)、学生模型的硬输出与硬标签之间的损失(Lhard)组成。具体如式(14)~式(16)所示。
最终,整合特征层损失、注意力机制损失、最后一层的蒸馏损失,得到整个蒸馏过程的损失函数如下: 其中Llayer表示对应蒸馏层的整体损失,Lmodel表示蒸馏过程的整体损失。
(18)
Step6: 反向传播和参数更新。使用反向传播算法来计算梯度,并根据梯度更新学生模型的参数,以减小损失函数的值。
Step7: 循环训练。重复上述步骤多次,学生模型在不同层次和多个教师模型的指导下逐渐提升其性能,以确保经过知识蒸馏后的学生模型性能达到最优。
4 实验设置与结果分析
4.1 数据集和实验环境
本节实验采用的是Windows 10 64位操作系统。采用的处理器是AMD Ryzen 7 5800H,带有Radeon Graphics,运行速度为3.20 GHz。NVIDIA GeForce GTX 3 070为系统提供16 GB GPU加速内存。
本文选取四种广泛使用的文本分类数据集进行实验,以此验证融合动态掩码注意力机制与多教师多特征知识蒸馏的文本分类效果。各数据集的详细划分信息如表6所示。
Weibo[34]: 带情感标注新浪微博,情感类别为两类。评论数据总量为119 988条,正向评论59 993条,负向评论59 995条。数据集划分按照6∶2∶2的比例处理为训练集、验证集及测试集。
Waimai: 外卖平台收集的用户评价,评论分为积极、消极2个类别。评论总数为11 987条,积极评论为4 000条,消极评论为7 897条。数据集划分按照6∶2∶2的比例处理为训练集、验证集及测试集。
今日头条: 今日头条应用中抽取约38万条新闻数据,包括民生、文化、娱乐、体育、财经、房产、汽车、教育、科技、军事、旅游、国际、证券、农业、电竞共15个类别。数据集划分参照孙红等人[35]对数据集的处理方法。
THUCNews[36]: 清华NLP组提供的THUCNews新闻文本分类数据集的子集,包含经济、房产、股票、教育、科学、社会、时政、体育、游戏、娱乐10种类别。
4.2 评价指标设置
本文分别采用准确率(Accuracy,ACC)、精确率(Precision,PRE)、召回率(Recall)和F1值作为对模型分类性能的评价指标。其中TP(True Positive)为正确的正例;FN(False Negative)为错误的反例;FP(False Positive)为错误的正例;TN(True Negative)为正确的反例。
其中,准确率(ACC)为所有预测中预测正确的比例;精确率(PRE)为正确预测为正的占全部预测为正的比例;召回率(Recall)为正确预测为正的占全部实际为正的比例;F1值是精确率和召回率的调和平均,为的是平衡准确率和召回率的影响,较为全面地评价分类效果。
4.3 基准模型的训练结果
本部分主要检验在未开始进行知识蒸馏前各基准模型的性能,包括经过Fine-tune后的教师模型以及经过TinyBERT(通用蒸馏)的预测性能。主要使用四种数据集划分的训练集、验证集。此阶段主要包含教师模型训练以及对学生模型的通用蒸馏。
教师模型训练: 教师模型分别设为RoBERTa与Electra模型,在进行知识蒸馏前需对这些模型加载预训练权重,然后在训练集上进行Fine-tune处理,以保证Teacher模型性能达到最优。
学生模型训练: 学生模型TinyBERT的整体蒸馏过程与传统蒸馏策略有所区别,因为TinyBERT并不是根据训练好的教师模型在特定任务中直接蒸馏。相反,它采用了一种模仿教师模型训练过程的方法,这个蒸馏过程可以分为两个关键步骤: 通用蒸馏和特定任务蒸馏。
(1) 通用蒸馏是模仿大型预训练模型在大规模语料库进行训练,其目标是在不丢失语义理解能力的情况下将教师模型的通用知识传递给TinyBERT,从而得到一个基础的学生模型。
(2) 特定任务蒸馏则是在特定的任务数据集上进行分类训练,以适应特定任务的需求。此过程使用的教师模型是在特定任务上经过Fine-tune的预训练模型,并基于Fine-tune的教师模型进行下一阶段学生模型的知识蒸馏。
综上,设置未蒸馏前基准模型的初始的超参数如表7所示。
表7 知识蒸馏的超参数设置
最终,在经过多轮周期性的训练后,各基准模型成功地将损失值降至最小,以学生模型TinyBERT(通用蒸馏)在多个周期内的损失变化为例,其在四种数据集上的损失值最终分别为4.371、5.143、4.126、7.382。学生模型在训练集上的损失变化如图8所示。
图8 未蒸馏前学生模型TinyBERT在训练集上的损失变化
这表明模型在大规模的数据集训练中取得了较小的损失值。此外,模型的损失误差在更新过程中稳步下降,没有明显的波动,表明模型在训练过程中具有出色的稳定性。因此,我们的模型在训练集上展现出了出色的性能。
在训练集上经过多轮训练后,RoBERTa (Fine-tune)、Electra (Fine-tune)、TinyBERT(通用蒸馏)作为基准模型学习到通用的语义知识。随后在各数据集的验证集上检验训练效果,其在验证集对比实验中的各模型分类性能统计结果如表8所示。
表8 未蒸馏前基准模型在验证集上的对比实验 (单位: %,1M=1百万)
由表8可得,教师模型RoBERTa、Electra在经过Fine-tune后,均在四种数据集上取得了较优的分类性能,而经过通用蒸馏后的学生模型TinyBERT则在这个阶段的预测性能较低。
具体而言,RoBERTa模型在四种数据集上的平均准确率、平均F1值分别可达到84.87%、81.91%。Electra模型在四种数据集上的平均准确率、平均F1值分别可达到84.12%、81.98%。深入分析可得,两种教师模型在Weibo、Waimai数据集上的预测性能最高,RoBERTa模型在这两种数据集上的准确率分别可达到86.37%、85.21%。Electra模型同样在这两种数据集上的预测性能最高,分别为85.74%、86.31%。并且Waimai数据集的平均句子长度要远远高于Weibo数据集,长句子通常包含更多的冗余信息和文本噪声,这会干扰模型对关键信息的识别和捕获。但这对两种教师模型产生的影响较小,相比于Weibo数据集,RoBERTa模型在Waimai数据集上的准确率仅仅下降1.34%,而Electra模型的预测性能相对增加了0.66%。因此,较长的文本长度(40个词左右)对两种教师模型的预测性能影响较小,这也表明两种教师模型在长文本、短文本中的预测性能均较为稳定。
随后,两种教师模型在THUCNews、今日头条数据集中也取得了较优异的性能,RoBERTa模型在这两种数据集上的准确率分别可达到83.35%、82.67%。同时,Electra模型在这两种数据集上也分别达到了较高的准确率,分别为82.65%、81.77%。相比于前两种数据集上的预测性能,两种教师模型在THUCNews、今日头条数据集上的表现均有所下滑。这是由于当前的两种数据集在分类类别上为10类、15类,远高于Weibo、Waimai数据集的类别。随着分类类别的增多,模型需要更好地理解每个类别的特征和差异,不同类别之间的区分难度通常会增加。但总体而言,两种教师模型在四种数据集上都具有较好的预测性能,并且在四种数据集上具有较高的鲁棒性,为后续的知识蒸馏过程奠定了基础。
最后,经过通用蒸馏的学生模型TinyBERT表现出整体较低的预测性能,其平均准确率为66.11%,平均F1值为64.67%。具体在四种数据集上的准确率分别为69.37%、68.41%、63.92%、62.73%,F1值分别为68.60%、66.59%、62.28%、61.22%。尽管性能较差,但TinyBERT模型的参数量仅为11M,仅占用教师模型的10.78%。这意味着虽然模型的性能目前不高,但其轻量级的特性为后续优化和应用提供了潜在的空间。
4.4 不同知识蒸馏策略的对比实验
本节对学生模型TinyBERT进行特定任务蒸馏,为了更好地检验本文提出的蒸馏策略的性能,我们还设置了另外三种基准知识蒸馏策略,用于进行消融试验。具体策略分别为:
① 蒸馏策略1:单教师单特征知识蒸馏策略
单教师单特征知识蒸馏是一种基本的知识传递技术,其蒸馏过程主要考虑教师模型与学生模型在最后一层的输出层之间的关系。(教师模型: RoBERTa)
② 蒸馏策略2:多教师单特征知识蒸馏[26]
多教师单特征知识蒸馏结合了多个教师模型的知识信息,但只传递最后一层的特征输出给学生模型。由于其结合了多个教师模型的知识,从而可以提供更丰富的信息,有助于提升学生模型的综合性能。(教师模型: RoBERTa、Electra)
③ 蒸馏策略3:多教师多特征知识蒸馏[38]
多教师多特征知识蒸馏结合了多个教师模型的知识,但不仅仅限于传递最后一层的特征输出,而是结合了不同层的特征输出,让学生模型进行学习。因此,教师模型从浅层到深层的特征表示都被传递给学生模型。(教师模型: RoBERTa、Electra,对应特征层查阅3.3节)
④ 蒸馏策略4:本文提出的蒸馏策略
融合动态掩码注意力机制与多教师多特征的知识蒸馏。该方法整合多个教师模型的强大语义能力,同时将多个教师模型的不同特征层的输出与学生模型结合。并且,引入了动态掩码注意力机制来动态地关注不同教师模型的特征知识。(教师模型: RoBERTa、Electra)
经过多轮测试,学生模型TinyBERT在经过知识蒸馏后,各蒸馏策略在测试集上的预测性能如表9 所示。
表9 各蒸馏策略在测试集上的对比实验 (单位: %,1M=1百万)
结合表8与表9可以直接看出,与教师模型的预测性能进行比较,上述4种经过蒸馏策略的 TinyBERT 模型的预测能力还是要较低于教师模型RoBERTa、Electra的预测性能,但其参数量仅为11M,远远小于两种教师模型。与通用蒸馏后的学生模型性能进行比较,TinyBERT在经过不同蒸馏策略后,其预测性能远高于通用蒸馏阶段的模型性能。
具体而言,与表8中的通用蒸馏的学生性能相比,蒸馏策略1学习了单个教师模型最后一层的知识输出,其在四种数据集上平均准确率提升了7.56%,平均F1值相对增加了5.52%,模型的预测性能取得了较大幅度的提升。但此时学生模型的预测性能仍然较低,平均准确率和平均F1值分别仅为71.12%、68.24%。随后,蒸馏策略2引入了新的教师模型,这使得学生模型可以同时整合、学习两种教师模型的知识,并且学生模型可以更好地泛化到新领域或者不同类型的数据。因此,相对于蒸馏策略1,蒸馏策略2在四种数据集上的平均准确率、平均F1值分别提升了3.91%,5.69%。由于蒸馏策略2主要关注两种教师模型最后一层的知识输出,而忽视了不同特征层之间的关联,因此提出了蒸馏策略3。蒸馏策略3不仅引入了多个教师模型,还关注了教师模型中不同特征层之间的知识变化,这一方面保证学生模型可以整合不同抽象层次的信息,挖掘从底层的特征到高层的语义信息。另一方面,考虑多个特征层可以增强学生模型的鲁棒性。其预测性能相比于蒸馏策略2,平均准确率、平均F1值分别增加5.45%,5.75%,增加的幅度也更加稳定。
蒸馏策略4在四种蒸馏策略中表现出了最佳的预测性能,平均准确率达到了81.32%,平均F1值达到了80.03%。这一结果归功于蒸馏策略4的独特优势。首先,蒸馏策略4综合了多教师和多特征层次的知识源,从不同层次获取信息,使得模型能够更全面地理解和利用教师模型的知识。其次,蒸馏策略4引入了动态掩码注意力机制,该机制有助于模型聚焦在不同特征层的关键信息上,并减少了冗余信息的干扰,提高了模型的性能。与蒸馏策略3相比,蒸馏策略4在四种数据集上的表现明显更出色,平均准确率提高了4.35%,平均F1值增加了4.93%。这一结果进一步验证了本文提出的融合动态掩码注意力机制与多教师多特征蒸馏策略的有效性。通过更好地整合多种知识源、多层次特征,关注关键信息,降低冗余干扰,蒸馏策略4为文本分类任务带来了显著的性能提升。
最后,我们还比较了蒸馏策略4与两种教师模型RoBERTa、Electra的输出结果。蒸馏策略4的预测性能相对于RoBERTa模型的平均准确率仅下降4.18%,平均F1值仅下降2.30%。相对于Electra模型的预测性能,蒸馏策略4的平均准确率仅下降3.33%,平均F1值仅下降2.38%。值得注意的是,此时学生模型的参数量却远远小于两种教师模型,其使用教师模型10.78%的参数量就获得了略低于教师模型的预测性能。这表明学生模型以更加轻量级的模型大小取得了接近于教师模型的预测性能。
4.5 知识蒸馏过程中的时间延迟
知识蒸馏过程中的时间延迟是指在知识蒸馏过程中,教师模型的知识是逐渐传递给学生模型,而不是立即传递全部知识。因此,时间延迟策略允许逐步引入教师模型的知识,以帮助学生模型逐渐改进性能。
为此我们设置一种温度提升策略来验证蒸馏过程中的时间延迟,即设置初始温度为接近0的值,然后逐渐升高温度,升温间隔为0.5,直至达到最终的目标温度(T=3)。这将温度变化转变为对应的时间步数,通过比较学生模型TinyBERT在不同时间步骤的性能,验证在时间推移下引入更多知识对输出性能的影响。具体结果如图9所示。
图9 TinyBERT在不同温度值下的预测准确率
由图9可知,随着蒸馏过程中温度的升高,学生模型TinyBERT整体的预测性能也在不断提升。但在温度较低时,学生模型性能提升较小,直至温度提升至2时,预测准确率发生了较大幅度提升。当温度提升至最佳温度T=3时,在四种数据集的准确率达到最佳,相比于T=0.5时的准确率,TinyBERT在最佳温度时的准确率在四种数据上相对提升14.26%、13.62%、10.77%、10.36%。
这表明虽然教师模型在每个时间步骤都会生成完整的概率分布,但教师模型和学生模型之间的知识传递是延迟的或分布在不同的时间步骤中。例如,本次蒸馏过程中的知识传递主要发生在温度大于1.5之后。这是由于在蒸馏初始时温度较低,此时教师模型的软标签输出的概率分布较为集中,因此带有其他类别标签的知识较少。随着时间推移,蒸馏温度不断提升,此时教师模型的输出更加均匀,输出结果引入了更多类别的知识信息,也让学生模型逐渐获取到更多知识。另外,结合表9中不同阶段的蒸馏策略也可看出,蒸馏过程中的知识是逐渐被学生模型学习的,例如蒸馏策略2仅学习两种教师模型最后一层的软输出,而当蒸馏策略3引入中间层特征后,其学生模型的预测效果大幅度提升。
4.6 运行时间对比实验
为了进一步验证本文提出的蒸馏策略的轻量化程度,我们进行了两种教师模型(Fine-tune)与经过蒸馏策略4(本文的蒸馏策略)后学生模型的运行效率对比实验。在这部分实验中,我们主要检验了教师模型RoBERTa、Electra以及学生模型TinyBERT(蒸馏策略4)在四种数据集的测试集上的运行时间。实验结果如表10所示。
表10 教师模型与学生模型运行时间的对比实验 (单位: 秒/s,1M=1百万)
根据表10可以清晰地看出,经过蒸馏策略4的学生模型在四种不同数据集上都表现出最短的运行时间。RoBERTa和Electra在四种数据集上的平均运行时间分别为12.98s、12.50s,而TinyBERT的平均运行时间仅为7.1s。其平均推理时间仅为两种教师模型平均运行时间的54.70%与56.80%。具体分析结果显示,与RoBERTa和Electra模型相比,TinyBERT在Weibo、Waimai、THUCNews和今日头条这四个数据集上的运行时间分别减少了约42.76%和39.16%、46.34%和46.99%、49.12%和46.79%、44.44%和42.42%。总体来看,在经过本文的蒸馏策略后,TinyBERT的运行时间仅耗费两种教师模型1/2的运行时间。因此,本文的蒸馏策略显著提高了学生模型的运行效率。
4.7 动态掩码注意力机制作用分析
在上述实验中,在引入动态掩码注意力机制后,学生模型的预测性能取得了明显提升。为了理解动态掩码注意力机制的工作原理及其对模型性能的影响,本节绘制了经过知识蒸馏后的学生模型TinyBERT对应层的注意力得分热度图,以深入了解TinyBERT模型在不同层次和头部的注意力分布。
由于TinyBERT的结构包括4个Transformer层,每层又包含12个注意力头。因此,注意力得分的输出具有四维形状,分别为批次大小、句子长度、注意力层数、注意力头数。以输入文本数据“我今天吃了火锅,非常高兴”为例,在添加通用的[CLS]和[SEP]符号后,模型的输出注意力分数的维度为(1, 14, 4, 12)。具体的注意力热度图如图10、图11 所示,其中每一行代表每一层的注意力得分,每一列代表每个注意力头的得分。在热度图中,颜色越亮,表示两个字符之间的相关性越高。
图10 TinyBERT在所有特征层的注意力热度图
图11 TinyBERT在第一层特征层的注意力热度图
一方面,从图10中可以看出,在四层的注意力得分中,许多字符与[SEP]的关联性较高,这意味着动态掩码注意力机制用[SEP]向量表达了句子中的部分字符特征,而句子的结尾通常包含对句子总结或结论的关键信息。同时也表明,动态掩码注意力机制使得模型关注于句子的末尾部分,这使得模型在处理文本数据时可以理解从头部到尾部的文本含义。并且,[SEP]符号是句子的结束标志,因此模型可能会将其视为句子的边界,以便正确处理单句任务,这说明模型具备正确识别句子结束的能力。
另一方面,从图11中可以看出,每个字符不仅与其自身的相关性最高,而且与其前后的不同字符也有一定程度的相关性。例如,“今天”和“吃”、“吃”和“火锅”等都具有较高的相关性。这表明在引入动态掩码注意力机制后,模型可以同时关注一个单词与其周围的单词之间的关系,从而更好地捕捉上下文中的语义关系。
结合上述动态掩码注意力机制对关键信息的打分优势,经过本文知识蒸馏后的学生模型TinyBERT可以关注文本数据的尾部关键信息与上下文相关信息,因而保证模型取得了最优的预测性能。
5 结论
随着深度学习的不断发展,模型的规模和参数数量也不断膨胀,这导致在训练和推理阶段需要更多的计算资源和耗费时间。本文提出了一种融合动态掩码注意力机制与多教师多特征的知识蒸馏方法,通过在四种数据集上的广泛实验,验证了这一方法的性能与效率,并得出以下关键结论:
(1) 本文提出的蒸馏方法不仅引入多种教师模型,同时还兼顾不同教师模型的多个特征层。通过融合多种教师的性能与多层特征的语义表示,经过本文蒸馏策略的学生模型在四种数据集上均取得了最佳预测性能,平均准确率与平均F1值可达到81.32%、80.03%。
(2) 经过蒸馏后的学生模型不仅在四种数据集上的性能达到最优,其仅采用教师模型10.78%的参数量就取得略低于教师模型的预测结果。同时,学生模型具有更高的运行效率,其平均推理时间仅为两种教师模型平均运行时间的54.70%与56.80%。
(3) 本研究还提出一种动态掩码注意力机制作用于整个知识蒸馏过程,用于关注不同特征层上的有效信息,忽视无效信息的干扰。实验结果表明,加入动态掩码注意力机制后,学生模型在四种数据集上的平均准确率与平均F1值分别提高4.35%与4.93%。此外,由注意力得分热度图可得,该机制使得模型更加关注数据的尾部关键信息与上下文信息。
在后续研究中,我们将尝试引入多模态的方法与数据,构造基于多教师多特征多模态形式的知识蒸馏策略,以保证模型适用于多元化数据。