多模态数据融合系列文章大串讲(下)

1.Data and Label Efficient Representation Learning

  • 这篇文章有助于写未来发展方向

    Data efficient representation learning focuses on learning useful representations with less data
    (labeled or unlabeled), which as discussed throughout this dissertation, can be particularly important for applications with limited data availability. Label efficient representation learning focuses on learning useful representations with little or no human annotations for the training data. As will be discussed, this is important for applications where it is often difficult or impossible to obtain accurately labeled data, such as in privacy sensitive fields or for applications with highly ambiguous label definitions.
    
    • 如何利用低质量的多模态数据进行融合也是一个未来的研究方向

    • 数据高效表示学习关注于用较少的数据(标记或未标记)学习有用的表示,如贯穿本论文所讨论的,这对于具有有限数据可用性的应用可能特别重要;标记有效表示学习关注于学习对训练数据具有很少或没有人工注释的有用表示。

  • 主要包括四部分

    1. 自增强(SelfAugment):用于自监督学习的自动增强策略,探索了如何使用很少/没有标记的训练数据和少量未标记的数据为无监督学习管道开发增强策略。
    2. 数据有效的自我监督的表征学习(Data Efficient Self-Supervised Representation Learning),探索如何利用一种形式的分层预训练的80倍以上的数据有效的预训练。
    3. 区域相似性表示学习(Region Similarity Representation Learning),其通过在区域(基于块)级执行对比学习来探索用于学习区域级表示的第一方法之一,并且当很少有标记数据可用时,使得下游任务(例如对象检测/分割)得到实质性改进。
    4. Scale-MAE:一个用于多尺度地理空间表示学习的尺度感知掩蔽自动编码器,探索利用已知尺度信息进行地理空间表示学习的方法。

2.On the Benefits of Early Fusion in Multimodal Representation Learning

  • 为了便于早期多模融合的研究,这篇文章创建了一个卷积LSTM网络架构,该架构同时处理音频和视频输入,并允许选择音频和视频信息组合的层。该立即融合模型(C-LSTM体系结构)研究了融合深度对噪声鲁棒性的影响。

  • immediate fusion立即融合可以加入到第二章去

  • inductive bias归纳偏置

  • 一个密切相关的领域是多视图学习。虽然这两个领域有很大的重叠,但多视图学习强调从相同的输入模式获得不同的视图。一个典型的例子是从两个视角捕获相同的场景(两个视图都使用视觉模态)。

  • 为了保持这些模态特异性归纳偏置的优点,同时也允许音频和视频输入的立即融合,这篇文章创建了一个多模态卷积长短时记忆网络,该网络生成具有适当归纳偏置的音频-视频融合表示。这个卷积长期短期记忆(简称C-LSTM)架构结合了传统卷积神经网络和传统长短期记忆网络中的卷积特性。

  • image-20230227161921086
    • 前两层为多模态卷积长短期记忆网络,以及用于计算门和更新值的方程。ft是遗忘门,it是输入门,gt是单元门,ot是输出门。W是对应的权重矩阵,b是对应的偏置值。σ()是S形函数。tanh()是双曲正切函数。

    • 在卷积的每个点,第一层取:

      1. 输入图像的部分要乘以卷积核,记为v。
      2. 隐藏状态的部分要乘以卷积核,记为ht − 1。对于第一层中的第一个时间步长,其被初始化为零。
      3. 音频输入在给定时间步长的声谱值表示为at。
    • 然后该模型使用上图“Initial LSTM Gate Values”公式计算LSTM门值:v、ht−1和at。初始的C-LSTM层产生一个单一的多模态张量,该张量组合了来自音频和视觉输入的信息。 与标准LSTM体系结构一样,前一层的隐藏状态ht被用作当前层的输入xt。 因此,在后续的LSTM层中,每个位置的门值都是从组合多模态输入xt的部分乘以卷积核来计算的。

    • 在随后的 Subsequent LSTM Gate Values部分,通过在卷积的每个位置应用LSTM操作,该结构允许LSTM单元响应来自视觉域的空间信息以及音频域的时间信息。这种架构使我们能够研究初始层、第二层和完全连接层的信号融合,同时保持有利于处理图像和序列数据的相同归纳偏置。

3.Multimodal Intelligence: Representation Learning,Information Fusion, and Applications

  • intelligent personal assistant(IPA)智能个人助理,这里可以写在论文里
  • 《多模态智能:表示学习、信息融合及其应用》
  • 这篇文章提供了多模态智能的可用模型和学习方法的技术综述。视觉与自然语言的结合是目前计算机视觉和自然语言处理领域的研究热点。这篇综述从三个新的角度—学习多模态表示、多模态信号在各个层面的融合和多模态应用,对多模态深度学习的最新工作进行了全面分析。
  • 这篇文章回顾了基于深度学习的多模态建模和机器学习领域,特别是视觉和自然语言的结合
  • 多模态融合主要讨论了注意力机制和双线性池化等特殊架构
  • 这篇论文Introduction部分首先讲了单模态的处理,然后讲了多模态的处理,最后一段介绍这篇文章的结构

数据融合章节

只看了数据融合部分

基于简单操作的融合

  • 直接连接(concatenation)
  • 加权和(weighted sum)

基于注意力机制

1.图片注意力机制
  1. 基于RNN的编码器-解码器模型
  2. 堆叠式注意力网络(SANs)
  3. 空间存储网络(SMem)
  4. 动态记忆网络(DMN)
  5. 自下而上和自上而下的注意力方法(Up-Down)
  6. 图像注意力机制的逆过程
2.图片和文本协同注意力机制
  1. 平行协同注意力机制和交替协同注意力机制
  2. 双重注意力网络(DAN)
  3. 堆叠潜在注意力机制(SLA)
  4. 双循环注意力单元(DRU)
3.双模态Transformer注意力机制
  1. BERT->
  2. OmniNet->
  3. LXMERT->
  4. ViLBERT
4.其他注意力机制
  • 门控多模态单元
  • 多模态残差网络(MRN)
  • 动态参数预测网络(DPPnet)

基于双线性池化

双线性池化的因式分解
  1. 多模态紧致双线性池(MCB)
  2. 多模态低秩双线性池(MLB)
  3. 多模态分解双线性池(MFB)
  4. 多模态分解高阶池化(MFH)
  5. MUTAN,基于张量的多模态Tucker分解方法
  6. BLOCK,分块超对角融合框架。BLOCK也可以认为是MUTAN的改进版
双线性池化和注意力机制结合

双线性池可以与注意机制一起使用。

4.Bilinear CNNs for Fine-grained Visual Recognition

  • 作者提出了Bilinear Convolutional Neural Networks(B-CNNs)用于细粒度的视觉识别问题,这个网络将一个图片表示为来自于两个CNN特征的池化外积,并且以平移不变的方式捕获局部化特征交互。
  • 双线性特征的一个缺点是存储高维特征的内存开销。

介绍

  • 细粒度识别即对隶属于同一类的目标进行分类,包括鸟的物种识别、汽车的型号识别和狗的品种识别。细粒度识别高度依赖目标的局部特征。例如,要将“加利福尼亚鸥”与“环嘴鸥”区分开来,需要识别其喙上的图案或它们羽毛的细微颜色差异。
  • img
  • 有两大类技术对这些任务是有效的:
    1. 一是局部模型,这些模型检测并提取局部的特征进行细粒度的类别区分
    2. 另一种方法是基于全局图像的整体模型。
  • 之前方法的不足:
    1. 基于CNN的局部模型要求对训练图像局部标注,代价昂贵,并且某些类没有明确定义的局部特征,如纹理及场景。
    2. 虽然传统的SIFT纹理表示和最近的CNN特征表示在细粒度目标分类上也比较有效,但仍然达不到基于局部的方法的分类效果。其可能原因就是纹理表示的重要特征并没有通过端到端训练获得,因此在识别任务中没有达到最佳效果。
  • 为了解决现有的深度纹理表示的几个缺点,文章提出了Bilinear CNNs.
  • 洞察点:某些广泛使用的纹理表征模型都可以写作将两个合适的特征提取器的输出,外积之后,经池化得到。
    • 首先,(图像)先经过CNNs单元提取特征,之后经过双线性层池化层,其输出是固定长度的高维特征表示,其可以结合全连接层预测类标签。最简单的双线性层就是将两个独立的特征用外积结合。这与图像语义分割中的二阶池化类似。
  • 实验结果:作者在鸟类、飞机、汽车等细粒度识别数据集上对模型性能进行测试。表明B-CNN性能在大多细粒度识别的数据集上,都优于当前模型,甚至是基于局部监督学习的模型,并且相当高效。

用于图像分类的B-CNN

B-CNN 架构

  • image-20230306095237062

    基于 B-CNN 的图像分类。将图像分别通过神经网络 A 和 B,利用矩阵外积和平均池化相结合的方法得到图像的双线性特征表示。这将通过一个线性和 softmax 层来获得类预测。

    • 两个不同的stream代表着通过CNN得到的不同特征,然后将两个特征进行bilinear 操作。用于图像分类的 B-CNN 包含四部分
      B = ( f A , f B , P , C ) \mathcal{B}=\left(f_A, f_B, \mathcal{P}, \mathcal{C}\right) B=(fA,fB,P,C)
      其中   f A \ f_A  fA   f B \ f_B  fB分别表示基于CNN的特征提取函数,P是池化函数, C \mathcal{C} C是分类函数。   f : L × I → R K × D \ f: \mathcal{L} \times \mathcal{I} \rightarrow \mathbb{R}^{K \times D}  f:L×IRK×D,输入图像I和位置L,得到大小为K × D的输出特征。位置通常是可以包含位置和尺度。通过矩阵外积得到每个位置的输出特征,即位置   l \ l  l处的特征   f A \ f_A  fA   f B \ f_B  fB的双线性结合为:
       bilinear  ( l , I , f A , f B ) = f A ( l , I ) T f B ( l , I ) \text { bilinear }\left(l, I, f_A, f_B\right)=f_A(l, I)^T f_B(l, I)  bilinear (l,I,fA,fB)=fA(l,I)TfB(l,I)
      注意   f A \ f_A  fA   f B \ f_B  fB必须具有相同的特征维数 K 才能兼容。

      池化函数   P \ P  P的作用是在不同的位置L处的特征进行整合,来得到图片的全局信息 Φ ( I ) \Phi(I) Φ(I)。作者使用的是sum池化,即:
      Φ ( I ) = ∑ l ∈ L  bilinear  ( l , I , f A , f B ) = ∑ l ∈ L f A ( l , I ) T f B ( l , I ) \Phi(I)=\sum_{l \in \mathcal{L}} \text { bilinear }\left(l, I, f_A, f_B\right)=\sum_{l \in \mathcal{L}} f_A(l, I)^T f_B(l, I) Φ(I)=lL bilinear (l,I,fA,fB)=lLfA(l,I)TfB(l,I)
      由于在进行池化处理的过程中忽略了特征的位置,因此bilinear特征 Φ ( I ) \Phi(I) Φ(I)是一个无序表示。如果   f A \ f_A  fA   f B \ f_B  fB分别提取尺寸为 K × M 和 K × N 的特征,则 Φ ( I ) \Phi(I) Φ(I)的尺寸为 M × N。

      • 通俗一点讲,就是对图像上的每个位置上的特征进行矩阵相乘,然后进行sum pooling 或者进行max-pooling。
    • 特征函数

      特征函数 f 的一个候选是由卷积层和池层的层次结构组成的 CNN。B-CNN中的特征函数   f A \ f_A  fA   f B \ f_B  fB可以不共享/部分共享/完全共享

      image-20230307101609424

    • 归一化和分类函数

      对bilinear特征 x = Φ ( I ) x = \Phi(I) x=Φ(I)求带符号的平方根操作,即
      y ← sign ⁡ ( x ) ∣ x ∣   \mathbf{y} \leftarrow \operatorname{sign}(\mathbf{x}) \sqrt{|\mathbf{x}|}\ ysign(x)x  
      然后再进行L2正则化操作
      z ← y / ∥ y ∥ 2 \mathbf{z} \leftarrow \mathbf{y} /\|\mathbf{y}\|_2 zy/∥y2
      这样做可以提升模型性能。

      分类函数使用logistic regression 或 linear SVM,作者发现线性分类模型SVM对于bilinear特征的分类效果较好。

    • 端到端训练
      B-CNN可以端到端的方式进行训练。因为整个结构是一个有向无环图,参数可以通过分类损失梯度的反向传播来训练(例如,交叉熵)。双线性形式简化了梯度计算。假设 dl/dx 是损失函数l相对于 x 的梯度,那么根据梯度的链式法则可以得到:
      d ℓ d A = B ( d ℓ d x ) T , d ℓ d B = A ( d ℓ d x ) \frac{d \ell}{d A}=B\left(\frac{d \ell}{d \mathbf{x}}\right)^T, \quad \frac{d \ell}{d B}=A\left(\frac{d \ell}{d \mathbf{x}}\right) dAd=B(dxd)T,dBd=A(dxd)
      只要能够有效地计算特征 A 和特征 B 的梯度,整个模型就能够以端到端的方式进行训练。该方案如下图所示。

      image-20230306195025483

Bilinear model 可以看做是其他特征算子(BOW,FV,VLAD)的通用形式。

降维

B-CNN计算了特征的外积,这样原始输出为512维特征的模型经过外积之后的特征变成了512 × 512 ≈ 262 k,特征是高度冗余的。对于 B-CNN,考虑在特征 x 和 y 之间计算外积的情况。为了减小计算量,可以采取下述几种降维方法:

  1. 先外积后降维,即 Φ ( x , y ) = vec ⁡ ( x T y ) P \Phi(\mathrm{x}, \mathrm{y})=\operatorname{vec}\left(\mathrm{x}^{\mathrm{T}} \mathrm{y}\right) \mathrm{P} Φ(x,y)=vec(xTy)P,vec操作将外积矩阵变换成向量,P表示降维的映射矩阵;
  2. 先降维后外积,即 Φ ( x , y ) = ( x A ) T ( x B ) \Phi(\mathrm{x}, \mathrm{y})=(\mathrm{xA})^{\mathrm{T}}(\mathrm{xB}) Φ(x,y)=(xA)T(xB),A,B均表示降维映射矩阵;
  3. 对其中一个特征降维再计算外积,假如对x进行降维处理,则设置B为单位矩阵。

上述三种方法中,降维映射矩阵都可以使用PCA得到。第一种方法比较直观,但是PCA的计算量很大,因为外积的维度为d2,4。第二种方法计算量小,但是准确率损失的太大。多实验中发现第三种方法效果最好。降维矩阵使用PCA进行初始化,但是可以与分类层联合地训练它们。

作者还比较了PCA方法与最近提出的紧凑双线性池(Compact Bilinear Pooling,CBP)技术,PCA方法略差于CBP。CBP使用特征稀疏线性投影与张量草图(Tensor Sketch)的乘积来近似外积。然而,PCA的一个优点是可以实现为密集矩阵乘法,经验上比CBP快1.5倍,CBP涉及计算傅里叶变换及其逆运算。

5.Compact Bilinear Pooling

摘要

双线性模型在语义分割、细粒度识别和人脸识别等视觉任务中表现出了令人印象深刻的性能。然而,双线性特征是高维的,通常在几十万到几百万的数量级,这使得它们对于后续分析是不切实际的。于是作者提出了两个紧凑双线性表示,它们与完整的双线性表示具有相同的鉴别能力,但只有几千维。这篇文章提出的紧凑表示允许分类误差的反向传播,从而实现视觉识别系统的端到端优化。通过对双线性池化的核分析,得到了紧凑双线性表示,为进一步研究紧凑池化方法提供了一个平台。

介绍

  • 虽然上一篇文章Lin等人最近用双线性池取代了完全连接的层,实现了细粒度视觉识别的显著改进。
  • 然而,它们的最终表示是非常高维的;在他们的论文中,编码的特征维数d大于250000。
  • 上篇论文的主要缺点是:成本高(运算量、存储量)
  • 这篇论文工作的主要贡献是一对双线性池方法,与完全双线性池相比,每种方法都能够将特征维度降低三个数量级,而性能损失很小或没有损失。
  • 本文提出的紧凑双线性方法依赖于核函数的低维特征映射。
  • 这项工作的贡献是三方面的。
    1. 首先,这篇文章提出了两种紧凑双线性池方法,与完整的双线性池方法相比,这种方法可以在性能几乎没有损失的情况下降低特征维数和数量级。
    2. 其次,本文证明了通过紧致双线性池的反向传播可以被有效地计算,允许识别网络的端到端优化。
    3. 第三,我们提供了一个新的双线性池的核化观点,这不仅推动了所提出的紧凑方法,而且提供了双线性池的理论见解。

紧凑双线性模型

首先,将bilinear pooling的结果写出来:
B ( X ) = ∑ s ∈ S x s x s T B(\mathcal{X})=\sum_{s \in \mathcal{S}} x_s x_s^T B(X)=sSxsxsT
其中 X = ( x 1 , … , x ∣ S ∣ , x s ∈ R c ) \mathcal{X}=\left(x_1, \ldots, x_{|\mathcal{S}|}, x_s \in \mathbb{R}^c\right) X=(x1,,xS,xsRc)是一组局部描述符,而 S 是一组空间位置(行和列的组合)。局部描述符xs 通常使用 SIFT ,HOG 或通过 CNN 的前向传递提取。B (X)是一个 c × c 矩阵,但是为了我们分析的目的,我们将它看作一个长度为 c2的向量。

双线性池化的核函数角度

使用双线性描述符的图像分类通常使用线性支持向量机(SVM)或 Logit模型来实现,这些都可以看作是线性内核机器。对于两组特征X和Y,用线性核分类可以作如下推导:
⟨ B ( X ) , B ( Y ) ⟩ = ⟨ ∑ s ∈ S x s x s T , ∑ u ∈ U y u y u T ⟩ = ∑ s ∈ S ∑ u ∈ U ⟨ x s x s T , y u y u T ⟩ = ∑ s ∈ S ∑ u ∈ U ⟨ x s , y u ⟩ 2 \begin{aligned} \langle B(\mathcal{X}), B(\mathcal{Y})\rangle & =\left\langle\sum_{s \in \mathcal{S}} x_s x_s^T, \sum_{u \in \mathcal{U}} y_u y_u^T\right\rangle \\ & =\sum_{s \in \mathcal{S}} \sum_{u \in \mathcal{U}}\left\langle x_s x_s^T, y_u y_u^T\right\rangle \\ & =\sum_{s \in \mathcal{S}} \sum_{u \in \mathcal{U}}\left\langle x_s, y_u\right\rangle^2 \end{aligned} B(X),B(Y)⟩=sSxsxsT,uUyuyuT=sSuUxsxsT,yuyuT=sSuUxs,yu2
从式中的最后一行可以清楚地看出,双线性描述符将第一幅图像中的每个局部描述与第二幅图像中的局部描述进行比较,并且比较运算符是一个二阶多项式核。因此,双线性池给了线性分类器一个二阶核机器的判别力,这可能有助于解释在以前的工作中观察到的强大的经验性能。

紧凑双线性池化

设 k (x,y)表示比较核,即二阶多项式核。如果能找到一个低维映射函数 ϕ ( x ) ∈ R d \phi(x) \in R^d ϕ(x)Rd,其中 d < < c 2 d<<c^2 d<<c2,且满足:
⟨ ϕ ( x ) , ϕ ( y ) ⟩ ≈ k ( x , y ) \langle\phi(x), \phi(y)\rangle \approx k(x, y) ϕ(x),ϕ(y)⟩k(x,y)
即使得降维到d后的内积约等于原来k(x,y)中 c 2 c^2 c2对的内积。如果能够找到这样的phi,那么可以通过以下方法来近似的内积:
⟨ B ( X ) , B ( Y ) ⟩ = ∑ s ∈ S ∑ u ∈ U ⟨ x s , y u ⟩ 2 ≈ ∑ s ∈ S ∑ u ∈ U ⟨ ϕ ( x ) , ϕ ( y ) ⟩ ≡ ⟨ C ( X ) , C ( Y ) ⟩ , \begin{aligned}\langle B(\mathcal{X}), B(\mathcal{Y})\rangle & =\sum_{s \in \mathcal{S}} \sum_{u \in \mathcal{U}}\left\langle x_s, y_u\right\rangle^2 \\ & \approx \sum_{s \in \mathcal{S}} \sum_{u \in \mathcal{U}}\langle\phi(x), \phi(y)\rangle \\ & \equiv\langle C(\mathcal{X}), C(\mathcal{Y})\rangle,\end{aligned} B(X),B(Y)⟩=sSuUxs,yu2sSuUϕ(x),ϕ(y)⟩C(X),C(Y)⟩,
其中 C ( X ) : = ∑ s ∈ S ϕ ( x s ) C(\mathcal{X}):=\sum_{s \in \mathcal{S}} \phi\left(x_s\right) C(X):=sSϕ(xs)是紧凑双线性特征。可以看出任何多项式核的低维度近似都可以拿来做紧凑双线性池化。这里研究了Random Maclaurin (RM) 和 Tensor Sketch(TS) 这两种方法。

RM 是一种早期的方法,用来作为低维显式特征映射来近似多项式核。

总结

作者已经在一个核框架中对双线性池化进行了建模,并提出了两种紧凑表示,这两种表示都允许梯度的反向传播,用于分类任务的端到端优化。

核函数

已知有一组向量,可用线性函数去探索其是否具有线性关系,若数据之间是非线性呢?

非线性数据是指只有利用非线性模型才能更好的预测。但非线性问题往往不好求解,所以希望用解线性分类问题的方法解决这个问题。所采取的方法是进行一个非线性变换,将非线性问题变换为线性问题,通过解变换后的线性问题的方法求解原来的非线性问题。原理是将数据映射到高维数据,在高维空间线性可分。如下图,从低维转换到高维, Φ \Phi Φ是转换函数。

img

不论是感知机还是支持向量机,在面对非线性问题时,往往都会用到一个名为“核函数”的技巧。

但是有个问题,高维空间的数据计算存在困难。所以替代方案是在特征空间中计算相似度度量,而不是计算向量的坐标,然后应用只需要该度量值的算法。用**点积(dot product)**表示相似性度量。


原始空间中的向量作为输入向量,并返回特征空间(转换后的数据空间,可能是高维)中向量的点积的函数称为核函数

使用内核,不需要显式地将数据嵌入到空间中,因为许多算法只需要图像向量之间的内积(内积是标量);在特征空间不需要数据的坐标。

  • 内积或点积的数学符号一般用一个点表示,例如 a ⃗ ⋅ b ⃗ \vec{a} \cdot \vec{b} a b

  • 但如果在高维空间(大于等于三维),通常用括号<>表示,例如
    < a ⃗ , b ⃗ > = ∑ a i ∗ b i <\vec{a}, \vec{b}>=\sum a_i * b_i <a ,b >=aibi
    考虑一个带有特征映射的二维输入空间 χ ⊆ R 2 \chi \subseteq \mathbb{R}^2 χR2:

    特征映射二维到三维:
    Φ : x = ( x 1 , x 2 ) → Φ ( x ) = ( x 1 2 , x 2 2 , 2 x 1 x 2 ) ∈ F = R 3 \Phi: x=\left(x_1, x_2\right) \rightarrow \Phi(x)=\left(x_1^2, x_2^2, \sqrt{2} x_1 x_2\right) \in F=\mathbb{R}^3 Φ:x=(x1,x2)Φ(x)=(x12,x22,2 x1x2)F=R3
    特征空间中的内积:
    ⟨ Φ ( x ) , Φ ( z ) ⟩ = ⟨ ( x 1 2 , x 2 2 , 2 x 1 x 2 ) , ( z 1 2 , z 2 2 , 2 z 1 z 2 ) ⟩ = x 1 2 z 1 2 + x 2 2 z 2 2 + 2 x 1 x 2 z 1 z 2 = ⟨ x 1 z 1 + x 2 z 2 ⟩ 2 = ⟨ x , z ⟩ 2 \begin{aligned} \langle\Phi(x), \Phi(z)\rangle & =\left\langle\left(x_1^2, x_2^2, \sqrt{2} x_1 x_2\right),\left(z_1^2, z_2^2, \sqrt{2} z_1 z_2\right)\right\rangle \\ & =x_1^2 z_1^2+x_2^2 z_2^2+2 x_1 x_2 z_1 z_2 \\ & =\left\langle x_1 z_1+x_2 z_2\right\rangle^2 \\ & =\langle x, z\rangle^2 \end{aligned} Φ(x),Φ(z)⟩=(x12,x22,2 x1x2),(z12,z22,2 z1z2)=x12z12+x22z22+2x1x2z1z2=x1z1+x2z22=x,z2

根据上面得,核函数为 k ( x , z ) = ⟨ x , z ⟩ 2 = Φ ( x ) T Φ ( z ) k(x, z)=\langle x, z\rangle^2=\Phi(x)^T \Phi(z) k(x,z)=x,z2=Φ(x)TΦ(z)

哈达玛积(基本积)

image-20230308191303824

6.Multimodal Prompting with Missing Modalities for Visual Recognition

  • 用于视觉识别的多模态缺失提示学习
  • 本文要解决多模态学习中的两大挑战:
    1. 在现实世界中,数据并非总是完整的,有时可能会遇到缺失某些模态的情况。
    2. 训练transformer的繁重计算要求
  • 作为一种简单而有效的方法,作者提出了一种缺失感知提示方法,该方法易于插入到类Transformer的多模态模型中,以缓解由于缺失模态而导致的性能下降,同时也不需要进行大量的模型微调。作者进一步探索了提示的配置,并展示了在各种场景中对缺失模态的鲁棒性。
  • 大量的实验和消融研究证明了该方法的有效性。

image-20230315105802318

  • 多模态转换器训练中的模态缺失场景说明:
    • 先前的工作研究了多模态变压器对模态不完整测试数据的鲁棒性,要求使用模态完整训练数据微调整个模型。
    • 相比之下,这篇论文的工作研究了更一般的场景,其中各种模态缺失情况不仅在每个数据样本中发生,而且在学习阶段(训练、测试或两者)也会发生,作者采用提示学习来适应下游任务的预训练转换器,而不需要对整个模型进行微调的繁重计算。
  • 大多数基于多模态Transformer的方法都是假设数据完整的,但是在现实情况下不成立。当数据是模态不完整时,性能可能降低(不管训练或测试如何)
  • 另一方面,由于Transformer的强泛化能力,常被用作预训练模型的主要组成部分,并微调来处理各种下游任务。但是随着模型尺寸的增加,微调的成本越来越高。此外,在小规模的数据集上进行微调会限制泛化能力和稳定性
  • 这篇文章的贡献如下:
    1. 本文介绍了一个多模态学习的一般场景,在训练或测试阶段,对于每个数据样本来说模态的缺失可能会不同
    2. 本文建议使用缺失感知提示来处理缺失模态的情况,同时只需要不到1%的参数来适应预先训练的模型,从而避免微调大型Transformer
    3. 这篇文章进一步研究了将提示附加到预训练Transformer不同位置的两种设计:输入级和注意级提示学习,其中输入级提示学习通常是更好的选择,但注意级提示对某些数据集设置不太敏感。
  • 最近有很多对于缺失模态的工作:
    1. Are multimodal transformers robust to missing modality?
    2. Smil: Multimodal learning with severely missing modality.
    3. Tag-assisted multimodal sentiment analysis under uncertain missing modalities.
    4. Missing modality imagination network for emotion recognition with uncertain missing modalities.

模型架构

整体框架

本文主要研究一般情况下模态缺失的多模态学习问题。假设存在几种模态缺失情况,例如:缺失一个模态或缺失多个模态,以表示现实世界中多模态学习的更现实的场景。

研究意义:1.现实世界中多模态学习的更现实的场景往往缺失模态。2.由于预训练的Transformer变得更大并且在有限的计算资源下不可训练。因此开发无需微调整个预训练模型的方法至关重要。

1.问题定义

本文考虑由M = 2个模态m1和m2组成的多模态数据集(例如,图像和文本)。给定多模态数据集 D = { D c , D m 1 , D m 2 } D=\left\{D^c, D^{m_1}, D^{m_2}\right\} D={Dc,Dm1,Dm2},我们将 D c = { x i m 1 , x i m 2 , y i } D^c=\left\{x_i^{m_1}, x_i^{m_2}, y_i\right\} Dc={xim1,xim2,yi}表示为模态完整子集,而将 D m 1 = { x j m 1 , y j } D^{m_1}=\left\{x_j^{m_1}, y_j\right\} Dm1={xjm1,yj} D m 2 = { x k m 2 , y k } D^{m_2}=\left\{x_k^{m_2}, y_k\right\} Dm2={xkm2,yk}分别表示为缺少一种模态的模态不完全子集(例如,仅文本和仅图像)。

为了保持多模态输入的格式,我们简单地将虚拟输入 x ~ m 1 \tilde{x}^{m_1} x~m1 x ~ m 2 \tilde{x}^{m_2} x~m2(例如,文本/图像的空字符串/像素)到缺失模态数据,并获得 D ~ m 1 = { x j m 1 , x ~ j m 2 , y j } \tilde{D}^{m_1}=\left\{x_j^{m_1}, \tilde{x}_j^{m_2}, y_j\right\} D~m1={xjm1,x~jm2,yj} D ~ m 2 = { x ~ m 1 , x k m 2 , y k } \tilde{D}^{m_2}=\left\{\tilde{x}^{m_1}, x_k^{m_2}, y_k\right\} D~m2={x~m1,xkm2,yk}。因此,可以将具有缺失模态的多模态数据重组为 D ~ = { D c , D ~ m 1 , D ~ m 2 } \tilde{D}=\left\{D^c, \tilde{D}^{m_1}, \tilde{D}^{m_2}\right\} D~={Dc,D~m1,D~m2}

为简单起见,本文遵循[22],采用多模态transformer—ViLT 作为本文的主要模型,该模型在大规模视觉和语言数据集上进行了预训练。注意:由于计算资源的限制,在这篇论文的场景中主要模型是不可训练的。

为了解决缺失模态的问题,本文提出了缺失感知提示来指导预先训练的模型在不同的输入情况下进行预测。这些提示根据输入数据的缺失情况来分配,并且被附加到多模态transformer的多个模块。在不可训练的预训练模型的假设下,唯一可训练的参数是用于学习多模态分类器的缺失感知提示、池化层和全连接层

image-20230318101716920

2.缺失模态的提示学习

提示学习是自然语言处理中一种有效的迁移学习方法,它不需要对整个预训练模型进行微调。

  1. 首先为M个模态任务分配$ M^2-1$个提示(例如:视觉语言任务的3个缺失感知提示),并根据缺失模态的类型将它们预先附加到输入中。

  2. 给定具有N个连续**MSA(Multi-head Self Attention layers)**层的预训练多模态transformer f θ f_\theta fθ,我们将第i个MSA层的输入嵌入特征表示为 h i ∈ R L × d , i = 1 , 2 , … , N h^i \in \mathbb{R}^{L \times d}, i=1,2, \ldots, N hiRL×d,i=1,2,,N,输入长度为L,嵌入维数为d。注意 h 1 h^1 h1是特定模态嵌入函数的输出,其将输入预处理为标记(token)序列(即,用于文本模态的BERT标记器和用于图像模态的视觉嵌入层)。

  3. 然后,在第i层中加入缺失感知提示 p m i ∈ R L p × d p_m^i \in \mathbb{R}^{L_p \times d} pmiRLp×d,其中 L p L_p Lp为提示长度,d为嵌入维数, m ∈ { c , m 1 , m 2 } m \in\left\{c, m_1, m_2\right\} m{c,m1,m2}表示不同的模态缺失情况。

  4. 最后,将缺失感知提示与输入长度维度一起附加到嵌入特征上,以形成扩展特征:
    h p i = f prompt  ( p m i , h i ) h_p^i=f_{\text {prompt }}\left(p_m^i, h^i\right) hpi=fprompt (pmi,hi)

整体目标

本文选择多模态转换器的文本相关任务标记作为我们的最终输出特征。

对于模型训练,除了任务特定层 f θ t f_{\theta_t} fθt(即:池化层和完全连接层)外,本文冻结了多模态变压器的所有参数 f θ f_\theta fθ ,以便基于每个视觉感知任务输出相应的预测。此外,将 θ p \theta_p θp表示为缺失感知提示的参数。带有可训练参数的总体目标定义为:
L = L task  ( x i m 1 , x i m 2 ; θ t , θ p ) L=L_{\text {task }}\left(x_i^{m_1}, x_i^{m_2} ; \theta_t, \theta_p\right) L=Ltask (xim1,xim2;θt,θp)
其中 ( x i m 1 , x i m 2 ) ∈ D ~ \left(x_i^{m_1}, x_i^{m_2}\right) \in \tilde{D} (xim1,xim2)D~是具有缺失模态情况的多模态输入对,并且 L t a s k L_{t a s k} Ltask表示特定任务的多模态目标,例如,用于电影类型分类的二元交叉熵损失。

3.提示设计

背景:一般来说,大多数基于提示的方法通常会将提示添加到输入序列中,并指示模型执行下游任务。然而,[36]表明提示的配置和添加提示的位置对于基于提示的学习至关重要

**研究意义:**在本文的情况下,由于可能缺少输入模态,因此研究附加提示的正确配置非常重要。

两种提示配置:输入级提示(input-level prompting)和注意级提示(attention-level prompting)

image-20230319100511015

两种提示方法的说明图。上面的模块显示了输入级提示方法,它将缺失感知提示 p m i p_m^i pmi附加到第i个MSA层的输入中。下块示出了注意力水平提示方法,其首先将缺失感知提示 p m i p_m^i pmi拆分成具有相同长度的两个子提示 p k i p_k^i pki p v i p_v^i pvi,并且将它们分别附加到第i个 MSA层中的键 K i K^i Ki和值 V i V^i Vi

输入级提示

附加提示的一种常见方法是将提示添加到每个层的输入序列中,如上图所示。提示函数可以写成:
f prompt  input  ( p m i , h i ) = [ p m i ; h i ] f_{\text {prompt }}^{\text {input }}\left(p_m^i, h^i\right)=\left[p_m^i ; h^i\right] fprompt input (pmi,hi)=[pmi;hi]
其中 [ ⋯   ; ⋯   ] [\cdots ; \cdots] [;]表示连接操作。假设有附加提示参数的 N p N_p Np层,每个MSA层的输入/输出序列的长度会随着它的深入而变大。例如,带有提示的最后MSA层的输出中的序列长度将变为 ( N p L p + L ) \left(N_p L_p+L\right) (NpLp+L)

当前层的提示符可以与从先前层继承的提示符标记交互,从而学习到用于模型预测的更有效的指令。

缺点输入序列这种长度的增加使得输入级提示学习对具有不同多模态token长度的数据集比较敏感,这可能不利于某些多模态下游任务

注意级提示

另一种方法是用提示修改(prompts)MSA层的输入。在上图的下面所示,本文将提示符拆分为两个子提示符 p k i p_k^i pki p v i p_v^i pvi,它们具有相同的序列长度 L p 2 \frac{L_p}{2} 2Lp,并将它们分别添加到键向量(key)和值向量(value)的前面。作者将MSA层的查询(query)、键(key)和值(value)表示为:
Q i = h i W Q i ; K i = h i W K i ; V i = h i W V i Q^i=h^i W_Q^i ; K^i=h^i W_K^i ; V^i=h^i W_V^i Qi=hiWQi;Ki=hiWKi;Vi=hiWVi
其中 W Q i , W K i , W V i ∈ R d × d W_Q^i, W_K^i, W_V^i \in \mathbb{R}^{d \times d} WQi,WKi,WViRd×d是MSA层的投影权重。然后可以将注意级提示的提示函数(prompt function)定义为:
f prompt  a t t n ( p m i , h i ) = ATTENTION  ⁡ i ( p m i , h i )  ATTENTION  i = softmax ⁡ ( Q i [ p k i , K i ] T d ) [ p v i ; V i ] \begin{aligned} & f_{\text {prompt }}^{a t t n}\left(p_m^i, h^i\right)=\operatorname{ATTENTION~}^i\left(p_m^i, h^i\right) \\ & \text { ATTENTION }^i=\operatorname{softmax}\left(\frac{Q^i\left[p_k^i, K^i\right]^T}{\sqrt{d}}\right)\left[p_v^i ; V^i\right] \\ & \end{aligned} fprompt attn(pmi,hi)=ATTENTION i(pmi,hi) ATTENTION i=softmax(d Qi[pki,Ki]T)[pvi;Vi]
从transformer注意机制的角度来看,注意级提示提供了另一种指导预训练模型的方法。

由于提示符(prompts)不附加到查询(query)向量,因此输出序列长度与输入序列长度保持相同。

多层提示和附加提示的位置

背景:多模态变换器的不同层具有不同的特征嵌入上下文,并且每层的提示效果可能不同。在自注意机制下,来自不同模态的输入token与transformer层紧密融合。

**意义:**也就是说,早期层可能比更深层具有更多来自不同模态的特征,深层的特征与关于任务目标的多模态tokens很好地融合。这促使探索最合适的位置来附加缺失感知提示。

方法和结果:本文引入了提示符的多层扩展,表示为 P m = { p m i } i =  start  end  ∈ R N p × L p × d P_m=\left\{p_m^i\right\}_{i=\text { start }}^{\text {end }} \in \mathbb{R}^{N_p \times L_p \times d} Pm={pmi}i= start end RNp×Lp×d,其中 p m i p_m^i pmi是附加到transformer中第i层的输入序列(输入级)或MSA层(注意级)的提示符, N p = ( N_p=( Np=( end - start +1 ) ) )是具有提示符的层的总数。请注意,我们简单地假设MSA层的选定索引是连续的。

与提示符(prompts)附加到整个层或仅第一层情况下相比,我们经验地发现前半部分层是附加提示符(prompts)最佳位置:从第一层开始 ( start ⁡ = 0 \left(\operatorname{start}=0\right. (start=0, end = N 2 − 1 ) \left.=\frac{N}{2}-1\right) =2N1) N p = N 2 N_p=\frac{N}{2} Np=2N

局限性和未来工作

  1. 不能从多模态输入中恢复缺失的信息
  2. 当面对模态较多的场景时,提示的数量可能会出现二次增长

7.Multimodal Learning with Transformers: A Survey

本文主要涉及5个方面:(1)多模态学习,大背景(2)几何角度回顾(3)应用回顾(4)模型研究挑战设计总结(5)展望和讨论

8.BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

池化部分

  • Zadeh等人[19]提出了多模态张量融合网络,通过计算张量外积来获得模态相关性;Hou等人[20]提出了分层多项式融合网络,建立了多项式张量池块,通过高阶矩阵集成多模态特征
  • 双线性池化发展历程参考;https://blog.csdn.net/taoqick/article/details/122075739

对比学习\自监督学习
模态输入中恢复缺失的信息
2. 当面对模态较多的场景时,提示的数量可能会出现二次增长

7.Multimodal Learning with Transformers: A Survey

本文主要涉及5个方面:(1)多模态学习,大背景(2)几何角度回顾(3)应用回顾(4)模型研究挑战设计总结(5)展望和讨论

池化部分

  • Zadeh等人[19]提出了多模态张量融合网络,通过计算张量外积来获得模态相关性;Hou等人[20]提出了分层多项式融合网络,建立了多项式张量池块,通过高阶矩阵集成多模态特征
  • 双线性池化发展历程参考:https://blog.csdn.net/taoqick/article/details/122075739
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值