基于Bi-LSTM和图注意力网络的多标签文本分类算法
2023-10-09杨茜
杨 茜
(郑州大学体育学院 河南 郑州 450000)
0 引 言
文本分类是自然语言处理的一个重要研究方向,其目的是将一段文本序列分为不同的类别[1]。文本分类大致分为单标签分类和多标签分类两种,其中多标签分类更具挑战性[2]。多标签文本分类(Multi-Label Text Classification,MLTC)是为语料库中的每个输入样本分配一个或多个标签的任务,在信息检索、标签推荐和情感分析等领域得到广泛的应用[3-4]。
在以往的研究中,多标签文本分类任务的解决方法主要包括问题转换方法、算法适应方法和神经网络模型三种[5]。其中,问题转换方法通过对样本集进行分解,将MLTC问题转换为一个或多个单标签分类或回归问题,经典问题转换方法是二进制相关性[6](Binary Relevance,BR),BR为每个标签学习一个单独的分类器,并通过忽略标签之间的相关性将所有分类器的结果组合为一个多标签预测。但是,如果数据集和标签太大,该类方法需要花费大量的时间和空间。算法适应方法在原有单标签分类方法的基础上进行适当改进,使之能够直接处理MLTC问题,如ML-KNN方法[7],采用传统的K-最近邻(KNN)算法通过计算不同标签之间的相关性来解决MLTC问题。这类方法不需要将数据进行转换,而且计算效率有所增加,但是仅限于利用一阶或二阶标签相关性。近年来,随着深度学习的发展,基于神经网络的MLTC方法也快速地涌现出来。Gargiulo等[8]采用CNN神经模型对多标签多类文本进行分类,但是由于CNN自身编码效率低且不具有旋转不变性,因此在复杂结构的文本分类中效果不佳。为了克服这一问题,Yang等[9]提出了基于胶囊网络的文本分类模型,通过引入动态路由更新机制和向量神经单元来克服CNN的弊端。为了能够选择性地关注文本中重要信息,研究人员还将注意力机制引入到文本分类中。Qu等[10]提出了一种基于分层注意网络的文本分类方法,该方法采用多层注意力机制用于改善模型的分类精度。但是,注意力机制不能够很好地保留单词的位置信息。因此,Jing[11]通过将注意力机制与LSTM网络相结合,利用LSTM网络提取文本序列的全局特征,注意力机制重点关注局部信息来提高处理长句和整个文档的分类性能。陈榕等[12]提出了一种基于注意力机制的CRNN算法,利用CNN提取文本向量的特征,然后利用Bi-GRU网络捕获文本的上下文依赖关系并结合注意力机制识别不同特征的重要性,该算法通过几种网络的组合有效提高了分类任务的准确率。
目前,虽然大多数MLTC方法能够在文本分类中具有很好的性能,但是这些往往忽略标签之间的依赖关系,从而没有将分类效果达到最优。针对这一情况,本文提出一种基于Bi-LSTM和图注意力网络(GAT)的多标签文本分类算法,本文算法首先利用预训练语言模型提取文本序列的信息特征,然后使用Bi-LSTM网络提取文本序列的上下文信息和全局特征,同时使用图注意力网络捕获标签之间的相关性,最后结合特征向量和标签依赖性来对MLTC任务进行预测。
1 深度学习神经网络
1.1 Bi-LSTM网络
深度双向长短时记忆Bi-LSTM是一种双向的RNN网络,一个Bi-LSTM单元由两个上下反向叠加在一起的单向LSTM组成,一个负责前向信息传递和一个负责后向信息传递,如图1所示,两个单向LSTM输出信息的组合作为最终的输出。
图1 Bi-LSTM网络架构
(1)
式中:ω和ϑ为权重系数;b为偏置值。与单个LSTM 模型相比,Bi-LSTM模型不仅利用时间序列中前后时刻数据之间的正向关联信息,还考虑了前后时刻的反向关联信息,因此在序列数据的分类问题中展现出了优越的性能。
1.2 图注意力神经网络
图注意力神经网络是将注意力机制引入图卷积网络中的一个新型架构,用于捕获网络节点之间更好的相关性。GAT采用注意力机制为每个相邻节点分配不同的权重系数,权重大小完全取决于邻近节点的特征,然后对邻近节点特征加权求和,其结果能够有效关注特征重要的节点,忽略不重要的节点。GAT由多个图注意力层组成,下面给出单层图注意力层的更新机制如图2所示。
图2 图注意力神经网络的架构
(2)
(3)
(4)
式中:‖表示拼接,激活函数的小于零斜率设置为0.2。为了使互相关系数能够更容易地计算,模型引入了Softmax对节点i所有的相邻节点j进行正则化:
(5)
最后,利用正则化后的不同节点之间的注意力互相关系数来预测每个节点的输出特征:
(6)
式中:σ是一个激活函数。为了使自注意力机制能够稳定地表示节点i,模型使用了多头注意力机制并使用其平均值作为输出,因此式(6)修改为:
(7)
式中:K表示多头注意力机制中的头数量。
2 基于深度学习的多标签文本分类
本文提出一种基于深度双向长短时记忆Bi-LSTM和图注意力网络GAT的多标签文本分类算法,对于给定的文本序列输入,该算法首先利用BERT语言模型将文本序列进行词向量表示,然后将词向量特征输入到Bi-LSTM网络中,用于学习文本序列的上下文信息和全局特征,同时利用GAT网络捕获标签之间的相关性,最后将基于注意力机制的标签特征应用于Bi-LSTM网络输出的特征向量上,增强多标签文本分类的预测精度。图3给出了本文模型的具体架构。
图3 本文模型的架构示意图
2.1 问题描述和词向量表示
多标签分类是指将给定的样本分配给多个分类类别的过程。该分类模型具有广泛的应用场景,如一篇文章可以同时属于经济类和文化类,一个蛋白质可能具有多个功能等。对于多标签问题,其难点有两个:一个是类标签的数量是不确定,如一些样本只有一个标签,而一些样本可能具有几十个标签;另一个是类标签之间可能会存在复杂的依赖关系,如包含蓝天类标的样本很大概率上包含白云。
多标签分类任务的目的就是训练一个预测模型,使得未标记的新样本能够准确地分类到已知的语义标签中。给定训练集中存在m个文本序列X={x1,x2,…,xm}和q个标签L={l1,l2,…,lq},假定标记空间中存在n个标签Y={y1,y2,…,yn}。对于文本分类任务,标签是指具有语义信息的文本。传统的分类任务一般是针对一个样本给定一个标签,而在MLTC问题中,每个样本可以有多个标签。从建模的角度来讲,MLTC任务可以通过寻找最优标记序列Y*使得条件概率p(Y|X)最大:
(8)
文本序列和标签中的词向量可以通过预训练模型得到。目前,存在多种词向量的表示方法,其中最常用的表示方法为词袋模型,但是这类方法没有考虑词的位置信息。Word2vec是另一种获取文本词向量表示的方式,该工具是谷歌公司开发的一款开源工具,经过大量的语料库预训练的模型,但是Word2vec工具的缺点是对于每一个词只有一种向量表示,无法解决多义词的问题。因此,本文采用BERT模型进行词向量表示。 BERT模型是2018年提出的一种预训练语言表示方法[13],它使用双向编码器网络在大型语料库上对语言模型进行预训练,并在其他任务上对预训练模型进行微调。任务特定的BERT设计能够将一个句子或一对句子表示为一个连续的标记数组。对于给定的标记,其输入表示形式是通过将其相应的标记、段和位置嵌入相加而构造的。BERT模型可以基于文本中各个字词的原始词向量输入,得到文本中各个字词融合了全文语义信息后的向量表示,图4给出了BERT模型的嵌入过程。
图4 BERT模型嵌入示意图
2.2 多标签文本分类方法
所提MLTC方法的深度学习部分主要由Bi-LSTM网络和GAT网络两部分组成,其中Bi-LSTM网络用于提取文本序列的全局特征,GAT网络用于捕获标签之间的依赖关系,然后将两个网络输出的特征向量结合在一起来对文本序列进行分类。
本文使用BERT嵌入单词,而后输入到Bi-LSTM网络中进行微调以完成针对文本分类领域任务的参数优化。Bi-LSTM从两个方向读取文本序列X并计算每个单词的隐藏状态,然后将两个方向的隐藏状态串联起来,从而获得第i个单词的最终隐藏表示:
(9)
因此,Bi-LSTM网络通过学习BERT输入数据而获得最终特征向量输出的过程可以表示为:
F=fBi-LSTM(fBERT(s;θBERT);θBi-LSTM)∈RD
(10)
式中:f表示映射关系;s表示文本句子;θBERT和θBi-LSTM分别表示BERT和Bi-LSTM网络的参数;D表示Bi-LSTM网络中隐藏层的维度。
一般来说,GAT网络中的图网络块G由特征向量M∈Rn×d和相应的邻接矩阵A∈Rn×n组成,其中:n表示标签的个数;d表示维度。因此,GAT网络往往采用表示图形数据的节点特征和邻接矩阵作为输入。在本文中,没有相应的现有图数据集对GAT进行训练。相反,将标签的嵌入向量充当节点特征,通过构建邻接矩阵来学习标签之间的相关性,进而利用标签之间的相关性建模为加权图,并迫使GAT网络学习,以使邻接矩阵和注意权重共同代表相关性。对于邻接矩阵的初始化问题,本文使用相关矩阵来初始化权重。首先,通过计算标签的成对共现来构造相关矩阵,然后利用频率向量对共现矩阵进行归一化:
A=C/F
(11)
式中:C∈Rn×n表示共现矩阵;F∈Rn表示单个标签的频率向量。因此,GAT网络的第一层输出可以表示为:
(12)
式中:σ是一个激活函数,本文采用tanh激活函数。第l层的输出表示为:
(13)
将GAT网络最后一层的注意力标签特征输出定义为Hgat∈Rc×d,其中:c表示标签数量;d表示标签特征的尺寸,然后与Bi-LSTM网络输出的特征向量进行点乘操作,用于获得最终的预测分类结果:
(14)
本文使用交叉熵作为损失函数:
(15)
式中:y∈Rc表示真实的标签,其中yi∈{0,1}。
3 实验与结果分析
为了验证本文方法的有效性,采用RCV1-V2[14]和AAPD[15]两个数据集进行测试,并将测试结果与以下几个MLTC方法进行对比。HAN+LG方法[3]在单词和句子级别上使用分层注意力网络来获取文档表示,然后引入标签图矩阵并通过逻辑回归预测每个标签;Seg2Set方法[14]使用简单而有效的标签序列来建立分类模型;reg-LSTM方法[15]使用带有正则化的简单BiLSTM体系结构进行预测;SGM+GE方法[16]将多标签分类任务视为一个序列生成问题,基于解码器结构进行求解;HLW-LSTM[17]方法使用混合注意力机制和LSTM捕捉标签差异和标签相关性信息;HLW-MDC使用混合注意力机制和基于多层扩展卷积的文本语义单元同时提取单词级别和语义单元级别的信息[18]。
3.1 实验数据集
RCV1-V2数据集是由路透社有限公司提供的分类新闻报道组成,每个新闻热线故事可以分成多个主题。该数据集共包含804 414个文件,包括643 531个训练文件和160 883个测试文件,可划分为103个主题。
AAPD数据集由55 840篇学术论文的摘要及其对应主题组成,每篇论文可以有多个主题。该数据集的研究目的是根据摘要内容预测学术论文的主题。具体而言,AAPD数据集分为44 672个训练文档和11 168个测试文档,共计54个类别。
对于上述2个数据集,筛选出超过500个单词的样本,这将能够删除每个数据集中约0.5%的样本。将每个数据集分为训练集、验证集和测试集。词汇表大小设置为50 000个单词。数字和词汇表外的单词都选择特殊的标记“#”和“UNK”进行替换。并且,采用频率降序的方式对标签进行排列。
3.2 模型参数设置和评价指标
本文模型包括Bi-LSTM网络和GAT网络两个部分,其中Bi-LSTM网络的正向与反向隐藏层中的节点个数均为128,同时在训练过程中所有的Bi-LSTM网络共享一套权重以避免过拟合现象的发生。GAT网络由2个层组成,每个层是一个多头部注意力机制的架构,头部数量设置为8个。对于所有数据集,使用BERT嵌入对句子和标签表示进行编码,批处理大小设置为250。使用Adam优化器来最小化最终目标函数。学习率初始化为0.001,为了避免过度拟合,将drop-out设置为0.5。
为了能够有效评估本文模型的性能,采用汉明损失(Hamming Loss,HL)和微平均F1-分数(Micro F1-Score,MiF1)等指标来衡量模型的测试结构。下面给出2个指标的具体内容。
汉明损失HL是指错误预测标签所占总数的百分比,其数学公式可以表示为:
(16)
式中:m和M分别表示样本个数和标签总个数;Yi表示样本i实际标签的集合;Zi表示样本i预测标签的集合;Δ表示两个集合的对称差。汉明损失越小,预测结果越好。
微平均F1-分数MiF1是计算所有样本标签对的F1分数,其数学公式定义为:
(17)
式中:TP、FP和FN分别表示真正例、假正例和假负例。微平均F1-分数越大,预测结果越好。
3.3 对比实验
为了验证本文方法的有效性,本文进行了2个实验,第一个实验是消融实验,在2个数据集上进行测试模型不同部分的贡献度,第二个实验是对比实验,通过与其他多标签文本分类方法的结果对比来证明方法的可行性。
对于消融实验,本文首先研究了4种不同的词嵌入工具对本文模型的影响,图5给出了几种词嵌入工具在测试数据集上的MiF1分数结果。可以看出,使用具有双向语言编码的BERT模型所取得的F1分数最好。
图5 不同预训练工具的MiF1结果对比
除此之外,本文还研究了GAT网络对模型的贡献,并对比了GAT和图卷积网络(Graph Convolution Network,GCN)网络的性能。图6给出了所提模型深度框架中包含Bi-LSTM、Bi-LSTM+GCN和Bi-LSTM+GAT3种不同网络结构时的MiF1分数结果。可以看出,模型仅有Bi-LSTM网络构成时性能最差,而Bi-LSTM+GAT组合的性能稍优于Bi-LSTM+GCN网络,这是因为GAT网络利用自注意力系数将邻居顶点的特征聚合到中心顶点上,从而保证了顶点特征之间的相关性被更好地融入到模型中。
图6 不同深度网络组合的MiF1结果
本文的第二个实验是对比实验,将本文方法与其他分类方法在两个数据集上进行了汉明损失(HL)和微平均F1-分数指标的衡量测试。图7-图8分别给出了HL和MiF1的测试结果,可以清楚地看到,本文方法在RCV1-V2数据集和AAPD数据集中的HL结果最小,MiF1结果最大,说明在所有对比方法中,本文模型的性能最优。
图7 不同分类方法在HL指标上的对比
图8 不同分类方法在MiF1指标上的对比
4 结 语
本文提出一种基于Bi-LSTM网络和GAT网络的多标签文本分类算法,通过关注标签之间相关性来提高文本分类的精度,该算法主要由词向量表示、深度学习和预测任务3个步骤组成。首先,本文使用BERT预训练模型对文本序列和标签进行词向量表示;然后将文本序列输入到Bi-LSTM网络中来获得全局特征向量,将标签输入到GAT网络中用于捕获标签之间的相关性;最后利用矩阵相乘将两个网络模型的输出组合在一起,用于完成MLTC任务。实验结果表明,本文模型的性能明显优于其他方法,在多项指标上取得了最佳的结果。