APP下载

中文文本层次多标签分类算法研究

2021-06-03罗玉杰晏忠泰杨科彭德中

现代计算机 2021年9期
关键词:文档神经网络标签

罗玉杰,晏忠泰,杨科,彭德中

(1.四川大学计算机学院,成都610065;2.中国烟草总公司四川省公司专卖监督管理处,成都610094;3.中国烟草总公司四川省公司法规处,成都610094)

0 引言

文本分类是自然语言处理任务中常见且重要的任务。在应用中,文本的标签可以被组织成层次结构,即一个标签可以被细分成多个子类,其子类还可以继续细分。这样的标签结构通常被组织成树状或者有向无环图(Direct Acyclic Graph,DAG)的形式。具有层次多标签文本分类(Hierarchical Multi-label Text Classification,HMTC)任务具有广泛的应用,如自动问答、新闻标注等。

与单标签文本分类,层次多标签文本分类的主要挑战在于文本特征表达与标签结构关系的探索[1]。近年来,深度学习方法在提取文本特征表达时表现出了优秀的效果。循环神经网络(RNN)与卷积神经网络(CNN)是主流的文本编码架构,如XML-CNN[2]、HAN[3]等,不同的文本编码器在文本的特征表达上的效果并不相同。Bert[4]通过基于注意力机制的编码器进行预训练并在多项任务上取得多项优秀的结果,使得在预训练模型上进行微调成为流行趋势。

在多标签分类中,依然存在一些没有解决的问题,首先,从文本数据上来看,文本的不同部分与不同的标签的相关程度并不一致,在长文本中,不同标签类别的内容的篇幅也是不一致的;其次,不同层之间的标签的依存关系的建模方式也是一个值得关注的问题,Jonatas等人[5]通过多层输出的方式,这种结构在每个层次级别上都有一个输出层,并为整个网络提供一个全局输出层,并通过优化全局和每个层次的损失函数的加和来跟踪整个层次结构中标签依赖性,Yang等人[6]通过将文本分类转化成机器翻译的形式来建模标签之间的关联。

为了解决上述问题,我们使用图卷积神经网络(GCN)[7]来提取标签的结构关系,再与文本特征表达通过注意力机制进行融合,用来提取文本不同部分与不同标签之间的相关程度。GCN、图嵌入等工作在近年受到关注,这是由于现实中很多图数据结构,如社交网络[8]、生物网络[9]、推荐系统[10]等,利用图神经网络不仅可以取得较好的效果而且计算消耗较小。图嵌入能够提取丰富的语义信息,而且图神经网络作为可导的模块,可以嵌入到任意的端到端网络中。

这篇文章主要做了如下工作:首先,本文构造了一个数据量为90余万的中文数据集用于新闻分类,它使用层次化的标签结构,基数为2.67;其次,本文构造了一个基于深度神经网络的方法进行层次多标签分类,并在构建的数据上测试模型的有效性。

1 相关工作

1.1 多标签学习方法

多标签学习从方法学上可以分为问题转化方法与算法适应方法。问题转化方法将多标签问题转化成一个或者多个单标签问题,常见的算法如BR[12]将数据转化成适用于多个二元分类的形式,这导致数据转换后容易发生数据不平衡现象,且标签之间的联系被忽略。为了考虑标签之间的联系,LP[13]方法将每个标签的组合视为一个标签,将问题转化成单标签多分类问题,这样做不能预测没有出现过的标签组合,导致算法在训练数据上有过拟合的倾向。CC[14]由多个二分类器链组成,后一个分类器将前一分类器的结果作为特征加入,这样可以充分考虑标签之间的关系,但标签链的顺序对结果也造成了一定的影响。问题转化方法在面临标签数量大,标签关系复杂时,计算效率难以满足要求。

算法适应方法拓展单标签分类的算法使其能够直接处理多标签的数据。ML-C4.5[15]算法将决策树的熵函数的定义进行修改来适应多标签学习。Rank-SVM[16]通过优化经验排名损失函数与核技巧来处理非线性,比BR与SVM结合的模型效果更好。张等人[17]提出了第一个多标签惰性学习算法ML-kNN,ML-kNN将kNN算法应用在训练数据中,根据训练集的数据与未知测试样本,获得测试样本的k条近临训练集数据,然后根据训练集中的标签统计信息,结合最大后验概率来预测标签。算法适应方法在处理标签之间的高阶关系时计算复杂度大大提高。

1.2 深度学习多标签文本分类

近年来,神经网络在多标签学习领域得到广泛的使用,BP-MLL算法[18]将传统的多层全连接神经网络用于多标签数据,Kim[19]将CNN应用在文本分类领域,其简单的模型结构与良好的效果使CNN成为文本编码的热门,XML-CNN[2]利用动态的最大池化来获取文档不同区域的更细粒度的特征,使模型能够处理标签空间大的情况。CNN与RNN结合使用在文档级数据上取得了提升[20]。Yang[3]使用多层注意力的RNN网络进行文本分类。这些方法都将重心放在文本编码上,没有考虑标签之间的联系,Kurata[21]将多标签的共现信息用于初始化网络参数来提升模型的效果。HR-DGCNN[11]算法通过将文本转化成词图,并使用图卷积神经网络,可以捕获长距离的语义信息,同时其加入了递归正则化来捕获标签中的层次关系。为了更好地建模标签中的高阶关系,Chen等人[22]将CNN与RNN结合,通过CNN进行语义信息的提取,CNN的后接LSTM来进行标签的生成式预测。Yang等人提出SGM算法[6],使用机器翻译式的端到端的模型来进行多标签分类,以期更好的建模标签中的关系。

最近,BERT等人[4]预训练模型在各项自然语言处理任务中取得突破,BERT使用Transformer[23]作为基础架构,使用无监督任务预测进行预训练用于提取语义信息,与CNN或者RNN相比具有很大的提升。

2 模型结构

如图1所示,模型的整体结构主要由三个部分组成,分别是文档表示、标签的图表示与注意力机制层,我们使用了图神经网络来对标签图进行编码,使用预训练模型与循环神经网络对文本进行特征提取,并用注意力机制来捕捉文本与层次结构之间的关系。

图1 模型结构示意图

2.1 文档表示

一篇文档D可以表示成一个包含N个字的序列,D=(w1,w2,…,w N),其中w i∈Rk可以使用不同的初始化方式来进行初始化,如Word2Vec[24]等,本模型使用BERT来对字进行嵌入。通过BERT进行嵌入的字向量被送入GRU[25],进一步的提取文档的语义信息。双向GRU在学习长程依赖的同时,将上下文的语义信息结合,公式(1)与公式(2)分别表明前向GRU运算与后向GRU运算:

我们将前向隐状态与后向隐状态进行拼接作为最终的表示:

其中,H∈R2u是GRU第i个字的隐状态,u是每个单向GRU的隐状态的维度。文本的表示由每个字的隐状态组成h doc=[h1,…,h N]。

2.2 标签的图表示

一个图G由节点特征向量H∈R L*d以及其邻接矩阵A∈R L*L表示,其中L表示节点的个数,即标签集中标签的个数,d表示特征的维度。GCN网络使用节点与临接矩阵作为输入,输出为图的特征矩阵。

我们采用Kipf与Welling[26]论文中的GCN网络,计算如公式(4)所示:

其中,σ(·)表示激活函数,如ReLU等。表示图的有自连接的邻接矩阵是可学习的参数。在我们的模型中,邻接矩阵是根据标签树的结构进行构建的,通过GCN建模,我们希望融合图中标签的相关性信息。GCN作为一个可导的模块,可以通过梯度下降的方式进行优化,能够与我们的学习任务结合,学习出适用于层次标签分类的图表示H label。

2.3 注意力机制

上述的标签图通过GCN抽出的标签表示矩阵,与文档表示矩阵通过注意力的机制进行结合,以得到一个结合的文档与标签结构的表示。注意力机制是Bahdanau[27]在机器翻译中首次引入到自然语言处理中,注意力机制可以描述为将一个查询(Q)和一组键值对(K,V)映射到输出上,输出结果是值的加权平均,权重是查询与相应键通过函数计算得到。注意力机制的公式如下:

谷歌[23]引入了多头注意力机制:

其中,H label为用图神经网络提取的标签的图表示,h doc为文本的特征提取,AVG(·)表示在长度方向上取平均值。

2.4 输出层与损失函数

通过全连接层将输出规约到标签的维度,并与sigmoid函数结合得到最终的输出:

其中,W∈R2u*L为线性层参数,b∈R L为线性层的偏差。

在训练过程中,我们使用交叉熵损失函数,给定M个文档,标签集的大小为L,文档真实标签为l,对于模型输出y^,损失函数定义如公式(9)所示:

3 实验部分

3.1 数据集描述

本文所用的新闻数据集是我们收集于来自电视台的真实新闻稿件,每一篇新闻稿件都标注有按照广播电视节目资料分类法分类的一个或多个标签,这使得该数据集可以在新闻智能标签以及层次多标签分类等领域具有应用前景。图2是一条新闻文本的节选,这篇新闻具有6个标签,分布在三层标签树中的两条路径上。

该数据集包含了932,354条文档,共包含了683个标签。由于在构造数据集时,收集更多的尾部数据来最小化偏斜分布是一件非常困难的任务[28-29],于是我们将具有少量样本的类别去除,减小长尾问题[30],使样本尽可能平衡。同时,为了更好地比较模型在中等长度新闻文本上的效果,随机选取字数在250字至750字之间的数据,形成了一个小数据集,包含有211,997条文档,共包含110个标签。

图2 新闻数据集中的样例数据示意图

表1 新闻数据集的统计数据

图3 、图4显示了这两个数据集的一些统计数据,通过对数据集的分析:

(1)全量数据集中共有683类,小数量集共有110类,这些类别被组织成三层的树状结构。

(2)全量数据集与小数据集中平均每个样本的标签数(基数)分别为2.67、2.73个,这些标签在标签树中可以包含一条或者多条路径中标签,即可以包含不同层次的标签。

(3)全量数据集的字数的95%分位数为1080字,50%分位数为332字,5%分位数为47字。

图3 全量数据集中样本数据分布

图4 小数据集中样本数据分布

3.2 实验设置

实验在小新闻数据集中随机选取75%的数据作为训练集,25%的数据作为测试集。本实验使用PyTorch进行代码实现,并在NVIDIA RTX 2080Ti上进行实验。

模型参数:Bert作为词嵌入层输出为768维,双向GRU的隐藏层状态维度为128维,层数为1,GCN使用隐藏层维度为128维,层数为2,多头注意力的头数为3,为了防止过拟合,最后的输出层dropout的随机置零率为0.5。

训练参数:在实验中,输入句子最大长度为512,少于或多于该长度的句子将被填充或者截断。使用AdamW优化器[31]对参数进行优化,学习率为5e-5,优化过程中学习率随着训练轮次线性减小。批量大小为16。

3.3 基线方法

我们对比了各种深度学习的文本多标签分类算法,其中包括基于CNN、RNN和采用层次多标签分类的方法。

我们使用了TextCNN[19]与R-CNN[20]方法作为文本编码,然后通过一个线性变换层和sigmoid层将输出变换到标签空间以用于多标签分类。我们对比了在适用于大标签空间的多标签分类的XML-CNN[2]。

BiLSTM使用双向LSTM作为文本编码器,使用模型的输出作为文本表示,进行文本分类。SGM方法使用序列到序列的方式进行标签预测,我们按照原文的方法在解码阶段加入了全局的标签嵌入以解决曝光偏差的问题[6]。

我们对比了层次多标签的三个方法,HMC-LMLP[32]是Cerri提出的通过训练一组神经网络分类器,每一个分类器用于负责每一层标签的预测。HMCN[5]通过前向网络将每层标签的预测与全局预测相结合而形成的模型。HARNN[33]是在HMCN上改进的方法,其将标签嵌入使用注意力的方式融入了网络结构中。

3.4 评价指标

我们使用了micro-F1作为评价指标[6,11]。标签集为L时,对一个类i∈L,使TP i,FP i,FN i分别表示真正例、假正例、假负例的个数,那么模型的精确率(Precision,P)与召回率(Recall,R)可以定义为:

micro-F1是精确率与召回率的调和平均:

除此之外,我们还用到了汉明损失(Hamming Loss)[34]作为评价指标,汉明损失越低,模型的效果越好。汉明损失可以用如下公式表示:

其中,N表示文档个数,q表示每篇文档的标签数,Z、Y分别表示一篇文档的预测与真实的标签集合,操作符Δ表示两个集合的对称差。

4 实验结果分析

不同的模型在小新闻数据集上的结果如表2所示。第一部分是不同的编码结构在该任务上的结果,第二部分是层次多标签的三种方法的结果,最后一部分是我们提出的模型的结果。在适用于大标签空间的XML-CNN与基于注意力机制的循环网络HARNN在该数据集上的结果展现出有竞争力的结果,其micro-F1分别为76.9%与77.2%,我们提出的模型mirco-F1值为79.9%,与前两个相比分别提高了3%与2.7%。

表2 在新闻数据集上的结果对比

层次多标签的方法中HMCN-LMLP使用局部方法,使用多个分类器对每一层的标签进行预测,在数据集上的表现为75.8%,HMCN-F结合了使用全局方法,将分层信息与全局信息进行融合,优化全局的损失函数,得到的结果为75.0%。HARNN与HMCN相比优势在其加入了标签嵌入的特征,增加了不同部分文本与不同标签之间的信息,所以其结果上升至77.2%。我们也是通过另一种标签结构嵌入的方式增强该信息,我们将GCN的标签嵌入进行分析,如表3所示,“+”表示加入GCN,“-”表示不加入GCN,结果显示加入GCN之后模型在测试集上汉明损失降低了3%,并且micro-F1指标有一定的提升,这说明标签特征能够与文本的不同部分进行交互,对结果产生正向影响。

表3 使用GCN作标签嵌入融入注意力机制的消融分析

图5 展示了模型在10个轮次训练过程中测试集上loss与micro-F1值的变化,可见在训练过程中,加入图嵌入的模型的loss一直是更低的,且micro-F1一直高于没有图嵌入机制的模型,这也说明加入图嵌入的模型的收敛速度更快,取得的效果更好。

图5 有无GCN时模型训练过程中的loss与micro-F1的对比

5 结语

在本文中,我们提出了一种层次多标签分类的深度学习方法,该方法使用图神经网络对标签树进行编码,并使用注意力机制与文本的表示进行融合,以获取文本的不同部分与不同的标签之间的相关性信息,经过测试,模型的结果比基线好2.7%。我们使用了预训练模型进行微调来提取文本特征,在此基础上,加入图神经网络与不加相比,汉明损失下降了3%。我们构建了一个数据量为90余万的新闻数据集,其标签集大小为683,为了更好地测试算法性能,我们将数据的长尾部分去除,研究如何在该数据集上处理大标签空间中的长尾问题成为下一步的目标。

猜你喜欢

文档神经网络标签
基于神经网络的船舶电力系统故障诊断方法
浅谈Matlab与Word文档的应用接口
基于人工智能LSTM循环神经网络的学习成绩预测
MIV-PSO-BP神经网络用户热负荷预测
有人一声不吭向你扔了个文档
轻松编辑PDF文档
不害怕撕掉标签的人,都活出了真正的漂亮
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
Word文档 高效分合有高招
让衣柜摆脱“杂乱无章”的标签