论文十问十答:
Q1论文试图解决什么问题?
多标签文本分类问题
Q2这是否是一个新的问题?
不是
Q3这篇文章要验证一个什么科学假设?
因为文本标签越多,分类就越难,所以就将文本类型进行分层分类,这样就可以加大文本分类的准确度。
Q4有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员?
自然语言处理
Q5论文中提到的解决方案之关键是什么?
分层
Q6论文中的实验是如何设计的?
Q7用于定量评估的数据集是什么?代码有没有开源?
Q8论文中的实验及结果有没有很好地支持需要验证的科学假设?
Q9这篇论文到底有什么贡献?
Q10下一步呢?有什么工作可以继续深入?
论文相关
论文标题:分层深度学习文本分类
发表时间:2017年
领域:深度学习
发表期刊:IEEE
源码地址:https://github.com/kk7nc/HDLTex
摘要
越来越多的文本收集需要为搜索、检索、组织文本提供信息处理的方式。而处理文本信息的主要算法之一就是文本分类,它已经成为监督学习的一个重要应用。然而最近传统的文本分类算法随着文本数量的增加,模型性能反而降低了。那是因为随着文本的数量增加文本的类型也增加了。这篇文章的方法处理的问题与目前的文本分类任务不同,处理的是多标签文本分类问题。然而我使用了一种称为分层深度学习文本分类
的方法(HDLText)用于分层文本分类。HDLText
使用深度学习堆栈架构去专门理解文本的每一个层次的语义信息。
关键词:文本挖掘、文本分类、深度神经网络、分层学习、深度学习
1.引言
每年科学研究产出了大量的文本。在2014年这28100个活跃的英文学术期刊发表了2.5亿篇文章,并且有证据表明新的期刊和出版物正在加速增长。这些文本的数量推进了自动化分组,基本的标签文本分类和应用研究的发展。最经在自动文本分类的工作都涉及监督学习技术,例如分类树、贝叶斯、感知机、神经网络以及集合方法。虽然分类树和贝叶斯有一定的可解释性,相比于其他模型在准确率上欠佳。
然而,自动文本分类技术在近几年逐渐变的越来越有挑战性,因为数据集数量、相关领域数量和子领域的数量在逐渐增加。在五年前这还是一个鲜为人知的领域,现在已经变成了一个快速增长且有趣的领域。这种增长子领域出现在一系列学科中,包括生物学、数学、健康科学。子领域的这种增长意味着,重要的是不仅要按专业领域标记文档,还要在其整个领域和相应的子领域内组织文档。这就是分层文本分类。
虽然现在存在的许多文本分类的方法能够快速的识别出这整个领域的文本,但是这些方法中很少有能快速的将文本分组到一个字领域或具体的领域。此外,顶级字段和所有子字段的组合使当前的文档分类方法无法处理组合增加的类标签。这篇论文提出一种新的方法用于层次文本分类,我们称之为分层深度学习文本分类Hierarchical Deep Learning for Text
classification(HDLText)。HDLTex结合了深度学习架构,允许根据文档层次结构的级别进行全面和专业学习。这篇论文主要叙述了我们的模型HDLText的实验,它的实验结果性能超越了其他传统的文本分类的性能。
2. 相关工作
文档分类是组织文档进行检索、分析、整理和注释的必要条件。研究人员研究并开发了多种文档分类的方法。信息检索社区的工作主要集中在搜索引擎的基础知识上,如索引和字典,这些都被认为是该领域的核心技术。大量的工作已经建立在这些基础方法上,通过反馈和查询重新制定来提供改进。最近的工作采用了数据挖掘和机器学习的方法。这些技术中最精确的一种是支持向量机(SVM)。支持向量机利用核函数在高维空间中寻找分离的超平面。其他用于信息检索的核方法包括字符串核,如频谱核[8]和错配核[9],它们被广泛用于DNA和RNA序列数据。SVM及相关方法难以解释。因此,许多信息检索系统使用决策树[3]和朴素贝叶斯方法。这些方法更容易理解,因此可以支持查询再形成,但它们缺乏准确性。最近的一些工作研究了主题建模,以提供类似的与朴素贝叶斯方法的解释,但提高了准确性。
本文采用较新的机器学习方法从深度学习中进行文档分类。深度学习是神经网络的一个有效版本,它可以执行无监督、有监督和半监督学习。深度学习已被广泛应用于图像处理,但最近的许多研究已将深度学习应用于其他领域,如文本和数据挖掘。神经网络的基本结构是由各层组织的非线性处理节点组成的全连接网络。第一层是输入层,最后一层是输出层,所有其他层都被隐藏了。在本文中,我们将把这些全连接的网络称为深度神经网络(DNN)。卷积神经网络(CNNs)是基于视觉皮层的结构,在那里神经元不是完全连接的,但在空间上是不同的。CNN在推广图像中对象的分类方面提供了很好的结果。最近的工作是使用CNN进行文本挖掘。在与本文工作密切相关的研究中,Zhang等使用cnn进行文本分类,利用全连接DNN提供的字符级特征进行文本分类。无论应用程序如何,CNN都需要很大的训练集。本文中使用的另一个基本的深度学习架构是循环神经网络(RNN)。RNN将一个图层的输出连接到它的输入。这种体系结构对于学习在文本中包含单词或字符的依赖于时间的结构尤为重要。本文对层次分类的深度学习并不是什么新的东西,尽管具体的架构、比较分析和对文档分类的应用都是新的。使用深度学习对图像进行分层分类。在最顶层,这些图像被标记为动物或交通工具。下一级是对动物或车辆的种类进行分类。本文描述了使用深度学习方法来创建一个分层的文档分类方法。这些深度学习方法有望提供比SVM和相关方法更高的准确性。深度学习方法还提供了我们用来生成层次分类的灵活架构。我们的方法所产生的层次分类不仅非常准确,而且通过显示文档在一个研究领域或区域内的位置,可以更好地理解结果的分类。
3.基线模型
本文比较了15种进行文档分类的方法。其中六种方法是基线,因为它们用于传统的、非层次的文档分类。在这六种基线方法中,有三种被广泛用于文档分类:
- 项加权支持向量机
- 多字支持向量机
- 朴素贝叶斯分类(NBC)
其他三种是较新的深度学习方法,它们是我们实现分层文档分类新方法的基础。这些深度学习方法在第五节中有所描述。
3.1 支持向量机(SVM)
Vapnik 和 Chervonenkis在1963年引进了SVM,在1992年Boser引进了一个非线性版本SVM用来解决更复杂的分类问题。非线性SVM的关键思想是方程1所示的生成核,然后是方程2和3:
多分类的SVM: 在支持向量机中使用字符串内核的文本分类已经在许多研究项目中取得了成功。原始的SVM解决了一个二元分类问题;但是,由于文档分类通常涉及多个类,因此二进制SVM需要一个扩展。一般来说,多类SVM(MSVM)解决了以下优化问题:
其中,k表示类的数量,ζi为松弛变量,w为学习参数。为了求解MSVM,我们同时构造了一个包含所有k个类的决策函数。MSVM的一种方法是使用二进制SVM来比较每个k(k−1)成对的分类标签,其中,k是标签或类的数量。MSVM的另一种技术是一对一的,其中这两个类是k个标签之一,而不是所有其他的k−1标签。
堆叠支撑向量机(SVM):我们使用堆叠支持向量机作为与HDLTex进行比较的另一种基线方法。堆叠SVM提供了单个SVM分类器的集合,通常比单SVM模型产生更准确的结果。
3.2 朴素贝叶斯
朴素贝叶斯是一种简单的监督学习技术,由于其速度和可解释性,经常用于信息检索。假设文档数为n,每个文档都有标签c, c ∈ c 1 , c 2 , . . . , c k c∈{c_1,c_2,…,c_k} c∈c1,c2,…,ck,其中k为标签数。朴素贝叶斯计算公式如下:
其中d是文档,从而导致:
本研究中使用的朴素贝叶斯文档分类器使用词级分类。设 θ ^ j \hat{θ}_j θ^j为词j的参数,然后:
4.特征提取
文档通过从文本中提取的特征进入我们的层次模型。我们在我们构建的深度学习架构中采用了不同的特征提取方法。对于CNN
和RNN
,我们使用了使用100维的文本向量空间模型,如 Glove
中所述.向量空间模型是对单词空间的数学映射,定义为:
式中, l j l_j lj为文档j的长度, w i , j w_{i,j} wi,j为文档j中单词i的 Glove
嵌入向量化。
对于DNN,我们使用基于计数和词频-逆文档频率(tf-idf)
进行特征提取。这种方法使用N-grams
的计数,这是N个单词的序列.例如,文本“In this paper we introduced this technique”由以下Ngrams组成:
- 特征计数(1):{ (In, 1) , (this, 2), (paper, 1), (we, 1),(introduced, 1), (technique, 1) }
- 特征计数(2): { (In, 1) , (this, 2), (paper, 1), (we, 1),
(introduced, 1), (technique, 1), (In this, 1), (This paper, 1),(paper we, 1),…}
其中,计数由最大N-grams进行索引。所以特征计数(2)同时包括1-grams和2-grams。所得到的DNN特征空间为:
其中f为文档j大小为n、n∈{0,1,…,N}的特征空间,x由单词或n-gram计数决定。我们的算法能够在深度学习模型中使用n-gram的特征。
5.深度学习神经网络
本文所使用的方法将深度学习神经网络的概念扩展到层次文档分类问题中。深度学习神经网络提供了有效的计算模型,使用非线性处理元素的组合组织的层。这种简单元素的组织允许整个网络进行泛化。在这里描述的研究中,我们使用了几种不同的深度学习技术和这些技术的组合来创建分层的文档分类器。以下小节概述了我们使用的三种深度学习架构:
- 深度神经网络 (DNN)
- 循环神经网络(RNN)
- 卷积神经网络 (CNN)
5.1 深度神经网络
在DNN体系结构中,每个层只接收来自上一层的输入并输出到下一层。这些图层是完全连接的。输入层由文本特征组成,输出层为每个分类标签都有一个节点,如果是二进制分类,则只有一个节点。这个体系结构是基线的DNN。
本文扩展了这种基线体系结构,以允许分层分类。图1显示了这个新的体系结构。第一级分类的DNN(在图1中的左侧)与基线DNN相同。层次结构中的第二级分类由为第一个层次结构中的域输出训练的DNN组成。DNN中的每一个第二级都连接到第一级的输出。例如,如果第一个模型的输出被标记为计算机科学,那么下一个层次级别中的DNN(例如,图1中的Ψ1)只使用所有计算机科学文档进行训练。因此,当第一个层次级的DNN使用所有文档进行训练时,文档层次结构的下一级中的每个DNN只使用指定域的文档进行训练。
图1: HDLTex: 文本分类的分层深度学习.这是我们的深度神经网络(DNN)文本分类方法。左图描述了我们模型的父级模型,右图描述了由 Ψ i Ψ_i Ψi定义为父级输入文档的子级模型。
本研究中的DNNs采用标准的反向传播算法进行训练,同时使用sigmoid(公式11)和ReLU(公式12)作为激活函数。
给定一组示例对(x,y),x∈X,y∈Y,目标是使用隐藏层从输入和目标空间中学习。在文本分类中,输入是通过文本的向量化生成的(见第四节)。
5.2 循环神经网络
我们使用的第二种深度学习神经网络架构是RNN。在RNN中,节点层的输出可以作为该层的输入重新输入。这种方法对文本处理具有优势.一般的RNN公式在公式14中给出,其中 x t x_t xt是时刻t的状态, u t u_t ut是指步骤t的输入。
我们使用权重来重新表述公式14,如下图中的公式15所示:
在式15中, W r e c W_{rec} Wrec为递归矩阵的权重, W i n W_{in} Win是输入的权重,b是偏差,σ是一个元素级函数,我们再次修改了用于层次分类的基本体系结构。图2显示了这个扩展的RNN体系结构。
图2:HDLTex:文本分类的分层深度学习。这是我们用于文本分类的递归神经网络(RNN)的结构。左图是我们的文本倾斜模型的父级级别。右图描述了由 Ψ i Ψ_i Ψi定义为父级输入文档的孩子级学习模型。
当梯度下降算法的误差通过网络反向传播时,在RNN中出现了几个问题(例如,梯度的消失和爆炸)。为了处理这些问题,长短期记忆(LSTM)是一种特殊类型的RNN,与基本的RNN相比,它更有效地保存了长期依赖关系。这在减轻梯度消失问题方面特别有效。
图3显示了一个LSTM模型的基本单元格。虽然LSTM具有类似于RNN的链状结构,但LSTM使用多个门来调节允许进入每个节点状态的信息量。对LSTM细胞及其门的逐步解释如下:
图3:上子图是GRU的一个单元格,下图是LSTM的一个单元格。GRU有两个门控机制,分别是
更新门(update)
和重置门(reset)
,LSTM有3个门控机制,分别是遗忘门(forget)、记忆门(input)、输出门(output)
- 输入门:
- 候选记忆细胞值:
- 遗忘门激活:
- 新的记忆细胞值:
- 输出门:
在所有的描述中,b是一个偏置向量,W是一个权重向量,和xt 是在t时刻对记忆细胞的输出。i、c、f和o指数分别是指输入门、记忆细胞、遗忘门和输出门。图3以图形表示的形式显示了这些门的结构。
当后面的单词比前面的单词更有影响力时,RNN可能会有偏倚。为了克服这种偏差,卷积神经网络(CNN)模型(在V-C节中讨论)包括一个最大池化层来确定文本中有区别的短语。一种门控循环单元(GRU)
是一种在2014年引进的RNN模型。GRU是LSTM体系结构的简化变体,但有以下区别:RRUs包含2个门控机制,他们不具有内部的记忆单元(图2的 C t − 1 C_{t-1} Ct−1),并且没有应用第二个非线性特性(图3的tanh)。
在数据集很大的时候LSTM的效果更好,如果数据量很少的时候,GRU的效果更好,GRU收敛更快。
5.3 卷积神经网络
我们为分层文档分类开发的最后一种深度学习方法是卷积神经网络(CNN)。虽然最初是为图像处理而建立的,如第二节中所讨论的,cnn也被有效地用于文本分类。CNN中的基础卷积层连接到输入的一个小子集,通常大小为3×3。类似地,下一个卷积层只连接到其前一层的一个子集。通过这种方式,这些卷积层可以在输入上提供多个过滤器,称之为feature maps。为了降低计算复杂度,cnn使用池化来减少网络中从一个层栈到下一个层栈的输出大小。不同的池化技术用于减少输出,同时保留重要的特性。最常见的池化方法是最大池化,其中在池化窗口中选择了最大的元素。为了将来自堆叠的特征映射的合并输出提供到下一层,这些映射被平坦为一列。CNN的最后一层通常是完全连接的。一般来说,在CNN的反向传播步骤中,不仅调整权值,还调整特征检测器滤波器。用于文本的cnn的一个潜在问题是通道的数量或特征空间的大小。对于文本来说,这可能非常大,但对于图像来说,这不是什么问题。
5.4 分层深度学习
本研究的主要贡献是文档的层次分类。传统的多类类化技术可以很好地适用于有限数量的类,但是性能会随着类数量的增加而下降,就像在分层组织的文档中出现的那样。在我们的层次深度学习模型中,我们通过创建专门针对文档层次结构级别的深度学习方法的体系结构来解决这个问题。我们针对每个深度学习模型的文本层次深度学习(HDLTex)架构的结构如下:
- DNN: 8个隐藏层,每个隐藏层有1024个单元格。
- RNN:在这个实现中使用了GRU和LSTM,100个单元有两个GRU隐藏层。
- CNN:过滤器大小为{3、4、5、6、7},最大池化为5,层大小为{128、128、128},最大池化大小为{5、5、35},CNN包含8个隐藏层。
所有模型均使用以下参数:
- Batch Size = 128,
- learning parameters = 0.001
- β1=0.9
- β2=0.999
- ϵ \epsilon ϵ= 1e
- decay = 0.0
- Dropout=0.5 (DNN) and Dropout=0.25 (CNN and RNN).
5.5 评估
我们对深度学习模型使用了以下成本函数:
其中, δ \delta δ是级别的数量,k表示每个级别的类数, ψ \psi ψ是指层次模型的子级中的类数。
5.6 优化
本文对深度学习模型使用了两种类型的随机梯度优化: RMSProp和Adam。这些描述如下。
RMSProp优化器: 基本随机梯度下降(SGD)如下所示:
对于这些方程,θ是学习参数,α是学习率, J ( θ , x i , y i ) J(θ,x_i,y_i) J(θ,xi,yi)是目标函数或代价函数。更新的历史记录由γ∈(0,1)定义。为了更新参数,SGD在一个重新调整的梯度上使用一个动量项,如式(23)所示.这种优化方法不进行偏差校正,这是一个稀疏梯度的问题。
Adam优化器:Adam是另一个随机梯度优化器,它只对梯度v和m的前两个矩进行平均,如下图所示:
在这些方程中: m t m_t mt和 v t v_t vt为t时刻,梯度在动量形式下的一阶矩估计和梯度在动量形式下的二阶矩估计。两者均被估计为 m ^ t = m t 1 − ( β 1 t ) \hat{m}_t= \frac{m_t}{1-(\beta^t_1)} m^t=1−(β1t)mt和 v ^ t = v t 1 − ( β 2 t ) \hat{v}_t= \frac{v_t}{1-(\beta^t_2)} v^t=1−(β2t)vt。这种方法可以像RMSProp一样处理目标函数的非平稳性,但Adam也可以克服RMSProp缺点的稀疏梯度问题.
6.实验结果
6.1 数据
我们的文档集合有134个标签,如表I所示。目标值有两个级别, k 0 k_0 k0∈{1,…,7},这是k∈{计算机科学,电气工程,心理学,机械工程,土木工程,医学科学,生物化学}和子级标签 k Q k_Q kQ,其中各自包含{17、16、19、9、11、53、9}属于k0的特定主题。为了训练和测试第三节中描述的基线方法和第五节中描述的新的层次文档分类方法,我们收集了从科学网络上获得的46,985篇已发表论文的数据和元数据。
我们专门提取了这组已发表论文的摘要、领域和关键词。摘要中的文本是分类的输入,而域名则为层次结构的顶层提供了标签。关键字为分类层次结构中的下一级提供了描述符。表I显示了这个集合的统计数据。例如,医学科学是顶级领域的分类之一,在这个领域内有53个子分类。在这个数据集中也有超过14k篇在健康科学领域内的文章或文档。
我们将数据集分为三个部分,如表二所示。
数据集WOS−46985是包含46985个文档的完整数据集,数据集WOS−11967和WOS−5736是完整数据集的训练和测试文档的数量以及这两个级别的标签或类的数量。对于数据集W OS−11967,7个1级的类都有5个子类。对于数据集W OS−5736,三个高级类中的两个有四个子类,最后一个高级类有三个子类。在训练和测试之前,我们从所有三个数据集中删除了所有的特殊字符。
6.2 硬件和实现
使用中央处理单元(cpu)和图形处理单元(gpu)的组合获得了以下结果。处理是在Xeon E5−2640(2.6 GHz)上完成的,有32核和64GB内存,GPU卡是Nvidia Quadro K620和Nvidia T esla K20c。我们使用计算统一设备体系结构(CUDA)用Python实现了我们的方法,这是一个并行计算平台和我们使用计算统一设备体系结构(CUDA)用Python实现了我们的方法,这是一个并行计算平台。我们还使用Keras和张量流库来创建神经网络。
6.3 经验结果
表3为我们的实验结果。基线测试比较了三种传统的文档分类方法(朴素贝叶斯以及两种SVM)以及用三种深度学习方法(DNN、RNN和CNN)堆叠SVM。在这组测试中,RNN对所有三个WOS数据集的性能都优于其他测试集。CNN在三个数据集上表现第二。具有项权重的SVM在前两集中排名第三,而的多词方法在第三个数据集排名第三。
第三个数据集是三个数据集中最小的,其标签也最少,因此三个表现最佳的数据集之间的差异并不大。这些结果表明,与传统的深度学习方法相比,深度学习方法可以提高一般文档分类的整体性能。总的来说,在这些测试中,朴素贝叶斯比其他方法要差得多。至于在层次结构中对这些文档进行分类的测试,HDLTex方法使用堆叠的深度学习架构显然提供了优越的性能。
对于数据集W OS−11967,通过第一级分类的RNN和第二级分类的DNN组合获得最佳的精度。第一级的准确率为94%,第二级的准确率为92%,总体上的准确率为86%。
这明显优于除CNN和DNN结合CNN和DNN之外的所有其他方法。对于数据集W OS−46985,RNN再次达到1级,但这次RNN达到2级。CNN和RNN分别在1级和2级获得了最接近的分数。最后,更简单的数据集WOS−5736在CNN1级和CNN2级都有赢家,但是这些分数与其他两个HDLTex架构获得的分数之间几乎没有区别: DNN CNN和RNN CNN。
7.结论和未来的工作
鉴于科学文献和其他文档集的规模不断增长,文档分类是一个需要解决的重要问题。当文档被分层组织时,使用传统的监督学习方法很难应用多类方法。本文介绍了一种新的分层文档分类方法,HDLTex,它结合了多种深度学习方法来产生分层分类。对从科学网络获得的文档数据集的测试表明,较高水平的RNN和较低水平的DNN或CNN的组合产生的准确性始终高于使用朴素贝叶斯或SVM的传统方法所能获得的准确性。这些结果表明,深度学习方法可以为文档分类提供改进,并且它们提供了在层次结构中对文档进行分类的灵活性。因此,它们提供了只考虑多类问题的文档分类方法的扩展。这里描述的方法可以通过多种方式进行改进。使用其他层次结构的文档数据集进行的额外训练和测试将继续确定最适合解决这些问题的体系结构。此外,还可以将层次扩展到两个以上,以捕获层次分类中更多的复杂性。例如,如果关键字按顺序处理,那么层次结构将继续向下执行多个级别。HDLTex也可以应用于未标记的文件,比如那些在新闻或其他媒体媒体中发现的文件。