邓维斌,王智莹,高荣壕,王国胤,胡 峰
(重庆邮电大学 计算智能重庆市重点实验室,重庆 400065)
文本分类目前广泛应用于情感分析、语言推理、主题分类、垃圾邮件检测、新闻过滤等领域,已经成为自然语言处理中一项重要任务。在传统单标签文本分类中,每个样本只对应一个标签,且各标签之间相互独立。大数据时代文本信息日益丰富使得类别划分越来越详细,一个样本往往与多个标签相关,同时,标签之间常存在联系,对于这种分类任务称为多标签文本分类[1]。
多标签文本分类已广泛应用于许多真实场景,如涉及多个学科的论文、讨论多个主题的博客、包含多种情感的评论等。与二分类相比,多标签文本分类需要对文本有更加深入地理解,以提供更全面、准确的标签预测[2]。对于多标签文本分类问题,人们首先考虑到的是将多标签文本分类任务转化成技术已经逐渐成熟的单标签分类任务。然而,这种方法认为标签之间相互独立,忽略了标签之间的关联性。随着深度学习的发展,学者们提出了许多基于深度学习的多标签分类模型,并取得了较好的成效。其中,基于序列到序列(Seq2seq)的模型在多标签分类领域得到广泛应用,该模型使用编码器提取文本信息,通过解码器按顺序预测标签,显著提高了多标签分类的性能[3]。随着注意力机制出现,研究者将注意力机制引入Seq2seq模型可以有效地捕获文本的重要信息,但是,传统注意力机制往往只重视文本语义信息提取而忽略标签语义,导致模型不能充分捕获标签语义和标签间的关联信息。
目前,存在许多模型用来处理多标签分类问题,但仍然有不足之处。其中,如何有效学习标签之间的依赖关系,并将标签间关联信息与文本信息进行更加自适应地交互成为一个关键问题。针对上述问题,本文提出了一种融合注意力与CorNet的多标签文本分类算法。为了捕获标签间的依赖关系,利用基于标签特征矩阵的图注意力网络学习标签之间的相关性,并且在标签预测层之后添加CorNet模块捕捉标签间关联关系以增强标签预测。设计“文本-标签”注意力机制,将文本特征和标签间关系特征进行点乘运算获得每个单词对当前标签的权重,并将权重和文本表示结合得到最终的文档表示,实现标签间关联信息与文本特征信息自适应交互。
多标签文本分类算法大致分为两类:基于传统机器学习的算法和基于深度学习的算法。
传统机器学习算法主要包括问题转换方法和算法自适应方法两大类[4]。问题转换方法是将多标签文本分类任务转换为多个独立的二进制分类问题。Zhang等提出二元相关(binary relevance,BR)方法就是问题转换方法[5],该方法通过给每个标签建立一个单独的分类器实现多标签文本分类,但BR方法忽略了标签之间的相关性使得模型性能较低。为了捕捉标签相关性,Read等提出了分类器链(classifier chain,CC)方法[6],将多个二进制分类器连接在一起,每个分类器使用来自前一个分类器的预测作为输入。这种方法的缺点是不同的标签顺序可能会产生不同结果,连接过程也意味着CC方法无法并行化,因此,在处理大型数据集时会产生较高的计算成本。算法自适应方法是对传统的单标签分类算法进行改进来解决多标签分类问题。代表性算法有Clare等提出的ML-DT(multi-Label decision tree)方法[7],其基本思想是通过使用熵的信息增益递归地构建决策树来处理多标签问题。Elisseeff等提出排名支持向量机(ranking support vector machine,rank-SVM)方法[8],基于与SVM的特性构造类似于学习系统的支持向量机来处理多标签问题,但这种系统的表达能力很弱。Younes等将K最近邻(KNN)算法应用到多标签分类问题[9],并且考虑了标签之间的依赖关系。然而这些传统的机器学习方法在处理多标签问题时不能充分挖掘文本语义信息,大大降低了多标签分类的精度。
深度学习的快速发展使基于深度学习的模型效果有了很大的提升。深度学习方法广泛应用于自然语言处理领域。Jacovi等提出CNN模型处理文本分类对文本进行最大程度的特征提取[10],从而提高了文本分类的效果。Liu等提出XML-CNN模型使用CNN设计了一个动态池处理文本分类,在池化层和输出层之间加了一个隐藏层来降低标签维度以减少计算量,并且改进了损失函数,采用二元交叉熵损失函数,使得文本分类效果得到明显的提升[11]。虽然基于CNN 的算法在多标签分类任务中取得了不错的研究成果,但这类算法仅仅从局部提取文本语义信息,缺乏对全局信息的考量,没有考虑标签之间的关联性。宋攀等提出利用神经网络构造矩阵刻画标签之间的依赖关系,同时可以解决标签缺失问题[12]。Chen等提出的CNN-RNN[13]和Yang等提出的序列生成模型(SGM)[14]通过使用编码器和解码器分别对文本进行编码及生成可能的编码序列,但这类方法过于依赖标签的顺序,标签顺序不同时可能会产生不同的结果。You等提出AttentionXML使用自注意力机制来捕获与每个标签最相关的文本但忽略了标签信息[15]。Xiao等提出的LSAN模型提出标签注意力机制学习特定于标签的文本表示,将标签语义信息引入到模型中[16]。Yao等提出用图卷积网络(GCN)对文本进行分类,基于单词共现和文档-单词关系为语料库构建一个异构图,并使用图卷积神经网络联合学习单词和文档嵌入[17]。尽管图卷积神经网络已取得了较好的效果,但GCN仍然缺少重要的结构特征,无法更好地捕捉节点之间的相关性或依赖性。
为了进一步提升多标签文本分类模型的性能,提出了一种融合注意力与CorNet的多标签文本分类模型MLACN,通过图注意力网络和CorNet模块充分捕获标签间的语义依赖,同时利用“文本-标签”注意力机制,将标签之间的语义关系与文本上下文语义信息进行交互,获取基于标签语义信息的文本特征表示。模型如图1所示。
图1 模型框架
为了更好地捕捉文本双向语义关系,采用Bi-LSTM[18]从前后两个方向分别提取文本上下文语义信息,并计算每个单词的隐表示
(1)
将文本中每个单词的隐表示串联得到整体文本表示
(2)
(3)
其中:αij是hi的归一化系数;wj是注意参数,每个标签的wj不同;M(s)是多标签注意力机制下特定于标签的文本表示。
图注意力网络[20]将标签数据的节点特征和邻接矩阵作为输入。基于标签构造邻接矩阵,模型通过学习邻接矩阵确定图,从而学习标签的相关性。图注意力网络通过将标签间的关联关系构建成加权图,以便邻接矩阵和注意权重一起表示标签的相关性。
2.4.1 构建邻接矩阵 通过计算标签的成对共现来构造邻接矩阵。频率向量是向量F∈Rl,Fi是整个训练集中标签i的频率,通过频率向量对共现矩阵L进行归一化。
Ladj=L/F
(4)
其中:Ladj∈Rl×l是邻接矩阵;F∈Rl是单个标签的频率向量。
图2 GAT模型
eij=a(WHi,WHj)
(5)
其中:W是可训练参数;a是前馈神经网络的可训练参数;eij表示节点j对于节点i的重要性,并且节点i必须是节点j的一阶邻居。注意力系数计算公式为
(6)
其中:LeakyReLU为非线性激活函数;αij为标签j相对于标签i的归一化注意系数;k∈Ni表示节点i的所有一阶邻域节点。
根据式(6)的注意力系数,对特征进行加权求和
(7)
GAT中还加入了多头注意力机制,将经过K头注意力机制计算后的特征向量进行拼接,对应的输出特征向量表达为
(8)
(9)
经过GAT计算后的向量记作Hgat∈Rc×d,其中:c表示标签数量;d表示标签的特征尺寸。
文本中每个单词对于不同的标签起到的作用是不同的。为了强化标签之间的语义联系,将标签语义信息与文本上下文语义信息进行交互,获得基于标签语义的文本特征表示,设计“文本-标签”注意力计算每个单词的重要度,通过将文本特征H与标签特征向量Hgat进行点乘计算获得文本和标签之间的匹配得分A
(10)
文本内容对不同标签的重要程度是不同的,为了建立文本和标签之间的关系,将上一层得到的A转置乘以文本的隐表示,得到标签对应的文本表示
(11)
M(s)和M(l)都是标签对应的文档表示,但是两者的侧重点不同。前者侧重于文档内容,后者侧重于标签内容。为了充分利用这两个部分的优势,使用自适应融合机制,以自适应地从中提取信息,并得到最终的文档表示。
将M(s)和M(l)作为全连接层的输入,通过全连接层获得两个权重向量β,γ来确定上述两个注意力机制的重要性。
β=Sigmoid(M(s)W1)
γ=Sigmoid(M(l)W2)
(12)
其中:W1,W2∈R2k是可训练参数;βj和γj分别表示多标签注意力机制和“文本-标签”注意力机制在对第j个标签构建最终的文本表示时的重要程度
βj+γj=1
(13)
然后,根据融合权重获得第j个标签的最终文本表示为
(14)
所有标签的最终文档表示为M。
本文使用多层感知机实现标签预测,预测第i个标签出现的概率通过式(15)获得
yx=W4f(W3MT)
(15)
其中:W3、W4是参数矩阵;函数f为RELU激活函数。
图3 CorNet模型
(16)
F(x)=W6δ(W5σ(x)+b1)+b2
(17)
其中:W5、W6是权重矩阵;b1、b2是偏置;σ、δ分别是Sigmoid和ELU激活函数。
MLACN 使用二元交叉熵损失(binary cross entropy loss)[23]作为损失函数计算损失值如下
(18)
实验采用AAPD、RCV1-V2和Reuters-21578多标签分类数据集。
AAPD[14]:该数据集为北京大学大数据研究院提供的公开英文数据集。数据集主要包括从网站上收集的55 840篇计算机科学领域论文摘要与相对应的主题。一篇论文摘要可能包含多个主题,总计54个主题词。
RCV1-V2[24]:该数据集是由 Lewis 等提供的公开英文数据集,由路透社有限公司为研究人员提供的800 000多条人工分类的新闻通讯报道组成。每篇新闻报道包含多个主题,总计103个主题。
Reuters-21578[25]:该数据集中的文件是1987年从路透社收集的。这曾经是自1996年以来从事文本分类研究人员的热门数据集。根据路透社22173预览版改编,现在包含21 578份文档。
模型评价指标采用汉明损失(Hamming loss,记为HL)[26],精确率(precision,记为P),召回率(recall,记为R)和Micro-F1(记为F1)[27]。在这些指标中,Hamming Loss反映了分类错误的标签数目,该指标值越小,则分类性能越好;精确率用来统计预测标签集中预测正确的标签所占比例,值越大说明分类性能越好;召回率表示样本真实标签集中被预测到的标签的比例;Micro-F1值表示精确率和召回率的加权平均,该指标值越大,则分类性能越好。
为了充分验证提出算法的有效性,选择以下8种算法作为对比算法。
BR[5]:该算法提出将多标签分类任务转换为多个二进制分类任务。
CC[6]:基于一系列二进制分类任务来解决多标签分类任务。
CNN[10]:主要利用卷积神经网络来学习密集的特征矩阵以捕获文本局部语义信息。
CNN-RNN[11]:使用CNN和RNN获得局部和全局语义,并对标签之间的关系进行建模。
SGM[14]:一种将多标签分类任务视为序列生成任务的模型,并将Seq2seq用作多类分类器。
LSAN[16]:利用标签注意力机制建立特定于标签的文本信息,同时使用自适应融合机制将标签信息与文本信息融合。
AttentionXML[15]:利用多标签注意力机制捕获每个标签最相关的文本。
ML-Reasoner[28]:该模型使用二元分类器预测标签,同时提出一种迭代推理机制学习标签之间的信息来避免过度依赖标签顺序。
使用Glove[29]预训练词向量对每个数据集的文本和标签进行初始化,词嵌入维度k=300。批处理大小为64,整个模型使用Adam[30]进行训练,初始学习率为0.001,设置Dropout为0.5来防止过拟合。为了避免梯度爆炸,将模型最大梯度设置为5.0。在AAPD和Reuters-21578两个数据集上设置GAT层数为2,图注意力头数为4;在RCV1-V2数据集上设置GAT层数为3,图注意力头数为4。CorNet层数设置为2。
MLACN模型在3个数据集上和其他基准算法评价指标得分情况见表1~表3,最优结果用粗体表示。其中HL表示汉明损失,P和R分别表示 precision和recall,(-)表示值越低模型效果越好,(+)表示值越高模型效果越好。标有*的模型表示其结果为复现后的结果,未标记的模型直接引用论文的结果。
表1 在数据集AAPD上的对比结果
表2 在数据集RCV1-V2上的对比结果
表3 在数据集Reuters-21578上的对比结果
从实验结果可以看出,本文提出的模型在更具挑战性的AAPD数据集上的性能显著优于所有基线模型。特别是在Hamming Loss以及Micro-F1两个指标上取得了最好的性能。MLACN模型与最常见的基准模型BR比较可以减少30.7%的Hamming Loss,提升13.9%的Micro-F1值。提出的模型性能远超过CNN、CNN-RNN这些传统的深度学习模型。同时,MLACN模型在4个性能指标上都超过了LSAN模型。与最近的ML-Reasoner模型相比减少11.7%的损失,同时取得了最好的F1值。随着数据集大小的增加,在RCV1-V2数据集上不同模型之间的性能差异会减小,然而与其他基本模型相比,MLACN模型的性能仍然有明显改善。 在Reuters-21578数据集上的表现与RCV1-V2数据集类似,提出的模型在Hamming Loss和F1评价指标上优于其他基准模型。MLACN模型在Micro-F1指标上获得了最好的性能,同时在其他指标的性能上均与最先进的模型性能相近。 这些实验结果进一步验证了MLACN模型在数据集上表现的优越性。
基于深度学习的模型在大多数指标上都优于传统机器学习算法,这是因为基于深度学习的模型能充分利用训练集捕获更深层次的语义信息,从而更好地处理复杂数据。传统CNN方法在精确率上具有一定的竞争力,在AAPD和RCV1-V2数据集上领先于目前所有的基线模型,是由于传统的CNN模型非常适合提取局部特征。 CNN模型中的最大池化层会放大局部特征,使得基于CNN的分类通常依赖于明显的特征。当正样本多于负样本时,CNN更倾向于生成有利于正样本的特征,导致CNN分类中预测结果偏向正样本,由召回率较低可以看出这个特点。CNN-RNN模型使用CNN和RNN获得局部和全局语义,并对标签之间的关系进行建模,在数据集上的效果与CNN模型相比有所提升。 LSAN和MLACN模型相比于其他模型较好,原因在于其他模型均没有单独的将文本标注的标签信息考虑进去,尽管SGM与AttentionXML试图建立文本与标签之间的联系,但仅仅局限于对文本内容的训练与学习,会降低尾部标签的预测能力。MLACN模型相比于LSAN有着进一步的提升,是因为一方面,通过Bi-LSTM和多标签注意力机制对文本特征信息进行提取;另一方面,标签之间的联系不再局限于特定文本的语义联系,而是通过多层 GAT 和CorNet充分挖掘全局标签之间的联系以及关联程度。从整体上看,信息的融合与标签的关联有着更为紧密的联系,MLACN模型有效提取文本特征信息的同时,也能学习标签之间的联系,进一步体现了模型的优越性。
为了验证带有不同层数的GAT对模型性能的影响,在AAPD、RCV1-V2和Reuters-21578数据集上进行实验,结果分别如图4~图6所示。实验结果表明,在AAPD和Reuters-21578两个数据集上,两层GAT的效果最好,并且多标签分类模型的性能随着GAT层数的增长而降低。在RCV1-V2数据集上,当GAT层数为3时模型分类效果最好,且有随着层数加深逐渐降低的趋势。可能的原因是,标签关系图节点的周围前3层节点的信息可能对最终的分类做更多的贡献,而随着层数的增加,其外围的节点信息可能会产生噪声,干扰模型的分类效果。RCV1-V2比其他两个数据集更大,因此需要更深层次的GAT提取标签之间的依赖关系。
图4 不同GAT层数的MLACN模型在AAPD数据集上的对比结果
图5 不同GAT层数的MLACN模型在RCV1-V2数据集上的对比结果
图6 不同GAT层数的MLACN模型在Reuters-21578数据集上的对比结果
为了进一步验证模型各组件的有效性,本文在3个数据集上进行了3组消融实验,实验结果如表4~表6所示。
表4 AAPD消融实验结果
表5 RCV1-V2消融实验结果
表6 Reuters-21578消融实验结果
1)Without CorNet表示没有使用CorNet模块,仅通过GAT获取标签之间的依赖关系;
2)Without GAT表示没有使用GAT模型,仅通过CorNet模块增强标签预测捕获标签之间的依赖关系;
3)Without SL-ATT表示没有使用“文本-标签”注意力机制,没有将文本和标签语义进行交互。
在3个数据集上的消融实验结果显示,Without CorNet模型和Without GAT模型与MLACN模型相比F1值均有所降低,表明CorNet模块和GAT可以捕获标签的依赖关系, 提升模型分类效果。在AAPD和Reuters-21578数据集上,Without SL-ATT模型与MLACN模型相比F1值分别降低了1.4%和0.3%,表明“文本-标签”注意力机制对提升模型性能是有利的,可以对文本和标签语义进行交互,更好地提取文本和标签语义。而在RCV1-V2数据集上,Without SL-ATT模型与MLACN模型相比结果相差不大,原因可能是RCV1-V2数据集较大,文本和标签信息比较丰富,仅仅通过点乘运算的方法使得文本和标签进行交互效果甚微,需要设计更深层次的交互机制进一步提取文本和标签信息。
从整体消融实验结果来看,MLACN模型能够有效地融合各个组件的优势,提升模型整体效果。
本文提出了一种融合注意力与CorNet的多标签文本分类模型MLACN。模型利用多层图注意力网络(GAT)通过标签特征和标签的邻接矩阵构建标签关联图,学习标签之间的依赖关系,并设计“文本-标签”注意力机制将标签信息与文本上下文语义信息进行交互,获得基于标签语义信息的文本特征表示,并在标签的预测层之后添加CorNet模块学习标签的相关性增强标签预测。在3个标准多标签文本分类的数据集上得到的实验结果表明,所提出的方法其性能优于当前先进的多标签文本分类算法,验证了MLACN模型的优越性,同时,也验证了引入图注意力网络和CorNet,建立具有文本语义联系的标签特征表示的有效性与合理性。
在接下来的工作中,将考虑如何处理大规模标签数据集的多标签分类问题,从更深层次挖掘语义联系。同时,调整模型参数进一步优化模型,降低训练的时间复杂度,从而高效、准确地预测标签。