基于卷积与双向简单循环单元的文本分类模型
2020-04-24陈天龙喻国平姚磊岳
陈天龙,喻国平+,姚磊岳
(1.南昌大学 信息工程学院,江西 南昌 330031;2.江西科技学院 协同创新中心,江西 南昌 330098)
0 引 言
文本分类技术是信息组织、文本挖掘的重要基础,可以在较大程度上解决信息紊乱的问题,帮助用户准确地定位自身所需的信息,被认为是处理海量信息的有力手段。文本分类技术在现如今大数据时代具有广泛的应用,如主题标签[1],情感分类[2],垃圾邮件检测[3]等等。
受益于神经语言模型[4]的突破、硬件承载力的加强、大数据技术以及神经网络的发展,深度学习技术逐渐取代了传统的机器学习方法,成为文本分类领域的主流技术[5]。如卷积神经网络(CNN)[6]、循环神经网络(RNN)[7]等。CNN能够通过卷积层提取n-gram信息,但是其语义信息受限于滤波器大小,而RNN可以弥补这一缺点。基于词粒度的循环神经网络模型[8]无法充分学习文本语义信息,词必须结合上下文才具备明确语义,所以通过学习短语的权重来合成的文本语义表示要比通过学习词的权重来合成的更准确。循环神经网络可以很好地文本序列信息,但是其中主流结构长短时记忆(LSTM)、门控神经单元(GRU)、双向长短时记忆 (BLSTM)可并行化计算能力十分有限。
结合上述分析,针对词无法充分体现语义信息和主流循环单元结构计算速度受限问题,本文提出了一种基于卷积和简单循环单元的深度网络模型Conv-BSA,模型先采用卷积层对文本矩阵(词向量序列)提取短语表示,再使用双向简单循环单元提取上下文信息,然后使用注意力机制学习得到最终文本表示。模型采用简单循环单元(SRU)[7]是因为SRU能够在保证优异的结果同时能够提高计算速度,降低时间损耗。单向的循环神经网络并不能很好地提取语义信息,所以模型采用了双向循环神经网络以克服这一缺点。为了能够自适应学习短语权重比例,模型加入了注意力机制[9]。
1 相关技术
1.1 词向量
传统的机器学习分类方法利用词袋特征表示文本,这直接导致得到的是稀疏、高维的文本表示,所以词袋得到的文本表示无法很好地对语义建模。然而,神经语言模型训练得到的词向量[10-12]能够很好地解决以上症结,并且可以显著提高分类精度。
其中Word2vec最初是由Mikolov[10]提出的,是一种能够简单、高效地获取词语向量化特征模型。Word2vec模型吸收了NNLM(neural network language model)模型和 logLinear 模型的优点,使用分布式表示(distributed representation)作为词向量的表达方式。当文本用作训练样本时,Word2vec可以根据词语的上下文有效地提取词语语义,并以词向量的形式表达。它包含两个训练模型,CBOW(连续词袋)和Skip-gram。前者通过前后词预测当前词,后者则相反。具体结构如图1所示。
图1 Skip-gram和CBOW模型结构
1.2 简单循环单元
循环神经网络(RNN)对于处理序列数据具有得天独厚的优势,这是因为神经元在某时刻的输出可以作为输入再次输入到神经元中。也正是因为这一特点,导致循环神经网络无法拥有与卷积神经网络(CNN)那般的计算速度。针对这一问题,Lei等[7]在RNN及其变体的基础上提出了SRU结构。SRU避免了GRU中状态计算和门控机制的复杂程度,消除门状态对前一时刻状态的依赖性,使得门计算单元可以并行计算,从而加快训练速度。
为了更直观地阐述简单循环单元(SRU)结构,本文选取了GRU(gated recurrent unit)[13]作为比较对象,并且绘制了相应的内部结构图。图2,图3分别是GRU和SRU的内部结构图。
图2 门控循环单元(GRU)结构
图3 简单循环单元(SRU)结构
相比较于LSTM,GRU将遗忘门和输入门合成了一个单一的更新门,同样还混合了细胞状态和隐藏状态。更新门的作用是决定有多少过去信息和现在信息可以被传递到未来。除了更新门,GRU的另一个门是重置门,其作用是遗忘多少历史信息不能被继续传递到下一时刻。下列公式描述了GRU具体的计算过程
zt=σ(Wz·[ht-1,xt])
(1)
rt=σ(Wr·[ht-1,xt])
(2)
(3)
(4)
对比GRU,SRU削弱了对前一时刻信息的依赖性,提升了计算的并行性和独立性,从而可以实验并行化计算来加速计算。SRU的计算过程如下所示
(5)
ft=σ(Wfxt+bf)
(6)
rt=σ(Wrxt+br)
(7)
(8)
ht=rt⊙g(ct)+(1-rt)⊙xt
(9)
其中,⊙表示逐元素相乘。g(·)表示非线性函数。为了能够训练深层次的SRU网络,高速网络(highway connection)被应用于生成最终的输出状态,如式(9)所示。从SRU的计算过程中可以得到式(5)~式(7)都具有独立性,不依赖于前一时刻ct-1信息,所以可以对其进行并行化计算处理,具体处理如式(10)所示
(10)
其中,n表示序列长度, U∈Rn×3d,d表示隐状态尺寸。
2 基于卷积和双向SRU的神经网络模型
2.1 网络模型
基于卷积和双向简单循环单元的神经网络模型(conv-BSA model)由嵌入层、卷积层、特征处理层、Bi-SRU层、注意力机制(Attention mechanism)、全连接(Dense)层和softmax层组成。详细模型结构如图4所示。
图4 基于卷积和双向简单循环单元的神经网络模型
2.2 卷积层
经过嵌入层的作用,文本转换为词向量序列(文本矩阵)X∈Rseq×d, 其中d表示词向量维度,seq表示序列长度。
接下来,卷积层使用大小为r×d的卷积核F对文本矩阵X执行能够容纳r个词的卷积操作,提取X的r-gram短语特征
cji=f(F·Xi∶i-r+1+b)
(11)
其中,符号·表示元素相乘,F表示r×d的卷积核,b表示偏置量,f表示非线性激活函数,本文选择的是ReLU函数,Xi∶i-r+1表示在词向量序列X中选择的第i行到i-r+1行子序列,i的取值范围为 {1,2,…,seq-r+1},j表示第j个卷积核,其取值范围是 {1,2,…,m}。 卷积核会根据步长对序列从上往下进行滑动,可得到r-gram短语特征集合C
C=(cji)(seq-r+1)×m= (c1,…,cj,…cm)∈R(seq-r+1)×m
(12)
其中,cj表示第j个卷积核所得到的卷积特征序列,其尺寸大小为seq-r+1维列向量,于是C的尺寸是(seq-r+1)×m。
2.3 短语特征处理
卷积操作通过对滑动窗口内的词做非线性组合(composition)得到其表示。理想情况下,卷积窗口内词的组合如果是语言学上的短语,则表明卷积得到的表示较为理想,即组合向量的各个元素的值较大,反之,向量元素的值较小。为保留完整的词序信息,文本使用局部最大池化思想,对短语序列矩阵C做特征筛选操作。因为卷积的采用的是重叠的窗口,所以相邻的短语向量相似性最大,故池化窗口大小设置为2,其步长也设置为2经过局部池化操作可以得到大小原先一半的短语序列
(13)
为了直观阐述模型特征处理的过程,本文绘制了特征处理如图5所示。图中采取的文本例子是“The dog is sitting on the mat”,经过池化操作最后得到的短语序列是“The dog”,“sitting on”,“the mat”。处理后的新序列较处理前维度减少了一半,但仍然保持着近似完整的语义信息。
图5 短语特征处理
2.4 双向SRU层
在单向的循环神经网络及其变体中,循环结构内部状态总是从前往后、从过去到未来。这导致了模型提取到的序列特征并非足够有效。如以下例子,现有一句话需要对其填词“我会讲普通话和____,因为父母分别来自中国和法国”。根据后半句的信息,可以得到空白处填“法语”更为合理。上述的例子虽然简单,但是说明单向网络并不能很好地处理需要依赖未来信息的任务。因此,通过双向循环网络便可以同时捕捉过去和未来信息,可以提取更深层次的文本特征。本文所使用双向简单循环单元(Bi-SRU)结构如图6所示。
图6 Bi-SRU结构
(14)
(15)
2.5 注意力机制
注意力机制在语音识别、机器翻译、图像标注等一些任务中具有显著的表现。注意力机制通过对数据进行自动加权变换,突出重点信息。在本文分类模型中,注意力机制可以学习到各个短语的权重,通过对各个短语加权求和得到向量s完整的计算过程如下所示
(16)
其中,αi表示hi所占的权重大小,即hi对文本语义表示贡献权重值。公式中的score(·)是针对hi在整个文本表示的重要程度进行打分。us是注意力机制的参数。score(·)函数并非一成不变,可以选择其它打分函数。
2.6 Softmax层
Softmax 在机器学习和深度学习中有着非常广泛的应用,尤其被用于处理多类别分类的任务。Softmax具体计算如公式
(17)
Vi表示Softmax层的输入,即前一层的输出结果。K表示类别数目。Si表示属于第i个类别的可能性。
交叉熵函数能够体现模型输出的概率分布和真实样本的概率分布的相似度,所以在分类问题中,交叉熵函数往往被选择作为损失函数,因此本文将平均交叉熵函数作为模型的损失函数,如式(18)所示
(18)
其中,yi代表样本所属的标签值,pi代表Softmax函数求出的值,θ为权重参数。
3 实验环境
3.1 数据集
实验所使用的数据来自于清华大学开源的中文文本分类数据集THUCNews。因为此数据集过于庞大,于是选取6.5万篇新闻文档数据作为本文的实验数据。实验数据分别选自于10个类别,并且按照50000∶5000∶10000比例被划分为训练集、验证集、测试集。文中所有实验都是在此数据基础上完成的。实验数据集的相关信息见表1。
表1 实验使用的数据集
3.2 词嵌入
嵌入层所使用的词向量是事先通过Word2Vec工具在大规模语料上训练得到的,由此构成的嵌入层可以提升模型的泛化能力。词向量维度为60,远小于Google预训练词向量的维度300,是因为词向量维度大于50对于本文任务的影响甚微[14],并且考虑到节约资源,提升模型性能。对于不在训练中的词,使用在区间[-0.25,0.25]上的均匀分布方法来初始化。
3.3 参数设置
卷积层卷积核数目都是256,其卷积窗口取3。Bi-SRU层包含128个简单循环单元(SRU)。L2正则项被使用于交叉熵函数,惩罚系数λ设置为1e-5。Dense层输出使用了Dropout,其比率为0.5。
本文使用了Mini-batch梯度下降方法来训练样本数据,每次训练128个样本,初始学习速率设置为1e-3。因为 Adam 通过计算梯度的一阶矩估计和二阶矩估计而为不同的参数设计独立的自适应性学习率,不断迭代更新网络参数,加快模型收敛,所以采用Adam[15]规则更新优化参数。文中的实验都是基于Tensorflow框架完成的,所有超参都是通过实验微调所得。
3.4 对比实验
为了验证模型的性能,选取10种模型与Conv-BSA模型进行比较,参与比较的模型结构情况如下:
(1)本文选取了SVM[16]作为Conv-BSRU模型的比较对象,并且使用了LibSVM[17]工具;
(2)CNN_non_static[6]使用了3种不同滤波器的卷积结构,将经过最大池化后的特征进行融合;
(3)Conv-BLSTM[18]被Li等提出用于电影推荐中的情感分析。卷积层提取到的特征被当作是BLSTM的输入;
(4)Conv-LSTM模型[19]由3个并行卷积层、LSTM层、全连接层、Softmax层构成。同时将Conv-SRU模型纳入对比实验;
(5)BGRU-Attention[20]被王伟等应用于情感分析,并且取得了满意的效果。
(6)BGRU[21]模型由一层双向GRU和Softmax层构成,与模型BGRU-Attention形成对比;
(7)SRU-Attention模型由SRU层、注意力层和Softmax层构成,模型参数设置与Conv-BSA模型参数相同;
(8)除却上述模型之外,将Conv-BSA模型中的简单循环单元(SRU)替换成其它循环单元(如LSTM或GRU)进行同组实验。
4 实验结果与分析
4.1 Conv-BSA模型结果
实验考虑到模型在训练中是否提升,所以以验证集的结果为依据提前停止模型训练,防止过度拟合。
模型对每个类别的预测结果见表2,从此表中可以观察到模型类别预测的偏向性。就精确率(precision)而言,娱乐类别的精确率最小,体育以及房产类别的最高,极差为0.09。通过观察召回率(recall)可以得到家具类别的召回率最小,娱乐类的高达0.98,其精确率高达0.98。结合精确率与召回率的信息,可以得到以下结论:模型容易将预测错误的样本归类到娱乐类别中。模型并不能很好地预测家居类以及教育类的样本。
表2 Conv-BSA模型的分类结果
4.2 同组实验结果
本文将Conv-BSA的SRU替换成其它循环网络单元得到Conv-BGA与Conv-BLA模型,对此3种模型进行对比实验。在同组实验结果分析中,除了使用常用的分类性能指标:F1-score、recall、precision之外,还将验证集准确率率、验证集损失率、迭代时间作为性能评价指标。
表3列出了模型的F1-score、recall,precision和accuracy结果,反映了Conv-BSA模型在各方面都具有突出的表现。
表3 3种模型的分类结果
从图7中可以看出虽然Conv-BGA模型从训练数据中学习的速度最快,但是Conv-BSA和Conv-BLA模型的学习速度同样很快,三者的差距并不大。另外,相比Conv-BSA模型稳定地学习,Conv-BGA与Conv-BLA模型更容易振荡。从图中还可以得到结论:Conv-BSA模型的拟合能力优于其余两个模型。
图7 准确率变化曲线
图8反映了模型训练损失随迭代批次次数的变化而变化。从图中可以得到以下结论:Conv-BGA损失下降速度最快,Conv-BLA下降速度最慢,并且其损失明显高于其余两个模型的损失值,同时也验证了Conv-BGA的学习速度最快,Conv-BLA的学习速度最慢。其次,Conv-BSA模型的损失值最小并且稳定减小,振荡现象并无其余两个模型那么显著,这印证了Conv-BSA模型拟合能力最强。
图8 损失变化曲线
图9反映的是模型训练耗时变化。从图中可以看出Conv-BSA模型的训练耗时明显小于Conv-BGA和Conv-BLA模型。在实验中还发现一个有趣的现象:GRU简化了LSTM的内部结构,提升了计算速度,因此计算耗时应该少于LSTM,但是实验结果却相反。
图9 时间损耗曲线
根据上述分析,可以的得出如下结论:Conv-BSA模型性能优于Conv-BGA,优于Conv-BLA。SRU不仅能够提升模型拟合能力和拟合速度,还能明显降低训练耗时。
4.3 与其它分类模型进行对比的结果
本文不仅设置了同组实验,还引入其它模型作为对比实验对象。模型对比结果参照表4。深度网络模型的分类结果明显高于基于机器学习的方法,但是各种深度网络模型准确率之间的差别并不大。Conv-BLSTM的分类结果优于Conv-LSTM,这表明双向的循环网络优于单向的循环网络,因为双向循环网络提取到的语义特征表示更充分。BGRU模型比BGRU-Attention模型低1.11%,这印证了注意力机制能够让模型的性能显著的提高。BGRU-Attention比SRU-Attention模型分类效果更优,这说明BGRU提取到的上下文特征优于SRU提取的特征,这从侧面也说明双向循环神经网络能够提取更有效的语义特征。
表4 模型结果对比
4.4 参数实验
为了能够充分学习文本表示,本文利用卷积层的特性得到短语特征。但是不同长度的短语特征会影响模型的性能。于是本文针对卷积核的窗口大小r×d选取问题设计了一组实验,r的取值范围设置为{2, 3, 4, 5, 6, 7},并且在模型Conv-BSA上进行了验证,根据结果绘制了表5。
表5 各尺寸对应的模型准确率
从表5中可以观察到当卷积核尺寸组合为3时,模型取得最佳结果。各种尺寸得到的结果也是足够可观,波动范围在一个百分点当中。
5 结束语
基于词粒度的双向长短时记忆网络虽然可以结合上下文信息学习到深层次的语义特征,但是并不充分,针对上述问题,同时考虑到短语会比词更能准确地表达文本语义,本文提出了一种基于卷积和双向简单循环单元的文本分类网络模型(Conv-BSA),模型先利用卷积层和局部池化操作提取并提炼短语特征,其次将短语序列送入双向简单循环单元中提取上下文语义特征,然后通过注意力层得到最终的文本表示,最后经过Softmax层得到分类结果。除了利用卷积层提取短语特征外,还尝试对3种循环神经单元进行了对比分析。实验结果表明,简单循环单元(SRU)比其余两种结构具有更显著的表现,不仅能够更加有效地分类,还能在保持分类效果的同时减少计算耗时。在实验中还发现:理论上GRU的速度应该快于LSTM,但是实验结果却相反。实验所用的数据集来自于新闻数据集,属于长序列文本,实验并未添加短序列数据集加以验证其性能。除此之外,可以寻找一种能够比简单循环单元性能更优的循环结构。