融合词法句法信息的方面级情感分析模型

2024-03-21 01:48衡红军杨鼎诚
计算机工程与设计 2024年3期
关键词:词法句法注意力

衡红军,杨鼎诚

(中国民航大学 计算机科学与技术学院,天津 300300)

0 引 言

方面级情感分析任务作为自然语言处理中重要的方向之一,引起了众多学者的广泛关注。而该任务能够做精做强的关键点就在于计算出哪些上下文与方面词最相关[1]。早期的学者专家们相信注意力机制[2]能够更好地关注到句子中的重要部分,因此不断寻求一个能够将注意力更好地融合进模型的方式,但这些方法缺少句法约束,获取到的特征有限,且难以处理多方面词样本。随着图神经网络[3]的火热,相关工作者为探究词汇之间的句法关系,尝试将句法依存树所包含的句法信息融合到模型之中,这就需要用到图神经网络强大的计算能力,从而获取更好地文本表示,但现有方法缺少词法信息,当存在一些出现频率较低的关键词时,模型针对其学习不足,容易导致模型分类错误。知识图谱作为结构化的知识库,其中所蕴含的单词与单词间的词义关联恰恰能满足这一需求。因此将知识图谱中获取的词法信息与句法依存树中获取的句法信息相结合来进行文本的编码能更容易获取到文本所表达的准确情感,增强模型的鲁棒性。

因此,本文提出一种词法句法相结合的方法,利用句法依存树和知识图谱中的相关信息对句子进行建模。主要工作如下:

(1)模型利用BERT预训练模型对句子进行编码,获取带有上下文信息的初步文本表示;

(2)模型利用重构句法依存树中的句法信息和知识图谱中的词法信息对文本表示进行增强,并利用加权模块对方面词相关的上下文进行加权;

(3)模型将融合句法信息的文本表示与融合词法信息的文本表示结合起来,得到融合词法句法信息的最终文本表示,并以此获取句子的情感极性。

(4)经过在3个公开的数据集上进行的模型效果比较实验,我们发现本文所提模型在方面级情感分析任务中表现出了可行性和有效性。

1 相关研究

1.1 基于注意力方法

注意力机制通过文本特征度量其重要性,广泛应用于自然语言处理任务中。Ma等[4]提出了交互式注意力网络(interactive attention networks,IAN),利用注意力机制让方面词和上下文两种计算结果相互链接,从而得到相互关联的文本表示,获得更紧密的特征关联。Peng等[5]将注意力机制与循环神经网络(recurrent neural network,RNN)相结合,通过多层的注意力计算获得更加有效的句子的文本表示。Huang等[6]提出一种交叉注意力网络模型(attention over attention neural network,AOA),该模型通过分别对方面词和上下文进行特征提取,能够同时将二者重要的部分提取出来,并通过计算获取到更好的文本表示。Song等[7]提出(attentional encoder network,AEN),旨在利用多头注意力解决长距离依赖问题。

1.2 基于图神经网络方法

基于注意力的方法缺乏远距离单词依赖与句法约束,因此研究者开始利用句法依存树和图神经网络建模。Sun等[8]注意到了在视觉任务中大热的图卷积神经网络(graph convolution network,GCN),他们利用句法依存树生成图结构数据,并利用该数据进行图卷积计算,获取到融入句义的方面词表示,从而得到了准确的结果。Zhang等[9]提出句法树卷积模型(convolution over a dependency tree,CDT),该模型则重点运用了注意力机制,巧妙地将注意力与图卷积网络相结合,利用图卷积得到的结果作为注意力得分来区分上下文重要程度。Zhao等[10]也将视线落在了注意力机制与图网络的融合上,并提出了图卷积情感依存网络(sentiment dependencies with graph convolutional networks,SDGCN),该网络创新性地使用了位置信息对上下文进行加权,随后对加权后的文本表示做图卷积计算以获得更准确更相关的上下文信息。Wang等[11]想到了句法依存树中关系过分冗余,容易影响极性判断,因此他们尝试进行剪枝重构,从而只对方面词关联的信息予以保留,提出了关系图注意力网络(relatio-nal graph attention network,RGAT),得到了不错的分类结果。

2 模型方法

2.1 问题形式化定义

给定一个句子S={w1,w2,…,wa1,…,wam,…,wn},其中A={wa1,wa2,…,wam} 为句中的方面词,n表示句子S的长度,m表示方面词A的长度。该问题需要研究者简建立起一个模型,这个模型可以通过提取句子特征的方式将句子S中所表达的针对方面词A的情感极性提取出来,将该句所表达的情感准确地分析出来。本文中实验主要针对三分类任务进行,即需要分类的极性包括:积极、中性、消极。

2.2 模 型

本文所提出的模型主要由三部分组成:文本表示层、编码层和解码层。同时,该模型编码层又可分为:句法信息编码部分和词法信息编码两部分,整体模型结构如图1所示。

图1 模型整体结构

2.3 文本表示层

模型首先使用BERT[12]预训练模型做词嵌入,从而将句子S的特征表示V计算出来。首先使用特殊标记[CLS]和[SEP]与原始句子构建句子序列X=[CLS]+S+[SEP]+A+[SEP]作为BERT的输入,在BERT的输入中[CLS]和[SEP]分别出现在句首和句尾,表示单句的起始和结束。随后,将该序列X送入BERT预训练模型并获取模型最终生成的隐藏向量。最终,句子S被向量V={v1,v2,…,va1,…,vam,…,vn} 表示。

2.4 编码层

在编码层,模型将文本表示层生成的文本表示向量V分别应用于句法依存部分和词法信息部分进行编码操作,以获取方面词和上下文的关联。

2.4.1 句法信息编码

图2 一个剪枝并重构句法依存树的例子(句中的方面词是stuff)

在完成依存树重构之后,将这些依赖关系映射为低维向量表示,再将其送入关系图注意力网络(R-GAT)中,以此来获取融入句法依存关系的句子特征表示。R-GAT网络计算方式如式(1)~式(4)所示

(1)

(2)

(3)

(4)

2.4.2 词法信息编码

在该部分,模型使用senticnet6[13]作为外部知识库。senticnet是一个开源的专用于情感分析的知识图谱,提供了一组语义、情感、极性关联的100 000多个自然语言概念。在该知识图谱中,每个单词拥有一个[-1,1]的情感分数,同时,还拥有5个密切相关的单词和2个关联的概念原语。作为一个新兴的知识图谱,senticnet在增强文本表示方面取得了不错的成绩。

在编码过程中,首先利用句子的原始句法依存关系构建适用于图神经网络的邻接矩阵A∈Rn×n。在构建领接矩阵时,以往的工作[8-10]大部分使用spacy工具作为依存分析工具。但spacy获取到的依存树较为简单,只包含基本的句法依存关系,容易忽略一些深层的,方面词关联的依存信息。因此本文使用Stanford corenlp tookit作为句法依存分析工具,以保证模型获取到的句法信息是完整的。对该领接矩阵构建方式如式(5)、式(6)所示

(5)

weighti,j=score(wi)+score(wj)

(6)

其中,通过在情感词典senticnet中查询来获取单词wi的情感分数score(wi)。此外,因为负数会导致模型计算出现偏差,在这里将每个查询得到的score(·)数值加1来去掉这种偏差;为了让与方面词相关联的节点拥有更大的权重,在方面词关联的矩阵位置额外加1;此外Ai,j=Aj,i。

这样,就得到了图神经网络需要用到的、拥有自环的无向语义图。此外,在我们分析一句话的情感极性时,通常会关注其中单词所处的位置,因此将单词所处的位置信息融入文本表示中也会使文本表示更加准确。同时,与方面词邻近的几个单词往往更会表达对方面词的情感,因此此处利用单词的位置对它的文本表示进行加权从而获得具有位置信息的文本表示vp,具体计算方式如式(7)所示

(7)

式中:vi表示句子中第i个单词wi的向量表示,τ表示方面词的位置,N表示该句文本长度。

在完成上述过程后,将节点的向量表示与生成的语义图送入图卷积神经网络(GCN)中。在这里模型使用4层图卷积网络对该语义图进行编码,每个节点在更新过程中将汇集邻接节点的特征信息,并与自身信息进行融合,从而获取融合外部词义知识与节点关联的语义信息。每个单词在GCN网络的第l层中文本表示的计算方式如式(8)~式(10)所示

(8)

(9)

(10)

在对向量在H做掩码操作之后,得到的该向量Hmask已经获取到了深层次的词法和句法信息,这已经能够让模型充分理解句子并抽取出与方面词最为关联的情感表达词,进而分析出针对该方面词的情感极性。最后,我们需要让模型理解该向量的组成方式,因此需要把这种抽取后的信息融合到原始文本表示中,将最有效的信息抽取出来,其计算方式如式(11)~式(13)所示

(11)

(12)

(13)

其中,方面词与单词wt的相关系数使用βt表示上,αt表示方面词在整个句子中的重要系数,最终得到的向量K={k0,k1,…kn} 即为词法信息编码后的整个句子的文本表示。

2.5 解码层

最后,利用句法信息编码层以及词法信息编码层所得到的特征表示D和K相互拼接获得模型最终分辨情感极性的依据O=D‖K。

最终,初始文本表示通过句法信息编码和词法信息编码分别获得了融合了句法信息的特征表示D以及融合了语义信息的特征表示K。之后通过全连接层对该文本表示做特征整理,即可将情感倾向性抽取出来,之后在经过softmax归一化层将最大的分类结果提取出来就得到了最终的情感极性P

P=softmax(wpO+bp)

(14)

本文模型使用的损失函数为交叉熵损失

(15)

3 实 验

3.1 实验所用数据集及评价指标

实验采用了SemEval 2014任务4中的LAPTOP14数据集、RESTAURANT14数据集和ACL组织发布的TWITTER评论数据集,使用本文方法完成模型的训练和测试,从而检验模型在方面级情感分析任务中的表现。数据集中包含了多条带有主观情感的句子,同时数据集还针对每个句子提供了其中的方面词和正确的情感倾向,包括积极、中性、消极3种。所用到的数据集中的数据分布见表1。

表1 数据集分布

在本文实验中,我们评价模型的分类时结果使用准确率(accuracy)和F1值(macro-F1)衡量

(16)

(17)

(18)

(19)

其中,TP、FP、TN、FN分别表示真正例、假正例、真反例、假反例的样本数量。

3.2 实验设置

本文中的所有实验均在同一台服务器上运行,该服务器硬件配置为Intel i9-9900k CPU,RTX2080Ti 11G GPU,64 G内存,操作系统为Ubuntu18.04。同时本文实验使用python3.8.0版本以及pytorch1.9.1版本的软件环境。

在模型的计算过程中,我们首先使用google提供预训练好的bert-base-uncased模型,将我们输入到模型的原始文本序列X转化为初步的文本表示。同时模型使用学习率0.000 05进行梯度下降计算,并利用Adam优化器优化模型表现,并通过0.2的dropout丢弃过拟合数据。同时为了让模型计算的结果更为准确,关系图注意力网络的层数使用6层和图卷积神经网络的层数使用4层,同时两个网络的都是用768维度的向量作为输出维度,以此来让后续计算更便捷。在对句法树进行剪枝时,将关联的跳数为4及以下的依存关系保留下来。模型单次训练的batchsize为16,单次验证使用的batchsize为48。

3.3 基线模型介绍

IAN[4]:让两个注意力机制相交互的方法还从未有人提出,并且拥有着不错的计算结果。

RAM(recurrent attention network on memory)[5]:将记忆网络融合进多层次注意力机制中,让模型能够注意到远距离的单词信息。

AOA[6]:既关注到了句子中的重要部分同时也关注到了方面词中的重要部分。

AS-GCN(aspect specific graph convolutional network)[9]:将注意力机制与图卷积神经网络相结合来获取上下文中用于表达方面词情感的重要单词,同时使用两个子模型ASGCN-DG与ASGCN-DT对GCN中使用有向图或无向图对文本编码是否存在差异进行了深入探究。

SD-GCN[10]:关注到方面词对分析上下文的重要性,利用注意力机制将他们融合起来,并使用GCN进一步抽取特征。

R-GAT[11]:提出句法树的剪枝方法并利用关系图注意力机制编码。

TD-BERT[14]:使用BERT编码,并着眼于利用方面词表示做情感分类。

SA-GCN-BERT[15]:使用一种选择注意力去寻找方面词表示中的重要部分。

AEN-BERT(attentional encoder network)[16]:利用普通注意力机制和多头注意力机制相叠加,得到了不错的效果。

SD-GCN-BERT:模型结构同SD-GCN,编码时使用BERT代替LSTM。

R-GAT-BERT:模型结构同R-GAT,编码时使用BERT代替LSTM。

Dual-GCN-BERT(dual graph convolutional networks)[17]:利用自注意力机制通过自我学习构建包含语义信息的图结构数据,利用损失函数来修正该语义信息数据,并将该语义信息和句法依存树中的句法信息相结合。

最终的实验结果见表2。

表2 实验结果(最佳效果加粗显示)

由表2数据可知,以注意力机制为主的模型从语义结构建模,利用上下文与方面词的交互关注到了方面词关联的部分语义信息,但缺少句法信息的约束,从而缺少全局的句子信息,导致错判某些单词对方面词的影响。基于句法依存树的模型虽考虑到了句法信息对整个句子的影响,但直接使用原有的依存树会导致网络学习到很多无用信息,导致最终的文本表示较差。ASGCN考虑到GCN结果的复杂性,利用方面词表示作为注意力权重,使结果有了显著提升。同时,使用BERT作为文本编码结果相较于LSTM有了显著提升。SD-GCN则利用到了位置信息去获取方面词关联上下文,但树结构学习到很多无用信息,干扰依然较大。R-GAT虽对句法依存树进行了基于方面词的重构,但仍缺少外部知识对词义做出额外解释。Dual-GCN利用自注意力机制抽取语义信息的方法未能获取到深层次的词义信息,而是只获取到句子中单词的关联,这种关联可能是句法中不存在的,从而对分类结果产生干扰。

本文模型在3个数据集上相较于基线模型结果都有所提升,原因在于用到了重构的句法依存树更好地获取句法信息,同时利用了外部知识构建了融合词法信息的图矩阵,通过图卷积网络获取到了深层语义信息,并在对图卷积网络的输出结果进行了筛选以减少无用信息的融合。该结果验证了句法信息和词义信息对模型辨别关键依赖单词的重要性,同时也改善了模型在遇到出现次数较少的单词时辨别其情感倾向的能力。

但本文模型在laptop数据集中的表现要略差于Dual-GCN模型,其原因可能在于本文模型在生成最终文本表示仅仅将两向量做拼接,而忽略了其间的差异性,致使错误的文本表示影响了另一方正确的文本表示;而该模型则利用损失函数修正了两部分的差异性。

3.4 消融实验

3.4.1 词法与句法的影响

本小节针对模型中句法依存部分和词法信息部分的有效性做出了实验。词法句法消融实验结果如图3所示。

图3 词法句法消融实验结果

图中仅词法表示仅使用词法信息编码;仅句法表示仅使用句法信息编码。结果表明,将句法信息与词法信息相结合,能够更好捕获方面词相关联的情绪信息。

3.4.2 加权模块的影响

本小节针对词法信息部分中位置权重模块和掩码加权模块进行了消融实验,以验证该模块的有效性,加权模块消融实验结果如图4所示。

图4 加权模块消融实验结果

从上述实验结果中可以发现,利用位置信息对文本表示进行加权能够对绝大多数句子中方面词相关的情感词做出更好的约束,从而获取更准确的情感极性;只保留GCN输出中方面词部分并作为注意力权重分配给原始文本表示,能够将上下文中冗余的信息丢弃,并利用原始的文本表示作为分类依据,从而得到更好的分类结果。

3.4.3 GCN层数影响

本小节对图卷积网络层数做出了测试,以探究编码层数对编码结果的影响。GCN层数影响实验结果如图5所示。

图5 GCN层数对比实验结果

从图中所示结果可以得知,GCN在层数为4时能够使模型分类结果最佳。这是因为使用的层数较少时,GCN的特征抽取结果过于浅显,而所获取到的浅层次信息无法准确判断复杂句式中的情感极性;相反在使用过多层的GCN时,GCN在计算过程中游走路线重复,导致某些节点特征被聚合了多次,从而引起模型判断错误的情况,致使最终结果不佳,此外还会导致产生梯度爆炸和梯度消失等问题。

4 结束语

为了将词法句法信息结合起来提升方面级情感分析任务的准确率,本文引入知识图谱,提出一种词法句法相结合的图神经网络模型。模型利用重构的句法树获取文本句法信息,利用知识图谱加权矩阵获取文本词法信息,最终将两重信息融合并进行情感分类。实验指标在3个公开数据集上获得了一定的提升,也验证了词法句法信息对方面级情感分类任务的重要性。

虽然本文模型取得了不错的效果,但仍存在GCN输出结果冗余、重构依存树无法完全覆盖方面词关联上下文的问题,未来将从这些方面入手,进一步提升模型分类的能力。

猜你喜欢
词法句法注意力
让注意力“飞”回来
句法与句意(外一篇)
述谓结构与英语句法配置
句法二题
诗词联句句法梳理
应用于词法分析器的算法分析优化
“扬眼”APP:让注意力“变现”
谈对外汉语“词法词”教学
A Beautiful Way Of Looking At Things
2010年高考英语“相似”考题例析