DialogueRNN : An Attentive RNN for Emotion Detection in Conversations
Navonil Majumder, Soujanya Poria, Devamanyu Hazarika, Rada Mihalcea, Alexander F. Gelbukh, Erik Cambria:DialogueRNN: An Attentive RNN for Emotion Detection in Conversations. AAAI 2019: 6818-6825
Abstract
对话中的情感检测对于许多应用程序都是必不可少的步骤,包括对聊天历史,社交媒体线索,辩论,论点挖掘,在实时对话中了解消费者反馈等方面的观点挖掘。目前的系统并没有根据说话人的不同而将对话中的各方单独对待。在本文中,我们描述了一种新的基于递归神经网络的方法,它在整个会话过程中跟踪当事人的状态,并将这些信息用于情感分类。
1 Introduction
会话中的情感检测由于其在许多重要任务中的应用而受到了越来越多的关注,例如在聊天历史中的观点挖掘以及YouTube,Facebook,Twitter等中的社交媒体线程。在本文中,我们提出了一种基于递归神经网络(RNN)的方法,该方法可以通过处理大量可用的会话数据来满足这些需求。当前的系统,包括最先进的系统(Hazarika et al.2018),都无法以有意义的方式区分对话中的不同参与者。他们不知道某一特定话语的说话人。相反,随着对话的进行,我们通过依靠话语,上下文以及当前当事人的状态,用当事人的状态来对单个当事人进行建模。我们的模型基于以下假设:对话中存在与情感相关的三个主要方面:说话人,前一句话的上下文,以及前几句话的情感。这三个方面不一定是独立的,但它们各自独立的建模显著优于最先进的方法(表2)。在二元对话中,双方有各自不同的角色。因此,为了提取上下文,在给定的时刻考虑说话者和听者此前的对话是至关重要的(图1)。
我们提出的DialogueRNN系统采用三个GRU对这三个方面进行建模。传入的话语被馈入两个GRU(分别称为全局(global)GRU和当事人(party GRU)以更新上下文和当事人状态。
全局GRU在对话语进行编码的同时对相应的一方当事人信息进行编码。对这个GRU施加Attention,就会给出上下文表示,其中包含对话中不同参与方之前所有话语的信息。说话人的状态通过注意力和说话人之前的状态依赖于这个上下文。这样可以确保在时间t时,发言者状态直接从发言者的先前状态和全局GRU中获取信息,而全局GRU包含有关先前各方的信息。最后,将更新后的说话人状态输入到情感(emotion)GRU中,对给定话语的情感表示进行解码,该情感表示用于情感分类。在时刻 t t t,emotion GRU单元得到 t − 1 t-1 t−1时刻的情绪表示和 t t t时刻的说话人状态。
emotion GRU与全局GRU在当事人之间(inter-party)的关系建模中起着关键作用。另一方面, party GRU对同一个当事人的两个顺序状态之间的关系进行建模。在DialogueRNN中,所有这三种不同类型的GRU都以一种循环的方式连接在一起。我们认为,DialogueRNN优于目前最先进的上下文情感分类器,例如(Hazarika et al. 2018;Poria et al. 2017),因为它有更好的上下文表征。
2 Related Work
情绪识别已引起各个领域的关注。Ekman(1993)发现情绪和面部线索之间存在相关性。Datcu和Rothkrantz(2008)将声学信息与视觉线索融合在一起以进行情感识别。Alm,Roth和Sproat(2005)引入了基于文本的情感识别,这是在Strapparava和Mihalcea(2010)的工作中开发的。W ollmer等等。(2010)将情境信息用于多模态场景下的情感识别。最近Poria et al.(2017)成功地将基于rnn的深度网络用于多模态情感识别,随后又有其他研究成果(Chen et al. 2017;扎德等2018a;2018 b)。
再现人际互动需要对对话有深刻的理解。Ruusuvuori(2013)指出,情感在对话中起着举足轻重的作用。有人认为,对话中的情感动力是一种人际交往的现象(Richards,Butler和Gross,2003年)。因此,我们的模型以有效的方式结合了人际互动。此外,由于对话具有自然的时间属性,我们通过递归网络采用时间属性(Poria et al. 2017)。
记忆网络(Sukhbaatar et al. 2015)在几个NLP领域取得了成功,包括问题转换(Sukhbaatar et al. 2015;Kumar等人(2016)、机器翻译(Bahdanau, Cho和Bengio 2014)、语音识别(Graves, Wayne和Danihelka 2014)等。因此,哈扎里卡等。 (2018)使用记忆网络在二元对话中进行情感识别,其中两个不同的记忆网络实现了说话人之间的互动,并产生了最先进的表现。
3 Methodology
3.1 Problem Definition
设在一次对话中有 M M M个参与者 p 1 . p 2 , . . . p M p_1.p_2,...p_M p1.p2,...pM (对我们使用的数据集来说 M = 2 M=2 M=2).任务是预测由 u 1 , u 2 , . . . , u N u_1,u_2,...,u_N u1,u2,...,uN构成的话语的情感标签(happy,sad,neutral,angry,excited,and frustrated),其中话语 u t u_t ut有当事人 p s ( u t ) p_{s(u_t)} ps(ut)说出,其中的 s s s表示话语与相应当事人的索引之间的映射.而且 u t ∈ R D m u_t\in R^{D_m} ut∈RDm是话语表示,使用下文所述的特征提取器获得。
3.2 Unimodal Feature Extraction–模态特征提取
为了与最先进的方法会话记忆网络(CMN)进行公平比较(Hazarika et al. 2018),我们遵循相同的特征提取程序。
Textual Feature Extraction我们采用卷积神经网络(CNN)进行文本特征提取。在Kim(2014)之后,我们使用三个不同的大小分别为3、4和5的卷积过滤器从每个话语中获得n-gram特征,每个过滤器有50个特征映射。输出之后被提交给max-pooling,然后由一个ReLU函数激活.这些激活被连接和馈送到一个100维的密集层,它被视为文本话语的表示。这个网络是在话语级别上使用情感标签进行训练的。
Audio and Visual Feature Extraction与Hazarika等人相同。 (2018),我们分别使用3D-CNN和openSMILE(Eyben,Wollmer和Schuller 2010)进行视觉和声学特征提取。
3.3 Our Model
我们假设对话中的话语情感取决于三个主要因素:
- 说话者
- 由前面的话语给出的上下文。
- 前面话语背后的情感。
我们的模型DialogueRNN,如图2a所示,对这三个因素进行如下建模:每一个当事人都使用一个当事人状态进行建模,当当事人发表言论时,这个当事人的状态会发生变化.这使模型可以踪对话中当事人的情绪动态,情感动态与话语背后的情绪有关…此外,使用全局状态(由于在各方之间共享,因此称为全局状态)对话语的上下文进行建模,其中前面的话语和当事人状态共同编码以进行上下文表示,这对于准确的当事人状态表示是必需的。最后,该模型从说话者的当事人状态以及前面说话者的状态作为上下文来推断情感表示.该情感表示用于最终的情感分类。
我们使用GRU单元(Chung等人2014)更新状态和表示.每个GRU单元计算一个隐藏状态,定义为 h t = G R U ∗ ( h t − 1 , x t ) h_t=GRU_*(h_{t-1},x_t) ht=GRU∗(ht−1,xt),其中 x t x_t xt是当前的输入, h t − 1 h_{t-1} ht−1是先前的GRU状态, h t h_t ht充当当前GRU的输出.我们在补充资料中提供了GRU计算细节.GRU是一种具有可训练参数 W ∗ , { h , x } { r , z , c } , b ∗ { r , z , c } W_{*,\{h,x\}}^{\{r,z,c\}},b_*^{\{r,z,c\}} W∗,{h,x}{r,z,c},b∗{r,z,c}的高效网络.
我们将当前话语的情感表示建模为先前话语的情感表示和当前说话者状态的函数.最后,将这种情感表示发送到softmax层进行情感分类。
Global State (Global GRU) 全局状态旨在通过联合编码话语和说话者状态来捕获给定话语的上下文。每个状态还充当特定于说话者的话语表示。这些状态促进了说话者之间和话语间的依赖性,从而产生了改进的上下文表示。当前的话语
u
t
u_t
ut将说话者的状态从
q
s
(
u
t
)
,
t
−
1
q_{s(u_t),t-1}
qs(ut),t−1改变为
q
s
(
u
t
)
,
t
q_{s(u_t),t}
qs(ut),t .使用输出大小为
D
G
D_{\mathcal{G}}
DG的GRU单元
G
R
U
G
GRU_\mathcal{G}
GRUG和
u
t
,
q
s
(
u
t
)
,
t
−
1
u_t,q_{s(u_t),t-1}
ut,qs(ut),t−1来捕获这个改变:
g
t
=
G
R
U
G
(
g
t
−
1
,
(
u
t
⊕
q
s
(
u
t
)
,
t
−
1
)
)
(1)
g_t=GRU_\mathcal{G}(g_{t-1},(u_t\oplus q_{s(u_t),t-1}))\tag{1}
gt=GRUG(gt−1,(ut⊕qs(ut),t−1))(1)
其中
D
G
D_{\mathcal{G}}
DG是全局状态向量的大小,
D
P
D_\mathcal{P}
DP是当事人状态向量的大小,
W
G
,
h
{
r
,
z
,
c
}
∈
R
D
G
×
D
G
,
W
G
,
h
{
r
,
z
,
c
}
∈
R
D
G
×
(
D
m
+
D
P
)
,
b
G
{
r
,
z
,
c
}
∈
R
D
G
,
q
s
(
u
t
)
,
t
−
1
∈
R
D
P
,
g
t
,
g
t
−
1
∈
R
D
G
W_{\mathcal{G,h}}^{\{r,z,c\}}\in R^{D_{\mathcal{G}}\times D_{\mathcal{G}}},W_{\mathcal{G,h}}^{\{r,z,c\}}\in R^{D_{\mathcal{G}}\times (D_{\mathcal{m}}+D_{\mathcal{P}})},b_\mathcal{G}^{\{r,z,c\}}\in R^{D_{\mathcal{G}}},q_{s(u_t),t-1}\in R^{D_{\mathcal{P}}},g_t,g_{t-1}\in R^{D_{\mathcal{G}}}
WG,h{r,z,c}∈RDG×DG,WG,h{r,z,c}∈RDG×(Dm+DP),bG{r,z,c}∈RDG,qs(ut),t−1∈RDP,gt,gt−1∈RDG,
⊕
\oplus
⊕表示连接.
Party State (Party GRU) DialogueRNN在整个对话过程中使用固定大小的向量 q 1 , q 2 , . . . , q M q_1,q_2,...,q_M q1,q2,...,qM来跟踪各个说话者的状态。这些状态代表会话中说话者的状态,与情感分类有关。我们根据会话中参与者的当前(在时刻t)的角色(说话者或听者)以及传入的话语 u t u_t ut来更新这些状态.对于所有参与者,这些状态向量都用空向量初始化。这个模块的主要目的是确保模型知道每个话语的说话者,并相应地处理它。
Speaker Update (Speaker GRU) 说话者通常根据上下文来构建回应,上下文就是对话中前面的话语。因此,我们通过下式来捕获与话语
u
t
u_t
ut相关的上下文
c
t
c_t
ct:
α
=
s
o
f
t
m
a
x
(
u
t
T
W
α
[
g
1
,
g
2
,
.
.
,
g
t
−
1
]
)
(2)
\alpha=softmax(u_t^TW_\alpha[g_1,g_2,..,g_{t-1}])\tag{2}
α=softmax(utTWα[g1,g2,..,gt−1])(2)
s
o
f
t
m
a
x
(
x
)
=
[
e
x
1
∑
i
e
x
i
,
e
x
2
∑
i
e
x
i
,
.
.
.
]
(3)
softmax(x)=[\frac{e^{x_1}}{\sum_ie^{x_i}},\frac{e^{x_2}}{\sum_ie^{x_i}},...]\tag{3}
softmax(x)=[∑iexiex1,∑iexiex2,...](3)
c
t
=
α
[
g
1
,
g
2
,
.
.
.
,
g
t
−
1
]
T
(4)
c_t=\alpha[g_1,g_2,...,g_{t-1}]^T\tag{4}
ct=α[g1,g2,...,gt−1]T(4)
其中
g
1
,
g
2
,
.
.
.
,
g
t
−
1
g_1,g_2,...,g_{t-1}
g1,g2,...,gt−1为前面
t
−
1
t-1
t−1个全局状态(
g
i
∈
R
D
G
g_i\in R^{D_\mathcal{G}}
gi∈RDG),
W
α
∈
R
D
m
×
D
G
,
α
T
∈
R
(
t
−
1
)
,
c
t
∈
R
D
G
W_\alpha\in R^{D_{\mathcal{m}}\times D_{\mathcal{G}}},\alpha^T\in R^{(t-1)},c_t\in R^{ D_{\mathcal{G}}}
Wα∈RDm×DG,αT∈R(t−1),ct∈RDG.在公式2中,计算先前话语的先前全局状态表示的注意力分数(注意力机制)
α
\alpha
α.这会将较高的注意力得分分配给与
u
t
u_t
ut情感相关的话语。最终,在公式4中上下文向量
c
t
c_t
ct通过使用
α
\alpha
α池化先前的全局状态来计算.
现在,我们引入一个GRU单元
G
R
U
P
GRU_\mathcal{P}
GRUP,使用输出大小为
D
P
D_\mathcal{P}
DP的此单元并基于传入的话语
u
t
u_t
ut和上下文
c
t
c_t
ct来将当前说话者的状态
q
s
(
u
t
)
,
t
−
1
q_{s(u_t),t-1}
qs(ut),t−1更新到新状态
q
s
(
u
t
)
,
t
q_{s(u_t),t}
qs(ut),t:
q
s
(
u
t
)
,
t
=
G
R
U
P
(
q
s
(
u
t
)
,
t
−
1
,
(
u
t
⊕
c
t
)
)
(5)
q_{s(u_t),t}=GRU_\mathcal{P}(q_{s(u_t),t-1},(u_t\oplus c_t))\tag{5}
qs(ut),t=GRUP(qs(ut),t−1,(ut⊕ct))(5)
其中
W
P
,
h
{
r
,
z
,
c
}
∈
R
D
P
×
D
P
,
W
P
,
x
{
r
,
z
,
c
}
∈
R
D
P
×
(
D
m
+
D
G
)
,
b
P
{
r
,
z
,
c
}
∈
R
D
P
,
q
s
(
u
t
)
,
t
−
1
∈
R
D
P
W_{\mathcal{P,h}}^{\{r,z,c\}}\in R^{D_{\mathcal{P}}\times D_{\mathcal{P}}},W_{\mathcal{P,x}}^{\{r,z,c\}}\in R^{D_{\mathcal{P}}\times (D_{\mathcal{m}}+D_{\mathcal{G}})},b_\mathcal{P}^{\{r,z,c\}}\in R^{D_{\mathcal{P}}},q_{s(u_t),t-1}\in R^{D_{\mathcal{P}}}
WP,h{r,z,c}∈RDP×DP,WP,x{r,z,c}∈RDP×(Dm+DG),bP{r,z,c}∈RDP,qs(ut),t−1∈RDP.它将当前话语的信息及其上下文信息从全局GRU编码到说话者的状态
q
s
(
u
t
)
q_{s(u_t)}
qs(ut)中,这有助于进行情感分类。
Listener Update 聆听者的状态对因为说话者的话语而引起的聆听者状态进行建模,尝试了两种聆听者状态更新机制:
- 使聆听者的状态保持不变
∀ i ≠ s ( u t ) , q i , t = q i , t − 1 (6) \forall i\neq s(u_t),q_{i,t}=q_{i,t-1}\tag{6} ∀i=s(ut),qi,t=qi,t−1(6) - 引入另一个GRU单元
G
R
U
L
GRU_\mathcal{L}
GRUL基于聆听者的视觉线索(面部表情)
v
i
,
t
v_{i,t}
vi,t和上下文
c
t
c_t
ct来更新聆听者的状态:
∀ i ≠ s ( u t ) , q i , t = G R U L ( q i , t − 1 , ( v i , t ⊕ c t ) ) (7) \forall i\neq s(u_t),q_{i,t}=GRU_\mathcal{L}(q_{i,t-1},(v_{i,t}\oplus c_t))\tag{7} ∀i=s(ut),qi,t=GRUL(qi,t−1,(vi,t⊕ct))(7)
其中 v i , t ∈ R D V , W L , h { r , z , c } ∈ R D P × D P , W L , x { r , z , c } ∈ R D P × ( D V + D G ) , b L { r , z , c } ∈ R D P v_{i,t}\in R^{D_\mathcal{V}}, W_{\mathcal{L,h}}^{\{r,z,c\}}\in R^{D_{\mathcal{P}}\times D_{\mathcal{P}}},W_{\mathcal{L,x}}^{\{r,z,c\}}\in R^{D_{\mathcal{P}}\times (D_{\mathcal{V}}+D_{\mathcal{G}})},b_\mathcal{L}^{\{r,z,c\}}\in R^{D_{\mathcal{P}}} vi,t∈RDV,WL,h{r,z,c}∈RDP×DP,WL,x{r,z,c}∈RDP×(DV+DG),bL{r,z,c}∈RDP.当事人 i i i在时刻 t t t的的聆听者面部特征 v i , t v_{i,t} vi,t由Arriaga等人引入的模型来提取,在FER2013 数据集上预训练,其中特征尺寸 D V = 7 D_\mathcal{V}=7 DV=7.
事实证明,较简单的第一种方法就足够了,因为第二种方法在增加参数数量的同时会产生非常相似的结果。这是由于以下事实:听者只有在说话时才与对话相关,换句话说,沉默的一方在对话中没有影响力。总之,当一个当事人说话时,我们用包含有关所有先前讲话的信息的上下文 c t c_t ct来更新说话者的状态 q i q_i qi,无需显式更新聆听者的状态。见表2.
Emotion Representation (Emotion GRU) 我们从说话者的状态
q
s
(
u
t
)
,
t
q_{s(u_t),t}
qs(ut),t和先前话语的情感表示
e
t
−
1
e_{t-1}
et−1中推断话语
u
t
u_t
ut的情感相关表示
e
t
e_t
et.因为上下文对到来的话语
u
t
u_t
ut的情感非常重要,
e
t
−
1
e_{t-1}
et−1将来自其他当事人状态
q
s
(
u
<
t
)
,
<
t
q_{s(u_{<t}),<t}
qs(u<t),<t的经过微调的与情感相关的上下文信息反馈到情感表示
e
t
e_t
et中。这建立了说话者状态和和其他当事人状态的连接.因此用一个输出大小为
D
E
D_\mathcal{E}
DE的GRU单元
G
R
U
E
GRU_\mathcal{E}
GRUE来建模
e
t
e_t
et:
e
t
=
G
R
U
E
(
e
t
−
1
,
q
s
(
u
t
)
,
t
)
(8)
e_t=GRU_\mathcal{E}(e_{t-1},q_{s(u_t),t})\tag{8}
et=GRUE(et−1,qs(ut),t)(8)
其中
D
E
D_\mathcal{E}
DE是情感表示向量的大小.
e
{
t
,
t
−
1
}
∈
R
D
E
,
W
E
,
h
{
r
,
z
,
c
}
∈
R
D
E
×
D
E
,
W
E
,
x
{
r
,
z
,
c
}
∈
R
D
E
×
D
P
,
b
E
{
r
,
z
,
c
}
∈
R
D
E
e_{\{t,t-1\}}\in R^{D_\mathcal{E}}, W_{\mathcal{\mathcal{E},h}}^{\{r,z,c\}}\in R^{D_\mathcal{E}\times D_\mathcal{E}},W_{\mathcal{\mathcal{E},x}}^{\{r,z,c\}}\in R^{D_\mathcal{E}\times D_{\mathcal{P}}},b_\mathcal{E}^{\{r,z,c\}}\in R^{D_\mathcal{E}}
e{t,t−1}∈RDE,WE,h{r,z,c}∈RDE×DE,WE,x{r,z,c}∈RDE×DP,bE{r,z,c}∈RDE.
由于说话者状态从全局状态中获取信息,而全局状态充当了特定于说话者的话语表达,因此可以断言,通过这种方式,模型已经能够访问其他当事人的信息.但是,如消融研究(第5.6节)所示,情感GRU通过直接链接先前(所有?)当事人的状态来帮助提高性能。此外,我们认为说话者GRU和全局GRU( G R U P , G R U G GRU_\mathcal{P},GRU_\mathcal{G} GRUP,GRUG)的共同作用类似于编码器,而情感GRU充当解码器。
Emotion Classification 我们使用一个两层感知器和一个最终的softmax层从话语
u
t
u_t
ut的的情感表示
e
t
e_t
et中来计算
c
=
6
c=6
c=6个情感类别的概率,然后选取最有可能的情感类别:
l
t
=
R
e
L
U
(
W
l
e
t
+
b
l
)
(9)
l_t=ReLU(W_le_t+b_l)\tag{9}
lt=ReLU(Wlet+bl)(9)
P
t
=
s
o
f
t
m
a
x
(
W
s
m
a
x
l
t
+
b
s
m
a
x
)
(10)
\mathcal{P}_t=softmax(W_{smax}l_t+b_{smax})\tag{10}
Pt=softmax(Wsmaxlt+bsmax)(10)
y
t
^
=
arg max
i
(
P
t
[
i
]
)
(11)
\hat{y_t}=\argmax\limits_i(\mathcal{P}_t[i])\tag{11}
yt^=iargmax(Pt[i])(11)
其中
W
l
∈
R
D
l
×
D
E
,
b
l
∈
R
D
l
,
W
s
m
a
x
∈
R
c
×
D
l
,
b
s
m
a
x
∈
R
c
,
P
t
∈
R
c
W_l\in R^{D_l\times D_\mathcal{E}},b_l\in R^{D_l},W_{smax}\in R^{c\times D_l},b_{smax}\in R^c,\mathcal{P}_t\in R^c
Wl∈RDl×DE,bl∈RDl,Wsmax∈Rc×Dl,bsmax∈Rc,Pt∈Rc,
y
t
^
\hat{y_t}
yt^是话语
u
t
u_t
ut的预测标签.
Traing 我们使用分类交叉熵和L2正则化作为训练期间损失
L
L
L的量度:
L
=
−
1
∑
s
=
1
N
c
(
s
)
∑
i
=
1
N
∑
j
=
1
c
(
i
)
log
P
i
,
j
[
y
i
,
j
]
+
λ
∣
∣
θ
∣
∣
2
(12)
L=-\dfrac{1}{\sum\limits_{s=1}^Nc(s)}\sum\limits_{i=1}^N\sum\limits_{j=1}^{c(i)}\log\mathcal{P}_{i,j}[y_{i,j}]+\lambda||\theta||_2\tag{12}
L=−s=1∑Nc(s)1i=1∑Nj=1∑c(i)logPi,j[yi,j]+λ∣∣θ∣∣2(12)
其中
N
N
N是样本/对话的数量,
c
(
i
)
c(i)
c(i)是样本
i
i
i中话语的数量,
P
i
,
j
\mathcal{P}_{i,j}
Pi,j是对话
i
i
i中的话语
j
j
j的情感标签的概率分布,
y
i
,
j
y_{i,j}
yi,j是对话
i
i
i中的话语
j
j
j的期望类别标签,
λ
\lambda
λ是L2正则化权重,
θ
\theta
θ可训练的参数集合,其中:
θ
=
{
W
α
,
W
P
,
{
h
,
x
}
{
r
,
z
,
c
}
,
b
P
{
r
,
z
,
c
}
,
W
G
,
{
h
,
x
}
{
r
,
z
,
c
}
,
b
G
{
r
,
z
,
c
}
,
W
E
,
{
h
,
x
}
{
r
,
z
,
c
}
,
b
E
{
r
,
z
,
c
}
,
W
l
,
b
l
,
W
s
m
a
x
,
b
s
m
a
x
}
\theta=\{W_\alpha,W_{\mathcal{P},\{h,x\}}^{\{r,z,c\}},b_\mathcal{P}^{\{r,z,c\}},W_{\mathcal{G},\{h,x\}}^{\{r,z,c\}},b_\mathcal{G}^{\{r,z,c\}},W_{\mathcal{E},\{h,x\}}^{\{r,z,c\}},b_\mathcal{E}^{\{r,z,c\}},W_l,b_l,W_{smax},b_{smax}\}
θ={Wα,WP,{h,x}{r,z,c},bP{r,z,c},WG,{h,x}{r,z,c},bG{r,z,c},WE,{h,x}{r,z,c},bE{r,z,c},Wl,bl,Wsmax,bsmax}
我们使用基于随机梯度下降的Adam(Kingma and Ba 2014)优化器来训练我们的网络。超参数使用网格搜索进行优化(值被添加到补充材料中)。
3.4 DialogueRNN Variants
我们使用DialogueRNN(第3.3节)作为以下模型的基础:
- DialogueRNN + Listener State Update (DialogueRNNl) 根据生成的说话者状态 q s ( u t ) , t q_{s(u_t),t} qs(ut),t更新聆听者状态,如公式7所示
- Bidirectional DialogueRNN (BiDialogueRNN) 其类似与双向RNN,两个不同的RNN用于输入序列的前向和后向传递。RNN的输出按顺序级联.类似的在BiDialogueRNN中最终的情感表示包含在对话中分别通过前向和后向的DialogueRNN获取的过去和将来的话语的信息,这为情感分类提供了更好的上下文.
- DialogueRNN + attention (DialogueRNN+Att) 对每一个情感表示 e i e_i ei,注意力通过将他们与 e t e_t et(公式13,14)被应用于对话中整体的周围情绪表示.这提供了有关(基于注意力分数)未来话语和先前话语的上下文。
-
Bidirectional DialogueRNN + Emotional attention (BiDialogueRNN+Att) 对每一个BiDialogueRNN的情感表示
e
t
e_t
et,注意力被应用于对话的所有情感表示以捕获对话中其他话语的上下文:
β t = s o f t m a x ( e t T W β [ e 1 , e 2 , . . , e N ] ) (13) \beta_t=softmax(e_t^TW_\beta[e_1,e_2,..,e_N])\tag{13} βt=softmax(etTWβ[e1,e2,..,eN])(13)
e t ~ = β t [ e 1 , e 2 , . . , e N ] T (14) \tilde{e_t}=\beta_t[e_1,e_2,..,e_N]^T\tag{14} et~=βt[e1,e2,..,eN]T(14)
其中 e t ∈ R 2 D E , W β ∈ R 2 D E × 2 D E , e t ~ ∈ R 2 D E , β t T ∈ R N e_t\in R^{2D_\mathcal{E}},W_\beta\in R^{2D_\mathcal{E}\times2D_\mathcal{E}},\tilde{e_t}\in R^{2D_\mathcal{E}},\beta^T_t\in R^N et∈R2DE,Wβ∈R2DE×2DE,et~∈R2DE,βtT∈RN.此外, e t ~ \tilde{e_t} et~被送入两层感知器进行情感分类,如公式9,11所示
4 Experimental Setting
4.1 Datasets Used
使用两个情绪侦测数据集IEMOCAP和AVEC。将两个数据集均按照8:2的比例划分测试集和训练集并保证两个部分中没有说话者的交叉。下表为两个数据集中训练和测试集的分布.
IEMOCAP:包含十位不同的说话者进行的双向对话的视频,只有第一节到第四节的前八位说话者属于训练集.每个视频包含一个单一的二元对话,分割成话语。每一个话语被标记为六个情感标签中的一个,它们是快乐,悲伤,中立,愤怒,兴奋和沮丧.
AVEC:是 SEMAINE 数据集的修改,包含人类和人工智能体之间的相互作用。对话的每句话都带有四个真正有价值的情感属性:valence[-1,1],arousal[-1,1],expectancy[-1,1]和power[0,∞).注释在原始数据库中每0.2秒可用一次。但是,为了使注释适应我们的话语级别注释的需要,我们对话语范围内的属性进行了平均。
4.2 Baselines and State of the Art
- c-LSTM 用双向LSTM从周围话语捕获上下文以生成上下文感知话语表示。但是,此模型无法区分说话者
- c-LSTM+Att 在此变体中,在每个时间戳上通过公式13,14将注意机制应用于c-LSTM的输出,其为最终的话语表示提供了更好的上下文.
- TFN 这是针对多模态场景的。张量外积(Tensor outer product) 用于捕捉模态间和模态内的相互作用。这个模型没有从周围的话语中捕捉上下文。
- MFN 这是针对多模态场景的。该模型通过对特定于视图和跨视图的交互进行建模来利用多视图学习.与TFN相似,此模型不使用上下文信息。
- CNN 这与我们的文本特征提取器网络(第3.2节)相同,但不使用周围话语的上下文信息。
- Memnet 当前的话语被输入到一个记忆网络,其中的记忆与之前的话语相对应。记忆网络的输出用作情感分类的最终话语表示。
- CMN 这种最新的方法使用两个不同的GRU对两个说话者的对话历史来对话语的上下文进行建模.最后,通过将当前话语作为查询输入两个不同的记忆网络,为两个说话者获取话语表示。
4.3 Modalities
我们主要根据文本的模态来评估我们的模型。然而,为了证实我们的模型在多模态场景中的有效性,我们还对多模态特征进行了实验。
5 Results and Discussion
将 DialogueRNN 和它的变体与利用文本数据的基线进行了比较(见表2).DialogueRNN的表现优于所有其他的基线.
5.1 Comparison with the State of the Art
将DialogueRNN与最新的CMN模型在两个数据集上进行了文本模态的比较.
IEMOCAP 我们的模型平均以2.77%的准确性和3.76%的f1评分优于最新的CMN。我们认为这种增强是由于CMN和DialogueRNN之间的根本差异引起的:
- 公式5中用 G R U P GRU_\mathcal{P} GRUP来进行当事人状态建模
- 公式1和5中进行特定于说话人的话语处理
- 公式1中用 G R U G GRU_\mathcal{G} GRUG来进行全局状态计算
由于我们处理了六个不平衡的情感标签,因此我们还探索了单个标签的模型性能。DialogueRNN在6个情感类中的5个明显优于最先进的方法CMN。对于frustrated类别,DialogueRNN在F1得分上落后CMN 1.23%。我们认为DialogueRNN可以通过一个独立的分类器来超越CMN。但是,在表2中可以观察到,对于DialogueRNN而言,其他一些变体(如BiDialogueRNN)在frustrated类别中的表现已经优于CMN。
AVEC DialogueRNN在valence,arousal,expectancy,power属性方面优于CMN; 参见表2。对于所有四个属性,它产生的平均绝对误差(MAE)明显较低,而皮尔逊相关系数(r)则较高。我们认为这是由于当事人的状态和情感GRU的结合,这是CMN中缺失的
5.2 DialogueRNN vs. DialogueRNN Variants
- D i a l o g u e R N N l DialogueRNN_l DialogueRNNl: 使用显式聆听者状态更新所产生的性能比常规DialogueRNN稍差.然而,这一趋势的唯一例外是IEMOCAP的快乐情绪标签,其f1-score比DialogueRNN高出1.71% .我们推测,这是由于一个事实,即一个倾听者只有在他/她说话的时候才与谈话相关。而在DialogueRNN中,当一个当事人说话时,我们用包含前面所有话语的相关信息的上下文 c t c_t ct来更新他的状态 q i q_i qi,没有必要显式更新聆听者的状态.
- BiDialogueRNN:其从将来的话语中获取上下文,我们期望它能比DialogueRNN提高性能.这在表2中得到了证实,其中BiDialogueRNN在两个数据集中的平均表现均优于DialogueRNN。
- DialogueRNN+Attn:其也使用未来话语中的信息。但是,这里我们通过将过去和将来的话语与当前话语相匹配并计算它们的注意力得分来获取信息。这与情感上重要的上下文话语相关,比BiDialogueRNN产生更好的性能。与BiDialogueRNN相比,IEMOCAP的f1-分数提高了1.23%,并且MAE始终较低,而AVEC中的r较高。
- BiDialogueRNN+Attn:由于该设置通过处理来自BiDialogueRNN的情感表示来生成最终的情感表示,我们期望比BiDialogueRNN和DialogueRNN + Attn有更好的表现。这一点在表2中得到了证实,在这两个数据集上,该设置的性能通常比讨论的任何其他方法都要好
5.3 Multimodal Setting
由于IEMOCAP和AVEC数据集都包含多模态信息,我们对Hazarika等人使用和提供的DialogueRNN多模态特征进行了评估。按照Hazarika等人的方法,因为融合机制不是本文的重点,因此我们使用了单峰特征的串联作为融合方法。现在,正如我们可以在表3中看到的,DialogueRNN显著优于强基线和最先进的方法CMN。
5.4 Case Studies
对先前话语的依赖 DialogueRNN的一个重要组件是全局GRU G R U G GRU_\mathcal{G} GRUG的输出之上的注意力模块。图3b显示了与来自CMN模型的注意力向量相比,对与给定的测试话语的历史的注意力向量 α \alpha α(公式2).与CMN相比,我们模型的注意力更加集中:CMN的注意力得分偏低,导致分类错误。我们在不同的案例中观察到这种集中注意力的趋势,并认为它可以解释为置信度指标。在此示例中,PA的测试话语(44 turns )包含了情绪从中性到沮丧的变化。DialogueRNN 通过注意PA和PB在第41和42 turns 所说的话,进行了正确的预测。这两种话语提供了自我和双方的的影响,从而触发了情感的转变。但是,CMN无法捕捉到这种依赖性,并错误地预测了neutral类.
对未来的话语的依赖(BiDialogueRNN+Att) 图3a对一对夫妻之间的一段对话的情感表示 e t e_t et上的注意力向量 β \beta β进行了视觉化。对话中,女性(PA)最初是中立状态,而男性(PB)始终是生气的状态。该图表明,女性的情感注意力集中在其处于中立状态的时间内(大约在地1-16 turns ).例如在对话中,turns 5,7, and 8 strongly attend to turn 8(第5,7,8 turns 强烈的关注第8 turns ).,第5 turns 同时关注过去(第3 turns ) 和未来(第8 turns ).其他话语的相似趋势在未来话语和过去话语的情绪状态之间建立了相互依存关系。通过 G R U E GRU_\mathcal{E} GRUE对将来时话语的有益考虑在第6,9 turns 中也很明显。这些话语着眼于遥远的未来(第49,50 turns ),那里的男性处于愤怒状态,因此捕捉了跨时间的情感关联。虽然turn6在我们的模型中分类错误,它仍然设法推断出与正确状态(沮丧)相关的情绪状态(愤怒).我们将在5.5节中分析更多这种趋势。
Dependency on distant context 对于图3d中IEMOCAP测试集中的所有正确预测,我们对测试话语和第二高的attended话语在过去和未来的相对距离分布进行了总结.这揭示了下降趋势,其中依赖程度最高的是本地情况。然而很大一部分的测试话语(18%)关注距离他们自己20到40 turns的话语,这强调了长期情感依赖的重要作用.这种情况主要发生在保持特定情感语调且不会引起频繁情绪变化的对话中。图3c展示了长期上下文依赖的情况。所呈现的对话在整个对话中都保持着愉快的心情。然而第34 turn 包含句子’Horrible thing. I hated it.’,这似乎是负面的表达,但当从全局上下文来看,它会显示出说话者兴奋的情绪。为了消除此类情况的歧义,我们的模型考虑了过去的遥远话语(turn 11,14),这些话语是整个对话的语调基调的原型。
5.5 Error Analysis
预测中一个明显的趋势是相关情绪之间的交叉预测水平很高。此模型对happy情感的误分类大多数是误分类为excited类。同样anger和frustrated会彼此之间误分类。我们怀疑这是由于这些情感对之间的差异很微妙,导致难以消除歧义,另一个误报率高的类是中性类。造成这种情况的主要原因可能是在所考虑的情绪中的类别分布中占多数。
在对话级别,我们发现大量的错误出现在与早期turns中同一个当事人的情感相比有变化的turn中。
5.6 Ablation Study
6 Conclusion
感对之间的差异很微妙,导致难以消除歧义,另一个误报率高的类是中性类。造成这种情况的主要原因可能是在所考虑的情绪中的类别分布中占多数。
在对话级别,我们发现大量的错误出现在与早期turns中同一个当事人的情感相比有变化的turn中。
5.6 Ablation Study
6 Conclusion
我们提出了一种基于RNN的神经网络架构来检测对话中的情感。与最新的CMN相反,我们的方法将每一个输入的话语考虑到说话者的特种中,这为话语提供了更好的上下文。我们的方法被设计成可扩展到有两个以上发言人的多方环境中,我们计划在未来的工作中进行探索。