王 泽,孔韦韦,薛佳伟,平 稳,李 龙
1.西安邮电大学,西安 710121
2.陕西省网络数据分析与智能处理重点实验室,西安 710121
3.桂林电子科技大学,广西 桂林 541004
4.广西可信软件重点实验室,广西 桂林 541004
情感分析是人们对服务、事件、产品、话题及其属性的观点、情绪和态度的研究,当今世界社交媒体发展迅速,情感分析也成为了自然语言处理领域的一项基础任务[1]。情感分析根据其对文本的研究粒度可以分为篇章级情感分类、句子级情感分类和方面级情感分类三种,其中方面级情感分析由于其文本粒度小,在一句话中能够更准确地判断在不同方面的情感极性,成为了情感分析领域中一个重要研究方向[2]。例如:“Waiters are very friendly and the pasta is simply average”,该评论中存在两个方面词“waiters”和“pasta”,情感极性分别是积极和中立,其对应的观点词分别是“friendly”和“simply average”。方面级情感分类在各个行业都很有前景,如在电子商务领域,电商可通过分析用户的商品评论,快速深入剖析用户的消费习惯和个人偏好[3];通过对网络评论的检测,可以迅速得到民众对于某项政策的态度或者某件热点话题的看法[4]。
早期的情感分析方法主要是依赖统计方法建立情感词典[5],将情感词典作为情感分析的基础,但是无论人工构建还是自动构建情感词典,都存在只能针对一个领域,对于跨领域情感分析的效果不够好,并且词典中的情感词的丰富度低,对于长文本难以判断其情感极性。目前,随着机器学习的快速发展,尤其是深度学习的发展[6],方面级情感分类研究方法主要是基于深度学习开展。Tang等[7]直接将句子输入到长短期记忆网络(long short-term memory,LSTM)[8]中提取情感特征,但忽略了方面词对情感特征提取的影响,提取到的情感特征是整个句子的情感特征,得到的结果不是方面词的情感;为了弥补上面忽略方面词的问题,随后Wang等[9]提出了基于注意力机制[10]和LSTM的分类模型,使用注意力机制去捕捉方面词对情感特征判别的影响,实验结果相对之前模型有一定的提升,体现了方面词对情感判别的重要性;Ma等[11]为了进一步加强方面词与上下文的联系,且考虑到方面词可能是由好几个单词构成的短语,提出了基于注意力机制将方面词与上下文进行交互,该模型基于LSTM分别提取方面词和上下文的信息得到初始表征,再经过一层池化层,利用注意力机制完成两者的交互,得到最后的情感表征,实验结果表明该模型效果有较小提升,由于方面级情感分类数据少、训练集小,模型效果无法得到进一步的提升;Fan等[12]提出了一种多粒度注意力网络(multi-grained attention network,MGAN),其模型采取细粒度注意力机制和粗粒度注意力机制结合,弥补了以往粗粒度注意力机制在上下文和方面词很长时引入的额外损失;Li等[13]将卷积神经网络(convolutional neural network,CNN)引入到方面级情感分类中,使用CNN来代替注意力机制去提取上下文和方面词语义相关性;Wei等[14]提出一种基于门控机制的可并行训练的CNN模型,用于解决以往LSTM结合注意力机制这类模型过于复杂且参数较多,训练起来比较费时的问题;Chen等[15]认为文档级的语义对于方面级情感分类的判别有所帮助,通过在句子级和方面级两个粒度下搭建语义胶囊,提出了一种迁移胶囊网络模型(TransCap),但该模型忽略了文本中潜在的句法关系;Zhang等[16]首次将图卷积神经网络(graph convolutional network,GCN)应用到情感分析任务中,其利用句法依赖关系提出了一种特定方面图卷积网络(aspect-specific graph convolutional network,ASGCN),其首先利用双向长短期记忆网络(bi-directional long short-term memory,Bi-LSTM)提取上下文信息,利用多层图卷积网络和掩码机制提取方面词信息,将非方面词的情感特征过滤掉,最后使用注意力机制得到情感特征用于情感预测,取得了不错的效果;Zheng等[17]为了更加充分地利用句子中的语法信息,提出了一种可以在句法依存树随机复制游走的方法,去更好地提取句子的信息上下文特征,能在方面级情感分类中取得较好的效果;Lu等[18]利用LSTM获取序列信息,使用多跳端到端记忆网络获取方面词的分类特征,着重考虑语句中各方面项之间的联系,最终结合注意力通过Softmax进行情感分类,分类效果较之前提出的模型有一定的提升;Zhang等[19]提出了一种利用语料库级别的单词共现信息和不同类型句法依存关系的新颖体系,建立了层次句法图和层次词汇图,通过双层GCN融合句法与词汇图,提出了一种双层图卷积网络BiGCN(bi-level graph convolutional network),该模型对于句法依存信息的利用比较充分,但忽略了方面词与上下文的交互信息;Chen等[20]首次提出对象的潜在图结构,提出了三种方法来获取潜在图结构,之后采用图卷积网络来融合潜在图,以补充原始句法依存树的不足,在公开的三种数据集上取得了不错的性能。
综上所述,为了在方面级情感分类任务中取得更好的效果,本文提出一种基于方面词交互(aspect word interaction,AWI)和GCN的方面级情感分类模型AWIGCN,充分利用GCN的优点根据句法依存树将句中的语法信息融合到上下文的语义信息中,再通过注意力机制学习上下文与方面词之间的交互信息,达到提高情感判别效果的目的。
本文提出的AWI-GCN模型主要由词嵌入层、语义提取层、句法提取层、句法融合层、池化层、信息交互层以及情感分类层构成,模型的总体架构如图1所示。
图1 AWI-GCN模型总体架构图Fig.1 Overall architecture diagram of AWI-GCN model
对于给定长度为m和n方面词t={wt1,wt2,…,wti,…,wtm}与上下文s={ws1,ws2,…,wsj,…,wsn},其中方面词可以为短语或者一个单词。将方面词和上下文中的每个单词映射到低维向量空间,文本嵌入使用预训练词典GloVe[21],嵌入矩阵为M∈ℝv×dw,其中v为预训练词典中单词的数量,dw为做词嵌入时的维度。对于t和s中的单词wti或wcj都有对应的词向量vit或vcj,故方面词的词嵌入向量为;上下文的词嵌入向量为s={v1s,v2s,…,vsj,…,vns},s∈ℝn×dw。
对于序列的学习,循环神经网络(recurrent neural network,RNN)具有出色的表现,而LSTM是RNN的一种变体,其利用门控机制可以克服传统RNN的长距离遗忘问题,能有效地利用距离较远的文本信息,并且因为其网络自身的结构在一定程度上也缓解了传统RNN存在的梯度弥散和梯度爆炸的缺点。因为上下文信息的表示对于最终情感判别有着重要的影响,原始的LSTM为单向网络,其网络实际只利用到了“上文”的信息,忽略了“下文”的有效信息,而Bi-LSTM作为原始LSTM的拓展,结合了一个逆向的LSTM,使得网络能够从文本的两端都能够处理信息,将双向的网络输出拼接得到隐藏层特征,弥补了原始LSTM的不足,所以本文使用Bi-LSTM提取上下文的语义特征,LSTM结构如图2所示。
图2 LSTM结构图Fig.2 LSTM structure diagram
设t时刻的输入词嵌入向量为vt,则LSTM的计算公式为:
式(1)中,ft、it和ot分别代表LSTM门控机制中的遗忘门、输入门和输出门,σ是Sigmoid激活函数,tanh是双曲正切函数,W*为权重矩阵,b*为偏置项,Ct-1和Ct是记忆细胞在t-1和t时刻的状态,ht-1和ht是LSTM在t-1和t时刻的输出。
因为Bi-LSTM是由一个正向LSTM和反向LSTM构成,最后的结果为两者结果的拼接,故Bi-LSTM的计算公式如下:
式(2)中ht,f为正向LSTM在t时刻的输出,式(3)中ht,r为反向LSTM在t时刻的输出,将ht,f与ht,r进行拼接得到式(9)中的ht,即Bi-LSTM的最终输出。
将方面词和上下文的词嵌入向量分别通过Bi-LSTM,得到方面词的隐层表示Ht和上下文隐层表示Hc:
其中,Ht∈ℝm×2dh,Hc∈ℝn×2dh,dh为Bi-LSTM的隐层状态维度。
方面级情感分析与一般的情感分析不同,在于从方面的角度去判断情感极性,为了充分利用上下文中的句法信息,更好地判别方面词情感,本文为上下文文本搭建句法依存树,树是特殊的图,使用G=(V,E)保存句法依存树,V是句中所有节点的集合,即句中所有词的集合,E是句中所有边的集合,即句中所有词与词依存关系的集合。以“The battery is very longer”为例,根据句法依存树构建的邻接矩阵如图3所示。
图3 句法依存树及其邻接矩阵Fig.3 Syntactic dependency tree and its adjacency matrix
对于邻接矩阵A,根据句法依存关系,若两节点之间存在依存关系,则赋值为1:
若不存在关系,则赋值为0:
根据Kipf和Welling[22]提出的自循环思想,即每个词都应与它自身邻接,于是设置矩阵对角线元素的值为1:
最后由式(7)~(9)可得到邻接矩阵A,A∈ℝn×n,n为上下文长度。
将Bi-LSTM输出的上下文隐层表示Hc与其对应的邻接矩阵A输入到L层GCN中,利用GCN对节点进行图卷积,通过邻接矩阵将句法依存信息融入到节点,得到特征hic_l,计算方法如下:
故在经过L层GCN后,可以得到融合了语法依存信息的上下文信息特征表示Hc_L,Hc_L∈ℝn×2dh:
为进一步抽取方面词的特征,本文对Bi-LSTM的输出Ht=[h1t,h2t,…,htm]做平均池化操作得到Ht_avg:
考虑到方面词对上下文的影响,本文以融合了句法依存信息的上下文信息特征Hc_L和方面词的平均表征Ht_avg作为注意力机制的输入,利用注意力机制去学习方面词与上下文之间的交互信息,并且为对情感判别做出贡献的单词根据其重要程度分配不同的权重。其权重计算方式如下:
其中,γ是得分函数,为上下文hic_L根据其重要性打分,HtT_avg是Ht_avg的转置,αi为待分配权重,Wa和ba分别是权重矩阵和偏差项。
根据待分配权重αi,可以获得最终的上下文表示η,计算公式如下:
将得到的上下文表示η作为情感判别的最终特征,通过一个线性层将η映射到一个与预设情感极性空间维度C相同的空间中:
式(17)中,Wx和bx分别是权重矩阵和偏差项。
最后,使用Softmax函数取最大概率去预测情感极性:
式(18)中,yi∈ℝC,C是情感种类数量。
本文模型训练采用交叉熵损失函数和L2正则项:
式(19)中,yi为实际情感极性,yi为预测情感极性,λ为L2正则化系数,θ是模型需要训练的参数。
实验在Windows10系统上进行,电脑CPU型号为Intel®Core™i5-6400,深度学习框架为Pytorch1.6.0,编程语言使用Python3.8,使用CUDA10.1加速计算,详细实验环境如表1所示。
表1 实验环境及配置Table 1 Experimental environment configuration
本文数据集采用TWITTER数据集、SemEval2014任务4中的LAP14数据集和REST14数据集,共计三个公开数据集,情感极性分为积极、中立、消极三种,各数据集的情感极性分布如表2所示。
表2 数据集统计信息Table 2 Data set statistics
本文的上下文和方面词使用GloVe预训练好的词向量进行初始化,对于没有在GloVe词典中登录的词语,使用均匀分布对其随机初始化,词向量的维度设置为300,LSTM的隐藏层神经单元个数设置为300,GCN层数设置为两层,单次训练样本数Batch Size设置为32,为加快模型收敛使用Adam优化器,学习率设置为10-4。模型训练中,为防止过拟合现象,使用Dropout和L2正则项缓解,此外引入Early Stop,损失函数使用基于L2正则项的交叉熵损失函数,模型权重使用均匀分布初始化,具体参数如表3所示。
表3 参数设置Table 3 Parameter settings
本文采用分类任务常用的评估标准,预测准确率(accuracy,Acc)和Macro_F1值作为模型评价指标,预测准确率是预测正确样本数T与总体样本数N之比,Macro_F1值是对各个情感类别的F1值取平均值,F1值是召回率和精确率的调和平均。TN为预测正确的负样本数目,FN为预测错误的负样本数目,TP为预测正确的正样本数目,FP为预测错误的正样本数目,则预测准确率和Macro_F1值计算公式如下:
式(20)~(25)中,P为精确率,R为召回率,C为情感类别种类,本文共有情感共有3类,故C的值为3。
在同等实验环境下,本文与以下基线模型进行对比,验证AWI-GCN模型的有效性:
(1)LSTM[7]:标准LSTM网络,将上下文编码输入到LSTM中,将隐层输出作为最终情感判别特征。
(2)AT-LSTM[9]:对上下文编码,输入到LSTM中提取语义信息,用注意力机制进一步突出对情感判别有帮助的特征,再进行情感判别,忽略了方面词对于情感预测的影响。
(3)ATAE-LSTM[9]:以AT-LSTM模型为基础,在上下文编码时,将方面词编码嵌入到上下文编码中,输入到LSTM中,使用注意力机制分配权重,得到最终的情感特征进行判别。
(4)IAN[11]:该模型分别对上下文和方面词进行编码,两者使用注意力机制进行交互,融合上下文对方面词和方面词对上下文的影响,最终做连接作为最终的情感特征。
(5)ASCNN:Kim等[23]将CNN与NLP结合,使用基础的CNN来抽取语义信息,将与训练好的词向量作为输入,结论证明即使是对原始CNN的参数不作大幅度的调整,在语义抽取方面,CNN也具有天生的优势。
(6)ASGCN[16]:使用GCN根据句法依存树以及掩码机制得到方面词的表征,再根据注意力机制对权重重新分配,使用Softmax进行情感分类。
(7)TranCaps[15]:在胶囊网络上使用迁移学习将文档级的语义信息融合到方面级中,以增强方面级的情感分类。
(8)CDT:Sun等[24]使用GCN和依赖树来拉近句子方面词与观点词之间的距离,模型的输入为字嵌入的依赖树,通过双向LSTM学习上下文的信息,再通过GCN进一步增强嵌入,通过一层池化层得到情感特征。
(9)RepWalk[18]:在依存树中引入随机游走的方法,激活方面词在树中的边,给予方面词更大的权重,建立双层语义胶囊网络通过路由机制来进行情感分类。
(10)BiGCN[19]:使用双层图卷积神经网络融合层次句法图和层次词汇图,充分利用单词之间的句法信息,之后再结合单词共现信息对情感进行分类。
(11)depGCN[20]:Chen等提出了依赖于对象的潜在图结构,采用自注意力方法,以句子编码层的输出作为输入,得到潜在图结构,通过图卷积网络和门控机制来进一步完善原始句法信息。
AWI-GCN模型与以上代表基线模型在3个公开数据集上的详细对比结果如表4所示,N/A代表未取得实验结果。
从表4中的数据对比,AT-LSTM相较LSTM,在三个公开数据集上准确率Acc分别提升1.91、2.47、2.23个百分点,Macro_F1分别提升了1.87、2.30、1.09个百分点,可见注意力机制进一步提取重要情感特征对于情感判别的帮助;ATAE-LSTM在AT-LSTM的基础上将方面词编码信息与上下文编码连接,初步将方面词编码信息与上下文联系起来,在TWITTER和REST14数据集上分别提升了0.24、0.69个百分点,简单的连接未能有效地利用方面词对于情感预测的作用;而IAN模型进一步地考虑到了方面词与目标的交互,相较于ATAE-LSTM在三个公开数据集上,准确率Acc分别提升了3.85、3.35、2.06个百分点,Macro_F1分别提升了4.28、3.45、3.07个百分点,可见将上下文与方面词的交互信息融合到模型之中,效果提升是相当高的,进一步体现了方面词与上下文之间的交互信息的重要性,但IAN忽略了句法依存信息的利用;对比ASCNN与ASGCN,可见在三个数据集上ASGCN的平均表现较ASCNN好,GCN在语义抽取方面较CNN好,ASGCN使用GCN将句法依存关系融合到上下文信息中,相较于ATAE-LSTM准确率Acc分别提升了2.88、5.44、3.66个百分点,Macro_F1值分别提升了3.15、5.31、5.17个百分点,可见将句法信息融入到上下文信息之中,对于情感预测的提升是非常有用的;模型AWI-GCN相较于ATAEA-LSTM在三个公开数据集上准确率Acc分别提升4.33、6.22、4.42个百分点,Macro_F1值分别提升了4.87、6.53、6.49个百分点,原因在于AWI-GCN同时考虑到了方面词与上下文之间的交互信息,并且充分的利用了句法信息;相较于IAN模型,准确率Acc分别提升了0.48、2.87、2.36个百分点,Macro_F1值分别提升了0.59、3.08、3.42个百分点,因为IAN模型考虑到了方面词与上下文之间的相互影响,但忽略了句子中的语法信息;对比TranCaps模型,在LAP14和REST14数据集上,准确率Acc分别提升了1.05、2.07个百分点,Macro_F1值分别提升了0.36、2.10个百分点,说明将文档级信息融入方面级中,其效果不如去融合句法信息和学习方面词交互信息;相较于CDT模型,准确率Acc分别提升了0.24、0.54、1.14个百分点,Macro_F1值在TWITTER和REST14数据集上分别提升了0.87、1.47个百分点,在LAP14数据集上低于CDT模型0.52个百分点,两模型均使用了GCN来融入句法信息,但AWI-GCN模型还是在准确率方面略有提升,说明方面词与上下文之间的交互信息在情感判别方面仍然发挥了一定的作用,而CDT模型融合了句法、位置、词性等多方面信息,在LAP14数据集上Macro_F1值比AWI-GCN略显稳定。RepWalk采用随机游走的方式为方面词增加权重,相当于从另一方面来增强方面词与上下文之间联系,但没有考虑到句子中的语法信息,其在三个公开数据集上比AWI-GCN模型有所落后,在准确率Acc分别落后0.85、0.82、0.70个百分点,Macro_F1值分别落后0.40、0.45、2.20个百分点,在REST14数据集上该模型性能较差,因为REST14数据集中样本长度差距较大,产生的依存树结构差距大,对于在依存树上的随机游走方法有一定的限制;BiGCN与depGCN模型在三个公开数据集上的性能相差不大,两者均充分利用了句法信息,用不同的方式对原始的句法信息进行弥补,但两者均没有考虑方面词与上下文的交互信息,AWI-GCN在考虑相互信息的情况下,在前两个数据集上准确率Acc比BiGCN提升了0.92、0.60个百分点,Macro_F1值两者相当,在REST14数据集上两模型性能相当;AWIGCN相比于depGCN在三个公开数据集上准确率Acc分别提升0.87、0.13、0.95个百分点,Macro_F1值在前两个数据集相差较小,REST14数据集提升1.62个百分点,AWI-GCN在REST14数据集上比depGCN更为稳定。综上,AWI-GCN模型在方面级情感分析任务中是比较有效的,其语法信息的融入和方面词与上下文交互信息的学习,都对情感判别效果的提升起到了一定的作用。
表4 模型测试结果Table 4 Test results of models 单位:%
为进一步探究模型AWI-GCN的有效性,进行消融实验,研究影响实验结果的独立因素。
2.5.1 模型分解对比
为验证GCN融合句法信息的有效性,对方面词和上下文建模,不使用GCN将句法信息融入上下文中,而让Bi-LSTM上下文隐层输出与方面词做交互,建立AWI模型;为验证上下文与方面词之间交互信息对于实验结果的影响,不再进行上下文与方面词在注意力机制上的交互,而是让上下文与方面词分别建模,提取方面词内容(aspect word content,AWC),再通过池化进一步抽取特征,上下文通过GCN融合句法信息后通过注意力机制,将得到的结果拼接进行情感分析,建立AWC-GCN模型,各模型在三个公开数据集上的详细结果如表5所示。
表5 不同模型实验结果对比Table 5 Comparison of experimental results of different models 单位:%
对比表5中三个模型在不同数据集上的准确率Acc和Macro_F1值,可以看到AWI的效果在三个模型中最差,原因在于其未融合句法依存信息;模型AWC-GCN融合了句法依存信息,并初步考虑了方面词对情感判别的影响,其在TWITTER数据集上的准确率与AWI-GCN相当接近,然而AWC-GCN忽略了方面词与上下文之间的交互信息,效果逊于AWI-GCN;AWI-GCN同时融合了句法依存信息,并考虑到了方面词与上下文之间的交互信息,故在三个模型中AWI-GCN表现最好,该组对比实验体现了AWI-GCN的有效性。
2.5.2 GCN层数对实验效果的影响
为探究GCN层数对于实验效果的影响,本文在LAP14数据集上设置不同的GCN层数去观察实验结果,详细实验结果如图4所示,图4横坐标为GCN的层数,纵坐标为准确率Acc或者Macro_F1值。可以观察得到,当GCN层数为2时,模型在准确率和Macro_F1值上得到最好的效果,这也说明本文将GCN层数设置为2是合理的,随着GCN层数的增加,模型参数也随之增多,模型训练变得愈加困难,模型性能也逐渐回落。
图4 不同GCN层数的实验结果Fig.4 Experimental results of different GCN layers
本文提出一种基于方面词交互和GCN的方面级情感分类模型AWI-GCN,模型首先使用预训练好的情感词典做方面词与上下文的词嵌入,通过Bi-LSTM提取上下文与方面词信息,根据句法依存树将句法依存信息融入到上下文信息中,利用注意力机制让上下文信息与池化后的方面词信息做交互,学习方面词与上下文之间的交互信息,最后对提取到的情感特征做情感判别。通过在三个公开数据集上与其他基线模型的对比和消融实验,证明了AWI-GCN模型的有效性。但方面词与上下文之间的交互信息,学习的还不够彻底,下一步工作将研究如何在句法依存树上拉近方面词与重要情感特征的距离,进一步提高情感判别的准确率。