叶苑莉,张 灵,陈云华
(广东工业大学计算机学院,广东广州 510006)
情感原因提取任务(emotion cause extraction,ECE)[1-2]是自然语言处理中具有重要价值的任务之一.传统的情感分析(sentiment analysis)只关注情感极性的分类,没有研究产生该情感的原因,而任何情感的产生都是有原因的,提取情感原因可以增加情感分类模型的可解释性.
构成情感原因的的事件一般由多个单词构成,因此词汇特征[1]不适合ECE任务,于是Gui等人[2-3]提出了以从句为单位的ECE任务.Xia等人[4]指出情感与原因之间存在相互联系,不应只识别原因从句,于是提出情感原因对提取任务(emotion-cause pair extraction,ECPE),将情感从句和原因从句匹配成情感原因对(emotion-cause pair,EC-Pair).
本文考虑在ECPE任务中EC-Pair在给定文档中的事件关系,即构成情感因果关系的从句的事件语境,提出了分层模型ECPE-EKC(ECPE-emotion kernel convolutional neural network).特别地,采用基于情感从句卷积核(emotion kernel,EK)构造的卷积神经网络(convolutional neural network,CNN)[5]来提取EC-Pair的因果事件语境.与基线模型[4,6-7]相比,ECPE的F1分数[8](衡量二分类模型精确度的一种指标)在中文数据集上有1.38%~6.08%的提升,在英文数据集上有2.35%~7.27%的提升,说明ECPE-EKC能有效地利用情感类别特征和因果事件语境来提高EC-Pair特征的提取质量.
Lee等人[1]最先提出ECE任务,并采用规则的方法完成该任务.随后,许多基于规则[9-14]和机器学习[15-19]的方法被用于挖掘情感和原因之间的关系.然而,这些方法大多依赖于人工设计的特征,难以涵盖所有复杂的语义关系(如,嵌套关系、事件关系).
Gui等人[2-3]采用多项式核完成从句级别ECE,但该方法忽略了从句之间的关系,一种解决方法是采用神经网络编码从句之间的语义关系[20-24];另一种方案是提取情感词与上下文的关系[25-26].由于ECE样本少,仅从模型内部得到的情感特征有限,于是引入了外部情感信息[27-28]、全局标签信息[29]等辅助特征.
Xia等人[4]的ECPE-2Step模型有两步独立的反向传播网络,第1步分别提取情感从句和原因从句,第2步根据第1步的结果(包括正确和错误的结果)提取EC-Pair,因此第1步反向传播的错误会延续到第2步,于是诞生了许多端到端(同一个反向传播网络)的注意力框架.Tang等人[6]的多层次注意力机制不仅能编码同一个从句的内部关系,还能编码两个从句之间的关系;Ding 等人[30]的2D-Transformer模型可以过滤不相关的EC-Pair;Wei等人[31]提出堆叠式图注意力和基于核的相对位置来对候选从句进行排序;Diao等人[32]通过注意力机制将情感词与其同义词融合,得到强化的从句特征表示.除了注意力机制,其他神经网络方法也被用于编码情感从句和原因从句之间的关系[7,33-36].
上述方法在筛选EC-Pair时,大多将情感从句逐一匹配原因从句,即只专注于比较两个从句之间的关系,没有考虑使EC-Pair因果关系成立的条件.Chen等人[37]发现EC-Pair不一定在所有场景下都存在因果关系.说明基于排序的筛选方法[31]没有考虑因果关系成立的条件,而注意力框架[6,30-31]大多只专注于两个从句之间的关系.但是文献[37]需要额外制作负样本和人工标注,不适合真实应用场景,而本文的EK可以自动提取从句之间的因果事件语境.
对于将词向量作为卷积核的方法,Li等人[38]将因果触发词(cause,trigger,lead to)的词向量作为单词卷积核,以提取原因特征.虽然单词卷积核比普通卷积核更能提取原因特征,但是他们的词向量池中因果框架的数量有限,难以应对千变万化的因果关系,而本文的EK是根据文档动态产生的,因此更能适应不同的情感因果情景.
针对现有方法的不足,本文提出了ECPE-EKC,以此对ECPE存在的问题进行改进:
1) 加入情感类别的检测.
ECPE任务没有检测具体的情感类别,模型只知道情感从句而不知道具体的情感,相当于情感从句是黑盒子,而模型还需要根据这个黑盒子识别原因从句,因此原因的提取质量不高,因为模型无法理解情感原因与具体情感的关系;
2) 增加事件的因果语境考虑.
目前工作[4,6,31]在筛选EC-Pair时大多只关注情感从句和原因从句之间的关系,忽略了使EC-Pair因果关系成立的从句的事件语境,导致模型在理解因果关系时产生偏差(见第3.5小节).本文的研究工作,正是为了解决这个问题.
本文搭建分层框架的步骤为:首先,前两层使用双向长短期记忆网络(bi-directional long short-term memory,BiLSTM)[39]分别提取从句级别和文档级别的语义特征,得到用于情感分析的从句级别情感特征.接着,第3层,通过注意力机制编码情感从句的类别特征,作为该文档的EK.然后,第4层,使用EK对从句进行卷积操作,以提取原因事件特征.最后,通过融合分层的特征来提取EC-Pair.
设有若干篇文档,第i(1 ≤i≤M)篇文档为di,di的第j(1 ≤j≤N)个从句为ci,j,ci,j共有P个单词.对于情感分析,从句类别数为7,包括6类情感标签[40]和1类非情感标签[6];对于ECPE,需要同时正确提取情感从句和对应的原因从句.
如图1所示,每篇文档以从句为单位进行文本预处理和词嵌入操作,得到ci,j的词向量集Zj.
图1 总体框架图Fig.1 Overall framework
将通过线性层,从而得到情感分析预测矩阵RN×eclass,其中eclass为从句的情感类别数.采用注意力机制得到含有情感类别特征的注意力权重矩阵RN×P,取出其中的情感从句注意力向量,相关过程如式(6)-(7)所示:
式(7)中“*”为矩阵对应元素相乘,“argmax”表示取出最大特征的索引.
原因事件具有顺承关系,因此寻找原因的时候不能脱离其他从句的事件语境.图2(a)和图2(b)原因从句的事件均为“回忆”,但情感却不一样,如果只看情感从句和原因从句,那么这个因果关系是缺少事件成分的,导致模型无法理解为什么原因相同却得出不同的情感.因此理解情感因果关系的关键是理解背后发生的事件.
图2 事件语境与EC-Pair的关系图Fig.2 The relationship between event context and EC-Pair
情感从句卷积核的CNN(emotion kernel CNN,EKCNN)的目的在于提取情感对应的原因,因此卷积核需要具备提取情感因果关系的能力,而情感原因是与情感特征关联的,因此将作为EK.在一次卷积中,EK依次扫描一篇文档的所有从句,模型根据EK提供的情感信息有目的地重新整理文档的事件关系,从而学习使情感因果关系成立的事件语境.ECPE数据集中情感对应的原因只有一个,所以采用最大池化提取最高的特征,作为原因事件特征.文献[6,23]采用的将其余从句逐一与情感从句比较从而配对原因从句的方法没有考虑因果事件语境,文献[29]采用的将从句重排序的方法则打乱了从句原有的事件顺承关系,这会干扰模型对因果关系的理解.
在ECPE数据集中,一个文档通常存在多个事件,但不是每个事件都与情感原因有关,而且情感从句和原因从句是有距离的,如果不过滤文档中无关的事件,就难以提取有效的原因信息,于是采用跳跃连接和事件阈值来改善原因特征的提取过程.
设di中情感从句个数为ne(1 ≤ne≤3),则模型会得到ne个情感从句的注意力向量,即
为了能适应不同的事件距离,本文方法将时序卷积网络[41](temporal convolutional network,TCN)应用到EKCNN中,从而实现跳跃连接,以提取多尺度原因事件信息.TCN由因果卷积和空洞卷积构成,设空洞卷积的跳跃因子为ε ∈1,2,4,···,2L-1,L为TCN的层数(L的选择见第4.4小节),当ε1时退化为普通卷积.式(8)使用TCN后,卷积操作如图3所示.
图3 使用TCN后的EKCNN结构图Fig.3 EKCNN structure after using TCN
在每层TCN后,过滤低于事件阈值τ的特征,表示这些特征与情感原因事件无关,为了适应不同的事件语境,τ取的均值,如式(9)-(10)所示:
式(9)中Mean为均值计算,式(10)中I为指示函数,表示只保留大于τ的特征.
EKCNN主要捕捉情感因果关系的事件语境特征,而文档级别CNN(document CNN,DCNN)则用来对从句进行特征强化,得到文档的融合语义特征,从而进一步帮助模型理解因果关系.
式中α1和α2分别为线性转换函数.情感分析为多分类任务,ECPE为二分类任务,均采用交叉熵损失函数,模型总体损失函数为两个任务交叉熵损失函数之和.
实验采用两个数据集,文献[4]的中文数据集来源于新浪城市新闻,共有2105篇文档;文献[7]的英文数据集来源于NTCIR-13ECE,共有2843篇文档.两个数据集均标有EC-Pair标签、从句的情感标签以及情感关键词.
使用数据集提供的word2vec进行词编码.词向量维度为200,相对位置维度为50,中文从句数为75,中文单词数为40,英文从句数为40,英文单词数为30,H为128,B为16,初始学习率为0.001,dropout为0.3,L2正则化为1e-4,优化器为Adam,epoch为300.本文采用文献[4]的数据集划分方法进行十折交叉验证,取测试集上的平均结果作为每个评价指标的最终结果.
本文对比的基线模型为:Indep,Inter-CE,Inter-EC[4],LAE[6],E2E-PextE,E2E-PextC[7].
模型评价指标采用文献[4]定义在ECPE上的精确度(precision)、召回率(recall)、F1分数.模型的最终结果主要对比F1分数.记情感分析和ECPE同时预测正确的比例为EE.
TCN比普通卷积拥有更广阔的感受野,可以连接距离更远的事件的特征,但是TCN中的空洞卷积由于零填充的原因可能会遗失部分特征,所以需要多层的空洞卷积来弥补这一缺陷.
TCN层数的实验结果如图4所示.虽然当L5时,ECPE的F1分数最高,但是此时情感分析的F1分数和EE的F1分数最低,所以L不能取5.当L4时,尽管ECPE 的F1分数下降了0.17%,但此时其他两项都处于较高值,所以后续实验均取L4.
图4 不同TCN层数L的实验结果Fig.4 The result of different TCN layer L
在中文数据集上,实验结果如表1所示,本文方法ECPE的F1分数有1.38%~6.08%的提升,说明情感分析有助于提高模型对情感因果关系的理解,情感类别信息使得情感从句不再是黑盒子,从而使模型提取出有效的原因信息.LAE模型在提取EC-Pair时没有利用情感类别信息,情感从句依然是黑盒子,并且该模型忽略了因果关系成立的事件语境,而本文将情感从句作为卷积核,这种动态的卷积核能帮助模型学到丰富的因果模式,并且跳跃连接和事件阈值有效地去除不相关的语境信息,从而提高ECPE结果.
在英文数据集上,如表2所示,由于英文语法体系与中文有很大的差异,因此整体的ECPE F1分数偏低.实验结果显示,本文方法有2.35%~7.27%的提升,说明事件语境的研究有利于跨语言的因果提取,模型可以提取不同语言的原因事件.
表2 英文数据集十折交叉验证平均运行结果Table 2 Average results of ten-fold cross validation for English datasets
文献[4,7]在ECPE任务中都引入了ECE任务(包括情感提取和原因提取两个子任务),作为模型的辅助任务.尽管文献[7]把ECPE和ECE放在同一个反向传播网络中,但是情感提取和原因提取这两个过程是无法进行信息交流的,需要在EC-Pair筛选阶段才能将这两个子任务结合,而本文的情感分析不仅能帮助模型理解具体情感的差异,还能提高原因提取的质量,因此实验结果均高于文献[4]和文献[7](见表1-2).
表1 中文数据集十折交叉验证平均运行结果Table 1 Average results of ten-fold cross validation for Chinese datasets
为了进一步验证本文模型对EC-Pair的提取效果,将表1中ECPE F1分数最高的基线模型E2E-PextC的两个辅助任务去除,同时将本文ECPE-EKC模型的情感分析去除,从而对比在没有其他任务的情况下,ECPair的提取效果.实验结果如表3所示,本文方法仍有0.79%的提高,说明在提取EC-Pair时考虑从句之间的事件语境关系、而不仅仅是情感从句和原因从句之间的关系,可以提高EC-Pair的提取质量.
表3 仅ECPE平均运行结果(中文数据集)Table 3 Average results of ECPE only (Chinese datasets)
分别向ci,j的首尾两端添加[CLS]和[SEP][42].编号为单数和偶数的从句分别标记为0和1[43].为了检测模型捕捉长距离因果关系的能力,分别在情感从句和原因从句之间添加若干个由PAD标识符(PAD为补零标记,添加后不会引入额外的因果关系)构成的从句,记为ECPE-PAD.
受GPU硬件限制,实验仅在中文数据集上进行,B为4,单词数为30,去掉从句数大于45的文档,并冻结BERT预训练模型的参数.BERT词向量维度为768,模型的学习率为2e-5,L2 正则化为1e-5,epoch为20,采用bert-base-Chinese模型,其余参数与第4.2小节相同.对比的模型为ECPE-2D(Inter-EC+WC+BERT)[30],其中WC为该文献提出的窗口约束二维Transformer.
如表4所示,ECPE-2D(Inter-EC+WC+BERT)和本文方法(+BERT)在原始数据集的F1分数上效果接近,但是当使用ECPE-PAD时,ECPE-2D效果大幅下降.WC假设原因从句和情感从句的位置是邻近的,通过计算窗口内从句对的Transformer特征来过滤ECPair,而窗口外的从句对则忽略不计,因此当EC-Pair距离较远的时候,该方法难以捕捉长距离因果关系.而本文方法采用TCN连接长距离事件,再通过事件阈值来筛选EC-Pair,从而捕捉长距离因果关系.
表4 基于BERT的平均运行结果(中文数据集)Table 4 Average results based on BERT(Chinese datasets)
4.9.1 自注意力热力图
图5展示了自注意力对情感从句中情感特征的关注程度.对于图5(a)和图5(b),自注意力都能准确地集中地落在情感关键词上,说明自注意力能有效地提炼出情感从句的情感特征.图5(c)和图5(d)展示了两种错误类型,前者注意力分散,没有充分地落在情感关键词上,后者注意力尽管有关注情感关键词,但总体分布比较均匀,没有突出重点.
图5 情感从句自注意力热力图Fig.5 Self-attention heatmap of emotion clause
4.9.2 样本分析
以中文数据集为例,表5列举了本文方法识别正确的样本.在第210号文档中,LAE错误提取出了标签以外的两对EC-Pair;在第965号文档中,LAE识别不出任何的标签;在第1349号文档中,Inter-EC和LAE都无法完整地找出EC-Pair.
表5 正确样本Table 5 Correct sample
以中文数据集为例,表6列举了3种错误类型.在第1089号文档中,本文方法识别出另一种没有标注的情感“disgust”,并认为c1089,8是该情感的原因从句,经过分析,c1089,8和c1089,9情感因果关系确实成立,说明ECPE数据集中数据标注有遗漏.c1905,7的情感为“sadness”,但“不好意思”和“伤心”是完全不同的情感,说明ECPE数据集中数据标注存在歧义.在第1266文档中,只有c1266,2进行了情感标注,而本文却同时测出了c1266,2和c1266,4的“happiness”情感.
表6 错误样本Table 6 Error sample
本文提出了基于注意力机制的情感从句类别特征编码器和基于情感从句卷积核的CNN的分层模型ECPE-EKC,将情感类别特征融入ECPE,使情感从句不再是黑盒子,从而使模型更准确地学到情感从句的情感信息;将因果事件语境融入原因提取过程,使EC-Pair的提取不再是脱离从句上下文的独立匹配过程,从而使模型更准确地理解情感因果关系.