2020COLING-《A Symmetric Local Search Network for Emotion-Cause Pair Extraction》

1. 摘要和介绍

本篇论文作者提出了一个对称局部搜索网络(Symmetric Local Search Network, SLSN)模型,通过局部搜索的方法,来同步地进行情感原因检测和匹配。

SLSN包含两个对称子网络,名为情感子网络和原因子网络,每一个子网络都包含一个子句表示学习器和一个局部对搜索器(local pair searcher, LPS)。

当人们查找一个文档中的情感-原因对时,肯定不可能是先找出所有的情感子句和原因子句,然后再两两配对筛选,而是找情感原因子句和配对一块进行。所以作者认为(Xia and Ding, 2019)提出的两步走的方法是不合理的。

在局部搜索过程中,LPS引入了一个局部上下文窗口来限制局部搜索的范围,下文会详细介绍。

作者的主要贡献如下:

  • 提出了对称局部搜索网络模型,这是一个端到端的模型,是解决ECPE问题的新方式。
  • 在SLSN中设计了LPS,它能够同时对情感和原因子句进行检测和匹配。
  • 实验证明了SLSN的有效性。

2. 对称局部搜索网络

2.1 任务定义

老生常谈,就是抽取出一个文档中所有的情感-原因对。

2.2 SLSN

通过此图我们可以看到该模型的大致思路:SLSN包含两种局部对搜索器

左边称为E-LC,意思就是若某一个子句是情感子句,那么它和它的局部子句进行配对(图中是第i句情感子句分别和第i-1, i, i+1 句进行配对),组成候选情感-原因对,再判断这些对哪些是正确的对。

右边称为C-LE,也就是某一个原因子句和它的局部子句配对。

E-LC标签y^ielc\hat{y}_i^{elc}包含第ii个子句的情感标签y^ie\hat y_i^e和局部原因标签(y^i1lc,y^ilc,y^i+1lc\hat{y}_{i-1}^{lc}, \hat{y}_{i}^{lc}, \hat{y}_{i+1}^{lc})

C-LE标签y^icle\hat{y}_i^{cle}包含第ii个子句的原因标签y^ic\hat y_i^c和局部情感标签(y^i1le,y^ile,y^i+1le\hat{y}_{i-1}^{le}, \hat{y}_{i}^{le}, \hat{y}_{i+1}^{le})

一个子句是否在目标子句的局部之内,由局部上下文窗口定义,记作kk。比如图中k=1。

因此对一个目标子句来说,它的局部子句是前k个+它自己+后k个。

y^ielc=(1,1,0,0)\hat{y}_i^{elc}=(1,1,0,0),意味着(ci,ci1)(c_i,c_{i-1})是情感-原因子句,其余不是;

y^icle=(1,1,0,0)\hat{y}_i^{cle}=(1,1,0,0),意味着(ci1,ci)(c_{i-1}, c_i)是情感-原因子句,其余不是。

SLSN的两种局部搜索器会得到两个情感-原因对集合,我们可以对这两个集合取交集、并集等,得到最终的情感-原因对。

2.3 SLSN的组件

其实懂了2.2节,这张图就很容易看明白了。只不过这张图里k=2。

2.3.1 词嵌入

没啥好说的,就是用word2vec。

2.3.2 子句编码器

用word-level BiLSTM + Attention,常规操作。

作者的注意力机制公式如下:

注意,usu_s是权重矩阵。

2.3.3 隐藏状态学习

应用clause-level 的BiLSTM进行子句级的编码。

最终得到E-net中,子句的情感表示hieh_i^e;C-net中,子句的原因表示hjch_j^c

2.3.4 局部搜索器

前面的都是常规操作,这一节就是作者的创新点所在了。

大体思路2.2节已经叙述过,以E-LC为例:

对每一个子句,判断它是否为情感子句,若是,则以它为目标子句,进行局部搜索。

局部搜索的过程就是找它的前k个子句,它本身,它的后k个子句来组成2k+1个候选情感-原因对,然后判断这些对里哪些是真正的情感-原因对。

首先得到E-label y^ie\hat y_i^e,通过以下公式:

然后进行LC-label预测,分两种情况。若ciec_i^e不是情感子句,则相关的所有LC-label直接设为0向量。若是情感子句,则配对组成2k+1个情感-原因对。

如何判断<i, j>这一对是不是真正的情感-原因对呢?作者用了以下方法:

首先通过以下公式计算出一个情感注意率λj\lambda_j

然后通过以下公式得到第j句子句的进一步的隐藏状态表示qjlcq_j^{lc}

等式5,6,7就是上图中的\otimes操作。

然后再使用一个Bi-LSTM:

最后得到LC-label y^jlc\hat y_j^{lc}

C-LE过程与之类似,不再赘述。

2.4 模型训练

两个网络嘛,所以总损失肯定是两个损失相加:

每一个网络中,都是先预测某个句子是否为情感(原因)子句,然后再预测它的局部上下文子句是否是原因(情感)子句,所以每一个网络也有两个损失。

具体计算公式如下:

2.5 与两步走方法的联系

当局部上下文窗口大小为k=n时,其实也就变成了两步走方法。

3. 实验

作者做的关于注意力和Local Encoder等一系列消融实验,还挺有意思的。不再赘述。