Hope is a dangerous thing, but I have it.


【论文阅读】Emotion-Cause Pair Extraction: A New Task to Emotion Analysis in Texts (ACL 2019)

看论文的一大动力就是我要讲论文了。

Basic Information

  • Title: Emotion-Cause Pair Extraction: A New Task to Emotion Analysis in Texts
  • Authors: Rui Xia, Zixiang Ding            
  • Institution: Nanjing University of Science and Technology          
  • Conference/Journal: ACL 2019            
  • Cite: Xia R, Ding Z. Emotion-Cause Pair Extraction: A New Task to Emotion Analysis in Texts[J]. arXiv preprint arXiv:1906.01267, 2019.
  • Github: https://github.com/NUSTM/ECPE

Background

Emotion Cause Extraction是10年提出的一个问题,近几年由于哈工大的开源数据集的提出,所以相关的研究工作也有一些。一作夏睿是南理工的一个教授,一直做的情感分析方向,今天Cause这个方向他中了三篇:AAAI 2019,IJCAI 2019,ACL 2019。其中IJCAI的那篇是关注子句之间的关联性,提出了 一个层级的结构。

Task & Contributions

Emotion Cause Extraction任务通常是给定文本,并给出文本对应的情感,然后找到文本情感对应的cause子句。但这有两个问题:首先,这需要文本预先给定emotion的标注;另外,先标emotion再标cause,这将两个任务割裂开了,它们内在有一定的关联性,可以互相促进。所以针对这两个问题,提出了一个Emotion-Cause Pair Extraction的任务。这篇论文的贡献如下:

  1. 提出了一个新的任务。
  2. 针对新的任务提出了一个两阶段模型。
  3. 在哈工大的数据集的基础上构建了一个新的数据集。

Problem Definition

首先是新问题。问题的Motivation前面已经提到过了。根据图1,可以看到原来的方法是给定happy,在文档中抽取出子句2和3这两个cause,但Emotion-Cause Pair Extraction是给定一个文档,抽到这种(emotion子句,cause子句)对。

Method

针对这个问题,这篇论文提出了一个两阶段的方法,第一阶段就是分别提取出emotion子句和cause子句,第二阶段就是将得到的子句做笛卡儿积,再过滤,得到最终的集合。

Step 1

一个基础的multi-task的模型如图2所示。这其实是一个层级结构,就是先针对每个子句,用BiLSTM和attention得到子句的特征,这个部分是共享的。然后所有的子句特征再作为输入,输入到更高一级的BiLSTM中,得到表示作为该个子句的context-aware特征,并接一个softmax对该子句进行分类。这部分参数不同的task之间是不共享的,就是Multi-task模型中的task-specific的部分。而且针对这个输出的类别数量,这篇论文里面没有说,我去看了代码是2,其实就是一个是与否的判断。

这是基础的模型,在各个task之间其实没有很多的交互,所以做了进一步的扩展,如图3所示。这张图分为两部分:左边是用emtion extraction来辅助cause extraction,右边是反过来。其实这两个模型的下半部分和上面提到的模型是相同的,就在上层做了一个concat的操作进行信息的引入。这两个模型是相似的,就拿左边的举例。在得到这个子句的emotion label之后,将label信息与该个子句的表示concat,然后输入到BiLSTM中,得到cause对应的输出。至于这个emotion label信息,论文中是标签,实验中用的直接是softmax的结果,我有发邮件询问程序的作者(十分感谢他的真诚认真的回复),说这两种实验结果差别不大。

Step 2

在得到emotion子句和cause子句之后,做一个笛卡儿积,然后接一个逻辑回归模型进行过滤得到最终的结果。

Experiments

在实验部分,首先是在哈工大的基础上针对这个任务构建了一个新的数据集,但是只有1945条数据。

实验结果证明,在两个模型中互相引入信息是有效的。但是在emotion cause detection上还是比现在最好方法差一些,那个方法之前组会也说过,用到了emotion标注信息,去掉了就不好了。

Comments

看这篇论文一个是因为它是一个emotion cause和emotion detection的multi-task的问题。我觉得最大的 一个优势是这个问题是一个有价值的问题,之前我们也考虑过,但是最终没有做。模型还是比较简单,因为是同输入,所以可以使用concat作为信息的互相引入。