【多模态】《Attention Bottlenecks for Multimodal Fusion》论文阅读笔记

一、概述

这篇文章做的是视频分类,即通过视频帧的特征和声音特征这两种模态进行多模态融合并分类。

这篇文章的思路非常巧妙,采用了Transformer的结构对多种模态的特征进行了编码,因为Transformer本身就是一个编码器,这篇文章的巧妙之处就在于使用的是一个Transformer对两种模态进行编码。同时,在本文的模型框架中,在早期的时候,在模态内部做self attention;在中后期的时候,在模态之间做attention。而且这是可以动态进行调整的,也就是说可以通过调整参数来控制在一个Transformer的前多少层做模态内的self attention,在一个Transformer的后多少层做模态间的attention。还有一个巧妙之处在于,由于用了一个Transformer编码两种模态的信息,所以在模态之间进行交互和融合的时候,由于每种模态的tokens数量多而使得计算量大,所以这篇文章提出一个bottleneck的架构,将每种模态和bottleneck进行交互融合,从而将模态信息压缩到bottleneck中,既进行了交互,又减少了计算量。当然,这篇文章还有很有亮点的地方,比如采用ViT的架构对将视觉特征转化成Transformer可以编码的形式,采用AST将声音特征转化成Transformer可以编码的形式。总之,这是一片非常巧妙而优雅的论文。

本文引入了一种新颖的基于 Transformer 的架构,该架构使用“fusion bottlenecks”在多层进行模态融合。 与传统的pairwise self-attention相比,我们的模型强制不同模态之间的信息通过少量的bottleneck latents,要求模型在每个模态中整理和浓缩相关信息并共享必要的信息。

具体来说,本文首先使用ViT和AST将视觉信息和声音信息转化成类似于文本“token”的1-D特征向量。一个最简单的思路就是将音频数据和视觉数据先拼接成一个sequence,然后输入进标准的transformer,不需要对transformer结构作大的修改。这样的方式其实就是early-fusion。通过这种方式,transformer里面的attention能够自由、充分地接触和处理来自每个模态的每个维度的信息,但是这种自由是不必要的。因为不同模态间的信息会有冗余,视频的图像帧之间也会有信息冗余。另一方面,这样的attention无法很好进行扩展,对于长时间的视频处理,计算量太大。

针对上述问题,本文设计了两种方式来解决原始transformer中attention的问题。

  1. 如同多数多模态fusion模型一样,将fusion部分往后推移,先让模型单独处理单个模态的信息,然后再做fusion(做mid fusion,而不是early fusion)。这样能够充分提取单模态内部的信息,毕竟不同模态的数据结构和分布差距很大,使用一样的处理方式是不合理的。在layer内的不同模态的tokens之间做跨模态的attention。单模态内部仍然是原始的self-attention,但是跨模态的fusion使用每个模态的部分tokens信息来做cross-attention。
  2. 第二个想法(也是主要贡献)是限制层内token之间的跨模态注意力流。我们通过允许在模态中自由的注意力流动来做到这一点,但强制我们的模型在与另一个模态共享之前从每个模态中整理和“浓缩”信息。核心思想是引入一小组潜在融合单元,形成“注意力瓶颈”,层内的跨模态交互必须通过这些单元。我们证明了这个“bottleneck”版本,我们将其命名为 Multimodal Bottleneck Transformer (MBT)。我们的模型通过紧密融合“瓶颈”限制潜在单元之间的跨模态信息流,这迫使模型收集和“浓缩”每种模态中最相关的输入(因此只与其他模态共享必要的输入) )。

二、 The ViT and AST architectures

Vision Transformer (ViT) (以及最近对音频的扩展——Audio Spectrogram Transformer (AST))采用了最初为自然语言处理而设计的 Transformer 架构,以最小的变化处理 2D 输入。 关键的处理是从 RGB 图像(或音频频谱图)中提取 N 个不重叠的patch, x i x_i xi R h × w R^{h×w} Rh×w,并将它们转换为一系列 1D 的token z i z_i zi R d R^d Rd,如下所示:
请添加图片描述

E 是将每个标记映射到 R d R^d Rd 的线性投影矩阵, z c l s z_{cls} zcls 是附加到该序列的特殊标记,因此它在最后一层的表示可以传递给分类任务的分类器,并且 p ∈ R ( N + 1 ) × d R^{(N+ 1)×d} R(N+1)×d 是添加到标记以保留位置信息的学习位置嵌入。

然后就可以跟Transformer一样,进行多头自注意力和前馈MLP,即:
【多模态】《Attention Bottlenecks for Multimodal Fusion》论文阅读笔记_第1张图片
我们进一步定义了两个张量 X 和 Y 之间的多头交叉注意力 (MCA),其中 X 构成查询,Y 构成用于重新加权查询的键和值,即 MCA(X, Y) = Attention( W Q X , W K Y , W V Y ) W^QX, W^K Y,W^VY) WQX,WKYWVY。 这将在我们的多模态案例中使用。

三、多模态Transformer

【多模态】《Attention Bottlenecks for Multimodal Fusion》论文阅读笔记_第2张图片

3.1 Fusion via vanilla self-attention

分别使用ViT和AST——利用Transformer的结构分别编码视觉模态和声音模态,然后拼接两种模态的token(或hidden state,如果是early fusion,则拼接token;如果是mid fusion,则拼接hidden state。这一点将会在稍后介绍)。
【多模态】《Attention Bottlenecks for Multimodal Fusion》论文阅读笔记_第3张图片
然后,我们的多模式编码器以与上述相同的方式应用一系列变换器层。 注意力可以在网络中自由流动,即每个 RGB 令牌可以关注所有其他 RGB 和频谱图令牌,如下所示:
请添加图片描述
模型参数为 θ。 这里的 Transformer 是指带有香草自注意力块的标准 Transformer 层。

3.2 Fusion with modality-specific parameters

将3.1的模型改为每种模态各自训练自己的参数(即modality-specific),然后使用cross-attention来做信息交换。因此,作者定义了一个cross-transformer层:
【多模态】《Attention Bottlenecks for Multimodal Fusion》论文阅读笔记_第4张图片

3.3 Fusion via attention bottlenecks

为了改善3.2中pairwise attention的二阶复杂度,我们接下来介绍fusion bottleneck结构:
z f s n = [ z f s n 1 , z f s n 2 , … , z f s n B ] \mathbf{z}_{\mathrm{fsn}}=\left[z_{\mathrm{fsn}}^{1}, z_{\mathrm{fsn}}^{2}, \ldots, z_{\mathrm{fsn}}^{B}\right] zfsn=[zfsn1,zfsn2,,zfsnB]
B 代表模态的个数,本文中有视频和声音两个模态,所以B=2

然后,z被整理成:
z = [ z r g b ∥ z f s n ∥ z s p e c ] \mathbf{z}=\left[\mathbf{z}_{\mathrm{rgb}}\left\|\mathbf{z}_{\mathrm{fsn}}\right\| \mathbf{z}_{\mathrm{spec}}\right] z=[zrgbzfsnzspec]

然后,我们将模型中的所有夸模态的注意力stream限制为 :仅通过这些bottleneck token进行流动。对于层layer而言,计算过程变为:
【多模态】《Attention Bottlenecks for Multimodal Fusion》论文阅读笔记_第5张图片

因此,视觉和音频的向量更新只能通过bottleneck tokens来进行,作者通过限制bottleneck tokens的数量远小于原始tokens的数量,来降低计算复杂度。并且通过较少的bottleneck传递跨模态信息时,模型迫使每个模态浓缩自己的信息,且仅传递最重要的信息给另一个模态(避免了模态中冗余信息的传递和计算)。该公式中,bottleneck tokens的向量更新了两次,先用visual信息更新一次(公式8),再用audio信息更新一次(公式9)。(这样的话,模型两个模态的处理过程就成了串行的,先处理visual,再处理audio)后续实验证明,该模型在保持甚至超越其他模型性能的情况下,降低了计算量。

因为所有跨模态的注意力流都必须通过这些单元,这些紧密的“融合”瓶颈迫使模型从每个模态中浓缩信息并共享必要的信息。

四、Where to fuse: early, mid and late

多模态学习的一个常见范式是限制网络的早期层专注于单模态处理,并且只在后面的层引入跨模态连接。 如果我们认为较低层参与处理低级特征,这在概念上是直观的,而较高层专注于学习语义概念——图像中的边缘和角落等低级视觉特征可能没有特定的声音特征,因此可能 无法从与音频的早期融合中受益。

在多模态transformer中,一个共识是在前期先让各个模态分别学习自己的特征,后期再进行多模态的融合。因为我们通常认为前面的层用来学low-level的特征,后面的层学习high-level的特征,而low-level的不同模态特征之间可能还没有出现明显的关联关系,所以融合要放在后面层进行。
【多模态】《Attention Bottlenecks for Multimodal Fusion》论文阅读笔记_第6张图片

参考资料

【论文阅读】Attention Bottlenecks for Multimodal Fusion—多模态融合,音视频分类,注意力机制

你可能感兴趣的:(多模态,transformer,深度学习,人工智能)