摘要
对话中的情感检测是许多应用的必要步骤,包括对聊天历史的 意见挖掘、社交媒体线程、辩论、论证挖掘、了解实时对话中的消费者反馈等。 目前,系统不会通过适应每个话语的说话者来单独对待谈话中的当事人。 在本文中,我们描述了一种基于递归神经网络的新方法,它在整个对话过程中跟踪独立当事人(individual party)的状态,并将这些信息用于情感分类。 我们的模型在两个不同的数据集上的性能远远超过了最先进的水平。
介绍
目前的系统,包括最先进的系统(Hazarika 等人)。 在谈话中不以有意义的方式区分不同的当事人。 他们不知道某一特定话语的说话者。 相反,因为对话是流动变化的,我们依靠话语、上下文和当前的当事人状态对每个当事人建立具有party states的模型。 我们的模型是基于这样的假设,即谈话中的情绪有三个主要方面:说话者、来自前面话语的上下文和前面话语的情绪。 这三个方面不一定是独立的,但它们单独的建模明显优于最先进的。 在二元对话中,双方有不同的角色。 因此,为了提取上下文,至关重要的是在给定的时刻考虑说话人和听者的前面转折。
该系统应用了三个GRU来对这些方面继续建模。输入的话语被喂给两个叫全局GRUg(global GRU)和当事人GRUp(party GRU)的单元来更新上下文和当事人状态。全局 GRU编码话语,同时编码相关的当事人信息。
全局 GRUg 提供了上下文表示,它包含对话中不同 事人先前所有话语的信息。 说话人的状态依赖于通过attention和说话人先前的状态得到的语境。这确保了在时间 t 时, 说话人状态直接从说话人的前一个状态和全局 GRUg 获得信 息,其中全局 GRUg具有关于以前各方的信息。 最后,将更新的说话 人状态输入到情感 GRUe(emotion)中,解码给定话语的情感表示,用于 情感分类。 在 t 时,情绪 GRUe 单元得到 t-1 的情绪表征和 t 的说话者状态。
情感GRUe 和全局GRUg 在多方关系建模中起着至关重要的作用。 另一方面,当事人GRUp 对同一当事人的两个顺序状态之间的关系进行了建模。 在对话 RNN 中,所有这三种不同类型的 GRU 都是以递归的方式连接的。
Methodology
Problem Definition
对于一段对话(utterances)u1, u2, . . . , uN ,我们为每一句话ui预测情感标签。
global GRU
全局状态,根据上一步状态,当前对话和发言人状态进行更新。
party GRU
DialogueRNN使用固定大小向量q1,q2 ,.。。 ,qM来追踪每个发言人的状态。 这些状态在谈话中代表发言人的状态,与情绪分类有关。我们在时间t,根据当前语句 ,以及对话参与状态,发言人或聆听人来更新状态。 这个模块的主要目的是确保模型知道每句话的发言人并相应地处理。
speaker update
发言人通常通过上下文来组织回复,因此我们通过如下公式进行状态更新
listener update
简单来说,就是不更新。因为更新听者状态对结果几乎没有影响而且增加了参数数量,这是由于听者只在说话时对对话产生相关影响,所以只需要说话人状态更新即可。
emotion GRU
我们认为当前情感与上文情感和发言人状态有关,所以我们根据公式计算出情感状态et
再根据计算所得情感状态et,对情感进行分类,