目录
6 论文:Effective Inter-Clause Modeling for End-to-End Emotion-Cause Pair Extraction
写在前面
情感:如积极、消极;或者打分:1-5分
情绪:相对于情感来说是更细粒度的类型,Ekman的面部表情研究包括6个类别:喜、怒、哀、惊、恶、惧;
本文章主要对上述描述的6类情感原因进行分析挖掘;
1. 情绪原因分析
1. 主要以文档作为处理对象,从中挖掘出情绪表达、情绪类型以及相应原因,如下图所示;
2. 应用:对公众情绪进行挖掘,对消费者意愿进行分析挖掘;
2 研究任务
1. 情绪原因抽取(Emotion Cause Extraction)
目的:为一个给定的情绪表达子句确定原因子句;
需要事先给出情绪表达,这个操作限制了原因分析系统的现实应用;
2. 情绪原因的句对抽取(Emotion-Cause Pair Extraction)
目的:提取所有情感表达子句及其原因;
需要对文档内容和结构有全面的理解;
3. 情绪的语义角色
触发短语、体验者、目标、原因和读者的感知
3 情绪原因抽取相关工作
1. 基于规则的方法
结合语言线索和位置线索的规则,例如:
使役动词+情绪表达词+其他类线索词+情绪原因
使役动词(“让”)、感知动词(“想到”)、认知动词(“获悉”)、因果关系词(“因此”)、介词(“对
于”)、其他类短语(“的是”)
匹配性差
2. 常识库
根据大规模语料构建常识库,并且常识库能够自动导出规则,但是基于常识的方法依赖于语料的理解;
适用性差;(需要针对于不同语言)
3. 基于特征的机器学习方法
建模成多标签分类/ 序列标注问题
表达情绪原因时,这些原因也可能是事件,也有相关学者先对文档中事件进行抽取,再来判断事件是否是情绪原因;
4. 深度学习: 基于表示学习利用词向量捕捉相应信息;
基于注意力机制: 将情绪原因抽取问题建模为句子匹配或阅读理解问题
情绪与原因的位置也很重要,后来的学者将位置信息引入到神经网络模型中
随着预训练模型发展,将其用到下游任务中
这些情绪原因抽取需要情绪事先给出,限制了情绪原因分析模型在现实中的应用
4 情绪原因句对抽取相关方法
1. 两阶段方法:
先独立进行情绪句、原因句的抽取,构建所有可能的情绪原因句对(笛卡尔积) ;
对所有可能的句对进行二分类,剔除掉不是情绪原因句对的候选对;
存在问题: pipeline固有的错误传播问题;
能够把情绪及原因的抽取作为端到端的任务求解;
5 端到端情绪原因抽取方法
1. 从文档中抽取情绪和原因构成的句对,文档是连续的,句子与句子形成结构表达信息,对与情绪句对抽取有帮助;
方法:
事先利用:语篇解析器--得到句子和句子树这样的结构,之后使用对结构进行编码的编码器;
对文档结构解析会有很多问题;
这种方式可能不会奏效;
事后利用:对文档建模的编码器,进行学习后,可以自动导出文档的结构,代表模型隐式的学到了句子与句子之间的关系结构;
中间阶段利用:一边解析文档的结构,一边做文档句对的抽取,同步来做的思路;
6 论文:Effective Inter-Clause Modeling for End-to-End Emotion-Cause Pair Extraction
建模子句之间的语义和位置关系并且对句对进行排序,完成情绪和原因的句对抽取
动机:
连贯的文档有一个基本的结构, 情感原因的两个子句之间存在因果关系配对,区别于非情感原因配对;了解子句之间的相互关系是有益的;
语篇的衔接与连贯,两个遥远的子句包含因果关系的概率相对较小,两个子句之间的相对位置信息可以是一个有效的特征;
思路:形式化为排序问题,所有可能构建的句对进行打分
因此,如何学习句子的向量表示,如何学习句对的向量表示;
(1)对文档进行编码
传统的层次化RNN,用词级别的RNN来学习子句的表示,再由句子级别的RNN将句子表示串起来,获取上下文学习(也可以用预训练模型如Bert,来得到文档子句的表示)
(2)子句之间的关系建模
- 为进一步增强句子之间的语义关联性,文章提出了基于图注意力的方式,将文档中的每个子句都看作图中的节点,构造一个全连接的图;
- 然后在全连接图上,运行图注意力网络,进一步增强子句的向量表示,图注意力网络和TF很像,通过元素之间的全连接(自己本身也要连接自己本身,因为存在一个句子既是情感句子又是原因句子的情况),通过叠加多个图注意力层,来实现子句之间信息的传递,达到对句子,及句子之间的关系进行建模的目的;
- 每一层将通过使用自注意聚合相邻子句的信息来学习更新的子句表示,图注意机制通过以下聚合方案对文档中的每个子句进行操作:
得到的是该注意力层的输出。N(i)表示的是子句i的直接近邻,在这个任务中就是文档中的所有句子。是子句i和子句j之间的注意力权重,通过以下方式来学习:
用矩阵来表示公式,更加简洁:
;
,是(1)中的encoder输出;
表示经过嵌入句子间结构后,句子的向量表示;
4. 进一步采用多头注意机制,每个头都可以根据图注意的保序特性来捕捉一个全局模式;
保序性满足以下公式:
j与k之间的偏序关系对于任意一个句子i 或 i'都是成立的,可以直接根据图注意力网络所学习出的权重直接对文档中的句子全局重要性进行排序
问题:当文档中存在超过一对情绪及原因句对时,图注意网络的单次排序如何能够捕捉到?
解决方法:基于由多个图注意层组成的图注意网络对子句之间的相互作用进行建模,通过自适应地融合其他子句的形成,产生每个子句的表示,并且可以充分地学习文件中的子句间关系。(多头注意力机制保证每个头捕捉到不同的语义关联)
在每两个相邻层之间添加一个连接来控制信息流;
这篇文章为什么采用图注意力机制,而不是使用TF呢?
图注意力性质:全局保序性
(3)句对的表示学习与排序
- 考虑句子与句子之间的相对位置关系(为了以端到端的方式提取情绪-原因对,改文章进一步学习子句对表示,并对这些对进行排序以获得情绪-原因对。 两个子句之间的相对位置是表示情绪-原因对的关键。 因此,通过相对位置嵌入学习将相对位置信息注入到子句对表示学习过程中)
有助于指示是否是情绪与原因的句对,设置一个句子距离阈值M,假设如果两个分句的相对位置过大,它们形成情绪-原因对的概率就会非常小;
两个句子的相对距离大于M的对,就直接不要了:
2. 将每一个候选句对进行表示学习:
句对的特征表示有三部分组成:句对第一个句子向量表示,句对第二个句子向量表示,两个句对相对位置的向量;
相对位置向量学习做了优化:(将相对位置向量的学习引入了临近位置对向量表示的影响)
论文认为相对位置的向量表示受到与它临近的相对位置的约束。
普通相对位置嵌入(Vanilla):对于每个相对位置 m ∈{−M,...,−1,0,+1, ...,+M},通过在均匀分布中采样,随机初始化嵌入 。然后每个相对位置嵌入与模型训练过程一起被学习;
基于内核的相对位置嵌入(kernel):除了上述每个相对位置嵌入部分相互独立的普通方案之外,论文的目标是对不同相对位置之间的相互影响进行建模,以进一步改进相对位置嵌入,因此,对于每个相对位置 m ∈ {−M,...,+M},论文使用 RBF 核函数 (是高斯核,常用的核函数)来模拟 m 与其他相对位置之间的影响:
j ∈{−M,...,+M} 是可能的相对位置值之一;
限制核函数的形状;
通过聚集其他相对位置的影响来增强vanilla嵌入:
论文认为,如果j(子句到情绪句子相对位置)接近m(情绪子句),将比其他遥远的相对位置对产生更大的影响;
上图显示了m=-1的说明。当时,基于内核的嵌入就会演变成vanilla的嵌入。因此,基于核的嵌入方案可以被看作是vanilla嵌入的正则化版本。
3. 将每一个候选句对进行表示打分:
采用具有激活函数的排序层(以和为参数)来为每个候选子句对生成排序分数
(4) 优化与提取
1. 测量子句对的排名分数:
第一部分:句对排名损失();
第二部分: 图注意的输出:两个交叉熵损失();
总损失:以上两部分的总和;
第一部分损失函数定义:
就是交叉熵损失
是margin超参数;正例得分减去负例得分,如果大于margin了,loss就是0,不更新了,反之loss不为0;
的真值是1,的真值是0,因此的得分应该比的得分
采用上述两部分之和作为文档D的最终损失函数L:
这就形成了对句子表示学习和句子对排名的两级监督;
2. 基于词典的提取
在测试时,一个关键问题是如何根据所有候选对的排名分数来提取潜在的情感-原因对;
需要注意的是,要确定一个可用于所有文档的总体阈值分数,以便将候选者分为情感-原因对和不是情绪-原因对,找到这个阈值分数并不容易;
作者采用了一种基于词库的提取方案:
从测试文档的前N个排名列表中获得情感-原因对;
首先提取最上面的一对(具有最高分)作为情感原因对(假设文档中一定会存在一对情绪-原因对);
然后,对于每个剩下的句子对,使用情感词库来确定句子ci,1是否包含情感词(s)。如果是的话,就提取这个作为情感-原因对;
因此,论文模型能够从一个给定的文档中提取多个情感-原因对。
使用 ANTUSD(ANTUSD: A large Chinese sentiment dictionary)作为情感词典。
(5)实验设置
1. 数据集与评估指标
使用 论文:Emotion-cause pair extraction: A new task to emotion analysis in texts发布的基准数据集进行实验;
该数据集是基于情绪原因提取语料库构建的,该语料库由新浪新闻网站的 1,945 个中文文档组成。
按照以前的工作,论文使用相同的数据分割(10-fold交叉验证),并选择精确度P、召回率R和F-score F1作为评价指标:
此外,论文还分别评估了情绪句提取和原因句提取的性能;
也就是说,将情感-原因对分解为一组情感句子和一组原因句子,然后计算这两组句子的指标:精度、召回率和F1分数的定义,用 "情感句子 "或 "原因句子 "替换 "对"。
2. 基线方法
提出了三个两步法的系统:
第一步是分别提取情感句和原因句;
第二步是一个二分类器,过滤掉错误的配对,具体来说,三个系统的差异存在于第一步;
INDEP:用双向LSTM对句子进行编码,然后用两个独立的双向LSTM分别提取情感和原因句;
INTER-CE:与INDEP不同,它首先提取原因句,然后利用预测分布作为额外的特征来提取情感句;
INTER-EC:与INTER-CE类似,只是它首先提取情感子句;
(6)实验结果
1. 情绪-原因对提取的结果
下表报告了情感-原因对提取和两个子任务的比较结果,即情绪句子提取和原因句子提取;
RANKCP在所有三个任务上都显示出比其他基线系统明显的优势,它比表现最好的基线系统INTER-EC,在三个任务上分别获得了4.82%、3.18%和3.17%的F1改进;
与INTER- EC相比,RANKCP在情感-原因对的提取和原因句的提取上分别取得了8.43%和6.60%的提高,这表明一步法可以有效地提取更多正确的情感-原因对而不损害精度P;
加入基于词库的提取方案可以提高召回率R,表明它确实获得了更多的正确的情绪-原因对,尽管精确度 P 略有下降,但 F1 仍然比仅提取文档中的 top-1 对表现更好。
2. 提取多对的比较
论文进一步比较了在一个文档中提取多条原因对的结果;
把每折测试集分为两个子集:一个子集包含只有一个情感-原因对的文档,另一个子集包含有两个或更多的情感-原因对的文文档;
下表分别报告了两个子集的比较结果。可以看出,模型在两个子集上的表现一直优于INTER-EC;
一步法对于有一个以上的情感-原因对的文档来说相对更有效(超过13%的F1改进)
3. 情绪原因提取结果
论文还提供了与最近提出的情绪原因提取任务方法的比较结果:
基于规则的方法 RB (A text-driven rule-based system for emotion cause detection);
基于传统机器学习的方法 MULTI-KERNEL (Event-driven emotion cause extraction with corpus construction);
以及三种神经方法 CONVMS-MEMNET 、CANN 和 RTHN 。
它们都使用已知的情感子句作为模型输入。下的上半部分报告了它们的性能:
下表的下半部分显示了不使用已知情绪子句作为模型输入的方法的比较结果;
尽管RANKCP没有利用已知的测试文档的情感作为模型输入,但它仍然优于RB和MULTI-KERNEL,并且与CONVMS-MEMNET相当。因此,该文章方法得益于句间建模,并显示了其在原因句提取方面的有效性。
(7)消融实验
1. 两级监督的效果
模型使用两个监督信号的混合进行训练:
一个低层次信号和在图注意力网络的输出上进行子句表示学习;
一个高层次信号子句对表示学习和排序。
为了验证低层次监督的效果,仅使用训练模型,与完整模型相比的结果如下表所示。这表明使用两级监督的训练提高了提取性能;
这表明,纳入低层次的监督有助于学习更好的句子代表,并最终促进句子对代表的学习和排序过程。
2. 图形注意层的影响
用于建模句子间潜在关系的图注意网络是论文方法的关键组成部分;
改变了图注意层的数量(从0到3不等)来测试其效果,下图显示了情绪-原因对提取和原因句提取的结果;
很明显,没有图注意层的模型不能获得良好的性能。论文方法在两层图注意网络中取得了最好的性能,表明在这个任务中,不需要堆积大量的层就可以充分地模拟句子间的关系。
3. 子句对表示学习的影响
论文进一步研究是否可以通过直接使用句子表征来预测情绪句和原因句来获得理想的表现;
因此去掉了句子对表示的学习和排名部分,利用图注意网络的预测来产生情感-原因对;
在预测了文档中的情绪句子和原因句子后,将预测的情绪和原因的所有组合视为提取的情感-原因对,这个变体模型和完整模型的比较结果显示在下图;
RANKCP的表现比变体模型好得多(尤其是在召回率方面),这表明仅仅提供句子水平的预测并不适合于情绪-原因对的提取任务;
因此,在一个统一的单步模型中,结合句子水平和句子对代表的学习,对于提取情感原因对来说确实是有效的。
上图去掉句对表示学习和排序部分的变体模型,表示为 "RANKCP w/o Rank";
完整模型表示为RANKCP。
4. 相对位置嵌入的影响
去掉RANKCP中的相对位置嵌入部分来验证它的效果;
还比较了 vanilla 和基于内核的相对位置嵌入方案;
结果在下表中给出:去除相对位置嵌入会导致性能下降,这表明子句对之间的相对位置确实对预测有用;
前两行的另一个观察结果是基于词典的提取不能优于 top-1 提取,这进一步验证了没有相对位置嵌入的模型无法提供理想的排名列表;
基于内核的嵌入在 top-1 和基于词典的提取上都比普通嵌入(vanilla)实现了更好的性能,因此考虑相对位置之间的相互影响有助于获得更强大的子句对表示,并进一步提高情绪-原因对提取;
5. 案例分析
举例说明,该论文方法RANKCP正确地提取了它的情感-原因对(c5,c4),而INTER-EC则失败了:
4月11日(c1),长沙网友洛丽塔在网上发帖吐槽(c2),她有一个极品男友(c3),如果要去的餐馆没有团购就要求换地方(c4),这让她感觉很不爽(c5),也很没面子(c6);
在下图中可视化了两个分句c4和c5的注意力权重,情感子句 c5 以最高的权重关注相应的原因 c4,表明图注意力有效捕获两个子句之间的关系。
(8)总结
在这篇论文中,作者提出了一个一步到位的神经方法RANKCP来解决情绪-原因对的提取问题,它强调从排序的角度进行句间建模;
该方法有效地模拟了句子间的关系来学习句子表征,并将相对位置增强的句子对排序整合到一个统一的神经网络中,以端到端的方式提取情感-原因对;
在基准数据集上的实验结果表明,RANKCP明显优于以前的系统,并且进一步的分析验证了论文模型中每个组件的有效性。
参考:
论文:Effective Inter-Clause Modeling for End-to-End Emotion-Cause Pair Extraction