论文阅读--Real-Time Emotion Recognition via Attention Gated Hierarchical Memory Network.

Real-Time Emotion Recognition via Attention Gated Hierarchical Memory Network.

Wenxiang Jiao, Michael R. Lyu, Irwin King:
Real-Time Emotion Recognition via Attention Gated Hierarchical Memory Network. AAAI 2020: 8002-8009

Abstract

Real-time emotion recognition (RTER) 实时情感识别

BERT中没有未来上下文,因此谨慎地建立记忆库,捕捉历史上下文,适当地总结记忆,检索相关信息就变得至关重要。提出了一个注意力门控分层记忆网络(AGHMN)以解决下列前人研究存在的问题

  1. 前人普遍使用CNN来提取话语特征,这与记忆模块不兼容
  2. 单向GRU单元仅允许每一个历史话语拥有在此话与之前的上下文,这阻止了在相反方向上的信息传递
  3. 不论记忆库是如何建立的, 用于汇总(summarizing)的soft-attention丢失了记忆的位置信息和顺序信息.

具体来说, 提出了带有一个双向GRU(BiGRU)作为话语读取器以及一个用于历史话语交互的BiGRU融合层的分层记忆网络(HMN). 对应于记忆的汇总, 提出了一个Attention GRU (AGRU) , 在其中利用注意力权重来更新GRU的内部状态.

更进一步的提出了AGRU的双向变体(BiAGRU)来从最近的记忆中平衡上下文信息和远距离的记忆.

Introduction

话语是一个以呼吸和停顿为界的言语单位(Olson 1977)。

在RTER中,如果没有未来的上下文,利用历史话语中的上下文信息就变得至关重要。为此,需要注意两个因素:计算历史上下文的记忆库以及从记忆库中提取相关信息的查询汇总技术. 记忆库通常以两级方式构建,以模拟对话的层次结构, 即词语-话语和话语-对话.

本文贡献:

  1. 提出了分层记忆网络(HMN)来促进话语特征和记忆库的上下文信息的提取. HMN包含两层的GRU编码器, 分别是话语读取器和融合层. 话语读取器使用双向GRU来对每一个话语的单词序列建模, 这被证明与层次结构更加适配. 融合层采用一个双向GRU来读取历史话语,这使得它们之间可以进行足够的交互.
  2. 提出了Attention GRU(AGRU)来在汇总记忆时保留位置和顺序信息, 并改进其为双向的变体BiAGRU, 来捕获更加全面的上下文信息. AGRU是通过利用查询对记忆的注意力权重来更新常规GRU的内部状态而形成的。AGRU的最终隐藏状态用作上下文向量,以帮助优化查询的表示形式。BiAGRU致力于平衡来自最近的记忆和来自远距离记忆的信息。

Related Work

  • Text Classification.
  • Context-Dependent Models. 识别对话中说话者的情绪状态要求查询必须考虑上下文,以携带准确的信息。现有工作可以分为两个流:静态模型和动态模型。静态模型包括基于序列和基于图的 (Zhang et al. 2019;Ghosal et al. 2019). 前者让每个话语都有历史和未来的话语作为上下文。 cLSTM(Po-ria et al. 2017)仅使用LSTM来捕获话语间的序列关系. Hi-GRU (Jiao et al. 2019)引入了自注意力机制来进行上下文加权和汇总. BiDialogueRNN(Majumderet al. 2019)基于RNN方法在整个对话过程中跟踪当事人的状态,并使用此信息进行情感识别。动态模型按照语句生成的顺序读取语句,因此每个输入的语句,即查询语句,只依赖于历史语句。包括CMN(Hazarika et al. 2018b), DialogueRNN, and ICON (Hazarika et al. 2018a).

本模型异于其他模型在于通过提出的HMN产生更好的话语特征和记忆表征,并通过提出的AGRU和BiAGRU对记忆进行更好的汇总。我们没有像DialogueRNN那样明确区分说话者,但发现模型本身可以识别说话者之间的差异(见Case Study).

Task Specification

  • Real-Time Emotion Recognition. 假设对话已经进行了 t t t轮, 话语序列为 C t = { u 1 , u 2 , . . . , u t } \mathcal{C}_t=\{u_1, u_2, . . . , u_t\} Ct={u1,u2,...,ut}, 第 t t t个话语作为查询话语 q q q, 其他话语作为历史话语. 每个话语表达一个主要的情感 e e e, 其来自情感集合 E \mathcal{E} E. 目标是设计并训练一个模型 M \mathcal{M} M来预测一历史话语为条件的查询话语 q q q所表达的情感.

Architecture

包含Word Embedding层, 分层记忆网络, Attention GRU和一个分类器.

在这里插入图片描述

Word Embedding Layer

对话 C t \mathcal{C}_t Ct中的话语由单词序列 u t ′ = { w q , w 2 , . . . , w N } u_{t'}=\{w_q, w_2, . . . , w_N\} ut={wq,w2,...,wN}组成, 其中 t ′ ∈ [ 1 , t ] t'\in[1, t] t[1,t], N N N是话语的长度, w n ∈ u t ′ w_n\in u_{t'} wnut是单词在词汇表中的索引。话语被送入单词嵌入层以获得每个单词的密集向量 X ∈ R d w X\in R^{d_w} XRdw. 单词嵌入层的权重被初始化为使用来自谷歌新闻的1000亿个单词训练的300维的公开可用的300维的word2vec向量. word2vec词汇表中未包含的单词将通过随机生成的向量初始化。

Hierarchical Memory Network(HMN)

HMN是一个两层的编码器, 底层是话语读取器, 其上为融合层.

  • Utterance Reader.
    使用双向GRU. 其可以在两个方向上汇集每一个单词的上下文的同时对单词序列建模. 有助于充分理解句子. 双向GRU比使用 1-D CNN的表现更好(见表4). 具体来说, 双向GRU将表示使用词向量 X = { x n } n = 1 N X=\{x_n\}_{n=1}^N X={xn}n=1N表示的话语作为输入
    h → n = G R U → ( x n , h → n − 1 ) (1) \overrightarrow{h}_n=\overrightarrow{GRU}(x_n, \overrightarrow{h}_{n-1})\tag{1} h n=GRU (xn,h n1)(1)
    h ← n = G R U ← ( x n , h ← n + 1 ) (2) \overleftarrow{h}_n=\overleftarrow{GRU}(x_n, \overleftarrow{h}_{n+1})\tag{2} h n=GRU (xn,h n+1)(2)
    两个方向的隐藏状态被连接并提供给最大超时池化层(max-over-time pooling layer).
    结果向量 h ↔ \overleftrightarrow{h} h 接着通过tanh层被转换为话语嵌入 u ∈ R d 1 u\in R^{d1} uRd1 :
    h ↔ = m a x p o o l ( { [ h → n , h ← n ] } n = 1 N ) (3) \overleftrightarrow{h}=maxpool(\{[\overrightarrow{h}_n, \overleftarrow{h}_n]\}_{n=1}^N)\tag{3} h =maxpool({[h n,h n]}n=1N)(3)
    u = t a n h ( W u h ↔ + b u ) (4) u=tanh(W_u\overleftrightarrow{h}+b_u)\tag{4} u=tanh(Wuh +bu)(4)
  • Fusion Layer. 在第t步, 查询话语的表示来自于话语编码器 q t = u t q_t=u_t qt=ut. 对于每一个查询话语 q t q_t qt, 基于最近 K K K个历史话语建立一个记忆库 M t M_t Mt. 因为 K K K个话语保持一个顺序, 我们希望让它们彼此交互, 从而改进记忆的表示.如图2中显示的那样,考虑了两种类型的记忆库:
    • Unidirectional Fusion (UniF).首先使用单向GRU来读取这 K K K个话语来对他们之间的序列关系建模. 独立的话语嵌入 { u t − K − 1 + k } k = 1 K \{u_{t-K-1+k}\}_{k=1}^K {utK1+k}k=1K被送入GRU, 然后连接到GRU的输出来形成记忆库
      M t = { G R U → ( u t − K − 1 + k ) + u t − K − 1 + k } k = 1 K M_t=\{\overrightarrow{GRU}(u_{t-K-1+k})+u_{t-K-1+k}\}_{k=1}^K Mt={GRU (utK1+k)+utK1+k}k=1K
    • Bidirectional Fusion (BiF).单向记忆库仅允许每一个记忆拥有其之前的上下文, 这或许会妨碍信息从相反方向上的传递.为解决此问题, 提出了通过一个双向GRU来读取这 K K K个话语, 并结合输入和输出来成成记忆库:
      M t = { G R U ↔ ( u t − K − 1 + k ) + u t − K − 1 + k } k = 1 K M_t=\{\overleftrightarrow{GRU}(u_{t-K-1+k})+u_{t-K-1+k}\}_{k=1}^K Mt={GRU (utK1+k)+utK1+k}k=1K
      为简单起见,使用 G R U ↔ \overleftrightarrow{GRU} GRU 表示双向GRU两个方向隐藏输出的和.

Attention GRU(AGRU)

一般而言,对话中的查询话语依赖于对话的流动.因此权衡和汇总上下文以优化查询话语的表示至关重要. 这通常使用attention层来实现, 这允许查询与记忆库进行交互并产生上下文向量 c t c_t ct.

  • Context Weighting.注意层应该能够从记忆库中检索相关上下文,以帮助预测查询所表达的情感。为了衡量每个记忆对查询的重要性,采用了点积注意力以及softmax归一化. 作为结果, 在第 t t t步,第 k k k个记忆 M t , k M_{t,k} Mt,k的的权重将会是:
    a k = exp ⁡ ( q t T M t , k ) ∑ k ′ = 1 K exp ⁡ ( q t T M t , k ′ ) (5) a_k=\dfrac{\exp(q_t^TM_{t,k})}{\sum\limits_{k'=1}^K\exp(q_t^TM_{t,k'})}\tag{5} ak=k=1Kexp(qtTMt,k)exp(qtTMt,k)(5)

  • Context Summarizing. 按照惯例,上下文向量 c t c_t ct可以通过Soft Attention作为权重对记忆加权求和产生, 即 c t = ∑ k = 1 K a k M t , k c_t=\sum\limits_{k=1}^Ka_kM_{t,k} ct=k=1KakMt,k. 这种方法在计算上效率高,但就像才单词表示领域的词袋模型一样, 其丢失了记忆的位置和顺序信息. 因此提出了AGRU, 它使用查询对记忆的注意力权重来更新GRU的内部状态 h ~ t \tilde{h}_t h~t. 作为结果,AGRU的输出是:
    h k = a k ∘ h ~ k + ( 1 − a k ) ∘ h k − 1 (6) h_k=a_k\circ\tilde{h}_k+(1-a_k)\circ h_{k-1}\tag{6} hk=akh~k+(1ak)hk1(6)
    GRU对于保留记忆中的位置和顺序信息是有利的并且注意力权重控制传递到下一步的信息量. 使用AGRU的最终隐藏状态作为上下文向量, 即 c t = h K c_t=h_K ct=hK , 然后,优化的查询表示即输出将会是:
    o t = q t + c t (7) o_t=q_t+c_t\tag{7} ot=qt+ct(7)

    此外,考虑到RNN更好地表示最近的输入, 来自AGRU的上下文向量也倾向于携带更多关于最近记忆的信息. 因此,后向AGRU可以更好地表示远离查询的记忆. 因此改进AGRU为双向的变体 BiAGRU,在最近的记忆和遥远的记忆中取得平衡。相信BiAGRU能够从记忆库中捕获更全面的上下文,尤其是长对话。结果,BiAGRU产生的上下文向量表示为:
    c t f = A G R U → ( M t , K , a K , h → K − 1 ) (8) c_t^f=\overrightarrow{AGRU}(M_{t,K},a_K,\overrightarrow{h}_{K-1})\tag{8} ctf=AGRU (Mt,K,aK,h K1)(8)
    c t b = A G R U ← ( M t , 1 , a 1 , h ← 2 ) (9) c_t^b=\overleftarrow{AGRU}(M_{t,1},a_1,\overleftarrow{h}_{2})\tag{9} ctb=AGRU (Mt,1,a1,h 2)(9)
    类似地,它们用于优化查询表示。

Classifier

来自AGRU的查询的精确表示通过一个softmax层被用于预测:
y ^ t = s o f t m a x ( W o o t + b o ) (10) \hat{y}_t=softmax(W_oo_t+b_o)\tag{10} y^t=softmax(Woot+bo)(10)
其中, W o ∈ R d 1 × ∣ E ∣ , b o ∈ R ∣ E ∣ W_o\in R^{d_1\times|\mathcal{E}|},b_o\in R^{|\mathcal{E}|} WoRd1×E,boRE, ∣ E ∣ |\mathcal{E}| E表示情感类别数目.

使用交叉熵损失训练AGHMN,整个训练集的平均损失如下式:
L = 1 ∑ l = 1 L T l ∑ t = 1 T l ∑ e = 1 ∣ E ∣ y t e log ⁡ ( y ^ t e ) (11) \mathcal{L}=\dfrac{1}{\sum\limits_{l=1}^LT_l}\sum\limits_{t=1}^{T_l}\sum\limits_{e=1}^{|\mathcal{E}|}y_t^e\log(\hat{y}_t^e)\tag{11} L=l=1LTl1t=1Tle=1Eytelog(y^te)(11)
其中 T l T_l Tl是在第 l l l次对话中话语的数量, L L L是训练集中对话的总数, y t y_t yt表示目标情感标签的one-hot向量, y t e y^e_t yte y ^ t e \hat{y}^e_t y^te分别是情感 e e e y t y_t yt y t ^ \hat{y_t} yt^的元素.

Experimental Setup

  • Datasets.IEMOCAP和MELD

在这里插入图片描述

  • Compared Methods.四个AGHMN的变体包含不同的记忆库和AGRU的组合:UniF-AGRU, UniF-BiAGRU,BiF-AGRU, BiF-BiAGRU.基线
    • scLSTM
    • CMN
    • DialogueRNN
    • ICON
  • variants.
    • UniF-AGRU
    • UniF-BiAGRU
    • BiF-AGRU
    • BiF-BiAGRU

Results

  • variants.
    • UniF-AGRU
    • UniF-BiAGRU
    • BiF-AGRU
    • BiF-BiAGRU

Results

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值