基于词级和语义级注意力的细粒度情感分析模型
2022-09-24文志霄梁志剑
文志霄,梁志剑
(中北大学 大数据学院,山西 太原 030051)
0 引 言
情感是影响人类行为的重要因素之一,使计算机自动识别文本的情感极性一直是自然语言处理领域的研究热点[1].比如在商业领域,情感分析可以通过提取有用信息,来帮助用户决定某个产品是否值得购买.情感分析还被用来提取各种对象的情感信息[2].传统的情感分析侧重于句子级或文档级任务,一般用来判断整个句子或文档的整体情感极性.然而,细粒度情感分析主要是分析一条语句对不同方面的评价.首先,从评价对象来说,细粒度情感分析的评价对象更具体,主要针对某一对象的某个方面.其次,细粒度情感分析的情感极性往往决定了粗粒度情感分析的情感极性.在对整个句子做粗粒度情感分析时,先将句子划分为若干短句,再分别判断这些短句的情感极性,整个句子的情感极性是这些短句的情感极性之和.比如描述餐厅的话:“价格合理,但是服务非常差”,在粗粒度情感分析中,这句话的评价对象是餐厅.而细粒度情感分析中的评价对象则是价格和服务,且对“价格”评价为正,“服务”评价为负.若取褒义词情感极性权重为1,贬义词情感极性权重为-1,程度副词权重为2,那么情感极性与程度副词权重相乘为短句的情感极性值,则这句话对餐厅的整体评价为负面.因此,基于句子或文档的情感分析会导致信息混淆,使用细粒度情感分析可区分不同方面对一个实体的情感取向,从而避免信息丢失.
细粒度的情感分析主要分为两个方面:方面检测和情感分类.其中,方面检测是指从用户评论中提取方面词与其对应的情感词.本文的细粒度情感分类任务假设方面是已知的,因此,只需关注情感分类任务.情感分类任务主要解决两个问题:特征提取和情感极性判断.早期的方法通常采用启发式方法手动提取上下文特征,如支持向量机(Support vector machine,SVM)[3]、朴素贝叶斯[4].近年来,深度学习网络被用于自动提取文本特征.文献[5]提出了基于卷积神经网络(Convolutional neural network,CNN)的文本特征提取,文献[6]通过将语言正则化器应用于长短期记忆网络(Long short-term memory,LSTM)实现了对语句的情感分类.文献[7] 提出了基于注意力机制的网络模型用于特征提取,均取得了比传统机器学习更好的效果.文献[8]提出了融合情感词典与上下文语言模型的文本情感分析模型.文献[9]利用门控制和卷积神经网络实现句子级的文本情感分类,进一步证明了深度学习在情感分析中的优势.
本文提出了一种基于BiLSTM(Bi-directional long-short term memory)和异核卷积(Heteronuclear convolution neural networks,HCNN)的多重注意力网络(BiLSTM-HCNN-Multi-Attention network,BHMAN)模型.细粒度情感分析中大都采用语义级特征对情感进行分类,此类方法忽略了方面和上下文在词级的相互影响.为解决这个问题,采用BiLSTM提取方面和上下文的语义级特征,同时采用HCNN提取方面和上下文的词级特征.在获取到词级和语义级特征之后,使用多重注意力机制分别计算方面和上下文在词级和语义级之间的相互影响,使得上下文对方面情感极性判断影响较大的单词权重进一步增加.
本文的主要工作为:① 提出了一种BHMAN模型用于细粒度情感分析任务.该模型将词级特征与语义级特征融合,并结合多重注意力网络,有效提高了情感分析性能.② 提出了异核卷积的方式来提取词级特征,使用不同规模的卷积核可以抽取不同级别的词级特征,强化了神经网络对词级特征的提取能力.③ 提出了多重注意力机制,使用交互注意力网络(Interactive attention network,IAN)和改进的双重注意力网络(Improved attention over attention,IAOA)分别计算方面和上下文的相互影响,使上下文中对情感分析相关词的权重进一步增加.
1 相关工作
1.1 细粒度情感分析
在细粒度情感分析任务中.传统的方法主要是利用机器学习[10-11]来提取特征,基于机器学习的细粒度情感分析的优劣都是基于对良好特征的选择.近些年,神经网络已经被广泛应用于多个领域,如文本情感分析.文献[12]提出了一种用于句子分类的CNN,该网络采用定长滑动窗口提取文本特征,然而,忽略了文本的全局信息相关性.此外,文献[13]采用门控制神经网络从上下文中提取情感对目标的影响,却缺乏语义的逻辑性和流畅性.细粒度情感分析中最常见的模型是LSTM.LSTM网络可以在不需要特征工程的情况下对句子进行编码,已经在许多自然语言处理任务中得到了应用.例如,文献[14]等构建了扩展的LSTM,采用两段注意力机制对方面和上下文分别进行建模.文献[15]采用多源数据融合的方法进行细粒度情感分类.
1.2 注意力机制
文献[16]提出了基于注意力机制的细粒度情感分类的ATAE-LSTM(Attention-based LSTM with aspect embedding)模型,该模型将方面的词向量进行融合并分析了LSTM隐层输出之间的相互影响,然而,该模型只是将这些向量连接起来,并没有学习方面与上下文单词之间的关联.文献[17] 利用交互注意力机制来计算方面和上下文之间的相互影响.文献[18]提出一种基于图卷积网络的分类模型用于捕获多个方面之间的情感依赖关系.文献[19]提出DA-BERT (Deep-attention with bidirectional encoder representations from transformers)模型,该模型采用transformer[20]作为特征提取器来计算每个单词与句子中其他单词的相关性,并取得了较好的效果.文献[21] 提出了融合句法特征与BERT词嵌入的BiLSTM-CRF(BiLSTM-Conditional random field)注意力机制模型,该模型并未对商品的隐式情感进一步分析.文献[22]等提出了双重注意力机制,通过计算方面和上下文单词的交互矩阵得到最终的交互权重,但是该模型使用BiLSTM单独训练句子和方面的嵌入,并没有考虑方面和上下文在词级的相互影响.如何将词级特征与语义级特征相融合,并利用注意力机制计算方面和上下文的相互影响,是本文的研究重点.
2 BHMAN的情感分析模型
2.1 模型架构
本文在Bi-LSTM网络模型的基础上引入HCNN网络提取词级特征,在Bi-LSTM和HCNN基础上分别引入注意力机制,构建了基于多重注意力机制的细粒度情感分析模型.模型的整体架构如图1 所示,主要包括词嵌入层、特征提取层、注意力层、特征融合和分类层.
图1 模型整体流程架构图Fig.1 Overall process structure diagram of model
2.2 词嵌入层
在本文模型中,使用 “BERT-Base”得到上下文和方面中每个单词的向量表示.假设上下文长度为n,即上下文中包含有n个单词,此时上下文可以表示为s= (w1,w2,w3,…,wn),上下文的一个方面有m个单词,则该方面可以表示为a=(wi,wi+1,wi+2,…,wi+m-1),其中1≤i≤i+m-1≤n.在这里,只考虑一个上下文中仅包含一个方面的情况.如果一个上下文中包含多个方面,则将其中的一个方面和上下文考虑为一对未被分类的实例,一般来说,一个方面可能包含有一个单词或者多个单词.
(1)
(2)
式中:am表示方面中第m个单词的BERT向量表示;sn表示上下文中第n个单词的BERT向量表示.
2.3 词级特征提取
词级特征提取主要是分析方面和上下文在词级的相互影响.在得到BERT训练出来的方面和上下文的词向量表示后,利用异核卷积对方面和上下文分别提取词级特征,再利用交互注意力机制计算方面和上下文在词级的相互影响.其中,HCNN通过卷积操作提取卷积核范围内词语之间的局部特征,采用不同大小的卷积核进行卷积时,HCNN可以通过学习得到不同词组合的卷积核权重,受卷积核大小的限制,HCNN可以得到几个相邻词之间的关联信息,即词级特征,而无法提取整个文本中词语之间的关联信息.
2.3.1 异核卷积神经网络
为有效地提取方面和上下文的词级特征,采用不同大小的卷积核对方面和上下文进行卷积操作.采用双通道输入的方式以增强模型学习词级特征的能力.为了方便描述,本文采用单通道卷积的形式.为了使卷积操作之后矩阵形状保持不变,采用“相同”模式进行卷积,选取尺寸分别为t×m1×d的卷积核W1∈Rm1×d和t×m2×d的卷积核W2∈Rm2×d对输入矩阵进行卷积操作,卷积公式为
(3)
(4)
式中:f表示ReLu (Rectified linear units);t表示卷积核的个数;m1和m2为卷积计算滑动窗口的大小.
矩阵中每一行表示t个卷积核在上下文矩阵相同位置上的提取结果.矩阵A和S中的行向量分别表示针对方面和上下文相同位置提取出的所有卷积特征.以上下文为例的卷积过程如图2 所示.
图2 异核卷积计算过程Fig.2 Computational process of HCNN layer
2.3.2 交互注意力网络
为了分析方面和上下文在词级的相互影响,使用IAN来计算.以卷积网络提取的特征作为输入,首先计算方面和上下文的平均池化,即
(5)
(6)
然后,计算方面对上下文中每个单词的影响.
(7)
式中:γ为分数计算函数,用于计算上下文中每个单词的权重,分数计算函数为
(8)
同理,通过式(9)来计算上下文对方面的影响.
(9)
式中:γ为分数计算函数,同式(7).
在计算完成方面和上下文中每个单词的权重之后,得到了方面和上下文的向量表示,即
(10)
(11)
将方面向量与上下文向量拼接形成上下文和方面的词级特征向量,交互注意计算过程如图3 所示.
图3 交互注意力计算过程Fig.3 Computational process of IAN
2.4 语义级特征提取
本节主要介绍语义级特征的提取,首先通过BiLSTM获取上下文和方面的语义级特征,然后通过改进的双重注意力机制计算上下文和方面在语义级的相互影响.因为LSTM适合处理时序特征问题,并且能够计算这些特征之间的关系,比如某个单词的意思会因为上下文中提到的内容而有不同的含义.
2.4.1 BiLSTM层
使用BiLSTM网络提取语义级特征,以方面和文本的BERT向量表示作为网络的输入,将这两个矩阵分别代入到两个BiLSTM网络进行训练,利用BiLSTM网络得到上下文和方面的语义级特征.每个BiLSTM由两个LSTM堆叠形成.
(12)
(13)
(14)
2.4.2 IAOA层
通过BiLSTM得到方面和上下文的语义级特征之后,利用IAOA计算方面和上下文在语义级别的相互影响.AOA模型中通过计算方面中每个单词对上下文的影响,得到上下文中每个单词的权重,然而,并没有考虑上下文对方面的影响.方面中的单词虽然较少,但每个单词的权重却不一定相同.IAOA模型增加了计算上下文中每个单词对方面的影响模块,通过分别计算方面中每个单词对上下文的影响和上下文中每个单词对方面的影响,得到上下文和方面中每个单词的权重.IAOA计算如图4 所示.
图4 改进的双重注意力计算过程Fig.4 Computational process of IAOA
首先,通过方面与上下文矩阵相乘可以得到一个关联矩阵即I=hs·(ha)T,其中,(ha)T为ha的转置矩阵.I∈Rn×m矩阵中每个值代表上下文与方面每个单词的相关性.通过在交互矩阵的行方向和列方向分别使用softmax,可以将得到的交互矩阵归一化,公式为
(15)
(16)
式中:Iij为矩阵I中第i行第j列的数值;ηij表示上下文中的每个单词对方面的影响;μij表示方面中每个单词对上下文的影响.
然后,执行列和行方向的平均操作,通过平均操作可以忽略上下文和方面中不重要的单词,而更加关注方面和上下文中的重要单词.公式为
(17)
(18)
式中:ηavg∈R1×m代表的是上下文对方面的平均注意力,可以表示方面中某些单词的重要性程度.此外,上下文中某些单词的重要性程度也可以由μavg∈Rn×1表示出来.
根据上下文对方面的平均注意力ηavg和交互矩阵在列方向使用softmax之后得到的矩阵μT,上下文特征权重φ的计算公式为
φ=ηavg·μT.
(19)
同理,方面特征权重λ计算公式为
λ=μavg·ηT.
(20)
在分别获取到上下文和方面的权重后,上下文和方面的最终表示通过特征权重与矩阵相乘得到,公式为
(21)
(22)
综上,可拼接形成最后输入softmax的向量Rf.
一种混合应用模式的国土资源“一张图”架构设计(吴旋等) ......................................................................7-50
2.5 情感检测分类器
通过2.4节中的方法得到融合了词级和语义级特征的向量表示Rf,将Rf作为情感分类器的特征向量,利用softmax输出细粒度情感分类的判定结果.分类计算过程为
y=softmax(Ws·Rf+bs),
(23)
式中:Ws表示softmax参数矩阵;bs表示偏至项.分类器采用交叉熵作为损失函数,则整个模型优化的目标函数为
(24)
3 实 验
3.1 数据集
选取“laptop2014”、“restaurant2014”和“twitter”数据集,最后一个数据集包含手动标记情感标签的twitter文本.3个实验数据集的详细信息如表1 所示.
表1 实验数据Tab.1 Experimental data
3.2 预训练词嵌入
BERT词向量维度设置为300维.为了对比不同词向量对细粒度情感分析的准确性,本文采用了维基百科Glove预训练词作为对比,Glove预训练词向量的维度同样为300维.
3.3 实验参数和评价指标
本文实验采用了PyTorch深度学习框架.实验环境配置如表2 所示.
表2 实验环境配置Tab.2 Configuration of experimental environment
表3 模型参数设置Tab.3 Parameter setting of model
在介绍评价指标之前,首先介绍混淆矩阵.
表4 混淆矩阵Tab.4 Confusion matrix
其中,True Positive(TP)表示将正例预测为正例;True Negative(TN)表示将负例预测为负例;False Positive(FP)表示将负例预测为正例;False Negative(FN)表示将正例预测为负例.
精确度xpre表示被分类为正例的示例中实际为正例的比例,计算公式为
(25)
召回率xrec表示有多少个正例被正确分类为正例,计算公式为
(26)
准确率xacc表示在所有预测结果中正确分类的比例,计算公式为
(27)
F1可通过计算xpre和xrec获得,是xpre和xrec的调和平均,可以综合衡量模型的分类效果.F1值的定义为
(28)
3.4 实验对比与结果分析
3.4.1 模型对比实验与结果分析
为了验证所提模型的有效性,将本文模型在3.1节中介绍的数据集与经典模型和最新模型进行对比实验.
1) Feature-based SVM:该模型利用传统的特征工程提取上下文特征,然后利用支持向量机进行情感分类[23];
2) TD-LSTM:采用两个LSTM网络分别对左侧上下文和右侧上下文进行建模,然后将这两个隐层状态输出连接起来,生成最终的上下文表示[24];
3) ATAE-LSTM:该模型为基于注意的LSTM,主要考虑特定方面对上下文中每个单词的影响,然后计算LSTM隐层的加权输出之和,以生成上下文的最终表示[16];
4) AOA-LSTM:该模型引入了双重注意力机制,对方面与上下文中单词之间的交互进行建模,可以得到上下文中每个单词的权重[22];
5) IAN:该模型使用两个LSTM学习上下文和方面的表示,通过注意机制来计算方面与上下文的交互信息,得到方面和上下文的向量[17];
6) MGAN:使用LSTM学习上下文和方面表示,并对LSTM的输出分别应用粗粒度和细粒度注意机制,以捕获方面和上下文之间的交互信息[25];
7) RAM:该模型使用双向LSTM,并通过反复注意机制捕获特征.构造了一个位置加权记忆网络来捕获长距离信息[26];
8) BERT-PT:基于BERT的后训练模型,利用多任务微调进行情感分类任务,BERT语言模型通过问答任务微调[27];
9) AEN-BERT:提出了一种注意编码网络,该网络采用基于注意的编码来建立上下文和目标之间的模型[28];
10) BERT-SPC:该模型采用句子对分类模型预测情感极性[29];
11) BERT-MSDF:该模型将方面级、句子级语料库和情感词典数据整合,通过多源数据融合提高细粒度情感分析的准确性[15].
实验结果如表5 所示,加粗字体表示本文模型在3个数据集上取得的最大值.
表5 不同模型实验结果对比Tab.5 Experimental results of different models
在以上3个数据集中,BHMAN相比其他模型在情感极性分类上均有一定的提升,在Restaurant14数据集中的准确率达到了 86.63%.在Laptop14和twitter数据集中的F1值达到了 76.92% 和73.94%.比对照模型中的最高值分别提高了0.61%和0.31%.
在Restaurant14数据集中,Glove-BHMAN模型相比AOA-LSTM模型和IAN-LSTM模型的准确率分别提高了1.44%和3.04%.因为本文模型通过HCNN提取词级特征,将HCNN提取的词级特征与语义级特征进行融合,组成更丰富的文本特征表示,从而提升分类效果.
在Restaurant14数据集中,BERT-BHMAN模型相比AEN-BERT模型的准确率提高了3.51%.因为本文模型通过多重注意力机制分别计算词级特征与语义级特征中上下文和方面的每个单词权重,进一步提高分类的准确性.
3.4.2 注意力机制对分类效果的影响
为了进一步验证多重注意力机制对模型分类效果的影响,在原模型的基础之上进行修改,得到了无注意力机制模型和单注意力机制模型作为对照进行对比实验.
1) 无注意力模型:BiLST-HCNN去掉原模型中的多重注意力机制;
2) 单注意力机制模型BiLSTM-HCNN+IAN和BiLSTM+ IAOA-HCNN,分别去掉BiLSTM中的IAOA注意力计算模块和HCNN中的IAN注意力计算模块.
以上模型的参数设置均与本文模型相同,在Restaurant14数据集上进行测试,共训练15个epoch,迭代结果如图5 所示,其中BHMAN为本文所采用模型.
通过多重注意力模型BHMAN与无注意力模型BiLST-HCNN对比可知,使用注意力机制提取文本序列中上下文和方面的交互信息,可以明显提高模型的整体分类效果.在单注意机制模型中,BiLSTM+HCNN-IAN模型使用IAN计算上下文和方面在词级的交互信息,而BiLSTM+IAOA-HCNN 模型使用IAOA计算上下文和方面在语义级的交互信息.对比实验结果可以发现,通过IAOA计算上下文和方面在语义级的交互信息对分类效果有更好的提升.
3.4.3 不同词向量作为输入的实验与结果分析
本文采用了两种不同的词向量输入:Glove和BERT词向量.其中,Glove词向量采用维基百科公共词向量作为预训练词向量,根据细粒度情感分析的任务进行进一步的训练,可以更好地表示情感分析任务中的上下文和方面,其维度为300维.BERT词向量采用BERT预训练模型得到方面和上下文的词向量.其他参数保持不变,在3.1节中介绍的数据集上进行实验,实验结果如图6 所示.
图6 不同词向量对xacc的影响Fig.6 Effects of different word embedding on xacc
通过实验数据可以发现,Glove词向量使用基于全局的统计信息训练词向量,但是无法融合单词上下文中的信息.BERT模型训练时,其可以捕获语句中的双向关系,可以融合单词上下文中的信息,从而获得更丰富的文本信息表示.
4 结 论
本文提出了结合语义级特征和词级特征的多重注意力网络.该模型从词级和语义级分别提取上下文和方面的特征,并利用多重注意力网络计算上下文和方面的相互影响,使上下文和方面中与情感极性判断相关词的权重进一步加强.与采用Glove词向量的模型相比,本文模型在SemEval-2014 Task4数据集上的准确率提升了3%~4%,表明采用Bert预训练模型的词向量表示可以提高模型的准确性.与AEN-BERT和BERT-SPC模型相比,该模型正确率分别提升了3.51%和2.17%,证明了在细粒度情感分析任务中引入词级特征不仅丰富了文本的特征表示,而且可以进一步提升细粒度情感分类的准确性.下一步的工作重心是研究本文模型在中文细粒度情感分类任务中的应用,并考虑将文本词性与神经网络相结合,以引入更多的文本特征来提升细粒度情感分析任务的性能.