卢浩陈伟
(南京理工大学计算机科学与工程学院 南京 210094)
随着国家近年来大力推动移动互联网的发展和微博、微信、论坛等社交媒体的兴起,越来越多的网民愿意在网络上发表见闻、观点、想法[1]。消费者在网络上选购商品和服务时,可以方便查看他人对商品的评论并可以自行发表评论。商家可以通过挖掘这些包含用户情感倾向的评论文本信息来获取用户的观点和评价,提高产品和服务的质量。情感分析(Sentiment Analysis)作为自然语言处理(Natural Language Processing,NLP)的一个重要分支,其发展在自然语言处理领域有重大的影响[2]。移动互联网的兴起使得用户评论数据呈现指数级别的增长,如何高效准确地挖掘评论信息中的情感倾向,成为了当今自然语言处理方向的研究热点。
情感分析是自然语言处理领域的一个研究热点,主要包括情感极性分析、情感方面抽取、主客观分析等子课题,主要目的是从词语、句子或者篇章中提取评论人的主观情感倾向。
目前的情感分析所用的技术路线主要分成三类:基于语义规则的方法、基于特征机器学习的方法和基于深度学习的方法[3]。基于情感词典的方法主要依据语义构建情感词典,结合情感词典和人工设定倾向性评价的指标与方法来判断情感倾向性。基于机器学习方法需要利用人工的方式设计筛选出文本的特征,将文本特征向量化之后输入到机器学习算法中进行分类,特征的选取直接影响分析结果,且泛化能力较差。Pang等[4]使用基于机器学习的算法,利用最大熵、贝叶斯、支持向量机等多种分类器进行了对电影评论的情感分析,取得了较好的效果。这两种方法由于需要大量的人工标注和特征工程,且泛化能力较差的特点,已经逐渐被淘汰。
基于深度学习的方法较好地规避了传统方法的弊端,随着深度学习在自然语言处理领域的使用,利用深度学习算法进行文本情感分析成为了研究界的主流趋势。Kim等[5]提出使用卷积神经网络(Convolutional Neural Network,CNN)实现了句子级别的情感分类任务,在多个数据集上均取得了很好的结果。CNN具有提取深层次短语特征的特点[6],但其无法学习到句子内部和句子之间依赖关系和上下文信息。梁军[7]等在长短期记忆神经网络(Long Short-Term Memory,LSTM)基础上融合了极性转移机制对影评数据集进行了情感分析实验。Xiao等[8]提出双向长短期记忆神经网络(Bidirectional Long Short-Term Memory,BiLSTM)的情感分析方法,BiLSTM可以从两个方向上获取上下文特征,综合学习前后向语义信息,能够有效提高模型的精度。Tai等[9]尝试在LSTM模型的基础上以树形结构来描述文本,提高句子结构的语义表达,同时解决了循环神经网络在时间上的梯度弥散问题。
深度学习中的注意力机制是对人类所特有的脑部信号处理机制的模仿,能够在众多的输入信息中找到特定关注的区域,忽略一些次要信息。人类可以通过快速扫描图像来获取视觉注意力焦点,分配特定区域更多的注意力。注意力机制最早是由Bahdanau等[10]应用到自然语言处理领域,众多学者对注意力机制在情感分析领域进行了研究与应用。Yang等[11]提出了基于层次化注意力机制的文本分类模型,通过句子和词语两个级别的注意力来提高分类准确率。张仰森等[12]利用注意力模型对微博文本内容和情感符号进行双重编码,提出了基于双重注意力的微博情感分类方法。顾军华等[13]使用卷积操作提取文本注意力信号,并将其加权融合到文本分布式表示矩阵中,提升了模型的准确度。赵云山等[14]在CNN网络中引入Attention机制,使得传统的CNN也能计算局部特征与非局部特征之间的依赖关系,有效地提取句子级别的分类特征。李勇等[15]提出了融合位置注意力的BiLSTM评论情感分析网络,通过位置注意力与语义特征的融合,提升了情感词的权重。谷歌公司在2017年提出了自注意力机制[16],在机器翻译领域获得了较大的突破。这种自注意力机制所依赖的外部参数少,更容易获取文本内部依赖关系,在文本情感分析尤其是针短文本情感分析时,可以取得比较好的准确率表现。吴小华等[17]提出了结合Self-Attention机制和文本字向量表示方法的情感分析网络,更完整保留了短文本中的稀疏特征,提高了分类准确率。王拂林等[18]利用自注意力和LSTM进行语义编码结合动态记忆网络,在方面级别情感分析中取得了较好的结果。
本文提出了基于多通道卷积自注意力联合模型,模型结构如图1所示。首先将预处理好的文本通过Word Embedding生成词向量,同时将词向量送入多通道CNN和BiLSTM层中分别进行特征提取。通过多通道CNN,使用不同宽度的卷积核,提取出不同词粒度的局部信息表示,并引入自注意力机制(Self-Attention),将学习到的结果送入Self-Attention层中,再经过池化后将向量序列拼接获取最终的局部语义表示结果。同时使用BiLSTM获取到全局语义,并使用Self-Attention提高对文本内部特征的获取,将上述两个通道内的不同语义特征进行融合后,得到最终的语义表示。最后将所得到的文本特征表示通过全连接层后再通过分类层,输出最终的分类结果。
图1 网络结构图
在词向量标识层之前,由于中文文本的特殊性,需要进行数据清洗,分词和去除停用词等操作。同时为了方便统一处理,需要对文本语料的长度进行截取和补齐处理。进行预处理完的文本内容本不具有丰富的高维向量表示,需要将文本内容转换成词向量以获取模型网络的输入向量。因此文本情感分析首先需要将长度为n的文本序列表示成d维单词向量序列。目前,通常训练词向量采用的方法是使用Word2vec词向量训练工具,该技术主要包含两种模型,Skip-gram模型和连续词袋模型(CBOW)[19],前者的主要思想是利用目标词预测其周围的词,后者则是利用周围的词语预测目标词。在本文实验中,使用Word2vec进行词向量训练,本文将使用Skip-gram模型进行训练并将生成的词向量矩阵作为网络模型的输入信息。
循环神经网络是一种序列神经网络,可以获取文本内容的上下文特征,广泛应用于自然语言处理任务中。Hochreiter[20]提出的LSTM网络解决了传统的RNN存在的梯度消失和梯度爆炸的问题而且更容易学习到长期依赖关系,其具体单元结构如图2所示。LSTM每个单元主要由输入门i、输出门o和遗忘门f记录并更新信息,通过门控的方式提高了长距离重要语义信息的捕获,式(1)~式(6)则为LSTM的更新方式。
图2 LSTM单元结构图
其中,σ表示激活函数;tanh是双曲正切函数;Wi,Wo,Wf、bi,bf,bo分别为输入门、输出门和遗忘门对应的权重矩阵和偏执矩阵;xt是当前的输入向量。
卷积神经网络已经在图像识别等领域取得了巨大成功[21],同时也被应用于了自然语言处理领域中。卷积神经网络主要使用卷积层学习局部特征并通过池化层进行特征映射。在本文任务中卷积的过程就是一个一维滤波器扫过词向量矩阵,通过在不同的位置检测并提取特征,以此实现全局特征的提取。
将词向量嵌入层的输出作为卷积层的输入,句子的长度为n,向量维度为d,则句子的第i个词向量可以表示为xi∈Rd,则文本可以表示为由n个d维向量组成的词向量矩阵x∈Rn×d,如式(9)所示。
其中,⊕代表拼接运算符,卷积层使用不同的卷积核提取局部上下文信息,用卷积核w∈Rh×d进行卷积操作,其中滤波器的窗口大小为d,宽度为h,其过程可以表示为
其中,b为偏置项,f是激活函数,为了加快训练速度,本文选择Relu函数作为激活函数,xi:i+h-1∈Rh×d表示由h个词构成的滤波器窗口,经过卷积操作之后得到的特征序列C,C=[c1,c2,…cn-h+1]。为了更加充分利用不同尺寸的卷积核卷积操作所获取的不同粒度的序列特征,本文采用了多通道卷积层,使用三种不同尺寸的卷积核,获取多种粒度的特征序列C1、C2和C3。对于文本矩阵而言,行与行之间具有语序特征,可以通过不同维度的卷积操作获取更加丰富的语义特征[22]。因此,使用多通道CNN进行不同词粒度的卷积操作进行文本特征提取,能够提高卷积神经网络的提取文本特征的能力,能获取更加丰富的语义和语序特征,同时由于CNN并行化计算的特点,相比于LSTM网络可以提高训练速度。
注意力机制是一种对人脑的注意力分配机制的模仿。注意力机制本质是特征选择机制对输入序列进行动态编码,从众多信息中获取对当前任务最重要的信息,高效感知语义特征信息。自注意力(Self-Attention)是注意力机制中的一种,又被称为内部注意力,其特点在于无需外部额外信息直接计算依赖关系,能够更好地学习句子的内部结构。将Bi-LSTM层的输出向量H输入到自注意力层,学习到序列内部的依赖关系和不同词向量的权重。自注意力的计算过程使得句子中任意两个单词之间可以无视距离直接联系起来,远距离依赖特征更加容易被学习到,式(11)是其计算过程。
其中,H∈Rd是Bi-LSTM层的输出向量是调节因子,避免内积过大,sof t max函数的作用是对权重进行归一化处理。
本文使用双自注意力机制,将多通道CNN层经过卷积操作后得到的向量序列和Bi-LSTM层的输出向量H都输入至Self-Attention层中进行建建模,提高内部语义信息的获取。多通道粒度的特征序列C1、C2和C3经过Self-Attention层之后所得到的特征序列所得到的的特征序列需要经过池化层对提取出的特征进行采样,本文选用最大池化(Max pooling),该池化方法是将过滤器抽取到的多个特征值中的最大值保留下来,获取到局部区域内的最突出特征。讲池化后的三个特征序列拼接所作为句子的语义部分表示,如式(12)~式(13)所示:
Bi-LSTM层的输出向量H都输入至Self-Attention层后所得到的向量为H'。在融合层中使用concatenate函数讲两个通道的不同语义特征拼接起来,得到最终的语义向量表示A={H',N}。
本文模型中,将最终融合得出的句子特征向量作为全连接层的输入,并通过sof tmax函数进行归一化,可以得到最终的分类结果,如式(14)所示:
其中wc是可训练权重矩阵,bc是偏置。本文损失函数使用交叉熵损失,本文的损失函数如式(15)所示:
其中,y(i)表示第i个文本的情感预测值,λ是L2正则化系数的惩罚项目,θ是模型设置的参数。本文使用的优化器为Adam[23]来降低损失值。
本文选用谭松波[24]整理的酒店评论语料(Chn-SentiCorp_htl)训练和验证模型的有效性。该数据集的语料规模为10000条,整理成四个子集,本文选用其中的6000条平衡语料子集(ChnSenti-Corp_htl_ba_6000),正向和负向的酒店评论各3000条,文本内容是用户对酒店的评价,该数据集文本平均长度38.18,最大长度337。本文采用10折交叉验证的方法进行实验,具体的实验环境如表1所示。
表1 实验环境配置
深度学习模型的训练实验中,参数设置对结果会有较大影响,经过实验对比,本文使用了以下的参数设置。词向量的维度为200维,BiLSTM层的隐藏层有128个神经元,卷积核的宽度分别为3、4和5,卷积核个数均为250。dropout率是0.2,Adam优化器的学习率为0.001,数据批处量batch_size是64,实验迭代10个epoch。
本文采用通用评价标准,使用准确率(Precision)、召回率(Recall)、F值(F-Measure)这三个标准对情感分析实验结果进行评价,其中F值本文选用常见的F1值,具体计算公式如式(16)~式(19)所示。
其中,TP指积极类预测为积极类数,FP指消极类预测为积极类数,FN指积极类预测为消极类数,TN指消极类预测为消极类数。
本文实验设置多组对比实验,在对比实验组中包含了单一网络层和联合网络的对比,可以通过对比实验,分析本文提出的基于卷积自注意力联合模型的性能表现。
1)LSTM:使用LSTM网络进行分类实验,网络输入是Word2vec训练出的词向量。
2)BiLSTM:使用单一的BiLSTM网络进行实验,网络输入是Word2vec训练出的词向量。
3)SAN-Bi LSTM:结合BiLSTM和Self-attention机制的情感分析网络,具体可以参考文献[17],网络输入是Word2vec训练出的词向量。
4)CNN:单一CNN层进行分类实验,网络输入是Word2vec训练出的词向量,具体可以参看文献[5]。
5)MCNN:多通道CNN层进行分类实验,选择三通道CNN进行词语局部特征获取,选择的卷积核数量与宽度与本文模型相同,网络输入是Word2vec训练出的词向量。
6)CSAN-BLSAN:本文模型,使用卷积长短时自注意力融合模型,网络输入是Word2vec训练出的词向量。
本文在酒店评论数据集上进行了多组对比实验,在实验过程中记录了本文模型与5组对比模型的实验数据,实验结果如表2所示。
表2 实验结果
1)通过LSTM和Bi LSTM算法的对比实验可知,Bi LSTM由于使用了正向、后向的双向传播机制,通过双向学习语义特征以避免遗失未来语义,实验结果上性能更优。
2)根据BiLSTM和SAN-BiLSTM这两个算法的对比实验结果可知,相比不引入Self-Attention的BiLSTM算法的实验组,后者在模型的准确率,召回率和F1值上分别提高了5.42%、4.56%、2.77%。引入Self-Attention机制能使模型更加容易获取句子的局部信息,Self-Attention机制可以使句子中任意两个单词无视远距离依赖直接关联起来,减少了普通注意力机制的外部参数依赖,加强了情感词的权重分布,提高了语义特征的获取能力,进而提高了模型的准确率。
3)通过对比MCNN和CNN两种算法的实验结果可知,由于本文数据集的平均文本长度在进行文本预处理并分词后,平均文本长度相对不高,CNN可以获得相对比较好的模型综合性能,使用多通道CNN的模型,可以获取多粒度的文本特征信息,相比于单通道CNN在三个评价指标上均有一定的提升。在本实验中,使用CNN网络进行实验可以获得相比于LSTM相对更好的分类结果。
4)本文模型综合使用了双Self-Attention机制对多通道CNN和BiLSTM的语义表达进行处理并融合,获得相对全面的语义表示,在准确率,召回率和F1值的指标上均取得了最佳的性能,说明本文模型可以在评论情感分析实验中可以取得较好的分类结果。
本文实验训练迭代次数设置为10次,为了更加直观地反应6组对比模型的性能表现,图3和图4分别是模型的在验证集预测的准确率和损失值变化曲线。从图中可以得知,6组模型均可以在相对短的时间内达到较高的准确率,其中本文模型在第四次迭代时达到验证集准确率最高为91.67%,整体验证集准确率也在所有模型中最优。验证集损失率图显示出,本文模型在第二次迭代时,取得了最小val_loss,LSTM和CNN模型相对波动最大,本文模型损失值变化情况总体在其它几组模型下方,在验证集损失率变化上也是取得相对最佳的性能表现。这6组实验数据都出现了过拟合的情况,但本文模型波动相对较小,最小val_loss也是本文模型取得,综合图3和图4的分析结果,本文模型可以更加全面地提取文本信息,收敛速度快,可以得到的最高的验证集准确率和最小验证集损失值,并且模型的稳定性也较好。
图3 验证集准确率变化
图4 验证集损失值变化
本文提出了一种CSAN-BLSAN模型的中文文本情感分析方法,引入自注意力机制进行双重语义特征的建模学习,通过多通道CNN和BiLSTM获取多粒度的局部语义特征和全局语义特征,提高对文本特征信息的获取,并通过自注意力机制进行重点情感词权重的动态调整,并且通过对比实验组,验证了本文模型的准确率的提升。由于网络结构的相对复杂,也带来了模型迭代时间的一定损耗。今后研究的重点是如何利用情感词语的相对位置关系,进一步挖掘语句中的情感倾向,依靠重点情感词语及其上下文更加准确地提取文本的情感语义,在提高模型准确率的同时,进一步缩短模型的平均迭代时间。