A Question Answering Approach to Emotion Cause Extraction 学习笔记

Abstract

情感原因提取是为了找出文本中所表达的某种情感背后的原因。与情绪分类相比,这是一个困难得多的任务。受到使用深度记忆网络进行问答(QA)的最新进展的启发,我们提出了一种将情感原因识别作为阅读理解任务 的新方法。受卷积神经网络的启发,我们提出了一种新的机制,将相关上下文存储在不同的记忆槽中,从而对上下文信息进行建模,该方法可以同时提取词级序列特征和词汇特征。实验结果表明,我们的方法在最近发布的情感原因数据集上达到了最先进的性能,在F1上比基线高了至少3.01%。

1 Introduction

随着社交网络平台的快速发展,越来越多的人倾向于在网上分享他们的经历和情感。在线文本的情感分析成为自然语言处理的新挑战。近年来,情感分析的研究主要集中在情感分类,包括对作者和读者的情感检测,情感任务相关的信息提取任务,这些方法都事前假设情感是存在的。然而,有时我们更关心的是刺激因素,或者是一种情绪的起因。例如三星想知道人们为什么喜欢或讨厌Note 7,而不是不同情绪的分布。

*eg1* 我的手机昨天丢了,我现很难
*eg1* Because I lost my phone yesterday, I feel sad now

在上面的例子中,“悲伤”是一个情感词,而“悲伤”的原因是“我丢了我的手机”。情绪原因提取任务的目的是找出情绪表达背后的原因。这是一个比情绪分类更困难的任务,因为它需要对传达情绪的文本有深刻的理解。

现有的情绪原因提取方法大多依赖于信息提取中常用的方法,如基于规则的模板匹配、基于序列标记和基于分类的方法。它们大多使用语言规则或词汇特征,但不考虑语义信息,忽视了情感词与情感原因的关系

本文提出了一种新的情绪原因提取方法。我们认为情感提取是一个问题的回答(QA)任务,如果一篇文章包含了一件可能会或不会引起某种情绪的事件的描述,我们把一个情感词放在上下文中,比如“伤心”,作为一种质问,QA系统的问题是:“所描述的事件是否会引起悲伤情绪?”,预期的答案不是“是”就是“不是”。 (see Figure 1)我们建立了一个基于深内存网络的QA系统,内存网络有两个输入:一段文本(在QA系统中称为故事)和一个查询。这个故事是用序列化词向量来表示。
在这里插入图片描述
本文利用递归结构来挖掘查询和文本之间的深层关系,它通过一个注意机制来衡量文本中每个单词的重要性。基于attention机制处理后,网络将文本映射到一个低维空间向量,然后用这个向量来生成答案。现有的基于记忆网络的QA方法利用加权求和的方式考虑短文本的处理,他们不会在上下文中显式地对顺序信息建模。在本文中,我们提出一种新的深层记忆网络架构,使用卷积运算,通过多个内存槽同时对每个单词的上下文进行建模,捕获序列信息。

2 Related Work

识别文本中的情感类别是自然语言处理的关键任务之一。更进一步说,情感原因提取可以揭示导致某种情感的重要信息和情绪变化的原因。在本节中,我们将介绍情绪分析的相关工作,包括情绪原因提取。

在情绪分析中,我们首先需要确定情绪的分类。研究人员提出了一系列基本情绪分类标准,我们采用Ekman的情感分类模式。它确定了六种基本情绪,即幸福、悲伤、恐惧、愤怒、厌恶和惊讶。在W3C情感标记语言中称为“Big6”模式,这种情绪分类方法在中国的情绪分析中得到了广泛的认同。

现有的情绪分析工作多侧重于情绪分类和情感信息提取用粗糙到精细的方法对中国博客中的情绪进行分类。Gao等(2013)提出了极性分类器与情绪分类器联合训练的模型。Beck等(2014)提出了一种基于多任务高斯过程的情绪分类方法。Chang等(2015)使用语言模板来预测读者的情绪。Das和Bandyopadhyay(2010)使用一种无监督的方法从孟加拉博客中提取情感感受。还有其他一些研究关注情绪的联合学习(Luo et al., 2015;Mohtarami et al., 2013),情感词汇的建构等。然而,上述工作都集中在情绪表达的分析,而不是情绪的原因。

Lee等人(2010)首先提出了一个关于情绪原因提取的任务。他们人工构建了一个来自中研院平衡中文的语料库,基于此语料库,Chen等人(2010)提出了一种基于人工定义语言规则的情绪原因检测方法。一些研究 (Gui et al., 2014; Li and Xu, 2014; Gao et al., 2015)将基于规则的方法扩展到微博文本(中文tweets)

除了基于规则的方法,Russo等人(2011)提出了一种众包方法来构建与情感原因相关的常识知识库,但自动扩展常识性知识库具有一定的挑战性。Ghazi et al. (2015) 使用条件随机场(CRFs)提取情绪原因,然而,它要求情感原因和情感关键字在同一个句子中。Gui等(2016)提出了一种基于多核的情绪原因提取方法,该方法学习一个手动标注的情感原因数据集。

现有的研究大多没有考虑情感词与情感成因之间的关系,或者他们只是把情感这个词作为他们学习模型的一个特征。由于,情绪原因提取需要理解给定的一段文本,以便正确地识别引起情绪的事件的描述和情绪的表达之间的关系,它本质上可以被看作是一个QA任务。在我们的工作中,我们选择了记忆网络,它是为QA系统建模一个故事和一个查询之间的关系而设计的。除了在QA中的应用外,memory network在其他NLP任务中也取得了很大的成功,比如机器翻译,情感分析,自动文摘。据我们所知,我们时第一个使用记忆网络进行情感提取的研究。

3 Our Approach

在本节中,我们将首先定义任务。然后简要介绍了记忆网络,包括记忆网络的基本学习结构和深层结构。最后,提出了改进的深记忆网络用于情绪原因提取

3.1 Task Definition

在这个任务中,一个给定的文档,是一个关于一个情绪事件的段落,包含一个情绪单词E和事件的起因。文档被手动分割成子句级别,对于每个句子 c={w1,w2,…,wk},包含了k个单词。任务的目的是找出哪个子句包含情感原因。对于数据表示,我们可以将每个单词映射到一个低维嵌入空间(Mikolov et al., 2013),所有词用词向量表示,词向量矩阵 L∈ R d*v,其中d为词向量的维数,V为词汇量。例如,这句话,“我昨天丢了手机,我现在感到很难过。”如图1所示,包含两个子句,第一个子句包含情感原因,而第二个子句包含压抑悲伤的情绪。当前的情感原因提取方法不能处理复杂的句子结构,因为在复杂的句子结构中,情感的表达与其原因是不相邻的,基于此,我们设想,在这种复杂的句子结构中,记忆网络可以更好地模拟情感词及其情感原因之间的关系。在我们的方法中,我们只选择每个文档中最有可能引起情感的子句。

3.2 Memory Network

我们首先提出了一个基本的情感原因提取的记忆网络模型(如图2所示)。给定一个子句c = {w1, w2, …, wk},和 一个情感词,我们首先获得情感词的词向量表示 E 和 子句词向量表示 e1,e2,…ek, 每个 E 和 ei 定义为 R d.然后,然后,我们使用内积来评估子句中每个词i与情感词之间的相关性,内积的值为mi= ei · E (1)

然后我们用softmax函数将mi值标准化到[0,1]之间,其值表示为αi在这里插入图片描述
其中k是子句的长度。k也是memory的大小。一个子句中所有单词的αi 之和 为1.在我们的模型中 αi 可以作为attention权重来衡量每个单词的重要性。

在这里插入图片描述
然后,构建输出如下所示,对每个子句中每个词的词向量点乘attention 权重 αi ,求和,拼接后情感词向量E 构成输出。
在这里插入图片描述
最后,利用softmax函数在输出 o 的基础上 构建最后的预测:
在这里插入图片描述
通常,W 是一个 d × d 权重矩阵,因为在我们的任务中,答案是简单“yes”或“no”,我们的权重矩阵 W 是 d * 1 。根据(Gui et al., 2016),子句和情感词之间的距离是一个非常重要的特征。我们简单的将这个距离添加到softmax函数中,作为一个附加特征。

基本模型可以扩展到由多层组成的深层体系结构来处理L - hop操作。这样一个网络的堆叠过程如下:

  1. hop 1 ,the query(查询) 是 E ,预测向量是 o1
  2. hop i,the query 是之前一个hop的预测向量,并且预测向量是 oi
  3. 输出向量是一个网络的最上层,它是对最后hop层的输出做softmax。如式子(4)所示

图3显示了一个具有三层的深内存网络,由于memory网络在一个fine-grained level 上对情绪起因进行建模,每个单词都有相应的权重来衡量它在这项任务中的重要性。与以往基于人工定义的规则或语言特征来提取情感的方法相比,memory网络是更有效的方法。然而,基本的记忆网络模型并没有捕捉到情境中的顺序信息,而这在情绪原因提取中是非常重要的。

3.3 Convolutional Multiple-Slot Deep Memory Network

通常情况下,一个词的意义是由它的上下文决定的,比如前一个词和下一个词。然而,记忆网络在3.2节中描述的只有一个记忆槽,它用大小是 d * k 的矩阵表示一个句子,这里d 是词向量的维度,k 是子句的长度。 这就意味着,当模型去构建一个句子向量的时候,他是单独去考虑每一个词。

为了捕获句子的上下文信息,我们提出一个新的架构,这个架构包含了更多的记忆槽,这些记忆槽利用卷积操作构建上下文。卷积多槽记忆网络的基本结构如下图4所示:
在这里插入图片描述

这儿,我们通常使用的文本长度较短,其中,设置卷积核为3,wi 表示第i个位置上的词的权重,wi 由其前一个词的权重wi-1 和 后一个词 的权重wi+1 通过卷积操作决定,其公式如下所示:对于子句中的第一个和最后一个单词,我们使用零填充
在这里插入图片描述
然后对每个位置的词的attention 权重被计算如下
在这里插入图片描述

值得注意的是,我们获得的attention 是对每一个位置而不是对每一个词。这就意味着第与i个词的attention 权重相关的是之前卷积槽中的ai+1. 因此,有三个预测输出向量,分别是: o_previous,o_current, o_following
在这里插入图片描述

最后,我们把这三个向量连接起来,引入softmax 函数,如式子10所示:
在这里插入图片描述
在这里插入图片描述
这儿,Wm 是(3·d)*d,因此,预测向量是结合三个输出得到的。我们没有使用向量的相加求平均或者其他的操作,而是做了拼接(concatenation),是因为不同记忆槽中的参数能够通过反向传播进行调整。三个输出向量的拼接构造了一个序列化的特征,该特征能被用于训练。这种特性非常重要,特别是在带注释的训练数据很小的情况下。

对于具有多层训练的深层体系结构,网络更加复杂(如图5所示)

  • 对于第一层,查询是一个情感词向量 E
  • 接下来的 层,有三个问题,因为上一层的输出有三个。所以,当第 j 层时,我们需要重新定义,我们需要从新去定义权重 在这里插入图片描述
  • 在最后一层,三个预测向量的串联形成最终的预测向量,生成答案。

在模型训练中,我们使用随机梯度下降法和反向传播法来优化损失函数。词向量我们使用skip-gram 模型实现。词向量的维度是20,dropout 设置为0.4

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值