在网络时代,人们频繁地在线分享他们的经历和情感。因此,在自然语言处理(NLP)领域,对在线文本进行情感分析的任务变得至关重要。有时候,了解观察到的情感背后的原因也同样重要。例如,三星可能想知道人们为何喜欢或讨厌Note 7,而不仅仅是不同情感的分布情况。在这种情况下,必须理解情感背后的成因。
顾名思义,这项抽取情感及其原因的任务被称为ECPE(Emotion Cause Pair Extraction)。ECPE是基于ECE(Emotion Cause Extraction)的新兴自然语言处理任务,后者涉及对文档进行注释以提取情感的原因。ECE和ECPE是两种不同的方法,用于提取情感及其原因。让深入了解ECE和ECPE的细节。
图1展示了ECPE任务的一般工作流程。在识别情感及其原因之前,首先需要对文档中的子句进行编号。子句构成了文档的基本单位,因此ECPE可以被认为是在子句层面上的工作。图1中的示例语句是:“上周,在购物时丢了手机;现在感到难过。”第一个子句指的是上周,第二个子句指的是在购物时丢了手机,第三个子句描述了感受。在完成编号后,下一步是提取情感及其原因。该人当前的情感是悲伤,他感到悲伤的原因是他在购物时丢了手机。希望这个示例能够解释ECPE的一般情况。
在深入了解ECPE之前,首先需要了解ECPE的前身及其局限性。ECE旨在提取给定情感子句的可能原因。它要求在文档中注释情感信号。为了更清楚地理解ECE和ECPE,让看一个比较示例,如图2所示。
图2中的文档展示了这样的陈述:“昨天早上,一名警察访问了丢失钱财的老人,并告诉他小偷被抓住了。老人非常高兴,并将钱存入了银行。”第一个子句是“昨天早上”,第二个子句是“一名警察访问了丢失钱财的老人”,依此类推。下一步是在ECE的情况下提取与情感相关的原因子句,前提是情感已经被注释。在给定的示例中,情感“高兴”已经在文档中被注释,现在的任务是识别与情感相关的原因子句。而在ECPE的情况下,情感“高兴”没有被注释。因此,ECPE的任务是提取情感子句及其原因子句。
现在可能会想知道ECE的局限性,既然已经知道了ECE和ECPE之间的区别,以下是两个主要的局限性:
让首先看一下情感原因对抽取任务的定义。给定一个由多个子句组成的文档d = [c1, c2, …, c|d|],ECPE的目标是在d中提取一组情感原因对P = {..., (ce, cc), ...},其中ce是情感子句,cc是相应的原因子句。在理解了问题陈述之后,让深入了解ECPE任务的方法。
ECPE任务被提出为一个两步框架,首先执行单独的情感提取和原因提取,然后执行情感-原因配对和过滤。现在,第一步的目标是为每个文档提取一组情感子句E = {c1e, …, cme}和一组原因子句C = {c1c, …, cnn}。下一步是通过将情感集合E和原因集合C应用笛卡尔积来配对,产生一组情感原因对。然后训练一个过滤器来排除不包含情感和原因之间因果关系的对。这就是ECPE作为一个整体的运作方式。
讨论了ECPE的工作流程之后,让现在深入了解其方法。正如已经提到的,提出了一个两步方法来提取情感原因对。第一步是提取一组情感和一组原因,第二步是执行情感原因配对和过滤。让更详细地探讨第一步的方法,可以使用两种多任务学习网络,即独立多任务学习和交互多任务学习,来完成第一步。
一个文档是子句的集合d = [c1, c2, …, c|d|]。一个子句ci,反过来,是单词的集合ci = [wi,1, wi,2, …, wi,|ci|]。采用两层的层次化Bi-LSTM网络来捕获单词-子句-文档结构。最低层包括一组单词级别的Bi-LSTM模块,对应于单个子句,并为每个单词收集上下文数据。基于双向LSTM获得第j个单词在第i个子句中的隐藏状态hi,j。然后采用注意力机制来获得子句表示si。这是关于较低层的全部内容。
现在,转向上层,上层包括两个组件:情感提取和原因提取。最低层的输出作为输入提供给上层,即在较低层获得的独立子句表示[s1, s2, …, s|d|]。
上下文感知表示的短语ci是两个组件的Bi-LSTM的隐藏状态rie和ric所代表的。然后这些隐藏状态被输入到softmax层,预测情感和原因。上标e和c分别表示情感和原因。然后模型的损失可以作为两个组件的加权和获得。
其中Le和Lc分别是情感预测和原因预测的交叉熵误差,λ是权衡参数。