《武汉工程大学学报》  2019年04期 386-391   出版日期:2019-09-27   ISSN:1674-2869   CN:42-1779/TQ
基于CNN-BiLSTM网络引入注意力模型的文本情感分析


情感分析[1]是自然语言处理领域的一个重要研究方向,文本情感分析的主要目的是从原始文本中提取出说话人的主观情绪,包括其针对某个对象的立场是褒扬还是贬损,其对某事件的态度是积极还是消极等等。情感分析方法主要是基于有监督学习、基于语言学和基于深度学习的三类方法[2]。随着深度学习在图像处理和语音识别领域的成功应用,便逐渐将其应用到自然语言处理领域,其中情感分析就是一个很重要的研宄方向。Bengio等[3]最早使用神经网络构建语言模型。Mikolov等[4-5]于2013年提出了word2vec技术,推动了词向量的快速发展。Kim等[6]对比了不同词向量构造方法,利用提前训练的词向量作为输入,通过卷积神经网络(convolutional neural network,CNN)实现句子级的文本分类。Lee等[7]利用基于循环神经网络(recurrent neural network,RNN)和CNN训练文本的向量,通过普通人工神经网络(ANN)实现文本分类,证明了添加文本序列信息可以提高分类的准确率。普通RNN可以有效地利用近距离的语义信息[8-9],RNN有多种变种循环神经网络模型,长短时记忆网络(long short-term memory,LSTM)[10-11],可以捕捉较远距离的两个文本元素之间的相互关系,获取更多文本序列信息。双向长短时记忆网络(bidirectional long short-term memory,BiLSTM)[12],由两个LSTM组合而成,一个前向传播、一个后向传播,可以有效地利用文本的上下文语义信息。Bahdanau等[13]最早提出了注意力机制理论,并将其应用到了机器翻译领域。Mnih等[14]在RNN模型上使用了注意力机制来进行图像分类,使得注意力机制真正意义上流行了起来。类似图片,文本中重点信息也会出现分布不均的情况,可以利用注意力机制(Attention)通过对文本向量的语义编码分配不同的注意力权重,以区分文本中信息的重要性大小,提高分类的准确率。胡荣磊等[15]提出了LSTM添加注意力机制的方法,证明了添加注意力机制较传统的机器学习方法和单纯的长短期记忆网络的方法有明显的优势。Zhou等[16]提出C-LSTM模型,将CNN与LSTM以链接的方式构建网络模型,增强了模型特征学习能力从而改进了模型分类效果。但是单LSTM只能学习前向特征,忽略了后向特征的学习,不能很好的利用上下文语义特征,从而限制了文本分类性能。本文采用CNN基础上添加BiLSTM,并证明了BiLSTM的添加对模型的分类效果起到正影响,而且弥补LSTM的不足,再在此网络基础上添加注意力机制,在丰富特征信息的同时减少了噪声干扰。通过实验证明了此网络模型对提高文本分类准确率的有效性和高效性。由于本文模型中CNN和BiLSTM是链式链接关系,存在链接次序影响的问题,所以实验部分给出了CNN-BiLSTM网络联合次序的有效性分析。1 CNN-BiLSTM网络引入注意力模型通过学习已有的神经网络模型,为了提高文本情感分析的准确率,本文提出了CNN-BiLSTM网络引入注意力模型的文本情感分析方法。模型网络结构如图1所示。其主要包括两个部分:一是CNN-BiLSTM网络构建,本文后面将进行CNN网络与BiLSTM网络连接方式的有效性分析。二是引入注意力模型。实验主要流程为:首先获取大规模语料训练而成的词向量矩阵,生成词索引,通过嵌入层,将其输出作为CNN-BiLSTM网络的输入,然后引入注意力模型,再添加全连接层,最后通过softmax分类器进行情感分类,其中采用dropout技术防止过拟合。1.1 模型表示给定文本句子数据集D,其中包含有文本[X{x1,x2,?,xm}]及每个句子所对应的情感标签[Y{y1,y2,?,ym}],其中每个文本句子[xi]有[n]个词组成,表示为[{xi1,xi2,?,xin}],最终目标函数为:[PY|X=argmaxθ f(Y|X;θ)] (1)1.2 卷积神经网络模型利用CNN提取局部特征。CNN是一种前馈神经网络,其模型结构主要包括输入层、卷积层、池化层、全连接层和输出层几部分。将嵌入层的输出作为输入,句子中每个词的词向量为[xi],[xi∈Rn×d],其中[n]是词数,[d]是向量维度,本文定为200维。卷积操作,主要完成特征提取的工作,通过设置好的滤波器来完成对输入文本句子特征的提取:[Ji=fω×xi:i+g-1+b] (2)其中,[ω]是卷积核,[g]是卷积核的尺寸,[xi:i+g-1]是[i]到[i+g-1]个词组成的句子向量,[b]是偏置项,通过卷积层后,得到特征矩阵[J],[J=[c1,c2,?,cn-g+1]]。池化层,通过对卷积层之后得到的句子局部特征矩阵[C]进行下采样,求得局部值的最优解。这里采用MaxPooling技术,如式(3)所示:[M=maxc1,c2,?,cn-g+1=maxJ] (3)由于BiLSTM输入必须是序列化结构,池化将中断序列结构[J],所以需要添加全连接层,将池化层后的[Mi]向量连接成向量[Q]:[Q={M1,M2,?,Mn}] (4)将新的连续高阶窗口[Q]作为BiLSTM的输入。1.3 BiLSTM模型LSTM是RNN的一个变种,它存在一个贯穿始终的记忆状态单元(Memory Units),该记忆单元遗忘、记忆、输出,由通过上个时刻的隐藏状态[ht-1]和当前输入[xt]计算出来的遗忘门[ft]、记忆门[it]、输出门[ot]来控制,保留重要的信息,遗忘不重要的信息,消除了循环神经网络存在的梯度爆炸(Gradient Explosion)或梯度消失问题。其原理图如图2所示。计算遗忘门[ft],根据[ht-1]和[xt]计算,如式(5)所示:[ft=logisticWfxt+Ufht-1+bf] (5)根据[ht-1]和[xt]计算,计算记忆门[it]:[it=logisticWixt+Uiht-1+bi] (6)根据[ht-1]和[xt]计算,计算临时记忆状态[Ct]:[Ct=tanhWcxt+Ucht-1+bc] (7)计算当前记忆状态[Ct],根据[ft]、[it]、[Ct]和上一时刻记忆[Ct-1]计算:[Ct=it*Ct+ft*Ct-1] (8)计算输出门[ot],根据[ht-1]和[xt]计算,如式(9)所示:[ot=logisticWoxt+Uoht-1+bo] (9)计算当前时刻隐藏状态[ht],根据[ot]和[Ct]计算,如式(10)所示:[ht=ot*tanhCt] (10)其中[Wf,Uf,Wi,Ui,Wc,Uc,Wo,Uo]均为权值矩阵;[bf,bi,bc,bo]均为偏置向量;[tanh]:激活函数;logistic:激活函数。BiLSTM由正向LSTM与反向LSTM结合而成,若记[t]时刻正向LSTM输出的隐藏状态为[ht],反向LSTM输出的隐藏状态为[ht],则BiLSTM输出的隐藏状态[ht]:[ht=ht⊕ht] (11)1.4 注意力模型注意力模型是用来表示文本句子中的词与输出结果之间的相关性,该模型最先被应用于机器翻译的任务中。注意力模型通过对文本向量的语义编码分配不同的注意力权重,以区分文本中信息的重要性大小,提高分类的准确率。本文使用前馈注意力模型。生成目标注意力权重[vt],[ht]是CNN-BiLSTM网络输出的隐藏状态:[vt=tanh(ht)] (12)注意力权重概率化,通过softmax函数生成概率向量[pt],如式(13)所示:[pt=exp (vt)t=1mexp (vt)] (13)注意力权重配置,将生成的注意力权重配置给对应的隐层状态语义编码[ht],使模型生成的注意力权重发挥作用,[at]是[ht]的加权平均值,权值是[pt],如式(14)所示:[at=t=1mpt?ht] (14)2 实验部分实验针对带有情感标签的电影评论和推特评论对提出的情感分析方法进行有效性验证。其中,实验所用的嵌入矩阵是glove已训练好的词向量glove.6B.200d。2.1 实验数据数据集来自IMDB电影评论和Twitter用户评论,IMDB电影评论情感类别是类似豆瓣网站的星级评分制度,最差1分至最好10分,本文将其分为2类,即1~5分归为消极情感0,6~10归为积极情感1。Twitter用户评论情感标签直接为2类,消极为0,积极为1。实验所用数据集的设置如表1所示。表1 实验数据设置 Tab. 1 Experimental settings 条[数据集\&训练集\&验证集\&测试集\&总数\&IMDB\&22 500\&2 500\&5 000\&30 000\&Twitter\&45 000\&5 000\&5 000\&55 000\&]2.2 参数设置实验所用的嵌入矩阵是glove已训练好的词向量glove.6B.200d,词向量维度设置为200,嵌入索引中找不到的单词将全部为零。卷积神经网络的滤波器窗口大小均分别为3,4,5,激活函数选择relu函数。双向长短时记忆网络的隐藏状态向量维度设置均为200,Dense层,为2分类,激活函数为softmax,Dropout参数设置分别为0.3,0.2,0.25。模型的优化器optimizer=‘adam’,采用fit函数进行训练,其中训练批次长度batch-size=32。2.3 有效性分析本文提出的方法是在CNN-BiLSTM联合网络上引入注意力模型,所以在构建联合网络时会有CNN、BiLSTM网络联合次序的影响,这里针对实验数据集,设置对比实验,进行CNN-BiLSTM联合次序的有效性分析。联合次序对比实验结果如表2所示。对表2中实验结果进行分析:在Twitter数据集上,CNN-BiLSTM的连接方式比BiLSTM-CNN的连接方式,Acc指标高约1.01%,RMSE指标优化了约0.32%。在IMDB数据集上,前者比后者Acc指标高约0.18%,RMSE指标优化了约1.20%。说明了CNN-BiLSTM的连接方式比BiLSTM-CNN的连接方式,在引入注意力模型后,分类效果上有所提高。表2 联合次序对比实验结果Tab. 2 comparison experimental results in different model-combining order[模型\&IMDB\&\&Twitter\&Acc / %\&RMSE\&Acc / %\&RMSE\&BiLSTM-CNN-Attention\&90.16\&0.308 7\&\&75.89\&0.420 6\&CNN-BiLSTM-Attention\&90.34\&0.296 7\&\&76.90\&0.417 4\&]从验证集的准确率(val_acc)上来看,Twitter的val_acc变化如图3所示,本文模型val_acc值均在BiLSTM-CNN-Attention模型之上。IMDB的val_acc变化如图4所示,本文模型val_acc本文模型多数高于对比模型,且波动性平稳,说明了CNN-BiLSTM的连接方式在模型分类效果上更具有优势,更加稳定。整体上,针对2组数据集,训练中迭代次数均设置为10次,且模型训练结果均取得较好的分类效果,说明了本文模型在短时间内有很好的收敛性,即能高效地提高文本分类准确率。再从时间代价上来看,2组模型的时间代价如图5~图6所示,横坐标是模型训练的迭代次数,纵坐标是模型训练时每次迭代所用时间,时间单位均为s。针对Twitter数据,BiLSTM-CNN-Attention模型的训练速度都在360 s以上波动,本文模型的训练速度均在20 s左右波动,总体对比实验模型要比本文模型约慢1倍。即在时间代价上,CNN-BiLSTM的连接方式耗时少,有利于加快模型的训练速度。在IMDB数据上,BiLSTM-CNN-Attention模型的训练速度均超过1 800 s,而本文模型的训练速度均在800 s附近波动,总体本文模型要比对比实验模型快1倍多。说明了CNN-BiLSTM的连接方式在训练速度上保持了高效性。由于Twitter数据集的最大文本长度为40,且文本长度多数分布在4到26之间,而IMDB数据集的文本长度集中于长度为400以内,约是Twitter数据集单句评论文本的10倍。可见,在短文本中相对较长的文本数据集上,CNN-BiLSTM-Attention模型比BiLSTM-CNN-Attention模型的总体训练速度更有明显的优势。综上所述,针对本文实验所用数据集,CNN-BiLSTM的连接方式在文本分类上更具有高效性和有效性,所以本文选择在CNN-BiLSTM的连接方式上引入注意力模型。2.4 实验结果分析实验针对数据集IMDB、Twitter进行情感分析,并设置了以下多组对比试验,包括SVM与深度学习方法的比较,单一网络与CNN-BiLSTM联合网络的比较,及与引入注意力模型的网络对比。网络输入均是利用word2vec训练的词向量。SVM[17]:采用传统机器学习算法SVM进行情感分析;BiLSTM[18]:单一的BiLSTM网络CNN[19]:单一的CNN网络。CNN-BiLSTM:先添加一个CNN网络,再添加一个BiLSTM网络。CNN-BiLSTM-Attention:先添加一个CNN网络,再添加一个BiLSTM网络,最后引入Attention机制。表3 对比实验结果Tab. 3 Comparison experimental results[模型\&IMDB\&\&Twitter\&Acc / %\&RMSE\&Acc / %\&RMSE\&SVM\&78.64\&0.521 3\&\&63.25\&0.517 5\&BiLSTM\&84.29\&0.413 7\&\&71.24\&0.435 1\&CNN\&85.94\&0.351 0\&\&72.08\&0.457 2\&CNN-BiLSTM\&87.93\&0.328 2\&\&73.27\&0.429 3\&CNN-BiLSTM-Attention\&90.34\&0.296 7\&\&76.90\&0.417 4\&]多组对比实验结果如表3所示,从模型评价的结果上来看,深度学习模型结果明显优于传统SVM方法。在Twitter数据集上,CNN-BiLSTM的联合网络比单BiLSTM网络,Acc指标高约2.03%,RMSE指标优化了约0.58%。CNN-BiLSTM的联合网络比单CNN网络,Acc指标高约1.19%,在RMSE上优化了约2.76%。在IMDB数据集上,联合网络比单BiLSTM网络,Acc指标高约3.64%,RMSE指标优化了约8.55%。联合网络比单CNN网络,Acc指标高约1.99%,在RMSE上优化了约2.28%。综上,CNN-BiLSTM的联合网络比单模型的效果要好,这是由于CNN在提取局部特征上更有优势,利用CNN可以很好的提取文本中局部重要信息,而BiLSTM网络不但能捕捉上文长时间隔的特征,也能很好的利用下文特征,从而利用文本的语序和语法信息,而文本语序不同,表达的含义就会相差甚远,从而影响文本情感分析的准确度,CNN-BiLSTM的联合网络综合了二者的优点。在Twitter数据集上,CNN-BiLSTM网络引入注意力模型比CNN-BiLSTM的联合网络,Acc指标高约3.63%,RMSE指标优化了约1.19%。在IMDB数据集上,前者比后者,Acc指标高约2.41%,RMSE指标优化了约3.15%。这是由于注意力模型通过对输入的向量编码,分配不同的注意力权重,区分重要性大小,以获取重要的局部特征。即在提取文本特征时,加强了有关情感的语义特征权重,同时弱化了情感不相关的语义特征权重。结果表明,基于CNN-BiLSTM的联合网络,添加注意力模型,可以提高分类的准确率。3 结 语本文提出了一种CNN-BiLSTM网络引入注意力模型的文本情感分析方法。通过利用BiLSTM学习CNN池化后连接而成的特征,解决了单CNN缺乏利用文本上下文信息的问题,同时避免了简单RNN带来的梯度爆炸或梯度消失,最后引入注意力模型筛选特征,降低了噪声干扰,从而提高文本情感分类的准确率。实验结果证明了CNN-BiLSTM网络引入注意力模型的方法的有效性和CNN-BiLSTM网络联合次序的高效性。但联合网络中CNN网络的深度不够,今后研究如何利用深度更深的CNN网络来提高分类准确率,是下一步工作的目标。