基于混合神经网络的文本分类方法
2022-03-01梁顺攀豆明明于洪涛郑智中
梁顺攀,豆明明,于洪涛,郑智中
(燕山大学 信息科学与工程学院,河北 秦皇岛 066004)
0 引 言
如何有效进行文本特征抽取是文本分类研究的核心问题之一。近些年,卷积神经网络(convolutional neural networks,CNN)和循环神经网络(recurrent neural network,RNN)等深度学习技术在文本分类领域取得了良好的效果。CNN具有快速捕获局部特征提取能力,并且能很好学习复杂、高维和非线性映射关系。RNN能把近邻位置信息进行有效整合[1],可以更好地利用传统神经网络无法建模的信息,处理与时间序列高度相关的问题[2],具备提取文本序列全局特征的优势。目前,注意力模型(attention model,AM)已经成为神经网络中一个最新的研究热点,文本分类任务中,主要作用在文本特征表示,它能够对关键词或重点短语赋予更高的权重,更好挖掘词对之间隐含的关系,使得分类效果更好。
综合考虑以上3种模型的优势,本文提出一种文本分类模型——TC-ABlstm模型。
1 相关介绍
随着深度学习的不断发展,用于文本分类的神经网络算法相较于传统的分类方法,在分类效果有了很大提升。Kim等提出了基于CNN的分类模型,来解决文本情感分类问题,与传统模型相比,该模型能自动快速提取文本特征,去除了繁杂人工设计特征,有效减轻了工作量,使得分类效果更好。Cao等[3]以微博数据为研究对象,结合CNN和支持向量机模型,使得分类效果有所提升;魏勇等[4]考虑到单词语义对于文本分类的影响,对于词向量的表示进行改进,提出一结合关联语义和CNN的文本分类方法,取得较优的结果。以上方法虽然在文本分类效果上均有所提升,但并未考虑到CNN模型提取的是文本信息的局部特征,容易遗失句子和文本中的相关信息,影响结果的准确性。
捕获文本的全局特征,能更好理解文本的含义。Socher提出一种基于RNN的分类模型,该模型主要通过递归计算来学习句子的序列特征。但RNN存在梯度消失和维度爆炸的问题。Cheng等[5]将RNN的变体长短期记忆(long short-term memory,LSTM)神经网络模型应用在文本分类上,使得分类效果得到明显提升,并且规避了以上出现的问题。由于句子具有结构依赖性,当前单词不仅需要其前面单词提供辅助信息,后面单词也需要提供辅助信息,因此文本分类需要考虑上下文结构,而LSTM只考虑到单向信息,这对于文本分类准确率会产生一定的影响。
注意力机制的核心是在有限资源下学习并关注最有效的信息,它是深度学习技术中过去近几年最具价值的突破之一,得到了很多研究者的青睐。Bahdanau首次在机器翻译任务种应用了注意力机制,并取得良好的效果。wang等[6]在情感分类任务中提出一种注意力机制和LSTM的网络模型,引入注意力机制主要是给不同的aspect分配不同的权重,以此提高情感分类的准确性。Vaswani等[7]使用自注意力机制(Self-Attention)来获取句子表示的方法并用于机器翻译,使得翻译性能更好。汪嘉伟等[8]将自注意力机制和卷积神经网络相结合,捕捉句子局部特征和长距离依赖关系,使得分类效果有进一步提升。自注意力机制不需要依靠额外的信息,就能捕捉文本数据或特征的内部相关性。但其本身不具备捕获时序信息的特点,往往需要加入一个position embedding(即随机生成的位置向量),才能更好学习句子的语序。
针对以上所提出的问题,进一步提高分类效果,本文分别做出以下改进:为了增加CNN的局部特征提取能力,本文基于Kim 提出的Text_CNN模型进行改进,在卷积层中引入Selu[9]函数作为其激活函数,并在池化层采用K-max pooling方式代替常用的最大池化策略;再结合自注意力机制和BiLSTM,来获取文本的长期依赖关系。构建一种用于文本分类的并行神经网络模型TC-ABlstm。
2 基于混合神经网络的文本分类模型
2.1 模型简介
本文联合改进的卷积神经网络、BiLSTM模型以及自注意力机制3种模型的优点,构建了一个用于中文新闻分类的TC-ABlstm混合神经网络模型,如图1所示。该模型在特征提取方面由两部分构成。
图1 基于改进的Text_CNN和自注意力 BiLSTM的并行神经网络模型
第一部分:改进Text_CNN用于提取文本的局部特征。在文本分类中,CNN中常用ReLU作为激活函数,与一般的线性和非线性函数相比,其处理方式更简单,表达能力强,但易导致神经元死亡。本文采用更新的Selu激活函数进行替换,提高模型鲁棒性。另外,为了增强模型提取特征的能力,在池化层采用K-max pooling方式代替最大池化,尽可能保留更多有价值的特征。
第二部分:采用自注意力机制双向长短期记忆模型BiLSTM解决长距离依赖问题。自注意力机制能够对有价值的词赋予更高的权重,增强词对之间的语义关系,但其本身捕获不到时序信息,考虑到循环神经网络处理序列数据的天然优势,其变形BiLSTM信息记忆能力更强,能够很好地利用上下文特征信息和对非线性关系进行拟合,保留文本的顺序信息的特点,将其代替自注意力模型通常采用求和的方式获取句子的向量表示,更好表达句子的语义关系。
最后本文将两种模型的优势相结合,保证提取特征的全面性,提高文本分类的准确度。下面是对模型的展开描述。
2.2 向量映射层
在输入神经网络模型之前,需要将原始的输入文本信息转化为其需要的向量形式,以便于后面的模型对特征进行抽取等操作。本模型采用已经训练好的词向量对本模型的embedding层进行初始化,设给定一个长度为n的句子L={l1,l2,l3,…,ln}, 其中词li经过embedding层后映射成为一个词向量表示,即Wi={w1,w2,…,wj,…,wd}, 其中d为词向量的维度,拼接后生成该句子的词向量矩阵为:S={W1,W2,…,Wj,…Wn}, 其矩阵大小为n*d。在词嵌入矩阵中,每个词语都有与自己相对应的词向量表示。
2.3 改进的Text_CNN模型
CNN是深度学习的经典算法之一,它是一种前馈神经网络,包含卷积计算且具有一定的深度结构[10]。CNN具有局部感知和权值共享的特点,减少权值数量,降低网络模型的复杂度,并且具有强大的特征提取功能。本文改进的Text_CNN模型如图2所示,包括输入层、改进的卷积层和池化层、全连接层。
图2 改进的Text_CNN
由输入的词向量矩阵可知S的大小为n*d,和卷积核F进行卷积操作,得到特征值ci, 其中,i为第i个特征值,则提取局部特征的公式如下
ci=f(F·Si+h-1+b)
(1)
(2)
可以看出,在x≤0 (即负半轴上)得到一个较小斜率的函数,不再简单置零,以此解决神经元死亡问题,从而保留特征负值信息,增强对有效特征信息的学习能力。同时,Selu函数中引入了自归一化的属性,使模型即使在噪声和扰动的情况下,仍可以保证其准确性,使神经网络的学习更具鲁棒性,从而提高分类的准确性。
为充分提取文本局部特征,本文设置3个不同的卷积窗口,分别为2,3,4的卷积核,每个卷积核数均为50,其扫描整个词向量矩阵时的步长设置为1,由以上的计算可知,通过卷积操作得到特征图C为
C=(c1,c2,…,cn-k+1)
(3)
经过卷积操作后,本文在CNN的池化层采取K-max pooling策略。由于CNN卷积层输出的特征图中存在至少一个重要特征,常用的最大池化操作针对每个滤波器的特征映射图只保留最大值特征,无法对多个重要特征进行选取,容易造成特征信息丢失。因此选用K-max pooling池化方式,即在所有特征值中选取前k个重要特征供后续使用,减少重要特征丢失。其计算公式如下
Di=top_k_max(C)
(4)
其中,k=3, 为提取文本的前3个重要信息。
2.4 自注意力机制和BiLSTM模型
2.4.1 自注意力机制
近几年,注意力机制在自然语言处理、图像识别及语音识别等领域取得重要突破,是专家学者根据人类的选择性视觉注意力机制而提出的。人们在观察图像时,会根据以往的经验获得需要重点关注的内容,并会对这一内容投入更高的关注度,以期待获得更多的信息,它的核心就是利用有限的注意力资源从众多的信息中筛选出对当前任务目标更关键的信息。同理,当人们阅读某某篇文章时,会选择性地浏览比较重要的词或句子,关注其中有价值的信息,而注意力机制的作用即过滤掉没有价值的内容,让其能够更好捕获到有价值的信息,因此在文本分类中加入注意力机制具有重要的研究意义。
从文献[11]中,我们了解到传统注意力模型使用词级别注意力机制方法生成句子表示的一维向量,只能以某个特定视角对句子进行语义表示,从而会产生网络中间损失大量信息的情况。与传统的注意力机制不同的是,自注意力机制通过映射为二维矩阵来表征句子信息的方式进行句子建模,获得了语义信息更加丰富的特征表示,如图3所示。
图3 传统注意力机制与自注意力机制
自注意力机也被称为内部注意力(intra-attention),是基于注意力机制的一种改进,其特点是学习句子内部的词依赖关系,通过一定的计算过程直接将句子中任意两个单词的关系联系起来,不需要依靠额外添加信息来计算权重关系,其核心在于点乘注意力[11],本文采用的点乘注意力公式定义如下
(5)
虽然自注意力机制能够学习到任意词对之间的关系,但并不能捕捉序列的顺序,假如将句子中词的顺序打乱,那么自注意力机制学到的是一样的结果,往往需要添加position embedding获取位置信息,来获取句子的序列。考虑到BiLSTM捕获句子时序性的天然优势,本文将两者很好地结合起来,即能捕捉到贡献程度较大词,又能充分学习到词对的语义关系,同时也保证了句子中词语的序列关系。
2.4.2 BiLSTM模型
RNN是处理自然语言中长序列信息最常用的一种模型,用于提取文本的全局特征。但传统的RNN存在梯度消失、维度爆炸的问题,LSTM是为了解决此问题而被提出。LSTM的模型结构主要由3个门控(遗忘门、输入门和输出门)单元和一个记忆单元(constant error carrousel,CEC)组成,其作用分别是:遗忘门用来控制上一时刻单元中存储的历史信息,输入、输出门分别控制网络的输入与输出。则该神经元在t时刻的更新计算过程如下
ic=σ(Wi·[ht-i,xt]+bi)
(6)
ot=σ(Wo·[ht-i,xt]+bo)
(7)
ft=σ(Wf·[ht-i,xt]+bf)
(8)
ct=ft·ct-1+ic·tanh(Wc·[ht-i,xt]+bc)
(9)
ht=ot·tanh(ct)
(10)
其中,it,ot,ft分别是在t时刻的输入门、输出门和遗忘门,σ是sigmoid函数,Wi,Wo,Wf,Wc代表3个不同门的权重矩阵和当前输入单元状态权重矩阵。bi,bo,bf,bc代表3个不同门的偏置,和当前输入单元偏置项。其中,ct-1表示上一个时刻c的值,ct表示对记忆单元的更新,ht为当前的输出结果。
由于句子具有结构依赖性,单词与单词之间的关系都是双向的,一个单词会受到前后单词影响,因此本文采用的是RNN的变种双向长短期BiLSTM模型,如图4所示。
图4 BiLSTM结构
从图4中可以看到,BiLSTM主要由LSTM单元组成,其正向和反向的隐藏状态融合了词本身含义以及其上下文语义,故正向和反向LSTM隐藏状态的拼接可以更好表示单词的语义。
通常情况下,自注意力机制要想获得句子的向量表示,经常采用加权求和的方式。为了能更好表达句子的语义,本模型在自注意力机制后,直接采用BiLSTM来捕获句子的向量表示,如此即能解决信息冗余问题,又能很好捕获到句子序列关系。其提取特征设置如下:
(11)
其中
通过BiLSTM模型最终的输出表示是:h={h1,h2…hn}。
然后,通过改进的Text_CNN和自注意力BiLSTM模型分别完成对文本的特征提取后,将捕获的局部和全局特征拼接融合形成文本新的特征表示。两种特征融合的公式如式(12)
u=o⊕h
(12)
式中:u表示融合后的新特征,⊕代表拼接操作。
最后,利用softmax函数进行计算,输出并行神经网络模型TC-ABlstm的分类结果,完成文本分类。
3 实验与分析
3.1 实验环境
本实验是在Anaconda平台上设计实验,采用keras框架完成的,后端采用Tensrflow。其它配置见表1。
3.2 实验数据
为了检验本文所构建模型的优越性,本文在Sogou Lab提供的全网新闻数据集SougouC和复旦大学文本分类语料库2个数据集上进行实验对比,见表2。
表1 实验环境配置
表2 语料集概要情况
SogouC中的数据是在2012年6月~7月,从新浪、网易、腾讯以及凤凰资讯等若干个新闻站点采集,并且提供URL和正文信息,包括18个类别,本文采用其中9个类别作为本实验数据,其中70%作为训练集,30%作为测试集。
3.3 实验参数及评价指标
在输入方面,本文使用预先训练好的Sougou news进行词向量初始化,词向量维度为200,文本长度设置为500,过长的文本数据会导致运行速度慢,影响分类效果。使用卷积窗口大小为2、3、4的卷积核,每种窗口的卷积数量均为50,采用k-max的池化策略,为能提取到更多有价值有效的特征,将k值设为3;设置BiLSTM中隐藏层的节点数为256;为避免过拟合,经多次实验设置epoch参数为5,batch_size设置为64。
(13)
3.4 对比实验
将以下5种模型进行对比实验,验证其改进模型的有效性。
(1)Text_CNN:该模型是Kim所提出的,输入部分使用预训练的词向量,并通过卷积层、池化层和softmax输出层来进行文本分类。
(2)PCNN(改进的Text_CNN):在(1)中的基础上进优化,针对卷积层和池化层进行改进,引入了Selu激活函数和k-max池化策略,并且所有的参数设置均与(1)相同。
(3)ABlstm模型:为了获取文本的长期依赖性,提出的联合自注意力机制和Bilstm模型。主要考虑从单模型的角度进行对比,验证模型的有效性。
(4)TC-ABlstm:该模型为本文所提出的模型,将PCNN模型和ABlstm模型相结合,具有充分提取文本特征的特点,最后采用softmax函数进行分类。
3.5 实验结果与分析
(1)首先进行Text_CNN模型与PCNN(改进的Text_CNN)模型的分类结果进行比较:设置其所有的参数均相同,以Text_CNN模型为标准,以准确率和时间作为评判标准,在两个数据集上的实验结果,如图5~图6所示。
图5 SogouC语料集上准确率对比
图6 FD语料集上准确率对比
从图5~图6可以看到,随着迭代次数的增加,模型逐渐趋向平稳状态,我们在参数设置相同的情况下,基于Text_CNN改进的模型PCNN准确率要比原Text_CNN的准确率高。在搜狗数据集上,PCNN的准确率为83.94%,而Text_CNN的准确率为81.97%,提高了约1.9%。由图6可知在复旦文本数据集上,Text_CNN的准确率达到了94.15%,而PCNN的准确率达到了95.28%,相比较Text_CNN也有一定的提高。由此可见,在改进的模型中,引入的Selu激活函数和K-max池化策略,能够有效提高CNN捕获局部特征的能力,提高分类的准确率。
由表3可知,数据质量相同的情况下,改进的PCNN要比Text_CNN用时更少,不仅使准确率有所提升,其效率也有得到了提高。
表3 运行时间/s
(2)为了更好了解本文提出的TC-ABlstm并行神经网络模型性能,依次和PCNN以及ABlstm单模型进行比较,见表4。
表4 准确率对比/%
从表4中,我们可以看到,在两个语料集上,基于自注意力机制和BiLSTM的模型进行文本分类的准确率要高于PCNN模型,表明自注意力机制和BiLSTM的模型相比卷积神经网络来说更适合对较长文本进行处理。同时表中也显示出在复旦文本数据集上,TC-ABlstm的准确率达到98.61%,高于准确率为95.28%的PCNN模型3.33%,同时相较于ABlstm的准确率提升了1%左右。在搜狗数据集中,TC-ABlstm模型的分类准确率达到了91.59%,比PCNN模型的准确率提高6%左右,对比于ABlstm模型的87.14%提升4.45%。由此可见,本文所构建的TC-ABlstm模型的准确率均高于单个文本分类的模型,原因是单个模型在提取特征方面都有一定的局限性,两者的优势结合对于特征提取更加全面。
(3)在搜狗数据集下,本文所提出的模型与其它的模型进行比较,见表5。
从表5中综合分析,以上3种模型均为混合模型,TC-ABlstm相比其它两种模型,准确率均有所提升。这是因为本文模型不仅对CNN进行改进,增加了其提取特征的能力,同样融合自注意力机制和BiLSTM模型捕获了上下文语义信息,验证该模型相对来说具有一定的优越性。
表5 搜狗数据集
综上几种文本分类方法的对比可知,本文对于CNN模型进行优化,更有利于CNN对于文本局部特征的提取。同时引入自注意力双向长短时记忆模型ABlstm弥补CNN提取特征时忽略文本上下文语义以及句子全局特征提取不充分的缺点,有利于提高文本分类的准确性。
4 结束语
本文提出了用于文本分类的并行神经网络模型TC-ABlstm。该方法对传统的CNN进行改进,使用Selu激活函数代替Relu激活函数,并在池化层采取K-max池化策略,增强了对文本局部特征的提取的能力;同时联合自注意力机制和双向长短期神经网络BiLSTM模型来提取文本全局特征的优势,增强对文本上下文的理解。实验结果表明,该方法对于分类效果的性能有一定的提升。本文提出的模型主要集中在提高特征提取能力这一方面,为了使模型更加优化,接下来从两方面进行改进:首先,针对中文文本特征提取中,词粒度表达不精确的情况,利用文本更细粒度的特征,增加文本表示的多样性,提升文本表示的准确性;其次,考虑到长文本进行分类时,文中存在很多无效的干扰信息,采用压缩或提取主题句的方式,提前过滤掉一些冗余信息,保证精确度的同时,能够保证运算效率。