APP下载

面向双注意力网络的特定方面情感分析模型

2019-11-15孙小婉孙玉东

计算机研究与发展 2019年11期
关键词:向量注意力神经网络

孙小婉 王 英 王 鑫 孙玉东

1(吉林大学软件学院 长春 130012) 2(吉林大学计算机科学与技术学院 长春 130012) 3(符号计算与知识工程教育部重点实验室(吉林大学) 长春 130012) 4(长春工程学院计算机技术与工程学院 长春 130012)

社交网络的迅猛发展为人们提供了发表和分享个人言论的广阔平台,各种网络数据迅速膨胀,越来越多的人在网络上发表意见和表达情感.如何利用自然语言处理(natural language processing, NLP)技术分析社交网络短文本的情感倾向,已经成为研究人员关注的热点[1].

用户在针对某实体发表观点时,除了在评论中给出总体评价外,通常也会针对该实体的多个方面发表观点评论.特定方面情感分析(aspect-based sentiment analysis, ABSA)作为情感分析的重要子任务之一,可以针对不同的方面挖掘用户更细腻更具体的情感表述[2].例如句子“The design of space is good but the service is horrible”,对于特定方面“space”是积极情感,而对于特定方面“service”是消极情感.与普通情感分析不同,特定方面情感分析需要判断句子中不同方面的情感极性,这不仅依赖于文本的上下文信息,同时也要考虑不同方面的情感信息.因此,在同一句子中针对不同特定方面可能会出现完全相反的情感极性,可见特定方面情感极性的分析可以更加有效地帮助人们了解用户对不同方面的情感表达.

近年来,深度学习已在NLP领域取得了令人瞩目的成功.同时,结合注意力机制(attention mech-anism)的神经网络模型在特定方面情感分析任务中取得了比以往方法更好的效果.梁斌等人[3]提出一种基于多注意力的卷积神经网络(convolutional neural network, CNN),利用词向量注意力机制、词性注意力机制和位置注意力机制与卷积神经网络结合,使模型在不需要依存句法分析等外部知识的情况下,有效识别特定方面的情感极性.Zhu等人[4]提出使用双向长短期记忆网络(long short-term memory, LSTM)构建句子的长期记忆,然后使用CNN从记忆中提取注意力以获得更具体的句子表示,该方法使用特定方面嵌入表示目标信息,取得较好的分类效果.结合注意力机制的神经网络可以在训练过程中高度关注特定方面的特征,并可以有效针对不同特定方面调整神经网络的参数,进而挖掘更多的隐藏特征.

目前,结合注意力机制的神经网络主要包括基于注意力机制的卷积神经网络(CNN)和基于注意力机制的循环神经网络(recurrent neural network, RNN)[5].CNN在卷积层使用滤波器抽取文本特征,只能获取滤波器窗口内单词间的依赖关系,无法获取句子中所有单词间的依赖关系,进而无法获取整体结构信息.在图像处理领域,相邻像素点之间往往存在很大的相关程度,但在NLP领域,由于修饰词、语法规则和表达习惯的影响,使得相邻单词的相关程度并不高.RNN及其衍生网络,例如LSTM,GRU(gated recurrent unit)在NLP领域应用广泛,RNN的原理是基于“人的认知是基于过往经验和记忆”这一观点提出,与CNN不同,RNN不仅考虑前一时刻的输入,而且赋予网络对前面内容的记忆功能,但RNN及其衍生网络这类序列模型,难以实现并行计算,训练时间过慢,并且句子中单词间的依赖程度会随着距离增加而减弱.此外,CNN和RNN这2种结合注意力机制的神经网络模型,都使用单一注意力模式,即模型只进行单次注意力计算,导致模型无法对句中单词间的依赖关系实现深层次抽取.

针对上述问题,本文提出面向双注意力网络的特定方面情感分析模型(dual-attention networks for aspect-level sentiment analysis, DANSA),主要贡献有3方面:

1) 提出融合上下文自注意力机制和特定方面注意力机制的多头双注意力网络模型,不仅实现了大规模并行计算,大大降低了模型的训练时间,而且能够抽取文本全局结构信息和特定方面与文本的依赖关系.

2) 提出将多头注意力机制应用在特定方面情感分析任务中,学习文本在不同线性变换下的注意力表示,能够更全面、更深层次地理解句中单词之间的依赖关系,更好地解决特定方面情感分析问题.

3) 在SemEva2014数据集和Twitter数据集上进行实验,相比于传统神经网络和基于注意力机制的神经网络,DANSA取得了更好的情感分类效果,进一步验证了DANSA的有效性.

1 相关工作

1.1 特定方面情感分析

特定方面情感分析是细粒度的情感分析,对特定方面情感极性的挖掘能够帮助人们做出更正确的决策[6-7].

在过去的研究中,特定方面情感分析方法主要是基于情感字典和机器学习的传统方法[8].这些方法需要对输入文本进行大量的预处理和复杂的特征工程,以及例如依存关系分析等外部知识.模型的优劣,很大程度上取决于人工设计和先验知识,耗时耗力且模型推广能力差.

近年来,深度学习技术在NLP各类任务中取得了重大突破,在特定方面情感分析领域也取得了比传统机器学习方法更好的效果.Xue等人[9]提出基于卷积神经网络和门控制的模型,利用Gated Tanh-ReLU单元根据给定的特定方面或实体选择性地输出情感极性,在训练速度和分类准确度上都取得了较好的效果.Piao等人[10]提出使用CNN和RNN联合解决金融领域中的特定方面情感极性预测问题,利用Rigde回归和特定方面预测投票策略,不依赖任何的手工标注.Ma等人[11]提出在使用Senti-LSTM模型解决特定方面情感分析问题时,联合情感常识共同对模型进行训练并得到更好的分类效果.这类基于深度神经网络的模型与传统机器学习方法相比,大大降低了预处理和特征工程的工作量,但仍需要结合一些如依存句法分析、依存关系树等外部知识.

目前,将注意力机制与神经网络相结合的方法,已经成为特定方面情感分析问题的主流方法.Cai等人[12]提出将注意力机制与LSTM结合进行特定方面情感的层次提取,同时关注情感术语和特定方面的潜在联系.Gu等人[13]认为现有的工作大多忽略特定情感词与句子之间的关系,提出基于双向门控循环单元(gated recurrent unit, GRU)的位置感知双向注意力网络,认为当特定方面术语出现在某一句子中时,其邻近的单词应该比其他长距离单词给予更多的关注.He等人[14]提出将语法信息融入到注意力机制中,再与LSTM相结合,可以更好地预测特定方面的情感极性.Yi等人[15]提出conv-attention机制,将CNN的卷积操作与注意力结合,通过卷积运算生成特定方面的注意力,对上下文单词的时序信息进行建模.这些结合注意力机制的神经网络在无需额外的语义分析等外部知识的情况下,取得了比仅使用神经网络模型更好的效果.但此类方法,多数使用单一层面注意力机制,没有对注意力信息进行更深层次的挖掘,且使用的神经网络存在训练速度慢、无法获得全局结构信息等缺点.

1.2 注意力机制

注意力机制最早在图像处理领域提出[16],目的是让网络模型在训练过程中高度关注指定的目标.近年来,注意力机制在NLP领域也发挥着越来越重要的作用.Cheng等人[17]将注意力机制应用到机器翻译任务中,提出全局注意力和局部注意力2种机制,为注意力机制在NLP中的应用奠定了基础.Yin等人[18]提出将注意力机制与CNN结合解决句子对的建模问题,该方法使用在卷积时进行注意力计算、在池化时进行注意力计算以及在卷积和池化时同时进行注意力计算这3种方式进行建模,提供了在CNN中使用注意力机制的基础思路.短短几年内,如何利用注意力机制解决NLP领域问题已经成为研究人员关注的热点.谷歌翻译团队[19]提出仅使用注意力机制的Transformer网络,该网络使用大量自注意力机制获取单词间的依赖关系,并提出多头注意力的概念,即不再使用单一注意力信息,而是将输入经过不同的线性变化获取更全面的注意力表示.

注意力机制的特性使得其可以很好地解决句子中特定方面情感极性判别问题.Fan等人[20]提出利用细粒度注意力机制和粗粒度注意力机制组成多粒度注意力网络,并设计特定方面对齐损失来描述具有相同上下文的特定方面之间的方面级别交互.Wang等人[21]提出面向语法导向的混合注意力网络,使用全局注意力来捕获特定目标的粗略信息,利用语法指导的局部注意力查看在语法上接近特定方面的单词,利用信息门来合成全局注意力和局部注意力信息,并自适应生成较少噪声和更多情绪导向的表示,解决了全局注意力将高注意力得分分配给不相关的情感单词的困扰.这些方法不仅证明了注意力机制在特定方面情感分析领域的有效性,还为今后的研究提供了新的思路.

2 问题描述与方法概论

2.1 任务定义

给定长度为n的句子,即s={w1,w2,…,a1,a2,…,wn}每个句子由一系列的词语wi组成,其中a1和a2是句子s中特定方面的目标词,每个句子有一个或多个目标词.本文的任务是根据输入的句子判断句子中特定方面的情感极性(积极、消极、中立),例如句子“a group of friendly staff,the pizza is not bad,but the beef cubes are not worth the money”,该句中特定方面“staff”,“pizza”,“beef cubes”的情感极性分别为积极、中立和消极.本文将句子以词为单位形成1个词序列,然后通过词嵌入层将每一个词映射成低维空间中的连续值词向量,得到上下文词向量矩阵Ec∈Rk×c′和特定方面词向量矩阵Ea∈Rk×a′,其中k为词向量维度,c′为上下文词向量数量,a′为特定方面词向量数量.

2.2 方法概述

为了更好地识别同一句子中不同特定方面的情感极性,本文针对不同的特定方面将句子表示为多个分句,分句的个数取决于不同特定方面的数量,例如句子“Good food but dreadful service at that restaurant”表示成表1所示形式.本文采用多头注意力机制来构建DANSA模型的2种注意力机制:

1) 特定方面注意力机制.将特定方面词向量矩阵与上下文词向量矩阵做注意力运算,获取对特定方面的注意力信息,从而加强模型对特定方面的关注程度.

2) 上下文自注意力机制.对上下文词向量矩阵中每一个词向量进行自注意力操作,以获得每一个单词与其他单词的依赖关系,进而获取输入句子的全局结构信息.

Table 1 Form of Sentences表1 分句形式

2.3 特定方面注意力机制

注意力机制的目的是在训练过程中,让模型了解输入数据中哪一部分信息是重要的,从而使模型高度关注这些信息.对于特定方面情感分析而言,可以通过分析文本内容得到哪些词与句子中特定方面目标词的相关度更高.例如句子“The appetizers are ok,but the service is slow”,词语“ok”是用来形容目标词“appetizers”的,而词语“slow”是用来形容目标词“service”的,因此在该句中,词语“ok”相比“slow”与目标词“appetizers”相关程度更高.同理,词语“slow”相比“ok”,与目标词“service”的相关度更高.

特定方面注意力机制如图1所示,对于句子“The appetizers are ok,but the service is slow”,通过词嵌入操作可以得到上下文词向量矩阵Ec=(x1,x2,…,x9)和特定方面词向量矩阵Ea=(t1,t2),其中t1为特定方面“appetizers”,t2为特定方面“service”.首先,将特定方面词向量矩阵中的每一个词与上下文词向量矩阵进行相似度计算,得到相似度向量e,e中的值表示相应位置词向量间的相似程度,形式为

eij=f(ti,xj).

(1)

常用相似度计算函数主要有加性相似度函数和点积相似度函数,加性相似度函数使用神经网络来计算2部分的相似度,形式为

eij=wTσ(ti+xj),

(2)

其中,σ(·)表示激活函数,wT为训练参数.点积注意力通过点积运算计算2部分的相似度,形式为

eij=ti,xj,

(3)

(4)

其中,dx表示词向量xj的维度.

向量e通过归一化操作得到注意力权重向量ea,ea中的元素代表相应位置上特定方面单词与上下文中单词的相关程度:

(5)

最后,特定方面词向量可以用权重矩阵中对应的权重与原来的词向量加权求和表示:

(6)

Fig. 1 The aspect attention mechanism图1 特定方面注意力机制

2.4 上下文自注意力机制

自注意力机制是注意力机制的一种特殊形式,通过计算句子中每一个单词与其他所有单词的注意力得分,获取每一对单词间的依赖关系,对于远程和局部依赖都具有良好的灵活性.本文采用自注意力机制获取输入文本上下文中单词的依赖关系,以获取全局结构信息.例如句子“Great food but the service was dreadful”,上下文自注意力机制的任务是要分别计算句子中7个单词与其他单词的注意力得分.

对于经过词嵌入的上下文词向量矩Ec经过上下文自注意力机制操作后得到相同维度的自注意力矩阵Bc,如图2所示:

Fig. 2 The context self-attention mechanism图2 上下文自注意力机制

2.5 多头注意力机制下的双注意力

传统的注意力机制只考虑单词之间单一层面的注意力信息,多头注意力通过计算句子在不同线性变换下的表示来获取更全面的注意力信息.

如图3所示,以句子“The food is great”为例,句中单词经过词嵌入后得到相应的词向量x1,x2,x3,x4,分别与线性变换矩阵W(1),W(2),W(3)进行点乘得到相对应的线性变换后的向量.特定方面“food”经过词嵌入后得到相应的词向量,与线性变换矩阵Wp点乘后得到对应的向量p1.

Fig. 3 The examples of linear transformations图3 线性变换例子

特定方面“food”注意力计算过程有3个:1)计算p1与k1,k2,k3,k4的相似度得分;2)对相似度得分进行归一化操作;3)用归一化后得到的权重分别与对应位置的v1,v2,v3,v4相乘求和,进而得到最终的注意力向量.

同理,上下文“The food is great”自注意力计算过程就是将p1替换成上下文词向量线性变换后的表示q1,q2,q3,q4.多头注意力机制就是在多次不同组线性变换下,重复上述操作.

3 面向双注意力网络的特定方面情感分析模型(DANSA)

Fig. 4 Framework of DANSA图4 DANSA模型框架

面向特定方面细粒度情感分析的双注意力网络(DANSA)如图4所示,文本上下文与特定方面目标词首先通过嵌入层将每个单词映射成1个多维连续值词向量进而得到上下文词向量矩阵与特定方面词向量矩阵,然后通过线性变换层得到2个矩阵在多次不同线性变换下的映射矩阵,再通过双注意力层对不同映射矩阵进行特定方面和文本上下文双注意力操作得到注意力表示矩阵,最后经过输出层得到最终的情感分类结果,DANSA由4部分组成:

1) 词嵌入层.将输入看作以词为单位的词序列,通过本层将输入文本上下文序列和特定方面序列中的每一个词映射为1个多维的连续值词向量,从而得到2部分的词向量矩阵.

2) 线性变换层.通过对上下文和特定方面2部分词向量矩阵进行多次不同线性变换,得到2部分词向量矩阵在不同线性变换条件下的表示,从而使模型能够从多方面捕获上下文和特定方面的特征信息.

3) 双注意力层.通过计算上下文部分的多头自注意力,捕获词与词间的依赖关系,获取文本的整体结构信息.然后,计算特定方面对于文本的注意力得分,以获取文本与特定方面间的依赖关系.将2部分注意力进行拼接并再次进行线性映射操作,利用池化操作获得不同线性变换条件下最重要的情感特征.

4) 输出层.使用softmax函数得到输出结果,最终获取特定方面的情感极性.

3.1 模型构建

给定句子在经过词嵌入层后得到上下文词向量矩阵Ec=(x1,x2,…,xn)和特定方面词向量矩阵Ea=(t1,t2,…,tm),在线性变换层,通过对2个矩阵进行不同的线性变换,得到2个矩阵在不同线性变换下的表示,图5描述了1次线性变换的过程,线性变换层的工作就是重复此过程n次.

Fig. 5 Process of linear transformation图5 线性变换过程

上下文词向量矩阵Ec经过不同的3组线性变换得到矩阵Qc,Kc,Vc,特定方面词向量矩阵Ea经过线性变换得到矩阵Pa.其中WQ,WK,WV,WP为线性变换参数矩阵.

在双注意力层,上下文自注意力矩阵Sc的计算方式为

(7)

其中,dk为矩阵Kc列向量的维度.使用线性变换后的矩阵Qc,Kc,Vc通过缩放点积注意力函数得出.

同理,特定方面注意力矩阵Da为

(8)

将每次线性变换下得到的上下文自注意力矩阵与特定方面注意力矩阵进行拼接,得到双注意力矩阵Ui,然后将每次线性变换后的双注意力矩阵U1,U2,…,Un进行拼接,再次进行线性变换得到最终的注意力表达矩阵Z:

Z=concat(U1,U2,…,Un).

(9)

在模型的最后一层,将上层输出矩阵进行平均池化操作得到特征向量zavg,然后像传统的神经网络一样,将池化后的结果经过全连接层后输入到最终的softmax分类器中,从而得到最终的情感极性.

3.2 模型训练

本文使用双注意力层输出作为全连接层输入,通过一个softmax函数输出最终情感极性,即:

y=softmax(Wzavg+B),

(10)

其中,zavg为双注意力层输出,W为全连接层权重矩阵,B为全连接层偏置项矩阵.本文使用反向传播法来优化模型,交叉熵为

(11)

4 实 验

4.1 实验数据

本文采用SemEval2014数据集(1)http:alt.qcri.orgsemeval2014和Twitter数据集进行对比实验,数据样本的情感极性分为积极、消极和中性.其中,SemEval2014数据集是语义测评比赛任务的数据集,包括laptop和restaurant 2个领域的用户评论.通过对比实验,验证了本文提出的DANSA在不同领域数据集上都取得了较好的情感分类性能,表2给出本文实验使用数据统计:

Table 2 Statistic of the Datasets表2 实验使用数据统计

4.2 超参数

在本文的实验中,词向量采用Pennington等人[22]提出的Glove词向量(2)http:nlp.stanford.eduprojectsglove,其中每个词向量维度为300维,词典大小为1.9 MB.对于未登录词,采用均匀分布U(-0.01,0.01)随机初始化词向量.L2正则项系数设置为10-4,随机失活率(dropout rate)设置为0.5,Adam优化器初始学习率为0.01,模型迭代次数(epoch)为10.在线性变换层,线性变换次数设置为8,注意力函数采用缩放点积注意力.

4.3 对比实验

将本文提出的DANSA同8种方法在2个不同数据集上进行实验:

1) SVM.基于特征的SVM分类方法,是传统机器学习的常用方法.

2) CNN.基于Kim[23]提出的卷积神经网络模型,是最基础的卷积神经网络.

3) ATT-CNN.基于Wang等人[24]提出的基于注意力机制的卷积神经网络.

4) LSTM.基础LSTM网络,使用最后隐藏状态作为句子表示,输入到最终分类器中.

5) TD-LSTM.基于Tang等人[25]提出的使用2个LSTM网络,分别作用于特定方面之前的文本和之后的文本,然后使用2个LSTM网络的最后隐藏状态的拼接预测情感极性.

6) AT-LSTM.基于Wang等人[26]提出的通过LSTM网络对文本上下文建模,然后将隐状态与特定方面联合嵌入监督注意力向量的生成,再由生成的注意力向量产生最后的特定方面情感极性.

7) ATAE-LSTM.是在AT-LSTM基础上的拓展,它将特定方面嵌入向量与每个单词嵌入向量相加表示上下文.

8) IAN.基于Ma等人[27]提出的使用2个LSTM网络分别对句子和特定方面进行建模,交互生成2部分的注意力向量用于情感分类.

不同模型在SemEval2014和Twitter数据集上经过10次迭代后的准确率如表3所示,对于实验结果的分析为:

1) 在前4种没有使用注意力机制的模型中,普通CNN网络的情感分析模型准确率偏低.CNN在图像处理领域的有效性是有目共睹的,这是因为在图像上相邻像素点通常是相关的,而在自然语言处理中,句子中相邻的词语未必相关,相关词语之间可能存在若干的修饰词语,这导致CNN卷积操作所获取的信息不完整,不能有效地利用数据信息.传统SVM分类器准确率虽然略高于普通CNN,但分类效果仍不理想,这是因为本文在实验过程中没有做过多特征工程的工作,而传统机器学习方法的优劣很大程度上取决于特征工程的质量.基础LSTM模型的结果优于前2种模型,这是因为LSTM善于处理序列问题并通过门机制来实现长时依赖,但基础LSTM并没有特别关注句子中的特定方面目标词.TD-LSTM相比普通LSTM在3个数据集上的准确率分别提升了2.8%,1.29%,1.56%,原因是TD-LSTM开始对特定方面进行关注,它通过在文本中特定方面的左右分别建模,利用2个LSTM网络来学习特定方面的表示,这种方法虽然取得了一定的效果,但对于模型来说,文本中每个词对特定方面的影响都是相同的,没有对更重要的部分重点学习.

2) 在另外4种将注意力机制与神经网络相结合的模型中,其准确率相比没有使用注意力的模型,都有明显提升,证明了注意力机制在特定方面情感分析任务中的有效性.由于CNN在NLP中的局限性,ATT-CNN的结果相比于将注意力与LSTM相结合的模型,结果并不理想.AT-LSTM,ATAE-LSTM,IAN都是将注意力机制与LSTM相结合的方法,在准确率上相比4种方法都有所提升.AT-LSTM和ATAE-LSTM通过注意力机制来监督特定方面上下文中的重要信息,并且将特定方面与文本进行联合嵌入,这为特定方面情感分类生成更合理的表示.IAN对文本和特定方面进行单独建模,交互的生成注意力,不仅学习文本中对特定方面相对重要的信息,也学习了特定方面中对文本更重要的信息,再次证明了注意力机制的有效性.

3) 本文提出的DANSA在对比实验中取得了最好的效果,证明了模型的有效性.在将注意力与神经网络相结合的模型中,都使用了单一的注意力机制,都是从单一层面获取注意力信息,而DANSA使用多头注意力机制来搭建注意力网络,它将文本和特定方面进行多次不同的线性变换,学习两者在不同线性变换下的注意力表示,能够更深层次地学习和表示文本.不同于基于CNN的模型,DANSA通过自注意力计算,获取了文本全局的依赖信息;与基于LSTM网络的模型相比,模型首先通过自注意力来获取文本中每一个词向量与其他词向量的相关度,实现了词向量之间的长距离依赖,再通过特定方面注意力的计算,获取了文本中对特定方面的重要信息,从而得到更好的分类效果,同时DANSA能够实现大规模并行化计算,大大提升了模型训练速度.

Table 3 Accuracy of Different Models表3 不同模型的准确率 %

4.4 DANSA模型分析

4.4.1 运行时间分析

本文使用相同的词向量矩阵和相同的数据集,在相同的CPU,GPU和网络框架下完成训练时间对比实验,表4给出了不同模型在Restaurant领域数据集上完成1次迭代的训练时间对比结果.

Table 4 Runtime of Each Training Epoch表4 不同模型完成1次迭代的训练时间

从表4可以看出, 在基于LSTM的模型中,普通的LSTM模型训练时间需要417 s,加入注意力机制的AT-LSTM和ATAE-LSTM的训练时间都超过了500 s.训练时间过长是LSTM网络最大的弱点,由于网络接收序列形数据,导致无法实现并行计算,并且LSTM的每一个单元都需要相当复杂的运算操作,这些原因都大大增加了LSTM的训练时间.

普通的CNN模型训练时间是最短的,完成1次迭代的训练时间只需要8 s,加入注意力机制的ATT-CNN模型的训练时间也只需17 s,训练时间远远优于LSTM网络.DANSA模型完成1次迭代时间为58 s,虽然高于基于CNN的模型,但是却远远优于基于LSTM网络的模型.模型中文本自注意力和特定方面注意力的计算必然会消耗一定时间,但不同线性变换下的注意力是可以并行计算的,这与普通注意力在时间复杂度上是相同的.在保证了准确率的基础上,DANSA模型的训练时间相比基于LSTM的模型平均减少了449 s.

4.4.2 线性变换次数分析

对DANSA采用的多头注意力机制在不同线性变换次数下的准确率进行对比分析,实验对比结果如图6所示:

Fig. 6 Accuracy of different transformation times图6 不同线性映射次数的准确率

实验对比了线性变换次数为2,4,6,8,10时在数据集Restaurant上经过10次迭代的准确率情况.从图6可以看出,模型的准确率大体随着线性变换次数(k)的增加而增加,但当k=10时的准确率相比k=8时有所下降,这说明在此数据集上,当k=10时,可能存在模型的过拟合现象,所以本文在对比实验中将线性变换次数设置为8.

4.4.3 注意力类型分析

将采用缩放点积注意力的DANSA和采用加性注意力的DANSA在Restaurant数据集上进行准确率对比实验,在Laptop,Restaurant,Twitter数据集上进行训练时间对比实验,实验结果如图7与图8所示.

Fig. 7 Accuracy of different attention types图7 不同注意力类型的准确率

Fig. 8 The runtime of different attention types图8 不同注意力类型的训练时间

从图7可以看到,经过10次迭代之后,使用加性注意力的DANSA模型准确率略高于使用缩放点积注意力的模型.加性注意力使用神经网络来计算2个元素的相似度或相关度,可以更深层次地学习元素之间的依赖关系,实验证明在准确率上使用加性注意力的DANSA确实可以取得更好的效果.但从图8可以明显地看出,在3个数据集上,使用加性注意力的模型在训练时间上是使用点积注意力模型的3倍,加性注意力使用神经网络作为相似度函数,需要训练更多的参数,需要付出更高的时间成本.考虑到模型的综合性能,在对比实验中,本文采用缩放点积注意力来构造DANSA模型.

4.5 注意力可视化

从Restaurant-test数据集中选取句子“Great food but the service was dreadful!”用作自注意力可视化说明,如图9所示,区域颜色越深,代表注意力权重越大.

Fig. 9 The context self-attention weights图9 上下文自注意力权重

从图9可以看出,名词、动词和形容词等在语义上重要的词,通常会受到很大的关注,比如句子中的“great”,“food”,“service”,“dreadful”都受到更高的关注,但是一些停用词则不会受到过高的关注.全局中重要的词,比如“food”和“service”,由于句子主要是针对这2个词进行描述,所以它们获得其他单词更多的关注.如果一个单词仅与某些词有关,那么它会获得相关词的更高的关注,例如“food”与“great”相关度极高,“service”只与“dreadful”相关度极高.

选取句子“The appetizers are ok,but the service is slow”用作特定方面注意力可视化说明,如表5所示,表5中句子区域颜色越深,代表该词注意力权重越大.

Table 5 The Weight of Aspect Attention表5 特定方面注意力权重

从表5可以清楚地看到,对于特定方面“appetizers”,代表“ok”的区域颜色极深,说明词“ok”与“appetizers”这个特定方面相关度极大,而其他区域都为较浅的颜色.在特定方面为“service”也有同样的情况,代表“slow”的区域为深红色,说明“service”与“slow”极为相关.这说明注意力机制可以有效地捕捉与特定方面相关的信息,可以使模型更充分地获取有效信息.

5 总 结

在以往的工作中,大部分针对特定方面情感分析的研究都是将注意力机制与CNN或LSTM网络相结合.然而基于CNN的模型无法获取全局信息,而基于LSTM网络的模型则需要很高的时间代价且元素间的依赖关系会受到距离的影响,因此本文提出一种面向双注意力网络的特定方面情感分析模型(DANSA),将多头注意力机制应用到细粒度情感分析问题中,主要思想是通过双注意力网络学习文本向量之间在不同线性映射下的依赖关系和特定方面与文本之间的依赖关系,并且所获取的依赖关系不会因为距离而减弱,同时,模型可以实现大规模并行化计算,极大地降低了训练时间.实验结果表明,DANSA可以合理有效地解决特定方面情感分析问题.

DANSA目前没有考虑文本的时序性问题,在未来的研究中,我们将就文本的时序问题和位置关系进行研究,以提升模型的性能.

猜你喜欢

向量注意力神经网络
基于递归模糊神经网络的风电平滑控制策略
向量的分解
让注意力“飞”回来
聚焦“向量与三角”创新题
如何培养一年级学生的注意力
神经网络抑制无线通信干扰探究
基于神经网络的中小学生情感分析
基于Q-Learning算法和神经网络的飞艇控制
A Beautiful Way Of Looking At Things
向量垂直在解析几何中的应用