多模态情感识别:Progressive Modality Reinforcement for Human Multimodal Emotion Recognition from Unaligned M

Abstract

基于跨模态Transformer最新进展的渐进模态强化 (PMR) 方法。我们的方法引入了一个消息中心来交换与每个模态的信息。消息中心向每个模态发送公共消息,并通过跨模态注意加强它们的特征。反过来,它还从每个模态中收集强化特征,并使用它们来生成强化的公共消息。通过重复循环过程,公共消息和模态的特征可以逐步相互补充。

1. Introduction

由于来自不同模态的序列的可变采样率,收集到的多模态流通常是异步的。例如,具有抑郁面部表情的视频帧可能与过去所说的否定词有关。不同模态之间的异步性可以提高进行高效多模态融合的难度。

为此,多模态 Transformer (MulT) 方法来融合来自未对齐数据序列的跨模态信息 。他们的方法引入了模态强化单元,通过学习跨模态元素之间的方向成对注意(见图1),使用来自源模态的信息来加强目标模态。通过跨模态注意操作探索元素之间的跨模态交互,MulT 可以从异步序列实现多模态融合,而无需显式对齐数据。

此外,独立的成对融合方法无法利用源模态的高级特征。对于每个方向模态对,如图1(a)所示,通过反复关注源模态的低级特征来增强目标模态。直观地说,深度交互跨模态不能通过半浅层结构来探索。他们的方法还注意到这个问题,并尝试通过在源模态上堆叠前馈层来实现跨模态注意力(见图 1(b))。然而,观察到性能下降。这是因为源分支没有收到明确的监督来更新其前馈层,因为模态强化操作主要集中在生成强化的目标模态。因此,尚不清楚源模态的高级特征是否优于低级特征。相反,增加的模态复杂度可能会降低性能。

为此,提出了从未对齐的多模态序列进行多模态融合的渐进模态强化 (PMR) 方法。我们的方法引入了一个消息中心来交换与每个模态的信息。如图 2 所示,消息中心可以将公共消息发送到每个模态,以便通过跨模态强化它们的特征。

与之前的 MulT 模型 [相比,优势在于两个方面。首先,公共消息促进了跨模态的有效信息流,并鼓励跨模态注意操作探索所有三种模态的元素级依赖关系,而不是方向成对依赖关系。其次,渐进式强化策略提供了一种有效的方法来利用源模态的高级特征进行模态强化。与图1(b)不同的是,源模态的特征可以在将其视为目标模态的强化单元中获得清晰的监督。

2. Related Works  

3. Progressive Modality Reinforcement

3.1. Problem statement

人类情感识别任务涉及三种主要模式,即语言 (L)、视频 (V) 和音频 (A)。用X_{\left \{ L,V,A \right \}}\in \mathbb{R}^{T_{\left \{ L,V,A\right \}}\times d_{\left \{ L,V,A \right \}}}表示来自相应模态的输入序列。T(.)和d(.)分别表示序列长度和特征维度。我们的目标是从未对齐的多模态数据序列进行有效的多模态融合,以获得可以在情感姿态预测中产生理想性能的表示。

3.2. Preliminary - crossmodal attention

跨模态注意操作通过学习源模态之间的成对注意来加强目标模态。用X_{s}\in \mathbb{R}^{T_{s}\times d_{s}}表示来自源模态的数据序列,X_{t}\in \mathbb{R}^{T_{t}\times d_{t}}表示来自目标模态的数据序列,其中s, t∈{L, V, A}。与自我注意机制类似,跨模态注意单元涉及Querys、Keys和Values,定义为W_{Q_{t}}\in \mathbb{R}^{d_{t}\times d_{k}}, K_{s}=X_{s}W_{K_{s}} withW_{K_{s}}\in \mathbb{R}^{d_{s}\times d_{k}}, V_{s}=X_{s}W_{V_{s}}, W_{V_{s}}\in \mathbb{R}^{d_{s}\times d_{v}}。跨模态注意力的单个头部定义为:

z

总结:Y_{t}=softmax\left ( \frac{X_{t}W_{Q_{t}}W_{K_{s}}^{T}X_{s}^{T}}{\sqrt{d_{k}}} \right )X_{s}W_{V_{s}}描述了注意力机制中的计算步骤,首先通过查询和键向量计算相似度分数,并通过 softmax 函数得到注意力权重,然后使用这些权重对值向量进行加权和,得到最终的输出表示 Y_{t}​。这种机制使得模型能够关注输入序列中的重要部分,从而提高处理复杂任务的能力。

3.3. Model overview

模型以端到端的方式进行训练。我们使用一维时间卷积层来处理输入序列,然后通过位置嵌入对其进行扩充。用Z_{\left \{ L,V,A \right \}}\in \mathbb{R}^{T_{\left \{ L,V,A\right \}}\times d}表示处理后的序列。请注意,一维时间卷积层通过控制每个模态使用的内核大小将不同模态的特征投影到相同的维度。公共消息是通过连接来自每个模态的低级序列来初始化的:Z_{C}=\left [ Z_{L}, Z_{V}, Z_{A} \right ],其中 Z_{C}\in \mathbb{R}^{T_{C}\times d}T_{C}=T_{L}+T_{V}+T_{A}。模态强化层将通过利用跨模态元素之间的相关性反复强化 Z_{C}Z_{\left \{ L,V,A \right \}}。图 2 显示了模态强化层的信息流。然后,我们将强化特征连接为 \left [ Z_{C},Z_{L}, Z_{V}, Z_{A} \right ]\in \mathbb{R}^{2T_{C}\times d} 并将其传递给transformer层。最后,使用几个全连接层来对人类情绪进行预测。

3.4. Progressive modality reinforcement

最初,模态的特征 Z_{\left \{ L,V,A \right \}} 和公共消息 Z_{C} 都没有携带有关不同模态的交互关系的信息,这对于有效的多模态融合至关重要。在模态强化层中,Z_{C}Z_{\left \{ L,V,A \right \}} 通过利用跨模态元素之间的固有相关性逐步相互补充。具体来说,每一层都包括三个模态强化单元来更新模态的特征 Z_{\left \{ L,V,A \right \}} 和一个消息更新模块来更新公共消息 Z_{C}。用MUM^{\left [ i \right ]}表示消息更新模块和MRU_{C\rightarrow *}^{\left [ i \right ]}对应模态的模态强化单元,其中∗∈{L, V, A}。上标 [i] 表示第 i 个模态强化层。

模态强化单元。模态强化单元 MRU_{C\rightarrow *}^{\left [ i \right ]}的架构如图 3(a) 所示。它以Z_{C}^{\left [ i \right ]}Z_{*}^{\left [ i \right ]}为输入,输出增强特征Z_{*}^{\left [ i+1 \right ]}:

MRU_{C\rightarrow *}^{\left [ i \right ]}通过两个分支来加强 Z[i]∗,包括自注意力和跨模态注意力:

其中Z_{C\rightarrow *}^{\left [ i \right ]}Z_{*}^{\left [ i \right ]}\in \mathbb{R}^{T_{*}\times d}CA^{mul}LN分别表示多头自我注意操作和层归一化操作。立即,通过以下动态滤波机制处理增强特征Z_{*}^{\left [ i \right ]}Z_{C\rightarrow *}^{\left [ i \right ]}

其中 W_{*}^{\left [ i \right ]}\in \mathbb{R}^{d\times d}, W_{C\rightarrow *}^{\left [ i \right ]}\in \mathbb{R}^{d\times d}, b_{*}^{\left [ i \right ]}\in \mathbb{R}^{T_{*}\times d}。每个分支的传递比例可以通过可学习参数 W_{*}^{\left [ i \right ]}b_{*}^{\left [ i \right ]}动态确定。此操作能够过滤由不正确的跨模态交互产生的信息。最后,与transformer模型一样,具有跳跃式连接的位置前馈层将处理Z_{*}^{\left [ i \right ]},并为下一个模态强化层生成Z_{*}^{\left [ i+1 \right ]}

消息更新模块。强化特征 Z_{\left [ L,V,A \right ]}^{\left [i+1 \right ]}也将用于强化先前模态强化层中的公共消息 Z_{C}^{\left [ i \right ]}MUM^{\left [ i \right ]} 的架构如图 3(b) 所示。它以Z_{C}^{\left [ i \right ]}Z_{\left [ L,V,A \right ]}^{\left [i+1 \right ]}为输入,输出强化的公共消息Z_{C}^{\left [ i+1 \right ]}:

具体来说,消息更新模块包括三个模态强化单元,每个单元通过一种模态强化公共消息 Z_{C}^{\left [ i \right ]}。用MRU_{C\rightarrow *}^{\left [ i \right ]}表示对应的模态强化单元,其中∗∈{V, L, A}。在MRU_{C\rightarrow *}^{\left [ i \right ]}中,Z_{C}^{\left [ i \right ]}通过关注Z_{\left [ * \right ]}^{\left [i+1 \right ]}的元素来加强:

其中 Z_{*\rightarrow C}^{\left [ i \right ]}\in \mathbb{R}^{T_{C}\times d}。通过 Z_{C}^{\left [ i \right ]}上的自注意力操作可以探索所有涉及模态的三向交互(见图 3(a))。立即,Z_{*\rightarrow C}^{\left [ i \right ]} 通过注意力层融合到 Z_{C}^{\left [ i \right ]}中。为此,我们首先得到Z_{*\rightarrow C}^{\left [ i \right ]}的重塑对应项:ˆZ_{*\rightarrow C}^{\left [ i \right ]}\in \mathbb{R}^{T_{C}d\times 1},然后按如下方式处理它们:\

其中 U\in \mathbb{R}^{T_{C}d\times 1}, W_{*\rightarrow C}^{\left [ i \right ]}\in \mathbb{R}^{T_{C}d\times T_{C}d}b_{*\rightarrow C}^{\left [ i \right ]}\in \mathbb{R}^{T_{C}d\times 1}是可学习的参数。注意层可以动态控制Z_{*\rightarrow C}^{\left [ i \right ]}中的传递信息并生成信息丰富的公共消息。最后,我们通过具有跳跃连接的位置前馈层传递 Z[i]C 并获得输出 Z_{C}^{\left [ i+1 \right ]}

在接下来的模态强化层中,Z_{C}^{\left [ i+1 \right ]}将通过 MRU_{C\rightarrow *}^{\left [ i+1 \right ]} 单元再次强化 Z_{*}^{\left [ i+1 \right ]}。与之前通过反复关注源模态的低级特征来加强目标模态的 MulT 模型  相比,我们的方法使 Z_{*}Z_{C} 能够逐步相互补充,即 Z_{C} 加强了 Z_{*},反过来,强化 Z_{*}加强了 Z_{C}以产生更好的公共消息。我们还注意到,如果涉及更多模态,我们的方法将在每一层包含更少的模态强化单元(即 MulT 的 A2n 和我们的方法的 2n,其中 n 表示模态数)。算法 1 显示了模态强化层的信息流。

4. Experiments

CMU-MOSI基准上跨模态相关性的可视化。我们的方法和 MulT 的可视化样本分别显示在上半部分和下半部分。我们通过观察相应模态强化单元(即所提出方法的 MRUC→L 和第四个强化层中的 MRUV →L)的跨模态注意力权重来进行可视化。与人类情感识别密切相关的文本词以红色显示。视频剪辑上方的文本词是相应的口语。

图 4 显示了元素之间的跨模态交互的可视化。我们的方法和 MulT 的可视化样本分别显示在上半部分和下半部分。我们可以看到,我们的方法可以很好地将情感相关的文本词与相应的视频片段相关联。与 MulT 相比,MulT 的可视化样本中,文本词和视频剪辑之间的相关性尚不清楚。

Conclusion

在人类多模态情感识别的背景下,从未对齐的多模态序列进行多模态融合的渐进模态强化方法。为此,引入了一个消息中心来交换与每个模态的信息。消息中心可以通过公共消息探索所有模态之间的内在相关性来鼓励更有效的多模态融合。此外,公共消息和模态的特征通过关注元素之间的跨模态交互来逐步相互补充。渐进式强化策略提供了一种有效的方法来利用模态强化中源模态的高级特征。

相关推荐

  1. 】ALBEF

    2024-07-15 14:18:01       62 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 14:18:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 14:18:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 14:18:01       58 阅读
  4. Python语言-面向对象

    2024-07-15 14:18:01       69 阅读

热门阅读

  1. 代码随想录算法训练营第三十二天

    2024-07-15 14:18:01       26 阅读
  2. 【并发编程】CPU & IO 密集型

    2024-07-15 14:18:01       17 阅读
  3. python中逻辑运算符and 和 or 的优先级问题。

    2024-07-15 14:18:01       21 阅读
  4. Android 中处理 RGB24 格式数据

    2024-07-15 14:18:01       24 阅读
  5. Teamhelper现已兼容20余款主流AR硬件

    2024-07-15 14:18:01       19 阅读
  6. Spring MVC-07

    2024-07-15 14:18:01       22 阅读
  7. KeyCode键盘按键码表

    2024-07-15 14:18:01       25 阅读
  8. Buffer模块(nodejs)

    2024-07-15 14:18:01       22 阅读
  9. XML 编辑器:功能、选择与使用技巧

    2024-07-15 14:18:01       21 阅读
  10. 代码随想录算法训练营Day69|自我总结

    2024-07-15 14:18:01       31 阅读
  11. 数据库隔离级别RC,什么场景会有间隙锁?

    2024-07-15 14:18:01       26 阅读