Adapted Dynamic Memory Network for Emotion Recognition in Conversation

Xing S , Mai S , Hu H . Adapted Dynamic Memory Network for Emotion Recognition in Conversation[J]. IEEE Transactions on Affective Computing, 2020, PP(99):1-1.

Abstract

本文解决在多模态对话数据上的ERC问题. 心理证据表明, 自我和说话者之间的影响(self and inter-speaker influence)是谈话中情绪动态的两个主要因素. 最新的模型不能有效地综合这两个因素. 本文提出了一种适应性动态记忆网络(A-DMN), 其中对自身和说话者之间的影响进行了单独建模, 并针对当前话语进行了进一步综合.具体来说, 使用全局RNN捕捉对话者之间的影响来建模对话视频中话语的依赖关系. 同样, 为每个说话者分配一个RNN, 以捕捉他们的自我影响力. 然后, 设计了情节记忆模块以提取环境以获取自身和说话者之间的影响, 并对其进行综合以更新记忆. 此过程将自己重复多次, 直到获得精确的表示并将其用于最终预测. 此外, 本文在多模式ERC的背景下探索了跨模式融合 ,并提出了一种基于卷积的方法, 该方法在提取局部相互作用和计算效率方面都非常有效.

1 INTRODUCTION

本文关注多模态背景下的对话视频中的情绪识别, 其中文本、视觉和听觉模式可用于预测视频中的情绪. 先前的研究工作通常没有利用先进的融合技术来生成多模态话语表示. 相反, 他们使用连接的目的是专注于情绪检测模型的有效性. 关于特征融合的早期研究可以大致分为两类, 即早期融合后期融合. 前者使用各种模式的单模态表示的串联作为话语表示, 而后者则基于所有单独的模式进行暂定预测, 并使用投票机制得出最终结论. 这两种类型的融合方法无法有效地对模态间的动态进行建模, 并且已经过时. 近年来, 基于张量的融合方法的研究取得了很大进展, 并取得了令人瞩目的成绩. 然而, 基于张量的方法天生容易受到高计算复杂度的影响, 这使得它们不适用于对话视频中的情绪识别. 此外, 从直觉上讲, 表示的不同部分包含不同的信息方面, 这些信息需要单独提取. 基于张量的方法在整体水平上实现跨模态融合, 通常对此变化视而不见.

受cnn的启发, 我们采用卷积进行跨模态融合. 在最近对跨模态融合的研究中, 卷积被认为是一种很有前途的融合技术, 它直接将2D卷积应用于级联嵌入, 以探索跨模态相互作用. 我们扩展了这项工作, 并在两个阶段实现了跨模态融合:模式内卷积融合模式间卷积融合. 前者使用一维卷积处理单模态嵌入以探索模态间动态. 后者对前者的模内嵌入输出的级联进行二维卷积, 得到融合的多模态嵌入. 这样, 可以以更专业的方式探索模态内和模态间的动态. 在每次卷积操作中, 由滑动窗口(内核)构成的维度会相互交互, 并输出一个包含局部交互的维度. 跨模态交互可以发生在维度上相差很远的两个特征之间, 这意味着一个具有有限内核大小的卷积层可能不够. 因此, 在实践中, 我们堆叠多个卷积层来捕获这种类型的跨模态相互作用, 这导致了更好的实验性能. 将提出的融合方法称为分层卷积融合.

给定通过执行跨模态融合而产生的话语嵌入, 下游任务是建立一个模型, 该模型可以有效地对话语情感进行分类. 心理研究发现, 人类社交活动中的情绪受两个主要因素驱动:自我情绪影响和self emotional influence and mutual emotional influence. 自我影响和说话者之间的影响可以简要解释如下. 自我影响描述说话者对自己的影响, 这与情绪惯性有关, 这是一个心理概念, 描绘了人们的情感从一瞬间传递到另一瞬间的程度(表示,尽管受到对方的影响, 对话者的情绪仍保持不变的程度). 说话者之间的影响对应于情感传染, 即说话者之间相互施加的情感影响. 然而, CMN及其扩展并没有跟踪说话者的时间个体状态, 并利用它们来进行更精确的预测. DialogueRNN最终的情感表示不能像在CMN和ICON中那样使用多跳来细化, 因为如果状态信息包含不希望的噪声, 则会使模型倾向于模型偏差.

近年来, 针对问答问题(QA)提出了动态记忆网络(DMN), 显示出了足够的推理能力. DMN是一个高度通用的框架, 由四个主要模块组成:输入模块问题模块分别计算输入和问题的表示;情节记忆模块, 基于问题表示和先前的记忆从输入中检索相关信息;回答模块, 针对给定的最终记忆向量和问题生成回答. DMN的简单示意图如图1所示. 多模式ERC与QA任务相似, 因为它们都需要高水平的推理能力. 在一般的QA任务中, 机器需要基于给定的问题理解和推理输入(无论以何种形式)并产生一个回答. 同样, 多模态ERC需要充分理解对话内容, 对对话中的信息进行推理, 并推断目标话语的情感. 由于DMN体系结构的高度灵活性, 本文对其进行了调整, 以适应多模态ERC任务, 并解决了当前ERC模型的问题. 具体来说, 我们在自适应动态记忆网络(A-DMN)中开发了四个模块,即话语模块, 状态模块, 情节记忆模块和推理模块.

  • 话语模块使用提出的融合方法计算话语的表示, 这为说话人和全局状态信息的检索和合成提供了基础.
  • 状态模块中, 将话语序列输入到一个全局双向RNN中生成全局状态序列, 捕获说话者之间的相互依赖关系.同时, 我们为每个说话者分配一个RNN单元, 并在说话时更新相应说话者的状态, 从而对每个说话者的自我影响进行单独建模. 不同于反复学习讲话者和全局状态,我们将它们分别建模, 并将它们视为“事实”的两个来源, 根据当前话语从中检索相关信息, 并将它们进一步融合在后续的模块中.
  • 情景记忆模块是我们框架的核心, 它利用先前的记忆表示和来自状态模块的输入信息(???状态模块输入到情景记忆模块的信息???)迭代地更新记忆. 具体而言, 通过注意机制从说话者/全局状态序列中生成了两个上下文向量, 分别对应自我和说话者间的影响. 这两个上下文向量通过连接和仿射变换融合, 从而可以探索它们的相互依赖性, 并同时投射到与先前记忆相同的空间. 融合的上下文现在包含有用的自我和说话者之间的依赖信息, 然后将其输入GRU以更新记忆. 通过这种方式, 包含来自全局状态和当事人状态的所有需要的信息的记忆可以使用多次传递(迭代)来细化, 这样就可以在每次传递时合并新的信息, 并过滤掉状态信息中不需要的噪声. 此外, 记忆的更新严格面向当前的话语, 因为用于更新记忆的上下文向量是根据当前的话语来提取的.
  • 推理模块接收最终迭代的记忆以对当前话语的情绪进行分类.

提出的A-DMN主要将自身和说话者之间的影响表达为两个独立的状态序列, 并通过多次迭代从中综合与当前话语情绪相关的信息. 模型是从DMN改编而成的, 从而确保了足够的推理能力.

  • 本文探索了在多模态ERC背景下各种模态的跨模态融合, 填补了当前ERC模型的研究空白. 提出了一种基于卷积的融合方法, 与主流融合方法相比, 该方法能够局部提取跨模态的相互作用. 它在时间复杂度方面也是有效的.
  • 标准动态记忆网络(DMN)可以适用于解决多模态ERC问题, 它有效地建模了自依赖性和说话者间依赖性. 还开发了记忆模块, 使这两种类型的依赖可以通过多次迭代面向目标话语合成.

2 RELATEDWORK

2.1 motion Recognition in Conversation

CMN与本方法的区别

  1. 使用记忆网络的主要目的是不同的.

    • 在CMN中, 记忆网络的目的是解决RNN在上下文学习的长期汇总中的功能不足.
    • 本文使用记忆网络主要是为了使系统能够逐步优化面向查询话语的上下文向量.
  2. CMN受端到端记忆网络的启发;而本文利用ERC与QA任务的相似特性, 适应动态记忆网络的通用架构, 并在类似QA的情况下提出ERC问题, 这也导致结构和实现上的差异.
  3. CMN主要用于二元对话中的情感识别, 而A-DMN主要用于多方对话.

在本文中, 使用从整个对话中生成的全局状态来模拟说话者之间的影响. 应该注意的是, ICON和DialogueRNN也采用了全局记忆的概念. 然而, 我们的全局状态在形式上与它们不同. ICON使用共享的GRU在单个说话者的记忆上建立全局记忆, DialogueRNN使用全局GRU编码测试话语和说话者当前状态的串联, 从而循环更新全局状态和单个当事人的状态. 综上所述, 他们在个体状态记忆的基础上学习全局记忆. 相比之下, 我们分别对这两条信息线(说话者和全局状态)进行建模, 其中前者是根据说话者特定的话语生成的, 而后者则是从整个对话中进行编码的.

2.2 Memory Networks

记忆网络, 它包含一个具有共享读写功能的全局记忆, 被提出用于长期依赖学习和语言建模. 研究表明, RNN体系结构在长期依赖建模能力方面是有限的. 动态记忆网络(DMN)采用神经序列模型进行输入表示, 注意力和响应机制来捕获位置和时间, 从而适用于更广泛的场景.

2.3 Multimodal Fusion

较早的多模态融合方法分为特征级融合和决策级融合两大类, 分别称为早期融合和晚期融合. 最近提出的融合方法主要有多视角学习方法、词级融合方法和张量融合.

3 TASK DEFINITION

假设一场对话中有KKK个说话者参与, 表示为s1,s2,...,sKs_1,s_2,...,s_Ks1​,s2​,...,sK​, 对话视频VVV包含lVl_VlV​个话语, 以时间顺序排列为U=[u1,u2,...,ulV]U=[u_1,u_2,...,u_{l_V}]U=[u1​,u2​,...,ulV​​]. 任务是预测构成的话语的情感标签, 即ui,i∈[1,lV]u_i,i\in[1,l_V]ui​,i∈[1,lV​]由sm(ui)s_{m(u_i)}sm(ui​)​说出. ui∈RDuu_i\in R^{D_u}ui​∈RDu​ 是由下面描述的话语模块获得的话语的表示.

4 ALGORITHM

与QA任务类似, ERC系统要求具有高层次的推理能力, 以理解人类对话的内容并寻找可自动准确分类当前话语的线索. 但是, ERC任务在本质上与QA不同, 因为它是分类问题, 而QA是生成问题(生成问题的答案). 因此, 标准DMN(参见图1)不适用于ERC任务, 需要进行调整. 心理学证据表明, 对话中的情感动态是由说话者自身和说话者之间的影响所驱动的, 因此, 我们从这两个因素中寻找线索来预测话语的情感标签. 我们将对话视为输入数据, 并将其编码为关于自身和说话者之间依存关系的两组“事实”, 将从中检索有用的信息以对情绪进行分类. 这种适应性赋予了我们的ERC任务模型足够的推理能力, 并且通过精心设计, 我们的A-DMN可以解决现有ERC模型存在的问题. 具体来说, 我们在改编的DMN中开发了四个模块. 它们是状态模块, 话语模块, 情景记忆模块和推理模块. 状态模块将整个对话作为输入数据, 并生成两个事实源, 其特征是自我依赖和说话者间依赖. 话语模块计算给定三种单模态表示的话语的表示, 为此我们引入了层次卷积融合. 情景记忆模块由标准DMN两个子模块组成, 即注意机制和记忆更新机制. 后者使用先前的episode记忆和所检索的上下文来更新记忆表示. 推理模块对目标语的情感进行推理. 见图2.

4.1 Utterance Module

话语模块等效于DMN中的问题模块. 它计算给定文本、视觉和听觉三种单模态的话语表征. 与四个模块彼此独立的标准DMN相反, 在A-DMN中, 状态模块依赖于话语模块. 这是因为, 在QA任务中, 外部信息是给定的(例如, 视觉问题回答中的图像和文本问题回答中的文本), 为搜索有用信息提供了一个固定而快速的范围,而在ERC任务中, 除了视频的组成语句外, 不提供这样的外部信息, 并且机器需要从所有的语句中从头提取有用的信息. 因此, 为了便于描述, 在状态模块之前引入了话语模块.

假设有对应于文本,声音,视觉的三种模态的单模态表示 xt∈RDt,xa∈RDa,xv∈RDvx_t\in R^{D_t},x_a\in R^{D_a},x_v\in R^{D_v}xt​∈RDt​,xa​∈RDa​,xv​∈RDv​. 该模块的目的是通过充分利用三个单模态表示来计算话语表示, 以便可以探索和有效利用互补信息. 直观地说, 单模态表示中描述信息的不同方面和跨模态融合的不同部分(维度)应该在局部(local)进行探索, 以便以更专门的方式处理跨模态交互. 随着CNN的深度增长, 接收域逐渐变宽, 最终生成一个从更广视角汇总信息的特征映射. 我们借鉴了卷积的思想, 并在两个阶段进行了跨模态融合:模态内卷积融合和模态间卷积融合. 见图3. 首先, 通过仿射变换将三个单模态表示投影到同一空间:
xm′=Wmxm(1)x'_m=W_mx_m\tag{1}xm′​=Wm​xm​(1)
其中 Wm∈RDu′×DmW_m\in R^{D'_u\times D_m}Wm​∈RDu′​×Dm​ 是一个参数矩阵, m∈(t,a,l)m\in(t,a,l)m∈(t,a,l) 是指定模态的索引. xm′∈RDu′x'_m\in R^{D'_u}xm′​∈RDu′​是关于模态 mmm 的投影嵌入. 在模态内卷积融合阶段,对 xm′x'_mxm′​ 使用1D卷积层来产生捕获了模态 mmm 的模态内动态的嵌入 xm′′x''_mxm′′​. 仅使用一个卷积层, 因为在下一阶段应用的2D卷积可以在某种程度上补偿模态内动态学习. 在模态间卷积融合阶段, 首先将第一阶段输出的嵌入连接起来形成多模态嵌入.
M=[xt′′;xa′′;xv′′](2)M=[x''_t;x''_a;x''_v]\tag{2}M=[xt′′​;xa′′​;xv′′​](2)
其中 ‘;’ 表示向量的水平级联, M∈RDu′×3M\in R^{D'_u\times3}M∈RDu′​×3 是多模态嵌入. 在模态间卷积融合阶段,在多模态嵌入 MMM 上使用一层2D卷积层, 这样模态间的交互可以在滑动窗口中被局部的探索,其中滑动窗口的大小为3×33\times33×3, 步长为1. 为了使融合能够从更广阔的视角捕捉信息, 通过叠加多个卷积层来扩大接收域. 根据经验, 使用3个卷积层, 因为它在不引入过多计算的情况下产生令人满意的结果. 经过卷积融合技术, 对第ttt个话语的包含了跨模态交互的融合嵌入 ut∈RDuu_t\in R^{D_u}ut​∈RDu​ 就产生了.

State Module

该模块的目的是为两个关键因素建模, 即情感惯性和情感传染(emotion inertia and emotion contagion). 在标准DMN中, 输入模块将输入数据(例如图像或文本)编码为一组事实, 以供记忆组件检索相关信息, 如图1所示. 状态模块是输入状态的等效组件, 将对话作为输入数据, 并将其编码为全局和说话者的个人状态, 分别捕获说话者之间的影响和自我影响. 这两个状态信息来源被视为事实, 以便下面的模块检索有价值的信息. 本文并不是循环地学习这两种状态, 而是通过将会话作为一个整体进行编码, 将它们表示为两个独立的状态序列.

考虑到构成话语的时间依赖性, 为了对说话者之间的影响进行建模, 采用了一个全局RNN单元来处理整个话语序列 U=[u1,u2,...,ulV]U=[u_1,u_2,...,u_{l_V}]U=[u1​,u2​,...,ulV​​], 而无论说话者是谁. 实际上, 在一个时序的话语中, 前面的话语可以预测后面的话语, 而随后的话语则形成对前一个话语的回应. 因此, 这些话语在两个方向上相互关联. 在实践中, 我们使用双向LSTM层对这种相互依赖性进行建模(说话者之间的影响??). 这与标准DMN一致, 在标准DMN中, 事实是使用双向RNN(通常是双向GRU)生成的, 以处理输入数据.

由于前向传递和后向传递是相同的, 但分别用两组平行可学习参数计算, 因此只给出前向传递的方程.
it=σ(Wiut+Uih→t−1+bi)ft=σ(Wfut+Ufh→t−1+bf)ot=σ(Wout+Uoh→t−1+bo)c~t=tanh(Wcut+Uch→t−1+bc)ct=ft⊙ct−1+it⊙c~th→t=ot⊙tanh(ct)(3-8)\begin{array}{l} i_t=\sigma(W_iu_t+U_i\overrightarrow{h}_{t-1}+b_i)\\ f_t=\sigma(W_fu_t+U_f\overrightarrow{h}_{t-1}+b_f)\\ o_t=\sigma(W_ou_t+U_o\overrightarrow{h}_{t-1}+b_o)\\ \tilde{c}_t=tanh(W_cu_t+U_c\overrightarrow{h}_{t-1}+b_c)\\ c_t=f_t\odot c_{t-1}+i_t\odot\tilde{c}_t\\ \overrightarrow{h}_t=o_t\odot tanh(c_t) \end{array}\tag{3-8}it​=σ(Wi​ut​+Ui​ht−1​+bi​)ft​=σ(Wf​ut​+Uf​ht−1​+bf​)ot​=σ(Wo​ut​+Uo​ht−1​+bo​)c~t​=tanh(Wc​ut​+Uc​ht−1​+bc​)ct​=ft​⊙ct−1​+it​⊙c~t​ht​=ot​⊙tanh(ct​)​(3-8)
将两个方向上的隐藏状态串联起来作为第ttt个话语utu_tut​的最终的隐藏状态:ht=[h→t;h←t]∈R2Dhh_t=[\overrightarrow{h}_t;\overleftarrow{h}_t]\in R^{2D_h}ht​=[ht​;ht​]∈R2Dh​, 话语utu_tut​最终的隐藏状态包含了话语utu_tut​与在整个对话序列中在其之前/之后的对应话语的相互依赖. 将所有与所有话语相关的连接后的隐藏状态收集在一起, 形成全局状态序列: HG=[h1,h2,...,hlV]∈R2Dh×lVH_G=[h_1,h_2,...,h_{l_V}]\in R^{2D_h\times l_V}HG​=[h1​,h2​,...,hlV​​]∈R2Dh​×lV​, 理想情况下其可以捕获说话者之间的依赖关系.

为了建模对话中每个说话者的自我依赖, 为每一个说话者分配一个LSTM单元 LSTMλ,λ∈[1,K]LSTM_\lambda,\lambda\in[1,K]LSTMλ​,λ∈[1,K] 来监视他们的情绪状态. 在一个由KKK个说话者参与的对话中, 只有当LSTMλLSTM_\lambdaLSTMλ​对应的说话者sλs_\lambdasλ​说了话, 其才会起作用. 对于由说话者sm(ut)s_{m(u_t)}sm(ut​)​说出的话语utu_tut​,将其送入相应的LSTM单元中来更新说话者的状态:
hsm(ut),t=LSTMm(ut)(ut,hsm(ut),t−1)(9)h_{s_{m(u_t)},t}=LSTM_{m(u_t)}(u_t,h_{s_{m(u_t)},t-1})\tag{9}hsm(ut​)​,t​=LSTMm(ut​)​(ut​,hsm(ut​)​,t−1​)(9)
其中hsm(ut),t∈RDh′h_{s_{m(u_t)},t}\in R^{D_{h'}}hsm(ut​)​,t​∈RDh′​ 是说话者sm(ut)s_{m(u_t)}sm(ut​)​的更新后的说话者状态. 当有话语被说出时, 除相应的说话者外, 其他所有参与者的状态都保持不变. 和以前一样, 将每个说话者的所有时间状态进行分组, 即,Hλ=[hsλ,1,hsλ,2,...,hsλ,lV]∈RDh′×lVH_\lambda=[h_{s_\lambda,1},h_{s_\lambda,2},...,h_{s_\lambda,l_V}]\in R^{D_{h'}\times l_V}Hλ​=[hsλ​,1​,hsλ​,2​,...,hsλ​,lV​​]∈RDh′​×lV​ 以形成说话者sλ,λ∈[1,K]s_\lambda,\lambda\in[1,K]sλ​,λ∈[1,K]的说话者状态, 理想情况下, 它捕获了sλs_\lambdasλ​的自我依赖. 在实践中, 在说话者之间共享LSTM的参数以减少复杂性.

总而言之, 状态模块将话语模块生成的话语表示序列作为输入, 并产生两个状态信息源, 即全局状态HGH_GHG​ 和说话者状态Hλ,λ∈[1,K]H_\lambda,\lambda\in[1,K]Hλ​,λ∈[1,K], 分别描绘了说话者间的影响和自我的影响. 下面的模块以可理解的方式综合这两行状态信息, 这些状态信息取决于目标语句.

4.3 Episodic Memory Module

情景记忆模块的功能类似于标准DMN中的对应功能, 是本文方法论的核心. 在标准DMN中, 记忆组件检索从输入模块产生的输入事实中获取的信息, 这些信息被认为与当前问题相关. 相比之下, 在A-DMN中, 将状态模块中的全局状态和说话者状态视为两个独立的事实, 并使用情景记忆模块从中检索有用的依赖信息. 与标准DMN一样, 情景存储器模块具有两个组件, 即注意机制和记忆更新机制. 为了满足ERC的任务, 提出了结构和具体实现上的差异.

4.3.1 Single-pass Episodic Memory

首先详细说明单层记忆, 因为它是最基本的版本. 考虑到该模块的目标是生成一个包含所有相关信息以“回答”目标话语情绪的记忆向量, 可以理解, 目标话语需要作为记忆的基础来对待. 因此, 我们将记忆初始化为目标话语表示, 即m0,t=utm_{0,t}=u_tm0,t​=ut​. 这样, 从说话者自身和说话者之间的影响中自主地收集到面向话语的有用信息.

Attention Mechanism:在标准DMN中, 情景记忆模块通过构造一个包含事实, 问题和记忆之间相似性的复杂向量, 并通过两层MLP将其映射到一个门中, 为每个事实计算门(标量). 每一个门都说明了事实对问题的重要性. 然后使用基于注意力的GRU和相应的门来计算事实的上下文. 通过实验, 发现为全局/说话者状态序列中的状态计算注意门并通过这种方式来公式化上下文向量效率低下, 并且不会导致令人满意的结果. 因此, 我们采用一种更简单的方法来计算状态序列上的注意力得分, 并将上下文向量计算为状态的加权和.

对于话语utu_tut​, 计算全局状态和sm(ut)s_{m(u_t)}sm(ut​)​的说话者状态的上下文向量. 用于计算全局状态区域上下文的公式如下:
at=m0,tTV1HGαt=softmax(at)cG,t=HGαtT(10-12)\begin{array}{l} a_t=m_{0,t}^TV_1H_G\\ \alpha_t=softmax(a_t)\\ c_{G,t}=H_G\alpha_t^T \end{array}\tag{10-12}at​=m0,tT​V1​HG​αt​=softmax(at​)cG,t​=HG​αtT​​(10-12)
其中V1∈RDu×2DhV_1\in R^{D_u\times2D_h}V1​∈RDu​×2Dh​ 是可学习的参数矩阵, at∈R1×lVa_t\in R^{1\times l_V}at​∈R1×lV​是一个行向量, 每个条目表示全局状态序列中一个状态的重要性得分. 公式10使用一种简单的注意机制, 计算全局状态中所有话语的重要性得分, 该机制指出目标话语如何在说话者之间的影响中发挥其作用. 公式11使用softmax层对注意力得分进行归一化. 公式12建立了以说话者之间影响为特征的上下文向量cG,t∈R2Dhc_{G,t}\in R^{2D_h}cG,t​∈R2Dh​, 该向量具有全局状态序列中状态的加权和, 从而获取与目标话语相关的说话者之间的依赖信息.

sm(ut)s_{m(u_t)}sm(ut​)​的说话者状态的上下文向量以类似的方式生成. 由于说话者在整个对话过程中的情绪是相对一致的(由于情绪惯性), 尽管存在通常来自其他参与者的外部刺激, 所以提取与当前话语相关的讲话者状态是合理的. 为此, 我们首先计算sm(ut)s_{m(u_t)}sm(ut​)​的说话者状态序列上的重要性得分, 对重要性得分向量进行归一化, 最后计算出它们的加权和作为sm(ut)s_{m(u_t)}sm(ut​)​的说话者状态的上下文向量, 其将相关的自我依赖信息汇总到当前话语中.
bt=m0,tTV2Hm(ut)βt=softmax(bt)cm(ut),t=Hm(ut)βtT(13-15)\begin{array}{l} b_t=m_{0,t}^TV_2H_{m(u_t)}\\ \beta_t=softmax(b_t)\\ c_{m(u_t),t}=H_{m(u_t)}\beta_t^T \end{array}\tag{13-15}bt​=m0,tT​V2​Hm(ut​)​βt​=softmax(bt​)cm(ut​),t​=Hm(ut​)​βtT​​(13-15)
其中, cm(ut),t∈RDh′c_{m(u_t),t}\in R^{D_{h'}}cm(ut​),t​∈RDh′​ 是生成的话语utu_tut​的自我影响上下文.

Memory Update Mechanism:现在, 基于目标话语产生了说话者之间和自我影响的上下文, 下一步是将它们综合到记忆更新组件中. 与仅基于编码事实生成一个上下文向量的标准DMN相反, 我们有两个上下文向量(关于自身/说话者之间的影响). 因此, 在使用这两个上下文更新记忆之前, 必须对它们进行综合. 在实践中, 我们将这两个上下文向量 cG,t,cm(ut),tc_{G,t},c_{m(u_t),t}cG,t​,cm(ut​),t​ 连接起来, 并应用线性变换将其映射回与初始记忆向量相同的空间. 从经验上讲, 上下文向量和话语表示的连接不会导致明显的性能提升. 据推测, 这是因为自我依赖和说话者间依赖的上下文已经包含了预测目标话语情感所需的所有信息, 而话语表示的引入可能导致模型过度拟合. 像在标准DMN中一样, 将合成的上下文输入到GRU单元中以更新情节记忆.
e1,t=Wm(cG,t⊙cm(ut),t)+b(16)e_{1,t}=W_m(c_{G,t}\odot c_{m(u_t),t})+b\tag{16}e1,t​=Wm​(cG,t​⊙cm(ut​),t​)+b(16)
m1,t=GRU(e1,t,m0,t)(17)m_{1,t}=GRU(e_{1,t},m_{0,t})\tag{17}m1,t​=GRU(e1,t​,m0,t​)(17)
其中 Wm∈RDu×(2Dh+Dh′),bW_m\in R^{D_u\times(2D_h+D_{h'})},bWm​∈RDu​×(2Dh​+Dh′​),b都是可学习的参数, m1,tm_{1,t}m1,t​是包含了与目标话语utu_tut​相关的自我依赖和说话者间依赖的相关信息的更新后的记忆向量.与将初始GRU状态设置为问题表示形式的标准DMN相比, 发现将GRU状态初始化为utu_tut​时, 本系统容易过拟合. 因此, GRU的隐藏状态被初始化为零.

4.3.2 Multi-pass Episodic Memory

通常, 状态模块生成的状态信息可能包含不希望的噪声. 这可能由于各种原因而发生, 例如, 状态模块中LSTM的固有局限性, 参与者对先前话语的反应偏见等. 此外, 对有用状态信息的搜索通常不能一次完成. 通常, 机器需要在生成记忆更新后检查状态信息, 并合并新发现的相关信息. 因此, 我们引入了多通道(multi-pass)的情景记忆, 它在多个pass中更新记忆表示, 从而获得更多的精炼记忆. 在每一个pass中, 噪声可以被过滤掉, 而新的有用信息可以被合并, 从而逐步改善记忆.

每一次pass的操作与单次pass的版本完全相同. 假设记忆模块实现了HHH个pass, 取第iii个pass
(i∈[1,H])(i\in[1,H])(i∈[1,H])来说明此过程:
ati=mi−1,tTV1HGαti=softmax(ati)cG,ti=HG(αti)T(18)\begin{aligned} a_t^i=m_{i-1,t}^TV_1H_G\\ \alpha_t^i=softmax(a^i_t)\\ c^i_{G,t}=H_G(\alpha_t^i)^T \end{aligned}\tag{18}ati​=mi−1,tT​V1​HG​αti​=softmax(ati​)cG,ti​=HG​(αti​)T​(18)
bti=mt−1,tTV2Hm(ut)βti=softmax(bti)cm(ut),ti=Hm(ut)(βti)T(19)\begin{array}{c} b_t^i=m_{t-1,t}^TV_2H_{m(u_t)}\\ \beta_t^i=softmax(b_t^i)\\ c_{m(u_t),t}^i=H_{m(u_t)}(\beta_t^i)^T \end{array}\tag{19}bti​=mt−1,tT​V2​Hm(ut​)​βti​=softmax(bti​)cm(ut​),ti​=Hm(ut​)​(βti​)T​(19)
ei,t=Wm(cG,ti⊙cm(ut),ti)(20)e_{i,t}=W_m(c^i_{G,t}\odot c_{m(u_t),t}^i)\tag{20}ei,t​=Wm​(cG,ti​⊙cm(ut​),ti​)(20)
mi,t=GRU(ei,t,mi−1,t)(21)m_{i,t}=GRU(e_{i,t},m_{i-1,t})\tag{21}mi,t​=GRU(ei,t​,mi−1,t​)(21)
其中V1,V2,bV_1,V_2,bV1​,V2​,b是所有pass共享的可学习参数. 在H个pass之后,最终更新的记忆mH,tm_{H,t}mH,t​包含包含与对话语utu_tut​进行分类有关的所有状态信息, 它被馈送到推理模块进行最终预测. 请注意, 本模型中, 记忆不是基于每个说话者来维护的, 而是基于每个话语来维护的.

4.4Inference Module

情景记忆模块计算每一个话语utu_tut​的最终的记忆表示mH,t,t∈[1,lV]m_{H,t},t\in[1,l_V]mH,t​,t∈[1,lV​]. 在推理模块将最终的记忆mH,tm_{H,t}mH,t​重写为mtm_tmt​, 并将所有构成话语的最终记忆表示组合在一起:
MV=[m1,m2,...,mlV](22)M_V=[m_1,m_2,...,m_{l_V}\tag{22}]MV​=[m1​,m2​,...,mlV​​](22)
其中MV∈RDu×lVM_V\in R^{D_u\times l_V}MV​∈RDu​×lV​包含与视频VVV的组成话语有关的所有记忆向量的序列. 使用各自的最终记忆向量对话语进行分类:
E=f(We1MV)(23)E=f(W_{e1}M_V)\tag{23}E=f(We1​MV​)(23)
I=softmax(We2E)(24)I=softmax(W_{e2}E)\tag{24}I=softmax(We2​E)(24)
其中,We1,We2W_{e1},W_{e2}We1​,We2​ 是可学习参数. fff 是一个函数, 包含非线性双曲正切, 然后是一个衰减率设置为0.5的衰减层(dropout), NNN表示类别数目. I∈RN×lVI\in R^{N\times l_V}I∈RN×lV​表示所有话语U=[u1,u2,..,ulV]U=[u_1,u_2,..,u_{l_V}]U=[u1​,u2​,..,ulV​​]的最终推断.
包含非线性双曲正切, 然后是一个衰减率设置为0.5的衰减层(dropout), NNN表示类别数目. I∈RN×lVI\in R^{N\times l_V}I∈RN×lV​表示所有话语U=[u1,u2,..,ulV]U=[u_1,u_2,..,u_{l_V}]U=[u1​,u2​,..,ulV​​]的最终推断.

论文阅读--Adapted Dynamic Memory Network for Emotion Recognition in Conversation相关推荐

  1. Text to image论文精读 DM-GAN: Dynamic Memory Generative Adversarial Networks for t2i 用于文本图像合成的动态记忆生成对抗网络

    Text to image论文精读 DM-GAN: Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis ...

  2. 论文阅读 [TPAMI-2022] Locally Connected Network for Monocular 3D Human Pose Estimation

    论文阅读 [TPAMI-2022] Locally Connected Network for Monocular 3D Human Pose Estimation 论文搜索(studyai.com) ...

  3. 论文阅读—Relation-Aware Graph Attention Network for Visual Question Answering

    论文阅读-Relation-Aware Graph Attention Network for Visual Question Answering 一.标题 用于视觉问答的关系感知图注意力网络 二.引 ...

  4. 论文阅读2 Dynamic Routing Between Capsules

    论文阅读<2> Dynamic Routing Between Capsules Abstract 1 Introduction 2 How the vector inputs and o ...

  5. 《论文阅读》EmoBERTa: Speaker-Aware Emotion Recognition in Conversation with RoBERTa

    <论文阅读>EmoBERTa: Speaker-Aware Emotion Recognition in Conversation with RoBERTa 简介 思路出发点 任务定义 模 ...

  6. 论文阅读和分析:Hybrid Mathematical Symbol Recognition using Support Vector Machines

    HMER论文系列 1.论文阅读和分析:When Counting Meets HMER Counting-Aware Network for HMER_KPer_Yang的博客-CSDN博客 2.论文 ...

  7. 【论文阅读】Long-term Temporal Convolutions for Action Recognition

    [论文阅读]Long-term Temporal Convolutions for Action Recognition 这篇论文之前,几乎所有的3D卷积网络的输入视频长度都很短,例如C3D.Res3 ...

  8. 【论文阅读】Gait Lateral Network: Learning Discriminative and Compact Representations for Gait Recognition

    Gait Lateral Network: Learning Discriminative and Compact Representations for Gait Recognition 摘要: I ...

  9. 【论文阅读】Dynamic Convolution: Attention over Convolution Kernels(CVPR2020)

    论文题目:Dynamic Convolution: Attention over Convolution Kernels(CVPR2020) 论文地址:https://arxiv.org/abs/19 ...

最新文章

  1. 架构与思维:系统容量设计
  2. 最小生成树(Prim、Kruskal)算法,秒懂!
  3. 缓冲区溢出(buffer overflow)机理分析
  4. Redis Cluster高可用(HA)集群环境搭建详细步骤
  5. 推荐第三方Oracle客户端查询工具
  6. [html] 说说video标签中预加载视频用到的属性是什么?
  7. nginx 1.4.3能直接升到1.8.1吗
  8. 图的深度优先搜索(DFS)和广度优先搜索(BFS)算法
  9. 防止sql注入攻击的方法总结 1
  10. 未检测到与wia兼容的设备_如何解决应用程序找不到扫描仪:错误WIA_ERROR_OFFLINE!...
  11. 超好用的两行java代码能获取几乎所有文件的contentType,返回前端能在浏览器上直接打开
  12. 背包那些经典的例子( 上 )
  13. 王选: 从Dijkstra谈帅才的洞察力
  14. 交通-地铁客流量python时间序列预测
  15. hdu 1207 汉诺塔II (四柱汉诺塔)
  16. openssl-key-exchange 基于ECDH (Elliptic-Curve Diffie–Hellman) 的密钥交换流程
  17. Web 页面如何添加水印?
  18. 刚当上leader,我让组员去开会,他非说有更重要的会
  19. 网上最靠谱的赚钱方法,看看这六个哪个适合你!
  20. 如何使用Houdini进行程序化优化?

热门文章

  1. 苹果审核被拒1.1和5.0
  2. 输入空间、输出空间、特征空间与假设空间的区分
  3. 高通平台开发系列讲解(AI篇)如何让yolov5运行在SNPE
  4. 嵌入式linux烧录文件格式,嵌入式文件系统镜像制作及烧写
  5. LeetCode42题,单调栈、构造法、two pointers,这道Hard题的解法这么多?
  6. php基于浏览器的linux终端模拟器,回顾最佳的9款Linux终端模拟器
  7. 变态Java系列 String
  8. c语言单片机温度调节系统设计,基于单片机的温度控制系统的设计
  9. 解决英伟达CUDA和cuDNN下载过慢的问题
  10. 单片机中推挽输出是什么意思