今天看的是关于ECPE的第二篇论文:ECPE-2D: Emotion-Cause Pair Extraction based on Joint Two-Dimensional Representation, Interaction and Prediction
跟第一篇提出的two-step pipeline framework的是同一个作者,这篇论文针对了上一篇提出的不足做出了改进:two-step pipeline framework将情感因果抽取分成了两步,不是直接进行抽取的,其次容易出现误差累积问题。因此这一次作者提出了one-step end-to-end方法(称ECPE-2D),用一个框架来解决因果抽取问题。
跟上一篇的对抽取出来的情感和原因做笛卡尔积组队不同,2D配对会考虑所有的情感和原因的组合情况。
2D的主要组成部分有3个:
- 2D emotion-cause pair representation,分别获得子句的情感表示和原因表示,然后将两种表示组合到一个2D表示矩阵中。
- 2D emotion-cause pair interaction,来建模不同情感因果对之间的联系。
- 2D emotion-cause pair prediction,预测是否含有因果关系。
一.2D emotion-cause pair repersentation
individual emotion/cause encoding
输入文档d,由子句c组成,每个子句由单词w组成,
该层级神经网络由两层组成,
低层由一系列单词级别的Bi-LSTM单元组成,每个bI-LSTM单元对应的是一个子句,用来聚集子句中每个单词的上下文信息。
经过bi-directional lstm获得隐藏层状态h,然后使用一个attention机制来得到子句表示s,这里和第一篇论文的方法是一样的。
高层由两个独立的部分组成(分别为每个子句生成情感表示和原因表示)。每个部分操作一样,均将上一层的子句表示s1,s2...s|d|作为输入,经过2个子句级别的bi-lstm来得到r,e和r,c。接着将两个r送入softmax来获得情感预测ye和原因预测yc
emotion-cause full pairing
这里考虑的所有可能的组合,那么因果对矩阵M大小应该为|d|*|d|,组合形式为ce,cc
M里的元素Mi,j
其中前四项由前面的操作得到,rpei,j是指子句cj与ci之间的相对位置嵌入。
二. 2D emotion-cause pair interaction
上一部分我们最终得到的是一个因果对表示组成的二维矩阵。
在|d|*|d|个矩阵元素中,只有很小一部分是正样本。如果我们对每个因果可能对进行独立的配对表示的话就没有办法利用好这个全局信息了(也就是正样本占很小一部分)
所以,设计了一个2D transformer来实现因果可能对之间的交互关系。
standard 2D transformer
有N层,每层由multi-head 2D self-attention和fosition-wise feed forward network组成。
multihead 2D self-attention首先计算q,k,v三个向量:查询向量,键向量,值向量
接着计算每一个因果可能对的权重
接着就得到了因果可能对的特征表述:
position-wise feed forward network
第l层的o就是下一层的输入M,看图会对过程更加了解
因为M矩阵一共|d|*|d|个元素,每个元素要计算|d|*|d|个权重,因此一共要计算|d|*|d|*|d|*|d|个元素,这样计算和存储都很巨大,为了缓解这个问题,提出了window-constraind 和 cross-road两种transformer
详情看论文
最后进行prediction,用softmax输出分布,还使用一共附属loss,一起做L2正则化