融合实体信息的循环神经网络文本分类模型
2020-12-09杨春霞吴佳君李欣栩
杨春霞,吴佳君,李欣栩
(南京信息工程大学 自动化学院,南京 210044) (江苏省大数据分析技术重点实验室,南京 210044) (江苏省大气环境与装备技术协同创新中心,南京 210044)
1 引 言
作为自然语言处理(Natural Language Processing,NLP)领域中的基本任务之一,文本分类在过去几十年以来已经得到了广泛的应用研究.尤其是在当今信息爆炸的时代背景下,如何对以文本信息为主的海量信息有效地进行分类规划,从而能从海量信息中迅速准确地获取所需信息,是NLP方面研究的重点.文本分类正是解决该问题的重要技术.其在信息检索、情感分析、垃圾邮件过滤等任务中都具有重要作用,逐渐受到更多的关注和研究.
文本分类旨在对海量文本信息按照一定的分类指标做出分类,如对新闻文章分为娱乐、体育、科技、军事等类别.常见的模型有基于机器学习和基于深度学习的分类方法.前者多注重特征的提取与选择,而后者多注重模型的结构与参数.随着深度学习在各领域快速发展,后者展现出了不可比拟的优越性,诸如机器翻译、文本摘要、文本分类等NLP任务中都获得了极大发展.在针对文本分类任务中,越来越多的学者都致力于运用深度学习的方法来构建模型,提升文本分类精度.基于深度学习的文本分类方法虽然有效解决了传统方法较依赖于手工提取特征、词语语义关系不明的缺点,但是对如何有效、丰富的表示出文本深层的特征及语义,还未得到有效解决.因此如何挖掘出文本丰富的语义信息,提升文本分类精度是目前工作的重点.本文就通过循环神经网络结合Attention机制,挖掘文本上下文内容语义关联特征,另外,融合了实体信息,进一步丰富文本的语义信息和内容特征,从而实现文本分类精度的提升.
本文的主要贡献如下:
1)本文利用双向循环神经网络充分提取文本的上下文语义特征,然后通过Attention层对重要语义特征实现提取,再通过将输入的文本表示与实体表示做注意力计算,与经过双向循环神经网络和Attention层的输出做拼接,强化了对于实体信息的关注,突出文本的内容特征,最后送入Highway网络进行优化特征,极大丰富了文本的语义表示,有效提高分类精度.
2)本文在4个不同数据集上进行了实验,并与当前主流模型进行了对比试验,结果表明,本文所提模型展现出了优越性能,在准确率上有一定的提高.
2 相关工作
传统的文本分类方法依赖于手工提取特征,如朴素贝叶斯分类算法[1]、K近邻算法[2]、支持向量机[3]等基于机器学习的文本分类方法,虽然能够获得不错的性能,但耗时耗力、效率低下,并易受到数据规模的限制,很难满足如今对海量文本进行快速、高效、准确的分类需求.
基于深度学习的文本分类算法则有效解决了传统分类方法的缺点,满足了大数据、高效率的需求,通过让计算机自主学习文本特征信息,从而达到更好的文本分类效果.越来越多的研究者也致力于研究以深度学习为主的文本分类算法.鉴于CNN在计算机视觉领域的良好表现,Kim[4]首次将CNN用于文本分类任务中,通过将预训练的词向量矩阵作为输入(如Word2Vec[5]、Glove[6]等),然后通过卷积操作得到特征映射,再由最大池化层提取最重要特征,最后通过全连接层输送到Softmax分类器,该方法在不同数据集上都取得了不错效果,并且实现方式简单,但卷积核窗口难以确定,不同大小的窗口容易带来噪声,也无法较好获取全局特征;Joulin[7]等人在词向量的基础上提出FastText模型,利用词之间的n-gram进行词向量表示,捕获局部词序信息,文本用所有词的均值向量表示,然后送入分类器预测标签,该方法训练高效,也能取得不错效果,但在数据集少的情况下,容易出现过拟合情况;Shen[8]等人则专注于在词向量上做简单池化操作,提出SWEM模型,该模型有4种不同的池化方法:平均池化、最大池化、平均池化与最大池化拼接以及层次池化,并与CNN、RNN做对比,在分类性能方面发现该模型获得了与神经网络相当甚至更好的效果,且更具鲁棒性,但该方法忽略了词序信息;Yao[9]等人用当下流行的GCN进行文本分类,它将文本和词分别视为一个节点,通过词与词、词与文本间的联系构建邻接矩阵,将文本分类视为节点分类,以one-hot向量为输入,利用两层GCN做分类,达到了很好的效果,但该方法训练速度慢,且测试样本需要在训练过程中使用;Lai[10]等人分析了CNN、RNN用于文本分类的缺点,提出了RCNN(循环卷积神经网络)模型,在不增加时间复杂度的基础上,不仅有效解决了CNN窗口大小难以确定、RNN存在梯度消失的问题,还捕获到了丰富的上下文信息,大大提升了文本分类精度.但是,现有模型通常只注重于文本的上下文表示,弱化了实体信息在文本分类中的作用.
实体也能很好地捕捉文本的语义信息,突出文本内容特征.它从文本中检测一系列与文章相关的实体来表示文本,相比于需要结合上下文语境的词来说,含义清晰明确的实体减少了对文本上下文的依赖性.Peng[11]等人在新闻引用推荐任务中除了使用词向量,还引入实体信息,来解决语言的多样性和歧义性;Yamada[12]等人利用知识库中的实体词向量,提出NABoE模型,该模型通过抽取文本中的实体获得预先训练好的实体词向量表示,然后将实体与文本做注意力计算,获得基于实体的文本表示,最后通过分类器进行分类,取得优异效果,但该模型未能考虑到文本上下文全局信息.
此外,注意力(Attention)机制也被广泛应用于文本分类任务中,该方法旨在为文本中更重要的单词或句子表示分配更多的权重,以此让模型更关注于权重高的单词或句子表示,提高学习效率.王丽亚[13]等人将Attention机制加入到联合了CNN和双向LSTM的模型中,该模型运用CNN提取文本的局部特征,再运用双向LSTM提取文本的上下文特征,最后将输出送入Attention机制提取更重要的特征,取得了不错效果;王吉俐[14]等人将Attention机制与CNN融合,首先通过RNN捕捉上下文信息,用Attention机制突出重要的文本类别向量,最后使用CNN模型完成分类分类任务,在不平衡数据集上该模型展现出了较好性能.
随着神经网络深度不断加深,训练也变得更加困难,为了解决此问题,Srivastava[15]等人提出了Highway网络.在文本分类任务中,Wen[16]等人从RCNN模型的基础上,在卷积层前加入一层Highway网络,用以对每个单词表示分别选择特征,结果表明加入Highway网络的RCNN模型比原模型效果更好;陈榕[17]等人用CNN和双向GRU提取文本的局部和全局特征,再用Attention机制找到关键词语特征,最后用Highway网络将这些特征进行优化,送入Softmax层进行分类,获得了较好的实验结果.
基于上述等工作,本文针对基于神经网络和基于实体进行文本分类方法的缺点做出改进,尝试在考虑上下文信息的同时,将实体信息也考虑进去.因此利用双向循环神经网络捕捉文本的上下文内容信息,利用Attention机制赋予重要特征更高权重,并提取文本实体信息,与输入的文本表示做注意力计算,以丰富文本语义及内容特征的表示,最后将两者的输出拼接,不仅充分挖掘文本的上下文信息,还考虑实体信息的重要作用,最后送入Highway网络进行特征优化,以此提升文本分类效果.
3 模型实现
给定训练集{(D1,y1),(D2,y2),…,(Dn,yn)},其中Dm代表训练集中第m个文本,包含了一系列词{w1,w2,…,wq}以及实体{e1,e2,…,ep},ym代表Dm的类别标签.本文的模型框架如图1所示,其主要包含3个部分:1)通过双向循环神经网络和Attention机制对文本进行建模;2)利用实体与文本进行注意力计算;3)将两个输出做拼接后送入Highway网络,最后做Softmax分类.相比于其他基于深度学习的模型,本文模型不仅针对文本的上下文进行建模,还融合实体信息,充分挖掘了文本语义以及内容特征.
3.1 文本与实体的词向量表示
文本词向量与实体词向量使用Yamada[18]等人提出的开源工具Wikipedia2Vec在维基百科上预训练的词向量.它提供了从维基百科上获取单词和实体,并使用skip-gram对维基百科知识库中的词和标注好的实体进行预训练,之后得到维度d为300的词向量表,即每个词的词向量为xwi∈Rd,实体词向量为xei∈Rd.
图1 模型整体框架Fig.1 Overall framework of the model
3.2 双向循环卷积神经网络
本文使用循环神经网络的变体LSTM,它有效解决了传统循环神经网络梯度消失和长期依赖问题,主要思想是引入自适应选通机制,该机制决定了LSTM单元保持前一状态的程度,并存储当前输入特征.LSTM单元在t时刻更新过程如下:
it=σ(Wi·[ht-1,xt]+bi)
(1)
ft=σ(Wf·[ht-1,xt]+bf)
(2)
qt=tanh(Wq·[ht-1,xt]+bq)
(3)
ot=σ(Wo·[ht-1,xt]+bo)
(4)
ct=ft⊙ct-1+it⊙qt
(5)
ht=ot⊙tanh(ct)
(6)
上式中,σ为激活函数,⊙代表点乘运算,it、ft、ot分别代表输入门、遗忘门、输出门,Wi、Wf、Wq、Wo为权重矩阵,bi、bf、bq、bo为偏差,ct代表t时刻记忆细胞的状态,ht则为最后的输出值.
(7)
3.3 Attention机制
M=tanh(X)
(8)
α=softmax(ωTM)
(9)
ν=XαT
(10)
上式中,X∈Rd×q,ω是可训练的参数向量,ωT是其转置.最后,通过tanh激活函数获得最后的表示:
v*=tanh(v)
(11)
通过此方式就较好挖掘了文本重要的上下文语义特征.
3.4 融合实体信息
在给定了文本Dm的词{w1,w2,…,wq}和实体{e1,e2,…,ep}后,首先对文本所有词向量xwi做求和平均:
(12)
此处只使用预训练的词向量做简单的求和平均,是因为本文旨在捕获实体与文本的相关性,无需使用更深层次的语义特征,减少过拟合现象的发生.
然后,对实体向量xei做加权平均:
(13)
其中,βe使用如下特征做注意力计算:
(14)
φ(e,D)=C⊕Pe
(15)
(16)
上式中,⊕为拼接操作,C为特定实体词向量xe与文本νD的余弦相似度,Pe代表实体名称引用维基百科中实体的概率[19],ωe为权重矩阵,be为偏差.用这两种特征是为了获得与文本最相关且语义清晰的实体.
最后,将获得加权平均后的实体向量νe与3.3节的输出向量v*做拼接获得融合实体信息后的文本向量ψ:
ψ=v*⊕νe
(17)
这样,就充分挖掘了文本的语义和内容特征.相比于前人的方法,本文模型有效解决了只考虑上下文信息却弱化实体信息或考虑了实体信息却忽略上下文全局信息的缺点.
3.5 Highway网络
Highway网络较好地解决了深层次网络受梯度信息回流受阻而难以训练的问题.它通过门控机制来控制信息流,允许输入信息的一部分不变地传递到输出,而其余部分则进行一些(非线性)转换,这样有助于对特征进行优化并提取大量有意义的信息.其公式如下:
τ=σ1(Wτψ+bτ)
(18)
z=τ⊙σ2(Whψ+bh)+(1-τ)⊙ψ
(19)
上式中,σ1和σ2为非线性激活函数,τ是转换门,用来将部分输入进行变换,z为最后的输出.
3.6 文本分类
(20)
(21)
(22)
式中,ti是真实标签的one-hot表示,m是类别数,λ是L2正则化参数.
4 实 验
4.1 数据集
本文在4个广泛使用的基准数据集上使用模型,数据集的详细统计信息见表1.
表1 数据集统计信息Table 1 Statistics for the dataset
其中,数据集中的实体检测参照Yamada[12]等人的做法:将维基百科作为知识库,首先把文本中的所有在实体字典[20]的词和短语看作实体名称(entity names),然后检测每个实体名称所有可能的引用实体(referent entities),去除连接概率(link probability)小于1%的实体名称和通用性(commonnes)小于3%的引用实体.最后,得到的实体字典中含有18785550个实体名称,每个名称平均有1.14个引用实体.表2为AG News数据集中4个类别文本中部分实体示例.
表2 AG News部分实体示例Table 2 Some examples of AGNews entities
4.2 基线模型
本文将使用以下几种目前较为流行的模型作为基线模型进行比较:
1)CNN[4]:使用Kim提出的CNN文本分类算法,经一维卷积后使用最大池化,最后接一层全连接的Softmax层.本文使用CNN-non-static版本,即使用预训练的词向量模型.
2)FastText[7]:由Joulin等人提出的一个简单且高效的文本分类模型,其将n-grams向量的平均值作为文档向量,送入线性分类器.
3)SWEM[8]:Shen等人提出的对预训练词向量进行简单的池化操作.本文使用SWEM-concat版本,即将句子所有词向量的平均池化和最大池化做拼接.
4)TextGCN[9]:Yao等人把文本分类视为节点分类,分别将词与文本作为一个节点,利用PMI和TF-IDF构建零阶矩阵,最后利用图卷积做节点分类.
5)NABoE[12]:Yamada等人利用知识库中的实体词向量与文本做注意力计算后来表示文本,最后送入分类器进行文本分类.
上述基线模型除CNN外,均使用其文献中所提供的源代码进行实验,为体现各模型的鲁棒性,参数均依各文献原文所述保持不变.CNN模型由本文复现,参数设置为:batch size 为64,学习率为0.001,dropout为0.5,卷积核数为256,卷积核尺寸为(2,3,4),输入维度为300,隐藏状态向量为128.
4.3 实验设置
1)实验平台:操作系统Ubuntu 16.04,GPU NVIDIA 1080 Ti,11 G显存,32 G内存,开发语言Python 3.6,torch1.1.0,开发工具Pycharm.
2)参数设置:使用mini-batch随机梯度下降训练,20NG、R8的batch size为32,IMDB、AG News的batch size为64,学习率为0.001,L2正则化参数为0.0001,dropout为0.5,词向量和实体向量维度为300,循环层隐藏状态向量维度为128,激活函数为ReLU,Highway网络2层.
3)评估指标:使用准确率作为评估指标.其计算公式为:
(23)
式中,n为数据集的测试集样本容量,Π(·)为指示函数,在括号内的内容为真时取1,反之取0.
4.4 实验结果与分析
表3展示了4个数据集在不同模型上的表现.
表3 模型对比结果Table 3 Model comparison result
从表3中可以看到,本文模型均获得了优异结果.在20NG数据集上,FastText表现最差,而本文模型获得了最佳效果,相比基线模型中最好的NABoE提升了1.1%,对比可以发现本文模型在将上下文信息和实体信息都考虑进去后,准确率有一定提升;在R8数据集上,CNN表现最差,本文模型则获得了最佳效果,相比基线模型中最好的TextGCN和NABoE提升了0.6%,相比较下,本文模型比TextGCN训练速度更快、效率更高,比NABoE捕获更多额外的文本全局信息,体现出一定优势;在AG News数据集上,CNN表现最差,而本文模型仍然获得了最佳效果,相比基线模型中最好的SWEM提升了0.3%,对比下,SWEM使用了两种池化操作做拼接,在对训练集较多的情况下也能获得较好效果,但未考虑词序问题使得鲁棒性变弱,而本文模型则考虑到词序问题,即充分获取了上下文信息以及实体信息,在准确率上有更多提高;而在IMDB数据集上,CNN表现最差,本文模型与SWEM获得的效果相当,主要原因可能是由于该数据集把较中性的评论删除,只含有情感倾向较为明显的评论,且评论中含有的实体相对较少,因此在此类数据集下通过一些简单的池化操作也能获得不错的效果,而基于神经网络的模型则容易出现过拟合现象.
纵观4个数据集整体结果,CNN整体效果最差,其余基线模型在不同数据集上表现有好有坏,而本文模型均能获得最佳结果,可见本文模型更加鲁棒.在训练速度上,FastText最快,TextGCN最慢,其余4个模型训练速度相当,不同数据集下每批次训练时间均相差在0.8s左右;计算复杂度也相当,算力要求也适中,模型并未因融合了实体信息而提升总复杂性,再结合结果的优劣来看,本文模型在效率上体现出一定优势.
此外,为了进一步验证本文所提模型的有效性,进行了消融实验.在本文所提模型基础上,分别去掉Highway网络、实体信息融合、双向LSTM上的Attention机制.模型的对比结果见表4(w/o代表without).
表4 消融实验Table 4 Ablation experiment
从表中可以看出,在4个数据集中,无论去掉哪种结构,均降低了准确率.其中,去掉Highway网络后的准确率在4个数据集上依次下降了0.2%、0.3%、0.5%、0.3%,可以看出Highway网络准确率上贡献较少,但仍能通过优化特征进而提取更有意义的信息,而且其无需大的深度就可自适应特征变换,可以有效提高分类效率和准确率.此外,本文还对比了不同层数的Highway网络给模型提供的性能,如图2所示,加入Highway网络均或多或少提高了准确率,在层数为2时,4个数据集均能获得最佳性能,但在添加更多层数时性能有所降低,可能是由于过拟合导致;去掉Attention机制后准确率分别下降了0.8%、0.4%、0.3%、1%,侧面可以看出Attention机制能够使得模型更关注于对文本更有用的词表示,对模型性能的提升有帮助;而去掉融合了实体信息的模型准确率下降的最多,依次下降了1.1%、0.7%、0.3%和2.4%,可以看出没有融合实体信息的模型只展现了与基线模型相当的性能,并没有充分挖掘出更丰富的文本信息以及内容特征,这也侧面表明了增加实体信息确实对文本信息及内容特征有积极作用,能提升文本分类准确率,验证了本文所提模型的有效性.因此,本文模型在保证充分捕获文本上下文语义的同时,融合了实体信息进一步突出文本内容特征,最后通过Highway网络优化特征,极大丰富了文本语义表示以及对内容的特征挖掘,增强了模型鲁棒性,提升了分类效率,结果表明了该模型的合理性、有效性.
图2 添加不同层数Highway网络的准确率Fig.2 Accuracy of adding different layers of Highway network
5 结束语
本文提出了融合实体信息的循环神经网络文本分类模型,不仅考虑了上下文语义信息,还充分挖掘了文本中的实体信息,极大丰富了文本的表示,有效解决了前人模型的缺点.在与目前较流行的基线模型相比中,获得了优异的分类结果和更好的鲁棒性,在效率上也具有一定优势.此外,在消融实验中,也证明了本文模型的合理性、有效性,模型能够通过Attention机制、实体信息和Highway网络对文本进行特征表示和优化,获得理想效果.
在未来的工作中,将进一步研究在数据量较少以及实体信息不多的情况下,如何更有效地提高分类精度,同时,降低训练时间复杂度、提高运行效率也将是接来的重点.