论文笔记之2020COLING-SLSN
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标签包含第个子句的情感标签和局部原因标签()
C-LE标签包含第个子句的原因标签和局部情感标签()
一个子句是否在目标子句的局部之内,由局部上下文窗口定义,记作。比如图中k=1。
因此对一个目标子句来说,它的局部子句是前k个+它自己+后k个。
若,意味着是情感-原因子句,其余不是;
若,意味着是情感-原因子句,其余不是。
SLSN的两种局部搜索器会得到两个情感-原因对集合,我们可以对这两个集合取交集、并集等,得到最终的情感-原因对。
2.3 SLSN的组件
其实懂了2.2节,这张图就很容易看明白了。只不过这张图里k=2。
2.3.1 词嵌入
没啥好说的,就是用word2vec。
2.3.2 子句编码器
用word-level BiLSTM + Attention,常规操作。
作者的注意力机制公式如下:
注意,是权重矩阵。
2.3.3 隐藏状态学习
应用clause-level 的BiLSTM进行子句级的编码。
最终得到E-net中,子句的情感表示;C-net中,子句的原因表示。
2.3.4 局部搜索器
前面的都是常规操作,这一节就是作者的创新点所在了。
大体思路2.2节已经叙述过,以E-LC为例:
对每一个子句,判断它是否为情感子句,若是,则以它为目标子句,进行局部搜索。
局部搜索的过程就是找它的前k个子句,它本身,它的后k个子句来组成2k+1个候选情感-原因对,然后判断这些对里哪些是真正的情感-原因对。
首先得到E-label ,通过以下公式:
然后进行LC-label预测,分两种情况。若不是情感子句,则相关的所有LC-label直接设为0向量。若是情感子句,则配对组成2k+1个情感-原因对。
如何判断<i, j>这一对是不是真正的情感-原因对呢?作者用了以下方法:
首先通过以下公式计算出一个情感注意率:
然后通过以下公式得到第j句子句的进一步的隐藏状态表示:
等式5,6,7就是上图中的操作。
然后再使用一个Bi-LSTM:
最后得到LC-label
C-LE过程与之类似,不再赘述。
2.4 模型训练
两个网络嘛,所以总损失肯定是两个损失相加:
每一个网络中,都是先预测某个句子是否为情感(原因)子句,然后再预测它的局部上下文子句是否是原因(情感)子句,所以每一个网络也有两个损失。
具体计算公式如下:
2.5 与两步走方法的联系
当局部上下文窗口大小为k=n时,其实也就变成了两步走方法。
3. 实验
作者做的关于注意力和Local Encoder等一系列消融实验,还挺有意思的。不再赘述。