文章来源 NeurIPS 2021年
论文链接: Attention Bottlenecks for Multimodal Fusion
代码链接:https://github.com/google-research/scenic/tree/main/scenic/projects/mbt
摘要
人类的大脑在处理信息时,会自动融合视觉,听觉等多种模态信心来进行信息的处理,但是电脑在处理信息时,他们只是对单一的模态去进行信息的处理,例如他们只根据音频信息(或视频信息)来去使用这种单模态的信息去对模特的最终表征去进行处理。
作者提出的是一个基于transformer的架构,该架构在多个层都使用“融合瓶颈”来去进行多个层的模态融合,和传统的自注意力机制不同,作者的模型让不同模态的信息通过瓶颈来实现必要信息的共享,这种方法降低了成本,并且提高了效率。
作者通过使用数据集 音频集(Audioset)、史诗厨房(Epic-Kitchens)和 VGGSound 在内的多个视听分类基准测试中取得了领先的成果。
1.引言
人脑在处理信息时会考虑一些问题,这些问题模型很难去考虑到。比如:
1.模态之间学习动态的变化,(人脑在处理视频音频信息时,他的信息是动态变化的),这点机器很难去提取学习。
2.不同的噪声拓扑,在处理信息时,存在很多的噪声,比如我们要去处理一段音频,那音频中的噪声,我们人脑 是可以分辨出来的,但是模型很难分辨出来。我们的模型必须要分辨出那些信息是重要的,那些信息是不重要的。
3.人脑需要专门的输入表示,也就是我们必须以文字或者视频音频的信息交给人脑去处理。我们看不懂那些随便画的一些抽象画。机器也只能依赖短期傅立叶分析来产生log-mel频谱图来去分析语音信息。
作者提出修改模型的原因
当时的Transformer可以在图像分类,视频分类任务上表现很好的效果,对于多模态任务,就是同时把视觉和听觉的patches的序列输入到transformer model中,这种早期融合会直接把视频中很多的密集,细粒度信息等很多冗余的信息进行共享。存在的很多模型都早期结合,就是会混合很多不重要的信息,造成性能不好以及资源的浪费。
作者的思路
思路1.就是把跨膜态流直接限制到网络的后期层,让早期层各自的模型单独学习自己对应的单模态信息。(引入夸模态相互作用的层叫做融合层)作者一种是把融合层放在最早期,另一种思路是把融合层放在最后期。这样可以形成一种对比。
思路2.思路二也就是文章的主要贡献,他是限制层内的token之间的夸模态注意力流。我们允许注意力在一个模态内自由流动。我们我们的一个模态把特征进行浓缩之后再去输入给另一个模态。(它的核心思想就是引入一个潜在融合单元“注意力瓶颈”,层内的跨模态交互必须通过这个瓶颈)
作者的主要工作:
作者提出了一个新的基于Transformer model的视频视听融合模型。简称MBT,模型是transformer模型来引入一些注意力瓶颈,然后这些瓶颈会限制不同模态之间的信息流动。
1.它通过紧密融合的瓶颈限制了潜在单元之间的夸模态信息交流。他可以保证每个模特信息浓缩的纯粹性,并且保证共享信息的纯粹性。
2.作者把MBT应用于图像和频谱图patches,进行笑容实现,最后发现在使用的三个数据集上效果很好。
红色圆圈是音频信息,蓝色圆圈是视频信息,最后的紫色圆圈是瓶颈
图片中四个分别为 晚期融合(Late Fusion) 中期融合(Mid Fusion) 瓶颈融合(Bottleneck Fusion) 瓶颈中期融合(Bottleneck Mid Fusion)
图1:跨模态融合。与晚期融合(左图)不同(在分类器之前模型内不进行跨模态信息交换),我们探索了两种跨模态信息交换的路径。第一种是通过标准的成对自注意力机制(应用于模型的后几层中的所有隐藏单元)——即中期融合(中左)。我们还提出使用“融合瓶颈”(中右),通过紧密的潜在单元限制层内的注意力流动。这两种限制方法可以结合使用(瓶颈中期融合,右图),以实现最佳性能。图中展示了包含2个瓶颈单元(B=2B=2)和每个模态3个隐藏单元的结构。灰色方框表示接收来自音频和视频令牌的注意力流的令牌。
左图就是当时的主流夸模态融合,就是晚期融合,在分类器之前模型内不进行跨模态信息交换。
作者提出了第二个图片就是中期融合,它使用了标准的成对自注意力机制,并且应用于模型的后几层中的所有隐藏单元。
作者还提出了第三张图片瓶颈融合,通过紧密的潜在单元限制层内的注意力流动。
最终作者的中期融合和瓶颈融合可以合在一起用也就是图4,就是瓶颈中期融合。就是一方面我们使用瓶颈融合,同时我们在中期就进行融合。最后来达到最好的性能。
途中包含了两个瓶颈单元和每个模态3个隐藏单元的结构
2.相关工作
2.1视听学习
这边就是讲了一下视听多模态学习的发展历程。
早期技术简单比如在早期阶段,研究者会把一些人工设计好的特征堆叠在一起,以此来处理多模态数据;在后期阶段,则常采用分数融合的技术。
深度学习带来复杂策略:随着深度学习的发展,研究者可以使用更复杂、更高级的策略来进行视听多模态学习。在深度学习中,模型可以自动学习到不同模态数据的特定特征,或者把不同模态的特征联合起来学习,虽然这个过程是间接实现的,但却让多模态融合效果更好。这也使得在一系列需要监督的视听任务上,比如视频分类、目标识别等,取得了很大的进步
监督学习中的方法:在有监督学习的情况下,可以同时训练多个针对不同模态的卷积神经网络。训练完后,通过相加的方式 [32] ,或者采用 “横向连接”(一种特定的连接方式,让不同网络的中间层相互连接传递信息)的方法,从而实现多模态信息的融合。
无监督学习中的方法:在没有监督的学习环境里,视听学习一般是为了让模型学习到每个模态单独的、比较好的特征表示。有一种很常用的预训练任务,就是利用对比损失的方法,让来自不同模态的信号在某种程度上达到同步。不过在这个过程中,每个模态的数据通常是分开单独进行编码处理的。
2.2多模态Transformer
Transformer的自注意力提供了多个模态的信号连接机制。目前transformer已经被广泛应用于音频增强 、语音识别、图像分割、跨模态序列生成、图像和视频检索、视觉导航和图像/视频字幕/分类。
目前广泛使用的transformer的输入就是单模态CNN的输出。但是作者不一样。作者使用的一直都是transformer model块。用单个卷积层来光栅化2D patch。来着不同模块的信息直接作为原始多模态信号的输入。
图2:应用于视听输入的多模态融合Transformer。输入序列由图像和频谱图块组成。这些块通过线性投影转换为Token,并与特殊的CLS(分类)和FSN(融合瓶颈)Token拼接。Transformer编码器通过自注意力建模单模态信息,并通过与瓶颈Token的跨注意力在网络的多个层中限制跨模态信息流。
处理模块
就是我们输入一个图像块,我们把视频帧提取局部空间特征,然后通过线性投影为token,我们吧音频模块通过短时傅里叶变化后生成频谱图,同样投影为token
特殊token
-
CLS Token:分类Token,最终用于生成分类结果(类似于ViT中的设计)。
-
FSN Token(Fusion Bottleneck Tokens):少量可学习的瓶颈Token,作为跨模态信息交互的“通道”,强制模型压缩并筛选关键信息。
跨模态交互机制
-
自注意力(Self-Attention):在单模态内部(如视频或音频Token之间)建模局部和全局依赖关系。
-
跨注意力(Cross-Attention):通过FSN Token实现跨模态交互。例如:
-
视频Token仅能与FSN Token交互,音频Token同理。
-
FSN Token汇总两模态信息后,再反向更新各模态的Token。
-
创新点与优势
-
结构化约束:通过FSN Token限制跨模态信息流,避免无关噪声干扰。
-
灵活扩展:支持多模态输入(如图像+音频+文本),只需增加对应投影和FSN Token。
-
性能提升:在AudioSet、VGGSound等数据集上显著超越传统融合方法(如晚期融合),同时减少计算开销
3.多模态融合Transformer
作者的总体设计是基于视觉Transformer model(ViT) [16]和音频频谱图Transformer model(AST)来进行设计的,所以作者需要先介绍一下VIT模型和AST模型。
3.1ViT和AST体系结构
就是VIT模型和AST模型他们都是很基本的transformer模型,VIT和AST,他们最关键的步骤就是用最小的变化去处理2D输入,从RGB图像中去提取N个不重叠的patch,并把他们转化为一维的token。
具体处理过程如下:
输入处理:提取 patch 并转换为 token,把n个不重叠的patch转化为一维token的处理公示为:
Transformer层计算:经过上述处理的 token 序列会通过由 L 个 Transformer 模型层组成的编码器。每个 Transformer 模型层由多头自注意力(MSA)、层归一化(LN)和使用残差连接的多层感知器(MLP)块组成。它的计算公式如下:
多头交叉注意力(MCA)
文中还定义了两个张量 X 和 Y 之间的多头交叉注意力(MCA),其中 X 形成查询,Y 形成用于将查询重新加权的键和值,公式为:
这将在我们的多模式案例中使用,如下所述
3.2 多模态Transformer
我们首先讨论三种不同的令牌融合策略。
3.2.1 通过自注意力进行融合
这个就是普通的融合模型,他就是传统的Transformer model。给定一个长度为t秒的视频剪辑,我们统一采样F个RGB帧,并将音频波形转换为单个频谱图。然后,我们按照ViT[16]中提出的编码独立地嵌入每个帧和频谱图,并将所有令牌连接到单个序列中。主要就是讲transformer是如何融入多模态的。
多模态输入处理
数据采样与转换:对于一个时长为 t 秒的视频剪辑,先统一采样 F 个 RGB 帧,同时将音频波形转换为单个频谱图。这一步是为了将视频中的视觉和听觉信息进行预处理,使其能被后续模型处理。
我们的多模态编码器以与上述相同的方式应用一系列Transformer model层。注意力被允许在网络中自由流动,即每个RGB令牌可以关注所有其他RGB和频谱图令牌,如下所示:
在这里,Transformer model指的是带有普通自注意力的标准Transformer model层。
3.2.2 具有模态特定参数的融合
这个是在3.2.1的基础上对多模态进行了一定的改进,它使用了特定参数的融合方法。
改进思路
它设置了每个莫泰的专有参数
为了方便不同模态在模型中实现信息的交换,作者改进了模型。
跨Transformer model层定义: 作者定义了一个跨Transformer model层,对于 RGB 模态和音频频谱图模态,分别有如下计算:
交叉 Transformer 计算细节:
交叉 Transformer model 采用广义交叉注意力操作(MCA)它接受不一定重叠的两组输入
。其计算过程和原始 Transformer model 层类似,不同之处在于原本的多头自注意力(MSA)计算被替换为多头交叉注意力(MCA)计算,公式为
即先对两组输入分别进行层归一化(LN),然后进行多头交叉注意力计算,最后加上第一组输入(使用残差连接)。
3.3.3通过注意力瓶颈进行融合
为了驯服成对注意力的二次复杂性,我们接下来将一小组B融合瓶颈令牌
引入我们的输入序列。输入序列现在是
然后,我们将模型中的所有跨模态注意力流限制为通过这些瓶颈令牌。更正式地,对于l层,我们计算令牌表示如下:
图2:应用于视听输入的多模态融合Transformer。输入序列由图像和频谱图块组成。这些块通过线性投影转换为Token,并与特殊的CLS(分类)和FSN(融合瓶颈)Token拼接。Transformer编码器通过自注意力建模单模态信息,并通过与瓶颈Token的跨注意力在网络的多个层中限制跨模态信息流。
处理模块
就是我们输入一个图像块,我们把视频帧提取局部空间特征,然后通过线性投影为token,我们吧音频模块通过短时傅里叶变化后生成频谱图,同样投影为token
特殊token
-
CLS Token:分类Token,最终用于生成分类结果(类似于ViT中的设计)。
-
FSN Token(Fusion Bottleneck Tokens):少量可学习的瓶颈Token,作为跨模态信息交互的“通道”,强制模型压缩并筛选关键信息。
跨模态交互机制
-
自注意力(Self-Attention):在单模态内部(如视频或音频Token之间)建模局部和全局依赖关系。
-
跨注意力(Cross-Attention):通过FSN Token实现跨模态交互。例如:
-
视频Token仅能与FSN Token交互,音频Token同理。
-
FSN Token汇总两模态信息后,再反向更新各模态的Token。
-
创新点与优势
-
结构化约束:通过FSN Token限制跨模态信息流,避免无关噪声干扰。
-
灵活扩展:支持多模态输入(如图像+音频+文本),只需增加对应投影和FSN Token。
-
性能提升:在AudioSet、VGGSound等数据集上显著超越传统融合方法(如晚期融合),同时减少计算开销
3.3融合的地方:早 中 晚
大多数Transformer model架构(如ViT)中,每一层都由一组相同的操作组成。多模态学习中的一个常见范例是限制网络的早期层专注于单模态处理。并且仅在后期层引入跨模态连接。
(举个例子 一些图片的边缘 这些没啥用的信息 不用过早的去和音频信息去进行融合,所以不能过早的去进行模态的融合)
作者就是在早期的一些层内,每个模态使用普通的自注意力机制,最后再去把所有的潜在token连接在一起。
这个
使我们自己定义的参数。
单模态处理阶段
连接与融合阶段经过特定的层之后,作者把所有的潜在token连接起来。公式如下:
总结来说它的公式如下:
3.4分类
4.实验
4.1数据集与评估方案
我们用三个视频分类数据集进行实验——AudioSet、Epic-Kitchens-100和VGGSound,下面将更详细地描述。附录中提供了另外两个数据集Time和Kinetics的结果。
AudioSet
YouTube的近200万个10秒视频剪辑组成,因为每个样本都有多个标签,所以我们使用二进制交叉熵(BCE)损失进行训练,并按照标准实践报告所有类别的平均精度(mAP)
Epic-Kitchens 100
Epic-Kitchens 100由捕捉日常厨房活动的自我中心视频组成。作者主要思考每个动作的动词和名词作为划分。
我们使用具有两个“头”的单个网络来预测两者,两者都是用交叉熵损失训练的。使用网络预测的得分最高的动词和动作对,Top-1动作准确度是主要度量。
VGGSound
VGGSound是视频剪辑,注释是声音类别。每个剪辑的声源都“直观地呈现”在视频中。我们用标准交叉熵损失进行分类训练,并报告前1名和前5名分类准确率。
4.2实施细节
就是实验参数:
4.3消融实验
作者使用的是mini-AudioSet数据集,后面会有介绍。
4.3.1融合策略
我们使用了3.2中的三种融合策略来进行实验。
(i)普通的自注意力—层内所有潜在单元之间不受限制的成对注意;
(ii)具有单独权重的普通交叉注意:同上,但我们现在对每个模态都有单独的权重。潜在单元通过与来自两种模态的所有其他潜在单元的成对关注来更新;最后
(iii)瓶颈融合:这里所有跨模态注意力都必须通过瓶颈融合潜伏。
作者用策略2和策略3去进行对比的mAP是平均精度均值,GFLOPS是计算复杂度。
4.3.2两种模态共享权重
当在较浅层进行模态融合时,使用独立的编码器能提升性能。对于在较深层进行融合的模型,两种模型的性能相近。因此,在后续实验中我们采用各模态独立权重的方式。
4.3.3融合层
针对后两种策略,即(ii)普通交叉注意力机制和(iii)瓶颈融合研究改变融合层 Lf 的影响。我们进行了 Lf = 0、2、4、6、8、10、12 的实验。得到结果“中间融合” 的表现优于早期融合(Lf = 0)和晚期融合(Lf = 12)。这表明,将跨模态连接限制在较晚的层对模型有益,这样能让较早的层专注于学习单模态特征,但模型仍然能从多层跨模态信息流中获益。
4.3.4瓶颈令牌数量
我们用B=4、36、64、256和1024进行实验,发现性能相对一致(都在0.5 mAP以内)在每个跨模态层仅通过4个隐藏单元(B=4)的如此少量的跨模态连接的情况下,我们比后期融合获得了很大的性能增益(图3),突出了允许跨模态信息在模型的多个层流动的重要性。
4.3.5输入采样和数据集大小
4.3.3.1采样窗口大小t
我们对音频的采样时间分别为:t=2、4、6和8秒改变采样窗口t进行实验。我们的结果表明,音频和视听融合模型的性能都随着输入跨度的增加而增加,然而纯视觉模型的性能略有下降(我们假设这是由于固定步幅的增加,这意味着在训练期间随机采样的帧更少)。我们在所有进一步的实验中固定t=8s。
4.3.3.2同步于异步采样
鉴于听觉和视觉事件在视频中可能并不总是完美对齐,我们还研究了不同模态的异步采样。发下同步异步效果不差多少。
4.3.3.3模态混合增强
多模态的输入有两种不同的方式:
标准方法是从一个以参数 α 为特征的贝塔分布中采样一组混合权重,并用它来生成所有虚拟的模态。进而达到数据增强的效果。
作者是用了一种新的思路:模态混合增强。即对每种模态独立采样权重。模态混合增强比标准混合增强施加了更强的增强效果,这使得在 AudioSet 数据集上的平均精度均值(mAP)从 42.6 略微提升至 43.9。
4.4实验结果
这段内容主要从三方面介绍了 MBT 模型研究成果:
与单模态性能对比:在多个数据集上将 MBT 与仅视觉、仅音频基线模型对比,用最佳参数配置,发现多模态融合性能更优,证明互补信息有价值。不同数据集各模态重要性不同,VGGSound 适合融合。在传统视频数据集上,视听融合也有提升。在 Audioset 数据集多数类别上,视听融合比单模态好,尤其音频信号弱的类别提升明显。
经过消融实验,使用的最佳参数为: t = 8、B = 4、Fl = 8 以及模态混合增强(modality mixup)实验结果如下:
表 1:在 AudioSet 数据集 [24] 上与当前最优技术(SOTA)的对比。我们报告平均精度均值(mAP)。我们的模型在仅 50 万个样本上训练,却超越了在完整的 AudioSet 数据集(200 万样本)上训练的其他研究成果。
与当前最优方法进行对比:与当前最优方法对比:**在 AudioSet、Epic - Kitchens 等数据集上,MBT 与之前融合及视频分类方法对比,性能优于其他研究,在 VGGSound 数据集建立首个视听基准。
表 2:在 EpicKitchens - 100 数据集 [14] 上与当前最优技术(SOTA)的对比。模态说明:A 为音频;V 为视觉;F 为光流。†表示在 VGGSound 数据集上进行了预训练
表 3:在 VGGSound 数据集 [12] 上与当前最优技术的对比。模态说明:A 为音频;V 为视觉;F 为光流。† 我们使用作者提供的分数,在我们的测试集上计算指标,以进行公平比较。
注意力图可视化:用 Attention Rollout 计算注意力图,结果显示模型做音频分类聚焦语义突出、产声或变声区域,与传统声源定位技术不同,MBT 注意力图更集中,表明瓶颈让模型关注关键图像块。结果如下:
图 6:注意力图。我们计算了普通自注意力模型和 MBT 模型在 AudioSet 测试集上,从输出 CLS 标记到 RGB 图像输入空间的注意力图。对于每个视频片段,我们在左侧展示原始中间帧,并在下方覆盖真实标签。注意力特别聚焦于视频中包含产生声音的运动的区域,例如钢琴上的指尖、手中的弦乐器、人的面部。MBT 中的瓶颈进一步迫使注意力集中在图像中较小的区域(例如,右侧下方图片中唱歌女人的手指和嘴巴)。
5.结论
我们提出了一种用于视听融合的新型 Transformer 架构(MBT),并探索了多种利用潜在令牌之间的交叉注意力实现的不同融合策略。我们提出了一种新颖的策略,通过一小部分融合 “瓶颈” 来限制跨模态注意力,并证明与普通的交叉注意力相比,这种方法能以更低的计算成本提升性能,在多个基准测试中取得了领先的成果。最大的作用:减少了计算量
附录
A 部分:小型 AudioSet 数据集上的额外消融实验结果
B 部分:分析了融合相对于单模态基线模型的每个类别的平均精度。
C 部分给出了另外两个数据集(“时刻网”(Moments in Time)和 “动力学”(Kinetics))上的实验结果。
E 部分进行了一些初步的迁移学习实验。
A部分:小型 AudioSet 数据集上的消融实验
本次消融实验均使用小型 AudioSet 数据集作为训练集,并使用 AudioSet 测试集进行评估
A.1 对称瓶颈更新与非对称瓶颈更新:
我们还对非对称瓶颈更新进行了实验。这需要用以下式子替换公式 8 和公式 9 。
经过实验就是发现五轮瓶颈对称还是不对称,他们的实验结果都较为稳定,对称不对称相差不大。
A2主干架构的修改:
分别使用三种标准的 Vision Transformer(ViT)主干架构,即 ViT - 小型(ViT - Small)、ViT - 基础(ViT - Base)和 ViT - 大型(ViT - Large)进行了实验。
我们发现,从 ViT - 小型到 ViT - 基础架构,性能有所提升,但采用 ViT - 大型架构时性能却下降了。这可能是因为这些数据集规模相对较小,要充分发挥更大模型的优势可能需要更多的数据。
A3 权重共享的影响
图 7 给出了不同融合层 Lf 下的实验结果。当在较早的层进行模态融合时,使用独立的编码器可以提升性能。对于在较晚的层进行融合的模型,两种(共享或不共享权重)模型的性能相近 。
A4 输入采样
图 8 展示了不同输入跨度长度 t 的实验结果。经过多次实验,我们发现无论选择哪种采样方式,性能在很大程度上都较为稳定。原因是异步采样存在这样一种权衡:虽然它会在两种模态输入之间引入错位,但轻微的偏移也为时间增强提供了良好途径。随着视频片段跨度长度的增加,输入之间可能出现的错位问题变得没那么严重,而额外增强带来的影响则更加显著。
在表 6 中,我们以数值形式给出了用于绘制图 4 的结果。我们每个实验运行 3 次,并报告平均值和标准差。AudioSet 中的所有片段时长均为 10 秒。
B每个类别的性能
这里图9展示了只看音频或者只看视频,亦或是音频视频都看的前60个的输出结果:
这是与单模态相比,融合模态提升最大的六十个品类:
C其他数据集
这里用的另外两个数据集: “时刻网”(Moments in Time)数据集和 “动力学”(Kinetics)数据集。
时刻网数据集: 80 万个时长 3 秒的 YouTube 视频片段构成。
仅音频模式的性能远低于仅视觉模式。这在很大程度上是由该数据集的标注流程所决定的。
“动力学”(Kinetics)数据集:
YouTube 上以 25 帧 / 秒采样的 10 秒视频
MBT 模型与单模态基线模型的对比结果
D MBT 与后期融合在数据集变化方面的对比:
我们注意到,MBT 与后期融合之间的差距高度依赖于数据集(见表 9),在 Epic - Kitchens 数据集上我们的方法优势更为显著(Top - 1 动作准确率相差近 6%)
E 迁移学习
我们使用在 VGGSound、Kinetics400 和 AS - 500K 上预训练的模型检查点,并在小型 AudioSet 和 VGGSound 数据集上对其进行微调。结果如表 10 所示。虽然在 Kinetics400 上的预训练在小型 AudioSet 数据集上使平均精度均值(mAP)略微提升了 0.7%,但与 ImageNet 初始化相比,VGGSound 初始化使 mAP 大幅提升了 3%。在 VGGSound 数据集上,AS500K 预训练使 Top - 1 准确率有较为适度的 1.2% 的提升,而 Kinetics 预训练则没有帮助(这在意料之中,因为 VGGSound 是一个更大的数据集)。
F. AS - 500K 的细节
因为AudioSet训练集大部分都是语音或者音乐,他非常不平衡,所以作者创建了一个平衡性较好的子集AudioSet - 500K,下图就是介绍了一下作者创建自己的数量。