Efficient Multimodal Transformer with Dual-Level Feature Restoration for Robust Multimodal Sentiment

EMT-DLFR:双层次特征修复的高效多模态变压器用于稳健的多模态情感分析

总结:多模态融合时,采用Global-Local的融合策略,利用MPU单元,实现模态的融合。

文章信息

作者:Licai Sun,Bin Liu

单位:University of Chinese Academy of Sciences(中国科学院大学)

会议/期刊:IEEE Transactions on Affective Computing

题目:Efficient Multimodal Transformer with Dual-Level Feature Restoration for Robust Multimodal Sentiment Analysis

年份:2023

研究目的

解决多模态情感分析的两个问题:① MSA 在未对齐的多模态数据集中建立跨模态交互模型(cross-modal interactions )效率低下。② MSA 易受随机模态特征缺失的影响。

  • 未对齐的多模态数据集示例:
    Alt三个模态的序列长度不一致。

  • 随机模态特征缺失示例:
    Alt模态数据不完整(灰色部分代表缺失的模态特征)。

研究内容

提出了一个通用的框架 EMT-DLFR ,实现未对齐多模态数据的融合(EMT部分),并提升了随机模态特征缺失的鲁棒性(DLFR部分)。

研究方法

EMT核心:引入了全局多模态上下文 G ,采用 OAGL 的跨模态交互融合策略。(One-to-all Global-Local Fusion)

DLFR核心:结合隐式低层次特征重构(implicit low-level feature reconstruction)和显式高层次特征吸引(explict high-level feature attraction)。

1.总体结构图

image-20231230111311046

融合过程:首先利用特定的单模态特征编码器1不同模态2输入中获取语篇级模态内特征3(全局模态内特征)和元素级模态内特征4(局部模态内特征5);然后使用 EMT 捕捉全局多模态上下文6局部单模态特征5之间的跨模态交互信息;最后结合语篇级模态内特征3语篇级模态间特征7得出最终的情感强度预测结果。

注:Complete View 仅用于在训练过程中训练模型,在测试阶段无法使用。


2.MPU 单元

Alt

MPU 单元利用对称跨模态注意力(CA),将两个输入特征序列之间的内在相关性联系起来,并进行有用的信息交换,使得这两个特征序列相互促进。然后利用自注意力(SA),整合时间依赖,学到上下文信息。最后通过前馈网络(FFN)输出提升后的 H m → n H_{m\to n} Hmn H n → m H_{n\to m} Hnm
H n → m ′ = M H C A ( LN ⁡ ( H m ) , LN ⁡ ( H n ) ) + H m , H n → m ′ ′ = M H S A ( LN ⁡ ( H n → m ′ ) ) + H n → m ′ , H n → m = F F N ( L N ( H n → m ′ ′ ) ) + H n → m ′ ′ \begin{aligned} &H_{n\to m}^{'} =\mathrm{MHCA}(\operatorname{LN}(H_m),\operatorname{LN}(H_n))+H_m, \\ &H_{n\to m}^{^{\prime\prime}} =\mathrm{MHSA}(\operatorname{LN}(H_{n\to m}^{^{\prime}}))+H_{n\to m}^{^{\prime}}, \\ &H_{n\rightarrow m} =\mathrm{FFN}(\mathrm{LN}(H_{n\to m}^{^{\prime\prime}}))+H_{n\to m}^{^{\prime\prime}} \end{aligned} Hnm=MHCA(LN(Hm),LN(Hn))+Hm,Hnm′′=MHSA(LN(Hnm))+Hnm,Hnm=FFN(LN(Hnm′′))+Hnm′′
注:这里的 Norm 使用的是 layer Normalization.

3.融合策略(EMT核心)

采用一对多的全局局部融合策略(One-to-all Global-Local Fusion)
H l [ i + 1 ] , G l → g [ i ] = M P U l ↔ g [ i ] ( H l [ i ] , G [ i ] ) H a [ i + 1 ] , G a → g [ i ] = M P U a ↔ g [ i ] ( H a [ i ] , G [ i ] ) H v [ i + 1 ] , G v → g [ i ] = M P U v ↔ g [ i ] ( H v [ i ] , G [ i ] ) G [ 0 ]   =   C o n c a t ( h l [ 0 ] , h a [ 0 ] , h v [ 0 ] )   ∈   R 3 × d . \begin{gathered} H_l^{[i+1]},G_{l\to g}^{[i]} =\mathrm{MPU}_{l\leftrightarrow g}^{[i]}(H_l^{[i]},G^{[i]}) \\ H_a^{[i+1]},G_{a\to g}^{[i]} =\mathrm{MPU}_{a\leftrightarrow g}^{[i]}(H_a^{[i]},G^{[i]}) \\ H_{v}^{[i+1]},G_{v\to g}^{[i]} =\mathrm{MPU}_{v\leftrightarrow g}^{[i]}(H_v^{[i]},G^{[i]}) \\ \\ G^{[0]}~=~\mathsf{Concat}(h_l^{[0]},h_a^{[0]},h_v^{[0]})~\in~\mathbb{R}^{3\times d}. \end{gathered} Hl[i+1],Glg[i]=MPUlg[i](Hl[i],G[i])Ha[i+1],Gag[i]=MPUag[i](Ha[i],G[i])Hv[i+1],Gvg[i]=MPUvg[i](Hv[i],G[i])G[0] = Concat(hl[0],ha[0],hv[0])  R3×d.
通过将MPU堆叠多层,全局多模态上下文6局部单模态特征5之间便可以相互促进。

4.Pool层

Pool层使用的是attention-based pooling layer,通过 Pool层将提升后的全局多模态上下文8融合起来,生成新的全局多模态上下文6
G [ i + 1 ] = s o f t m a x ( v T tanh ⁡ ( W T G g T + b ) ) G g G g = C o n c a t ( G l → g [ i ] , G a → g [ i ] , G v → g [ i ] ) G^{[i+1]}=\mathrm{softmax}(v^T\tanh{(W^TG_g^T+b)})G_g \\ G_g=\mathsf{Concat}(G_{l\to g}^{[i]},G_{a\to g}^{[i]},G_{v\to g}^{[i]}) G[i+1]=softmax(vTtanh(WTGgT+b))GgGg=Concat(Glg[i],Gag[i],Gvg[i])

5.Prediction Module

首先将最后的全局多模态上下文6的时间维度扁平化,进而得到语篇级模态间特征7;接着将 g g g h m h_m hm进行拼接;最后通过一个多层感知器(MLP)得到情感预测结果。

使用的损失函数为 L1 损失函数: L t a s k = ∣ y − y ′ ∣ \mathcal{L}_\mathrm{task}=|y-y^{\prime}| Ltask=yy

6.Low-Level Feature Reconstruction

image-20240104144235373

通过 EMT 进行多模态融合后,不完整序列 X ~ m \tilde{\boldsymbol{X}}_{m} X~m被映射到一个潜在序列9 Z ~ m \tilde{\boldsymbol{Z}}_{m} Z~m上;然后将 Z ~ m \tilde{\boldsymbol{Z}}_{m} Z~m通过基于多层感知器(MLP)的解码器 r ( ⋅ ) r(\cdot) r()来重建完整的序列 X ˚ m \boldsymbol{\mathring{X}}_{m} X˚m。并使用smooth L1 loss来评估重构的质量。
L r e c o n l = smooth L 1 ( ( H ˚ l − r ( Z ~ l ) ) ⋅ ( 1 − g l ) ) L r e c o n a = s m o o t h L 1 ( ( X ˚ a − r ( Z ~ a ) ) ⋅ ( 1 − g a ) ) L r e c o n v = s m o o t h L 1 ( ( X ˚ v − r ( Z ~ v ) ) ⋅ ( 1 − g v ) ) L r e c o n = ∑ m ∈ { l , a , v } L recon m \begin{aligned} &\mathcal{L}_{\mathrm{recon}}^{l} =\text{smooth}_{\text{L}1}((\mathring{H}_l-r(\tilde{Z}_l))\cdot(1-g_l)) \\ &\mathcal{L}_{\mathrm{recon}}^a =\mathrm{smooth}_{\text{L}1}((\mathring{X}_a-r(\tilde{Z}_a))\cdot(1-g_a)) \\ &\mathcal{L}_{\mathrm{recon}}^v =\mathrm{smooth}_{\text{L}1}((\mathring{X}_v-r(\tilde{Z}_v))\cdot(1-g_v)) \\ &\mathcal{L}_{\mathrm{recon}} =\sum_{m\in\{l,a,v\}}\mathcal{L}_{\text{recon}}^m \end{aligned} Lreconl=smoothL1((H˚lr(Z~l))(1gl))Lrecona=smoothL1((X˚ar(Z~a))(1ga))Lreconv=smoothL1((X˚vr(Z~v))(1gv))Lrecon=m{l,a,v}Lreconm

s m o o t h L 1 ( x ) = { 0.5 x 2 i f   x < 1 ∣ x ∣ − 0.5 o t h e r w i s e \mathrm{smooth}_{\mathrm{L}1}(x)=\begin{cases}0.5x^2&\mathrm{if~}x<1\\|x|-0.5&\mathrm{otherwise}&\end{cases} smoothL1(x)={0.5x2x0.5if x<1otherwise

注:由于重建原始文本标记会浪费大量模型容量,故使用BERT模型的输出嵌入 H ˚ l \boldsymbol{\mathring{H}}_{l} H˚l作为文本模态的重建目标。对于音频模态和视频模态,依旧使用原始标记序列 X ˚ a \boldsymbol{\mathring{X}}_{a} X˚a X ˚ v \boldsymbol{\mathring{X}}_{v} X˚v。这里的 g l , g a , g v g_l,g_a,g_v gl,ga,gv是随机的时间掩码(模拟随机模态特征缺失时所用到的 g m g_m gm),用于排除未掩码位置的损失。

7.High-Level Feature Attraction

image-20240104153816412

进行特征吸引的直接方法是最大化两个视图特征(即 h ~ m 与 h ˚ m , m ∈ { l , a , v } \tilde{\boldsymbol{h}}_{m} 与 \boldsymbol{\mathring{h}}_{m},\quad\begin{aligned}m\in\{l,a,v\}\end{aligned} h~mh˚m,m{l,a,v})的余弦相似度。

通过使用自监督表征学习框架SimSiam,避免最大化余弦相似度出现崩溃(任务损失过大)的情况。

Alt

两个视图的输入特征首先由Projector10处理,然后Predictor11将一个视图的中间表征映射到另一个视图的中间表征。在这个过程中使用 s g ( ⋅ ) sg(\cdot) sg()停止梯度操作,避免繁琐解。语篇级模态内表征和语篇级模态间表征的对称SimSiam损失定义如下:
L s i m m = 1 2 [ D ( q ( p ( h ~ m ) ) , s g ( p ( h ˚ m ) ) ) + D ( q ( p ( h ˚ m ) ) , s g ( p ( h ~ m ) ) ) ] L s i m g = 1 2 [ D ( q ( p ( g ~ ) ) , s g ( p ( g ˚ ) ) ) + D ( q ( p ( g ˚ ) ) , s g ( p ( g ~ ) ) ) ] \begin{aligned} &\mathcal{L}_{\mathrm{sim}}^{m} =\frac12[\mathcal{D}(q(p(\tilde{h}_m)),sg(p(\mathring{h}_m)))+\mathcal{D}(q(p(\mathring{h}_m)),sg(p(\tilde{h}_m)))] \\ &\mathcal{L}_{\mathrm{sim}}^{g} =\frac12[\mathcal{D}(q(p(\tilde{g})),sg(p(\mathring{g})))+\mathcal{D}(q(p(\mathring{g})),sg(p(\tilde{g})))] \end{aligned} Lsimm=21[D(q(p(h~m)),sg(p(h˚m)))+D(q(p(h˚m)),sg(p(h~m)))]Lsimg=21[D(q(p(g~)),sg(p(g˚)))+D(q(p(g˚)),sg(p(g~)))]

D ( x , y ) = − x T y ∣ ∣ x ∣ ∣ 2 ∣ ∣ y ∣ ∣ 2 \mathcal{D}(x,y)=\frac{-x^Ty}{||x||_2||y||_2} D(x,y)=∣∣x2∣∣y2xTy

注: D ( x , y ) D(x,y) D(x,y)是负余弦相似度函数

高层次特征吸引损失函数:
L attra = ∑ m ∈ { l , a , v } L s i m m + L s i m g + ∣ y − y ˚ ′ ∣ \mathcal{L}_\text{attra}=\sum_{m\in\{l,a,v\}}\mathcal{L}_{\mathrm{sim}}^m+\mathcal{L}_{\mathrm{sim}}^g+|y-\mathring{y}^{\prime}| Lattra=m{l,a,v}Lsimm+Lsimg+yy˚

8.总体损失函数

In incomplete modality setting:
L = L t a s k + λ 1 L r e c o n + λ 2 L a t t r a L t a s k = ∣ y − y ~ ′ ∣ \mathcal{L}=\mathcal{L}_\mathrm{task}+\lambda_1\mathcal{L}_\mathrm{recon}+\lambda_2\mathcal{L}_\mathrm{attra}\\ \mathcal{L}_{\mathrm{task}}=|y-\tilde{y}^{\prime}| L=Ltask+λ1Lrecon+λ2LattraLtask=yy~
In complete modality setting:
L = L task = ∣ y − y ′ ˚ ∣ \mathcal{L}=\mathcal{L}_\text{task}=|y-\mathring{y'}| L=Ltask=yy˚

结果与讨论

  1. 通过与sota模型进行对比,表明EMT-DLFR不管是在完整模态设置下还是不完整模态设置下效果都是最好。
  2. 通过比对几种不同的融合策略,表明OAGL的融合方式最佳。
  3. 通过比对是否进行参数共享的几种情况,表明参数共享可以提升模型的效率。
  4. 通过比对不同的池化方法,表明attention-based的池化方法效果最好。
  5. 通过比对LLFR、HLFR、DLFR、EMT,表明即使用低层次特征重构又使用高层次特征吸引效果最好。
  6. 通过对损失函数的超参数进行研究,指出了最佳的超参数的值。
  7. 通过比较在高层次特征吸引中是否使用SimSiam框架,表明使用该框架效果好。
  8. 通过可视化全局多模态上下文对局部单模态特征的关注,证明了全局多模态上下文学会了关注每种模态中的有意义信号(如失望的面部表情、强调的语气和情感词)。

代码和数据集

数据集:CMU-MOSI,CMU-MOSEI,CH-SIMS

代码:https://github.com/sunlicai/EMT-DLFR

实验运行环境:Tesla V100 GPU(32GB),batch 大小为 32。

image-20240104183904314

😃😃😃


  1. 图中的 LSTM 与 BERT ↩︎

  2. 图中的 X ~ m 与 X ˚ m , m ∈ { l , a , v } \tilde{\boldsymbol{X}}_{m}与\boldsymbol{\mathring{X}}_{m},\quad\begin{aligned}m\in\{l,a,v\}\end{aligned} X~mX˚m,m{l,a,v},是初始的不完整与完整情况下的模态特征,是利用一些工具提取出来的。为了模拟随机模态特征缺失,使用了一个掩码函数 F ( ⋅ ) F(\cdot) F() X ~ m   =   F ( X ∘ m , g m )   ∈   R T m × f m \tilde{X}_{m}~=~F(\stackrel{\circ}{X}_{m},g_{m})~\in~\mathbb{R}^{T_{m}\times f_{m}} X~m = F(Xm,gm)  RTm×fm T m T_m Tm代表序列长度, f m f_m fm代表模态特征的维度, g m ∈ { 0 , 1 } T m \begin{aligned}g_m\in\{0,1\}^{T_m}\end{aligned} gm{0,1}Tm是一个随机的时间掩码,表示要掩码的位置)。对于音频和视频模态,掩码函数将掩码位置的原始特征向量替换为零向量。对于文本模态,用 BERT 词汇表中的 [UNK] 标记替换原始标记。 ↩︎

  3. utterance-level intra-modal features,既图中的 h ~ m 与 h ˚ m , m ∈ { l , a , v } \tilde{\boldsymbol{h}}_{m} 与 \boldsymbol{\mathring{h}}_{m},\quad\begin{aligned}m\in\{l,a,v\}\end{aligned} h~mh˚m,m{l,a,v}。由于BERT中的[CLS]标记汇总了所有文本信息,所以将其作为文本模态的语篇级模态内特征。对于音频与视觉模态,使用 H a 和 H v H_a和H_v HaHv中最后一个时间步骤的特征作为语篇级模态内特征。 ↩︎ ↩︎

  4. element-level intra-modal features,既图中的 H ~ m 与 H ˚ m , m ∈ { l , a , v } \tilde{\boldsymbol{H}}_{m} 与 \boldsymbol{\mathring{H}}_{m},\quad\begin{aligned}m\in\{l,a,v\}\end{aligned} H~mH˚m,m{l,a,v} H l = BERT ( X l ) H_{l} =\text{BERT}(X_l) Hl=BERT(Xl) H a = LSTM ⁡ ( X a ) H_{a} =\operatorname{LSTM}(X_a) Ha=LSTM(Xa) H v = LSTM ⁡ ( X v ) H_{v} =\operatorname{LSTM}(X_v) Hv=LSTM(Xv) ↩︎

  5. local unimodal features,既图中的 H ~ m 与 H ˚ m , m ∈ { l , a , v } \tilde{\boldsymbol{H}}_{m} 与 \boldsymbol{\mathring{H}}_{m},\quad\begin{aligned}m\in\{l,a,v\}\end{aligned} H~mH˚m,m{l,a,v} ↩︎ ↩︎ ↩︎

  6. global multimodal context,既图中的 G ~ m 与 G ˚ m , m ∈ { l , a , v } \tilde{\boldsymbol{G}}_{m} 与 \boldsymbol{\mathring{G}}_{m},\quad\begin{aligned}m\in\{l,a,v\}\end{aligned} G~mG˚m,m{l,a,v} ↩︎ ↩︎ ↩︎ ↩︎

  7. utterance-level inter-modal features,既图中的 g ~ m 与 g ˚ m , m ∈ { l , a , v } \tilde{\boldsymbol{g}}_{m} 与 \boldsymbol{\mathring{g}}_{m},\quad\begin{aligned}m\in\{l,a,v\}\end{aligned} g~mg˚m,m{l,a,v} ↩︎ ↩︎

  8. promoted global multimodal contexts,即 G l → g [ i ] G a → g [ i ] G v → g [ i ] G_{l\rightarrow g}^{[i]}\quad G_{a\rightarrow g}^{[i]}\quad G_{v\rightarrow g}^{[i]} Glg[i]Gag[i]Gvg[i] ↩︎

  9. latent sequence,即图中的 Z ~ m 与 Z ˚ m , m ∈ { l , a , v } \tilde{\boldsymbol{Z}}_{m} 与 \boldsymbol{\mathring{Z}}_{m},\quad\begin{aligned}m\in\{l,a,v\}\end{aligned} Z~mZ˚m,m{l,a,v},且 Z ~ m = H ~ m [ L ] \tilde{Z}_m=\tilde{H}_m^{[L]} Z~m=H~m[L],该序列对全局模态间信息与局部模态内信息都有足够的认识。 ↩︎

  10. 基于多层感知器(MLP-based projector)的映射器 p ( ⋅ ) p(\cdot) p() ↩︎

  11. 基于多层感知器(MLP-based predictor)的预测器 q ( ⋅ ) q(\cdot) q() ↩︎

<think>嗯,用户想了解多模态情感分析中的特定于模态的残差网络的研究和实现。首先,我需要确认什么是多模态情感分析。根据引用[1],它涉及处理来自不同模态(如文本、音频、视觉)的数据,用于分析情感,尤其是在模态缺失的情况下。然后,特定于模态的残差网络可能指的是针对每个模态设计的网络结构,可能结合残差连接来提升性能。 接下来,我需要回顾现有的研究。残差网络在计算机视觉中应用广泛,如ResNet和DenseNet(引用[2]),它们在处理深层网络时有效缓解梯度消失问题。多模态领域,可能需要将这种结构应用于不同模态的特征提取。例如,每个模态可能有独立的残差网络分支,再融合特征。 然后,用户提到的实现方面,可能需要参考具体的代码库。引用[1]中的EMMR项目可能包含相关实现,可以查看其GitHub代码。此外,引用[3]提到多模态预训练和跨模态检索,可能涉及模态特定网络的设计,比如如何处理不同模态的特征。 需要解决的问题包括:1)如何设计模态特定的残差网络结构;2)如何融合不同模态的特征;3)如何处理模态缺失或不确定性。例如,在EMMR中,可能使用特定模态的残差块来处理各自的数据,再通过某种机制(如注意力)进行融合,同时应对缺失模态的情况。 此外,用户可能需要了解现有的模型架构,比如是否每个模态都有独立的ResNet分支,以及如何在这些分支中加入残差连接。引用[2]提到的多尺度模型设计、FPN等可能对多模态特征融合有借鉴意义。比如,使用不同层级的特征进行融合,或者使用跨模态的注意力机制。 在实现上,可能需要使用深度学习框架如PyTorch或TensorFlow,构建多个残差网络分支,每个处理一个模态,然后将特征合并。同时,需要处理模态缺失的情况,比如通过零填充或生成替代特征,如引用[1]中的方法。 可能的相关问题包括优化方法、处理模态缺失的技术、如何评估模型性能等。需要确保回答结构清晰,步骤明确,并引用相关的文献和代码资源。</think>### 多模态情感分析中特定于模态的残差网络研究及实现 #### 1. 研究背景 多模态情感分析通过融合文本、语音、视觉等模态数据提升情感识别准确性[^1]。特定于模态的残差网络(Modality-Specific Residual Networks)通过以下方式优化模型性能: - **模态独立性**:为每个模态设计独立的残差分支,避免特征混淆。 - **梯度优化**:利用残差连接(如ResNet[^2])缓解梯度消失问题,增强深层网络训练稳定性。 - **动态特征融合**:在高层通过注意力机制或加权融合整合多模态特征[^3]。 #### 2. 核心实现方法 ##### 2.1 残差网络设计 - **单模态分支**:每个模态(如文本、音频、视觉)使用独立的残差块。例如: ```python class ModalityResNet(nn.Module): def __init__(self, input_dim): super().__init__() self.res_layer1 = nn.Sequential( nn.Linear(input_dim, 256), nn.ReLU(), nn.Linear(256, 256) # 残差跳跃连接 ) def forward(self, x): residual = x x = self.res_layer1(x) x += residual # 残差相加 return x ``` - **跨模态特征对齐**:通过对比学习或对抗训练(如DANN)对齐不同模态的特征分布。 ##### 2.2 多模态融合策略 - **加权融合**:为每个模态分配动态权重,例如基于注意力机制: $$ \alpha_i = \text{softmax}(W \cdot h_i + b) $$ 其中$h_i$为第$i$个模态的特征,$\alpha_i$为其权重。 - **层级融合**:在残差块的不同层级进行特征交互(参考FPN[^2]的多尺度设计)。 #### 3. 研究进展 - **EMMR框架**:提出模态不确定性的鲁棒性处理方法,通过残差网络补偿缺失模态的影响。 - **跨模态预训练**:结合BERT等模型,在残差结构中嵌入跨模态对齐模块(如CLIP风格对比学习)。 #### 4. 实现示例(基于PyTorch) ```python class MultimodalResNet(nn.Module): def __init__(self, text_dim, audio_dim, visual_dim): super().__init__() # 模态特定残差分支 self.text_net = ModalityResNet(text_dim) self.audio_net = ModalityResNet(audio_dim) self.visual_net = ModalityResNet(visual_dim) # 融合层 self.attention = nn.MultiheadAttention(embed_dim=256, num_heads=4) self.classifier = nn.Linear(256, 3) # 情感分类 def forward(self, text, audio, visual): text_feat = self.text_net(text) audio_feat = self.audio_net(audio) visual_feat = self.visual_net(visual) # 跨模态注意力融合 fused, _ = self.attention(text_feat, audio_feat, visual_feat) return self.classifier(fused) ``` #### 5. 关键挑战与优化 - **模态缺失处理**:在残差网络中引入零初始化掩码或生成式补全(如GAN)。 - **计算效率**:使用分组卷积或模型蒸馏降低多分支计算开销。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值