APP下载

Sen-BiGAT-Inter: 情绪原因对抽取方法

2022-06-21冯浩甲王素格符玉杰慕永利

中文信息学报 2022年5期
关键词:注意力情绪情感

冯浩甲,李 旸,王素格,2,符玉杰,慕永利

(1.山西大学 计算机与信息技术学院,山西 太原 030006;2.山西大学 计算机智能与中文信息处理教育部重点实验室,山西 太原 030006;3.山西财经大学 金融学院, 山西 太原 030006)

0 引言

随着社交网络的飞速发展,越来越多的人们在微博、Facebook、淘宝等平台发布带有主观情绪倾向的文本信息,如何对这些带有主观情绪倾向的网络文本进行处理,需要情感分析技术的支持。与大多数研究者仅关注于情绪识别和分类问题的研究不同,Lee等[1]首次提出了情绪原因抽取(ECE)任务,其目的是抽取情绪相对应的原因,并将其定义为字级别的序列标注问题。之后,Gui等[2]发布了中英文开放语料库,并且将ECE任务定义为子句级别。目前,该语料库已受到研究者的广泛关注,并成为ECE任务的基准数据集。然而,对于ECE任务,需要首先标注子句的情绪,从而限制了ECE任务的实际应用,另一方面,再对情绪进行标注时,并没有考虑情绪与原因之间的相互联系。因此,Xia等[3]提出了情绪原因对抽取(ECPE)任务,其目标是抽取文档中潜在的情绪子句及其对应的原因子句。例如,表1给出一个情绪原因对抽取的示例。

表1 情绪原因对抽取示例

表1中包括了文档的四个子句,其中,子句c3为情绪子句,包含情感词“感动”,与之对应的原因子句为c2,情绪原因对抽取任务是直接获得

为了抽取情绪原因对,Xia等[4]提出的ECPE-2D模型以矩阵形式表示候选情绪原因对,并在此矩阵上进行交互和预测。Fan等[5]将该抽取任务看作基于动作转移的有向图构建过程,根据模型生成的带有标签的边,同时抽取情绪子句和原因子句。Chen等[6]提出的IE-CNN模型将情绪标签和因果标签组合,把情绪原因对视为序列标注问题。现有的这些模型虽然使用深度学习方法从不同的角度抽取情绪原因对,但是情绪子句和原因子句是相互联系的[3],情感词在情绪子句编码时可以丰富其情感信息,进而促进情绪子句和原因子句的抽取性能。因此,本文在情绪原因对抽取建模时引入情感词典,提出了一个使用情感词典、图网络和多头注意力(Sen-BiGAT-Inter)的情绪原因对抽取方法。该方法利用BERT[7]建立了一个融合情感词汇信息的子句词向量表示方法,再利用两个图注意力网络分别学习情绪子句间的关系以及原因子句间的关系,在此基础上,利用多头注意力机制建模候选句对间的关系,进而得到具有因果关系的情绪原因对。实验结果显示,Sen-BiGAT-Inter模型达到当前最好的性能。本文主要贡献概括如下:

(1) 将情感词汇信息引入到子句的表示中,使句子在编码时包含丰富的情感信息和上下文语义信息。

(2) 建立两个图注意力网络,用于学习情绪子句和原因子句表示,以获取候选情绪原因对的表示。应用多头注意力机制,使情绪子句与原因子句对间进行有效交互,从而学习候选情绪原因对的全局信息。

(3) 提出的Sen-BiGAT-Inter模型,在中文情绪原因对数据集上进行实验,取得了情绪原因对抽取目前最好的性能。

1 相关工作

1.1 情绪原因抽取

目前,情感原因抽取方法主要包括基于规则、统计机器学习以及深度学习。Lee等[1]构建了情感原因抽取的人工规则集,并标注了情感原因抽取语料库,在此工作上,针对新闻文本,使用一种语言学规则驱动的方法[8],抽取情绪表达及其对应的原因。Gui等[9]将规则集的匹配结果作为部分特征,加上其他语言学特征,使用多核SVM 对情感原因子句进行分类,取得了不错效果。此类方法存在的问题是需要人工构造大量的规则集,然而,规则的建立、特征的提取和筛选需要经验指导,且制定的规则并不能完全覆盖所有的语言现象,同时该方法还缺乏对上下文语义信息的建模。Gui等[10]将深度学习方法引入情感原因抽取问题,提出了一种新的基于卷积操作的深度记忆网络,通过使用深度神经网络学习词语向量化表示。Chen等[11]提出了一种基于神经网络的情感分类和情感原因抽取联合方法,试图捕获两个子任务的相互影响。Fan等[12]提出了一种基于层次神经网络模型和基于知识正则化的方法提取情感原因,其目的是在融合语境信息的基础上,利用情感词汇和常识来约束参数。Li等[13]提出了一种基于上下文感知的多视角注意力模型,此模型将基于上下文的句子表示和基于情感词的句子表示进行整合,获得最终子句的分类。对于原因子句与非原因子句数量不平衡问题,慕等[14]提出了一种集成的卷积神经模型,利用多个卷积神经网络集成降低了数据不平衡对情绪原因识别的影响。Xia等[15]提出了一种联合情感原因提取框架 RTHN,该框架由RNN编码每个子句,再采用Transformer编码学习文档中多个子句之间的相关性,并将相对位置和全局预测信息编码到模型中,以捕获子句之间的因果关系,提升情绪原因识别的性能。Li等[16]采用双向长短时记忆对子句进行编码,使其包含单词的上下文信息,在此基础上,设计一个注意力机制,捕捉情绪子句与每个候选子句之间的相互关系,从而分别生成上述两个子句的表示。

1.2 情绪原因对抽取

对于情绪原因对抽取任务,Xia等[3]利用管道方式ECPE-2Steps,提取文档中潜在的情绪子句和对应的原因子句。为了克服管道模型的缺点,Xia等[4]又提出了ECPE-2D模型,将表示、交互以及预测融合在一个统一的模型中,从而对情绪原因对进行抽取。Fan等[5]将情绪原因对抽取看作基于转移的有向图构建过程,以此来解决ECPE-2Steps模型管道错误传播问题。Wei等[17]针对ECPE-2Steps模型的不足,提出了RANKCP方法,将图注意网络引入情绪原因对抽取任务中,取得了不错的性能。Yuan等[18]将情感原因对抽取视为一个序列标记问题,提出了一种新的标记方案,同时提取情绪子句和相应的原因子句。由于端到端的模型是从左到右处理输入文本的,因此,提高了处理速度。Tang等[19]利用多层次注意力机制解决情绪原因对抽取。Chen等[6]将因果关系的情绪标签引入模型中,构造一个统一的标签集,并提出IE-CNN方法,将情绪原因对视为序列标注问题。Ding等[20]通过滑动窗口的多标签学习来解决情绪原因对抽取。但这些方法均没有将情感作为重要信息引入情绪原因对抽取的表示中。

2 模型

情绪原因对抽取任务旨在从文档D中抽取一系列具有因果关系的情绪原因对。为了更好地运用情感词汇信息,需要先对输入句子进行预处理,即对输入句子进行分词,并将得到的词汇在情感词典中检索,若某个词汇在情感词典中,便将该词加到相应子句的末尾,否则该子句不做任何处理。考虑到图注意力模型中句子表示是由其邻居聚集信息产生的,如果文档中的一个情绪子句包含多个原因子句,那么该情绪子句一旦由其邻居节点表示,情绪子句的情绪原因信息将丢失,因此,本文采用两个图注意力层对情绪子句和原因子句分别进行表示。为了进一步获得较好的子句表示,本文将情绪子句和抽取原因子句的抽取任务作为辅任务,并将情绪子句的交叉熵损失、原因子句的交叉熵损失与最终情绪原因对交叉熵损失相加,作为模型的最终损失。

本文模型的总体框架包含四个部分: 编码层;图注意力层;交互层;预测层。以表1中呈现的四个子句为例,总体模型框架如图1所示。

图1 总体模型框架

2.1 编码层

图2 编码层模型架构

2.2 图注意力层

2.2.1 图注意力

(1)

其中,[,;,]是拼接操作。

通过堆叠T层图注意力层建模句间关系,得到最后一层图注意力的输出子句表示,记为hT=(h1,h2,…,hn)T∈Rn×d。

2.2.2 情绪子句表示

(4)

2.2.3 原因子句表示

(5)

2.3 交互层

为了准确定位情绪原因子句的位置,本文对数据进行情绪原因对相对位置统计,统计结果如表2所示。

表2 情绪原因对相对位置统计表

从表2可知,原因子句一般分布在情绪子句的周围,因此,相对位置是非常重要的信息。

为了高效和准确地抽取情绪原因对,本文仅考虑候选情绪原因对。选择满足式(6)条件的情绪原因对为候选项,对于候选情绪原因句对,其表示直接由子句ci及其限定范围内相邻的子句cj相对应的隐层向量拼接得到。

(6)

将所有候选情绪原因对表示组成大矩阵H,如式(7)所示。

H=[H1,H2,…,Hn]∈Rt×2d

(7)

其中,t是所有满足式(6)的候选情绪原因对数目。

为了充分获取子句对的全局信息,该文在H上使用多头注意力机制,如式(8)所示。

(8)

(9)

其中,Nh表示注意力头的数量,dk为多头注意力隐层向量维度。

(10)

其中,Wp和bp是学习的参数。

2.4 预测层

采用Sigmoid函数对最终的情绪原因对进行预测,如式(11)所示。

(11)

情绪原因对损失函数定义如式(12)所示。

(12)

类似地,辅任务情绪子句和原因子句的损失函数分别定义为Lemo和Lcau。

整个模型的最终损失由情绪原因对、情绪子句和原因子句三个损失之和确定,如式(13)所示。

L=Lpair+Lemo+Lcau

(13)

3 实验与分析

3.1 实验数据与评价指标

本文采用Xia等[3]发布的中文情绪原因发现数据集,此数据集是基于Gui等[2]发布的中文情绪原因语料库构建的,共收集1 945个文档,每篇文档平均含有子句数目为14.77句,所有文档中最多含有73个子句。具体统计信息如表3所示。

表3 中文情感原因发现数据集总体统计

本文采用精确率P、召回率R和F1值作为评价指标。

3.2 实验设置

本文采用三个情感词典(大连理工大学情感词汇本体、台湾NTUSD和清华大学李军中文褒贬义词典)的交集作为本文的情感词典。利用BERT-Base-Chinese初始化字向量,隐向量维度为768;采用早停机制,设置学习率在训练步数的前10%为线性增加,随后线性递减;相对位置向量的维度设置为50;图注意力层数设置为2;注意力多头设置为4,隐层向量维度设置为192;训练数据的批次大小(batch size)为2;训练时,采用AdamW优化器。选用文献[3]的训练集和测试集,并重复实验10次,取P、R和F1三个评价指标的平均值作为最终的实验结果。

3.3 对比模型

为了验证本文提出的方法的有效性,将其与8个基准方法进行比较,具体如下:

ECPE-2Steps[3]: 该方法是由 Xia等[3]在2019年提出的。首先获得情绪子句集和原因子句集,再采用笛卡尔积得到可能的情绪原因对,最后利用过滤器得到最终的情绪原因对。

ECPE-2D[4]: 该框架包括Inter-EC(BERT)、Inter-EC(BERT)+WC和Inter-EC(BERT)+CR。其中,Inter-EC(BERT)使用BERT模型进行编码。Inter-EC(BERT)+WC和Inter-EC(BERT)+CR是在Inter-EC(BERT)的基础上,分别在交互层加入窗口受限和十字路口。

Transition-based[5]: 该方法将情绪原因对抽取看作基于转移的有向图构建过程。

RANKCP(BERT)[17]: 该方法将图注意网络引入情绪原因对抽取任务中。

LAE-Joint-MANN-BERT[19]: 该方法采用BERT为编码器以及多层次注意力机制。

IE-CNN[6]: 该方法以序列标注方式抽取情绪原因对。

ECPE-MLL(BERT)[20]: 该方法引入多标签联合学习。

3.4 情绪原因对抽取方法性能比较

各种模型在中文情绪原因对抽取主任务和两个辅任务的性能如表4所示。

表4 情绪原因对抽取方法总体性能比较

从表4中的结果可以看出:

(1) 本文提出的Sen-BiGAT-Inter模型在情绪原因对抽取、情绪子句抽取和原因子句抽取任务的F1值,均达到了目前最优,证明了本文提出方法的有效性。

对于情绪子句抽取任务,与ECPE-MLL (BERT)相比较,Sen-BiGAT-Inter模型的R值低1.59%,这是由于情感词典规模具有局限性,不能检索到子句中所有的情感词,但是Sen-BiGAT-Inter模型的P值高出4.94%,说明利用情感词典丰富了情绪信息,提高了精确率。另外,ECPE-MLL(BERT)在情绪子句抽取任务的P值与R值相差较大,说明该方法抽取的情绪子句较多,提高了召回率。而Sen-BiGAT-Inter模型在情绪子句抽取任务中的P值和R值比较相近,证明了情感词典的有效性。

(2) 由于本文的Sen-BiGAT-Inter模型是对RANKCP模型的改进,以下将其与RANKCP的结果进行比较分析。

在情绪原因对抽取任务上,本文提出的Sen-BiGAT-Inter模型与RANKCP模型相比,在F1值、P值和R值上分别提升了2.87%、4.18%和1.48%,说明情感词、两个图注意力网络和基于相对位置信息多头注意力的引入,使得各个部分相得益彰,对情绪原因的抽取具有促进作用,也证明了Sen-BiGAT-Inter模型的有效性。

在情绪子句抽取任务上,本文提出的Sen-BiGAT-Inter模型与RANKCP模型相比,在P值指标上略微有些下降,但在R值指标上有所提高,说明加入情感词汇使得模型提升了对情绪子句的抽取,对情绪原因对抽取有促进作用。

在原因子句抽取任务上,本文提出的Sen-BiGAT-Inter模型与RANKCP模型相比,在F1值、P值和R值指标上分别提升了2.68%、3.99%和1.34%,达到当前最优结果。这说明情绪子句和原因子句是相互影响的,受原因子句召回率提高的影响,原因子句抽取性能也随之得到提升。

3.5 模型结构消融实验比较

为了评估本文提出的模型中各部分的有效性,对模型进行了消融实验。

Sen-Inter: 在Sen-BiGAT-Inter模型的基础上,不再选择两个图注意力的网络分别进行情感子句表示和原因子句表示,而是简单使用单个图注意力网络。

Sen-BiGAT: 在Sen-BiGAT-Inter模型的基础上去除基于先验知识的交互层。

BiGAT-Inter: 在Sen-BiGAT-Inter模型的基础上去除情感词典。

Sen-BiGAT-Pos: 在Sen-BiGAT-Inter模型的基础上去除相对位置信息。

四种方法与Sen-BiGAT-Inter模型比较结果如表5所示。

表5 情绪原因对抽取方法消融实验对比

从表5可以得出,去除任一模块,情绪原因对抽取任务的三个评价指标都有所下降,尤其在Sen-BiGAT中,与Sen-BiGAT-Inter模型相比,F1值指标直接下降2.72%,证明了在候选原因对抽取任务上使用交互层的有效性与可行性。即使Sen-BiGAT在F1值指标有所下降,但是与RANKCP模型相比,Sen-BiGAT在F1值上有所提高,证明了加入双表示层和情感词汇会减弱仅使用单一图注意力网络带来的负面影响,证明加入双表示层和情感词汇会对情绪原因对的抽取产生积极影响。

3.6 监督损失函数的影响

为了获得较好的情绪原因对抽取性能,使情绪子句表示和原因子句表示达到理想的结果,我们在最终的损失函数中加入了情绪子句和原因子句相对应的交叉熵损失。为了验证两个监督任务的有效性,该文又设计了除去这两个辅任务的损失,使用Sen-BiGAT-Inter-AS来表示,实验结果如表6所示。

表6 监督损失函数的影响

从表6可以看出,移除监督损失函数后,情绪原因对抽取任务的性能急剧下降,从而证明了监督损失函数是不可缺少的。

3.7 图注意力层数实验比较

不同层数的图注意力堆叠会影响情绪原因对抽取的性能,因此,该文对不同图注意力层数进行对比实验。实验结果如表7所示。

表7 不同层数图注意力实验对比

从表7可以看出,当图注意力层数为2时,Sen-BiGAT-Inter模型的情绪原因对抽取性能达到了最好,说明随着堆叠层数的增加,模型参数也相应地增加,进而也影响模型的性能。

3.8 图注意力网络与LSTM实验比较

将图注意力层替换为双向LSTM,相应的表示采用Sen-LSTM-Inter;由相对距离信息构造的局部图替代全连接构建的完全图,相应的表示采用Sen-LocBiGAT-Inter。将这两种表示与Sen-BiGAT-Inter进行对比,实验结果如表8所示。

表8 图注意力与LSTM实验对比

从表8可以得出,使用Sen-LocBiGAT-Inter和Sen-BiGAT-Inter建模子句的抽取性能都超过使用LSTM建模子句,其原因是图注意力网络具有较强的编码能力,并且可以为不同的节点动态地分配不同的权重。与Sen-BiGAT-Inter模型的F1指标相比,Sen-LocBiGAT-Inter下降了0.89%,证明了Sen-LocBiGAT-Inter构造局部图,虽能提升运行速度,但是未能利用全局信息,导致抽取原因对抽取性能下降。

3.9 不同分词工具实验比较

本文选用Snownlp、Thulac以及Jieba三种分词工具进行对比实验,实验结果如表9所示。

表9 不同分词工具实验对比

从表9可以得出,不同分词工具影响情绪原因对抽取的性能,但都优于去除情感词典的BiGAT-Inter模型的性能。

3.10 实例分析

3.10.1 Sen-BiGAT-Inter与RANKCP方法比较

通过Sen-BiGAT-Inter与RANKCP方法在第3.5节对比实验结果发现,Sen-BiGAT-Inter可以准确抽取RANKCP未能抽取的样例,样例如表10所示。

表10 情绪原因对抽取示例表

如表10所示,子句c6由于包含了情感词“幸福”,故为情绪子句,c5为与情绪子句c6相对应的原因子句。RANKCP将最终的情绪原因对错误地预测为,而本文提出的Sen-BiGAT-Inter模型可以正确地预测最终结果为,并将情绪子句c6的CLS特殊字符对整个文档的注意力系数可视化,结果如图3所示。

图3 情绪子句c6特殊字符CLS可视化

从图3可以得出,模型除了注意到区分子句划分的特殊字符,使得模型更加关注“幸福”,并将“幸福”所在的子句c6预测为情绪子句,从而促进预测情绪原因对

3.10.2 错误样例分析

通过对Sen-BiGAT-Inter模型获得情绪原因对抽取数据分析,发现如表11所示的错误案例。

表11 情绪原因对抽取示例表

由表11所示,子句c3和子句c5既是情绪子句又是原因子句,说明模型在进行情绪原因对抽取时,未考虑情绪子句与原因子句之间是否保持语义一致性,即未能显式地保证情绪原因子句之间真正具有因果关系,导致情绪原因对抽取错误,其结果为

4 总结

本文提出了一种Sen-BiGAT-Inter的情绪原因对抽取方法,该方法利用情感词与该子句进行合并,再使用预训练模型BERT获取句子的表示,提升了情绪子句的抽取性能。通过建立两个图注意力网络分别学习情绪子句和原因子句表示,继而提升了候选情绪原因对的抽取性能。通过应用多头注意力机制学习候选情绪原因句对的全局信息,同时结合相对位置信息得到候选情绪原因句对的表示,最终提升情绪原因对抽取的性能。通过进一步对错误数据进行分析发现,当一篇文档中真实标签有多个不同情绪子句的情绪原因对时,本文仅单纯地提取出情绪原因对,并没有考虑到情绪子句与原因子句之间的语义一致性,后续的工作中,我们将针对这一问题开展研究。

猜你喜欢

注意力情绪情感
让注意力“飞”回来
如何在情感中自我成长,保持独立
如何培养一年级学生的注意力
情感
诗歌与情感的断想
台上
小情绪
小情绪
小情绪
A Beautiful Way Of Looking At Things