多标签分类:Ensemble Application of Convolutional and Recurrent Neural Networks for Multi-label Text Categ

文章地址:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7966144

文章标题:Ensemble Application of Convolutional and Recurrent Neural Networks for Multi-label Text Categorization(卷积和递归神经网络在多标签文本分类中的集成应用)IJCNN2017

Abstract

摘要:文本分类是表示文档语义信息的关键任务之一。多标签文本分类是一种更细粒度的文本分类方法,它包括为文档分配多个目标标签。由于标签组合的指数增长,这比多类文本分类更具挑战性。现有的多标签文本分类方法在提取局部语义信息和对标签相关性建模方面存在不足。在这篇论文中,我们提出了一个卷积和递归神经网络的集成应用来捕获全局和局部文本语义,并在具有可处理的计算复杂度的同时对高阶标签相关性进行建模。大量的实验结果表明,该方法在大数据集训练的神经网络模型上达到了最优的性能。

一、INTRODUCTION

多标签文本分类是指为文本文档分配一个或多个类别(或标签)的任务,这可能很耗时,有时也很棘手。文本分类和多标签文本分类在现实问题中得到了广泛的应用,如信息检索[1]、情感计算[2]、情感分析[3]、垃圾邮件检测[4]、多模式内容分析[5]等。

解决这一问题的有效方法是对文本进行高级语义表征,这种语义表征超越了忽略词和短语局部排序的词包模型,因此无法掌握局部语义信息[6]。此外,标签往往表现出很强的共现依赖性。例如,一个颜色标签“绿色”经常与主题标签“树”或“叶子”一起出现,然而,“蓝色”的标签永远不会与主题标签“狗”一起出现。通过考虑这种标签相关性而不是单独考虑标签,有望得到一个更有效的预测模型。

在这项工作中,我们提出了一个卷积神经网络(CNN)和递归神经网络(RNN)的集成应用来解决多标签文本分类的问题。我们开发了一个CNN-RNN结构来模拟文本的全局和局部语义信息,然后利用这种标签关联进行预测。特别地,我们采用了最先进的基于字向量的CNN特征提取技术,并使用RNN在保持计算复杂度的同时处理高阶标签相关性。我们做了实验来研究模型中参数的影响。另外,我们使用两个公开可用的数据集将我们的方法与几个基线进行比较。, Reuters-21578和RCV1-v2。前者反映了我们的模型在一个相对较小的数据集中的行为,而后者被认为是一个大型数据集。

论文的其余部分组织如下。第二节介绍多标签文本分类的基本概念。我们在第三节中回顾了相关工作。第四部分详细介绍了我们的CNN-RNN方法。第五节至第七节对模型参数进行了探讨,并与基线进行了比较。最后,第八部分对全文进行总结。

二、BACKGROUND

多标签文本分类通常可以分为两个子任务:文本特征提取和多标签分类。下面两个小节将介绍这两个子任务。

A、 Text features

原始文本信息不能直接用于后续的多标签分类器。在矢量空间模型(VSM)的框架下,许多研究工作将文本和词汇的特征作为矢量进行表征。而不是在一个步骤中表示整个文本,例如,tf-idf加权的一个文件,最近的工作集中在分配的表示个别单词,但它是预处理和标记从原始文本数据。在向量空间中对相似词进行分组,在多任务学习[7]、句子分类[8]、情感分析[9]、语义等价检测[10]等自然语言处理任务中表现良好。其中,从[11]开始的研究工作引入了word2vec模型,该模型可以捕获语法和语义信息,在许多NLP任务中显示出了有效性。在[11]中,word2vec模型的基本思想是将上下文词作为给定中心词的预测,利用词的局部上下文来获得其隐含语义。这个单词向量的向量表示将在我们基于单词向量的CNN中作为原始文本的初始表示。

B、 Multi-label classification

由于文本特征可以很好地表示为特征向量,下一步是对这些特征进行多标签分类。每个输入实例是一个高维特征向量X∈Rm,它被赋给标签空间y的一个子集y,其中有L个可能的标签。任务是学习函数h: Rm→2 Y从训练数据D = {(xi, yi) | 1≤≤N},其中N是总数量的训练数据,xi是第i个实例输入特征向量Rm和易建联⊂Y是Y标签空间的一个子集,因此,与传统的监督分类问题,只是分配一个标签,每个实例问题推广到多标记礼物多标记为每个实例同时作业。然而,可能的标签组合的指数增长,使得多标签分类成为一个非常具有挑战性的问题。

三、RELATED WORK

本文讨论了多标签文本分类的两个子任务的一些代表性著作。文本特征提取和多标签分类。

人们提出了许多表示文本特征的算法。以前的工作使用tf-idf加权[12]或n克信息[13]来表示整个文档或局部单词序列。然而,tf-idf忽略了单词的局部排序,丢失了一些语义信息,而由于数据稀疏性,合并更多的n-gram信息是无效的。这激发了一些其他的研究工作,[14],[15],[16],[11]学习一个低维向量表示的单词考虑其本地上下文,这已经成功地用于许多NLP任务。

另一方面,近年来多标签分类算法的发展主要分为两大类:问题适应和算法适应。问题适应是将多标签分类转化为更简单的问题。例如,[17]将每个标签作为单独的分类,这样任何二进制分类算法都可以进行调整。分类器链[18]通过将多标签问题转化为二分类问题链,设计成标签之间的高阶相关模型,链中的后续分类器将考虑前面的预测。在算法适应方面,ML-KNN[19]、ML-DT[20]、Rank-SVM[21]等算法对k-近邻、决策树、支持向量机等常用分类算法进行了改进,解决了多标签分类问题。然而,大多数方法只能用于捕获一阶或二阶标签相关性,或者在考虑高阶标签相关性时是计算上难以处理的。

最近,应用神经网络有一些深度学习作品,如CNN和RNN、各种NLP任务,包括多任务学习[7],[8]句子分类,多通道分析[22],语义相关性检测[10],[23],极性检测[24],机器翻译[25],讽刺检测[26],[27]提取方面,个性检测[28],等等。对于多标签文本分类,提出了几种基于神经网络的方法。[29]提出了一种BP-MLL算法,该算法利用全连通神经网络和两两排序损失函数来处理该问题。[30]认为两两排序损失与排序损失不一致,采用交叉熵损失代替。在[31]中引入了另一种较新的神经网络方法,称为ML-HARAM。然而,这些类型的神经网络仍然没有足够的效率来处理高维和大规模的数据。为此,我们提出了一种基于CNN-RNN的多标签文本分类方法。

四、CNN-RNN MULTI-LABEL TEXT CATEGORIZATION

在本节中,详细介绍了所提出的CNN-RNN方法。我们的方法包括两个部分:用于提取文本特征的CNN部分和用于多标签预测的RNN部分。在训练整个CNN-RNN模型之前,我们先训练一个word2vec模型来捕捉每个单词的局部特征,并在接下来的有监督的CNN-RNN训练中进行反馈。使用CNN提取输入文本的全局固定长度特征向量。然后,利用这些特征向量,确定RNN的“初始状态”或先验知识,并用于预测标签序列。RNN预测可以对标签之间的高阶相关关系进行建模,从而有望提高对低阶标签相关关系建模的预测器的性能。

A、 Word-vector based CNN

使用CNN提取文本特征的方法类似于[8]中使用的方法。具体如下:首先对输入文本进行预处理,并将其标记为一系列单词。每个单词将查找从word2vec模型中获得的单词嵌入矩阵,如第二- a节所述。原始文本是单词向量wi∈Rk的拼接。因此,长度为m的文本表示为:
多标签分类:Ensemble Application of Convolutional and Recurrent Neural Networks for Multi-label Text Categ
式中为向量拼接算子。我们可以将句子向量视为“图像”,并通过线性滤波器对其进行卷积。在文本应用程序中,因为每个单词都表示为一个k维向量,所以使用宽度等于单词向量的维数的过滤器是合理的。因此,我们只需改变过滤器的窗口大小(或高度),即,联合考虑的相邻词的数量。令wi:i+h−1表示h个相邻单词wi, wi+1,…,wi+h−1的连接向量。卷积运算中,滤波器w∈Rhk (h×k维向量),偏置项b∈Rh,对h个词进行卷积运算,得到新值oi∈R:
多标签分类:Ensemble Application of Convolutional and Recurrent Neural Networks for Multi-label Text Categ
其中i = 1…n - h + 1,·是过滤向量和向量之间的点积。这个过滤器被重复地应用于句子中每一个可能的h字窗口(即, x1:h, x2:h+1,…, xn−h+1:n)生成输出序列o∈Rn−h+1,即, o = [o1, o2,…]−h + 1]。我们对每个oi应用一个非线性**函数f,生成一个特征映射c∈Rn−h+1,其中ci = f(oi)。选择非线性**函数作为ReLu,因为这个函数比sigmoid和tanh有更多的好处,正如在[32]中所研究的。
多标签分类:Ensemble Application of Convolutional and Recurrent Neural Networks for Multi-label Text Categ
您还可以指定具有不同窗口大小的多种筛选器,或者对相同的窗口大小使用多个筛选器,以从相同的单词窗口中学习互补的功能。每个过滤器生成的特征图的维数将随着文本长度和过滤器窗口大小的函数而变化。因此,我们将一个池函数应用到每个特征映射,以诱导一个固定长度的向量。一种常见的策略是1-max池,它提取一个标量(即,长度为1)的特征向量,每个滤波器的最大值。因此,一个具有特定窗口大小的过滤器将只产生一个标量值,这意味着如果有i个窗口大小的过滤器,并且每个过滤器都有j个过滤器,那么总共将有i×j个输出。例如,将三个窗口大小(1,3,5)的k个过滤器的输出串联起来,将得到一个3k维的输出向量。通过使用全连接层将其输出向量投射到低维空间中,我们得到了文本的低维特征表示。这个特征向量可以输入到CNN的下一层进行进一步卷积,也可以作为不同NLP任务的输出向量。这里,这个文本特征向量被用作RNN的输入。

B、 Label sequence prediction by RNN

RNN主要用于序列标记或预测,如语言模型、自动编码器等。它可以看作是隐马尔可夫模型的扩展,将非线性转化为模型的长期非线性依赖。LSTM被认为是最成功的RNN变体之一,它引入了三个额外的门。在文本挖掘领域,LSTMs参与了情感分析[33]、句子分类[34]等任务。当对整个长文档使用LSTMs时,LSTMs的训练并不稳定,并且表现不如传统的线性预测器,如[35]所示。此外,LSTMs的培训和测试时间对于长文档来说也很耗费时间/资源。[35]表明,将LSTM作为序列自动编码器或递归语言模型进行预处理,可以稳定LSTM的训练。但是,当我们使用LSTMs进行标签序列预测时,可以避免上述问题,因为这通常比文档短得多。这里的标签序列是将有序的标签分配给文本。尽管存在几个LSTM变体,但是使用的是标准LSTM。附加的字嵌入层也应用于标签。

LSTM由三个门:一个输入门,一个输出门o和忘记门f。三个盖茨一起控制读取输入,输出,和应该被遗忘的,所以可以模仿一些复杂的长期关系。标准LSTM表示如下:
多标签分类:Ensemble Application of Convolutional and Recurrent Neural Networks for Multi-label Text Categ
xt∈Rd是输入从较低的层在时间步t和d可以词向量的维数的标签如果底层词嵌入的标签或可以隐藏维度较低的层是否LSTM较低的层。如果有q个LSTM单元,则ht∈Rq, W(.)∈Rq×d, U(.)∈Rq×q, b(.)∈Rq,对于所有类型(i, o, f, U),记忆单元ct是LSTM的关键,它在保持长期依赖性的同时,消除了消失/爆炸的梯度问题。遗忘门f用于擦除记忆单元的某些部分,而输入门i和输出门o控制从记忆单元读写什么。

C、 Combining CNN and RNN

如Section IV-A所示,CNN用于提取文本的特征,将语义信息表示为CNN的输出向量。将这个输出向量作为标签预测的初始状态输入LSTM后,整个网络就可以根据CNN提取的特征来预测输入文档的相关标签序列(图1)。特征向量的喂到LSTM是一个线性变换作为额外添加术语W T (T)在(4)为每个类型(f i, o, u),其中T是输出文本功能从CNN fix-dimension T W中移动(T)∈×T, q是LSTM的隐藏的维度。例如,将输入门的公式改为:
多标签分类:Ensemble Application of Convolutional and Recurrent Neural Networks for Multi-label Text Categ
标签序列预测总是以令牌开始。在每个时间步长中,在LSTM的顶层上有一个softmax层,首先利用线性变换LSTM顶层的隐藏状态来计算每个标签的概率。然后对概率最大的标签进行预测。标签的预测以令牌结束。因此,对于每一段文本,将预测不同长度的标签序列。理想的情况是,每个输入文本的标签序列与属于该文本的标签子集完全匹配。例如,在图1中,输入文本是“床上的猫正在小美国国旗附近睡觉”,而相应的ground truth标签包括主题(动物)、位置(美国)和时间(午夜)。
多标签分类:Ensemble Application of Convolutional and Recurrent Neural Networks for Multi-label Text Categ

D、 Training

训练分为两个步骤。第一个训练步骤是通过使用所有标记文本作为未标记数据来训练word2vec模型。然后将这个word2vec模型输入第二个训练步骤,即CNN-RNN模型的监督训练。利用softmax分类器作为LSTM的上层进行标签预测,然后将交叉熵损失从RNN反向传播到CNN,更新两个CNN-RNN模型的权值。一个最先进的更新政策选择亚当[36]代替随机梯度体面(SGD)更快的收敛。此外,对于正则化,我们在CNN和RNN中对所有的权值都使用l2约束,在CNN中使用dropout,速率为0.5。

五、DATASETS

为了测试我们的算法的性能,我们使用两个公开可用的数据集,即, Reuters-21578和RCV1-v2。

路透社-21578:数据集中的文档是1987年从路透社新闻专线收集的。对于从1996年开始从事文本分类的研究人员(现在被RCV1取代)来说,这曾经是一个流行的数据集。改编自Reuters-22173预览版,现在包含21,578个文档。在修改后的Apte(“ModApte”)中,有9,603个培训文档和3,299个测试文档。我们用这个分裂来做我们的神经网络参数的实证研究。之后,我们使用所有这些文档进行10次交叉验证来比较各种算法。

RCV1-v2:路透社文集I (RCV1)是由路透社有限公司(Reuters Ltd .)为研究目的提供的80多万篇人工分类的新闻报道的存档。通过纠正原始RCV1数据的错误,产生一个文本分类测试集合,称为RCV1-v2。与[37]中的LYRL2004训练/测试分割一样,有一个训练集(文档IDs 2286到26150)和一个测试集文档IDs 26151到810596)。我们只考虑数量为103的topic categories标签,并收集所有这些数据集进行10次交叉验证,而不是原始的分割。
多标签分类:Ensemble Application of Convolutional and Recurrent Neural Networks for Multi-label Text Categ
表一:数据集的概述。M是文档数量,D是总词汇量,L是标签数量,C是每个文档的平均标签数量

由于RCV1-v2数据集同时提供了令牌和向量(tf-idf、cos-normalized)版本,所以我们可以直接将令牌版本用于我们的CNN-RNN模型,将向量模型用于所有的基线算法。然而,Reuters- 21578只有一个原始数据集。因此,我们对这些文档进行预处理,并根据文档频率选择前1000个tf-idf特性。然后,将每个文档表示为一个1000维的特征向量。这个向量模型可以用于所有的基线算法。

六、EVALUATION METRICS

多标签分类的评价指标有两种:排序和分类。由于我们的模型没有为所有标签提供完整的排名,因此这里评估的排名度量是one-error。对于分类指标,我们考虑了汉明损失、宏/微平均精度、召回率和F1分数。

  • 一个错误将计算在相关标签中没有出现前1个预测标签的实例的比例。
  • 汉明损失计算预测标签与相关标签的对称差异,并计算其差异在标签空间中的比例。
  • Precision, Recall和F1 score是二元评价指标B(tp, tn, fp, fn),用来评价一个分类问题的性能,它是根据真阳性(tp)、真阴性(tn)、假阳性(fp)和假阴性(fn)的数量来计算的。在整个测试数据上有两种方法来计算这些度量:宏观平均和微观平均。macroaverage是指标签的平均性能(Precision, Recall, F1 score), micro-average是所有标签的真阴性,真阴性,假阳性,假阴性。

七、EXPERIMENTAL RESULTS

在这一节中,我们进行了实验来研究网络复杂性对性能的影响,并将我们的方法与几个基线进行了比较。对于参数的研究,我们主要集中在RNN部分的参数上,因为对CNN结构的研究已经在[8]中展示出来了。在这里,CNN的结构由一个预先训练好的单词嵌入层和一个具有多个窗口大小的层CNN组成。CNN的参数是根据Reuters-21578数据集的验证结果选择的,这样在合并RNN时不会限制整体性能。窗口大小最多选择9克。单词向量的维数选择为400,而每个窗口大小中的过滤器数量选择为128。我们选择的非线性函数是Relu,因为[32]表明经过校正的线性单元比sigmoid和tanh函数有更多的优点。在所有过滤器中应用1-Max-pooling,这样每个窗口大小将输出一个128维的特征向量。此外,我们将这些特征串联起来,使用全连接层将其投射到256维的输出向量中,作为RNN的输入或先验知识。在RNN部分,参数包括标签嵌入尺寸、隐藏状态尺寸和LSTM层数。使用修改Apte(“ModApte”)Split的Reuters-21578数据集对这些参数进行了实证研究。除了对网络本身的调查,我们还将其结果与几个基线进行了比较:二进制相关(BR)、分类器链(CC)、MLkNN和ML-HARAM。

A、 Complexity of RNN versus performance

RNN的参数包括标签尺寸、隐藏尺寸和层数。更多的层通常能够获得更高的抽象内容,并保持更多的长期记忆。这里,为了简单起见,我们只关注一层LSTM参数的研究,而不考虑泛化。
多标签分类:Ensemble Application of Convolutional and Recurrent Neural Networks for Multi-label Text Categ
我们同时设置标签的尺寸和隐藏维度的α输入维度从CNN(特征向量的维数)。我们单调增加α与加倍一步从12.5%降至100%。我们观察了修改Apte(“ModApte”)拆分后的Reuters-21578数据在验证集上的各种性能。然后,不同RNN复杂度下的各种性能与训练历期的关系如图2所示。不同的曲线对应于不同的α值。

如图所示,当比率设置为50%时,性能优于较低的比率,与100%的情况相当。此外,当训练时间超过50时,系统性能变化不明显,开始收敛。因此,为了节省计算量和保持可比较的性能,在基线实验中,我们将CNN-RNN的参数率设置为50%,训练时间限制为50。

B、 Baseline comparison

我们测试了上述数据集上的各种算法,包括二进制相关(BR)、分类器链(CC)、MLkNN、ML-HARAM和我们的CNN-RNN模型。用BR表示多标签算法,没有考虑标签之间的相关性,CC是考虑高阶标签相关性的算法,ML-kNN是基于变换的算法,ML-HARAM是目前最先进的基于神经网络的算法。

对这些算法进行了10次交叉验证。这两个数据集中的每一个都被随机分为10个大小相等的子集。我们执行10次迭代实验,每个实验包含9个子集,其余的等待测试。然后,我们计算了10个实验的均值和偏差。结果如表二所示。所有基线方法的实现都是在sci -multilearn[38]中完成的,这是一个建立在sci -learn生态系统[39]之上的多标签分类的开源库。在BR和CC中,使用线性支持向量机作为基分类器。我们以5为步长,对ML-kNN中的邻居数从5个到20个进行了调查,最终选择了10个最适合锤击损失和F1评分的邻居数。ML-HARAM遵循其默认设置。
多标签分类:Ensemble Application of Convolutional and Recurrent Neural Networks for Multi-label Text Categ
如表二所示,对于Reuters-21578数据集,CNN-RNN模型并没有表现出比传统方法(BR和CC)的改进。我们研究了训练数据的性能,发现该模型倾向于过度拟合这个相对较小的数据集的训练数据。例如,训练数据集的微平均精度为99%。此外,除了微平均精度外,CC的性能略优于BR。

与此同时,传统的BR法和CC法在微平均度量和汉明损失上都表现出了明显的性能下降。相对于前一个数据集,宏平均度量的增加是由于该数据集中的标签分布更加平衡。注意,ML-kNN和ML-HARAM的度量是不可用的,因为这些算法的Scikit-multilearn实现在数据大小和内存错误方面是不可伸缩的。我们期望我们的模型也能超越这两种方法,就像它在小数据集中的表现一样。然而,还需要进一步的实验来证实这一点。

八、CONCLUSION

多标签文本分类是将预定义的类别分配给文本文档的任务。现有的多标签文本分类方法在提取局部语义信息和对标签相关性建模方面存在不足。在本文中,我们提出了一种基于卷积神经网络(CNN)和递归神经网络(RNN)的方法,能够有效地表示文本特征,并在合理的计算复杂度下对高阶标签相关性进行建模。我们的评估表明,该方法的能力受到训练数据集大小的影响。如果数据量太小,系统可能会出现过拟合。然而,当在大规模数据集上训练时,所提出的模型可以达到最先进的性能。