【文献阅读】Attention Bottlenecks for Multimodal Fusion

Abstract

在多模态视频分类中,将各模态的最终表示或预测进行后期融合(“后期融合”)仍然是主流范式。为此,本文提出了一种基于 Transformer 的新型架构,该架构使用“融合瓶颈”在多个层次进行模态融合。与传统的成对自注意力机制相比,该模型强制不同模态之间的信息通过少量的瓶颈潜在变量进行传递,要求模型在每个模态中整理和凝聚相关信息,并共享必要的内容。这种策略在提高融合性能的同时,还减少了计算成本。

Introduction

多模态的挑战:
(i)模态之间的学习动态差异;
(ii)不同的噪声拓扑结构,有些模态流在当前任务中包含比其他模态更多的信息;
(iii)专门化的输入表示。

音频和视觉输入表示之间的差异尤为明显——许多最先进的音频分类方法依赖于短时傅里叶分析生成对数梅尔频谱图,并经常将其作为输入用于为图像设计的 CNN 架构(C-Former)。这些时频表示与图像的分布不同——多个声学对象可以在同一频率上具有能量,而 CNN 的平移不变性在这里可能不再是理想的属性(声学对象可以在时间上发生平移,而频率上的平移则可能完全改变其含义)。相反,视频中的视觉流是三维的(两个空间维度和一个时间维度),虽然图像的不同空间区域对应于不同的对象,但多个帧之间存在高冗余性,这也是一个独特的挑战。因此,输入表示以及神经网络架构和基准测试在不同模态间往往差异巨大。为了简化,多模态融合的主流范式通常采用一种临时的方案,即通过输出表示或分数整合单独的音频和视觉网络,也就是所谓的“后期融合(分数融合)”。
早期融合”模型允许注意力在图像的不同空间和时间区域之间自由流动,以及在音频频谱图的频率和时间维度之间流动。虽然从理论上具有吸引力,但假设在模型的所有层次进行完整的成对注意力并非必要,因为音频和视觉输入包含了密集、细粒度的信息,其中大部分是冗余的。这样的模型也无法很好地扩展到较长的视频,因为成对注意力与标记序列长度呈二次复杂度增长。

为了解决早期融合的问题,本文提出了两种方法来限制模型中的注意力流动:

第一种方法:遵循多模态学习中的常见范式,即将跨模态的流动限制在网络的后期层次,让早期层专注于学习和提取单模态模式。因此,这被称为“中期融合”(图1,左中),引入跨模态交互的层被称为“融合层”。我们将这种方法与“早期融合”(所有层都为跨模态)和“后期融合”(所有层都为单模态)这两个极端版本进行了对比。
第二个想法:(也是主要贡献)是限制层内标记之间的跨模态注意力流动。通过允许模态内部的自由注意力流动,但强制模型在共享信息之前,先从每个模态中整理和“凝聚”信息。核心思想是在层内引入一小组潜在的融合单元,形成一个“注意力瓶颈”,跨模态的交互必须通过这一瓶颈进行。

在这里插入图片描述这种“瓶颈化”的版本命名为Multimodal Bottleneck Transformer(MBT)。贡献包括:

(i)MBT通过紧密的融合“瓶颈”限制了潜在单元之间的跨模态信息流动,迫使模型在每个模态中收集和“凝聚”最相关的输入(因此只分享必要的信息与其他模态)。这避免了完整成对注意力的二次扩展成本,并以更少的计算实现了性能提升;
(ii)将 MBT 应用于图像和频谱图块(图2),并探讨了与融合层、输入采样和数据规模相关的多种消融;
(iii)在多个流行的音视频基准(包括 AudioSet 、Epic-Kitchens100 和 VGGSound )上设定了视频分类的新标准。在 Audioset 数据集上,性能超过了当前的最新水平,平均精度提升了5.9 mAP(相对提升12.7%)。
在这里插入图片描述

The ViT and AST architectures

在这里插入图片描述在这里插入图片描述在这里插入图片描述

Multimodal transformer——three different token fusion strategies

Fusion via vanilla self-attention

将常规的 Transformer 应用于多模态输入。给定一个长度为 t 秒的视频片段,均匀采样 F 帧 RGB 图像,并将音频波形转换为单个频谱图。然后按照 ViT中提出的编码方法,分别对每一帧图像和频谱图进行嵌入,并将所有tokens一起连接成一个单一的序列
在这里插入图片描述

Fusion with modality-specific parameters

在这里插入图片描述

即当参数一样时,就和第一种融合一样。

Fusion via attention bottlenecks

在这里插入图片描述

保持网络中的瓶颈标记数量远小于每个模态的潜在单元总数,B远小于 N v N_v Nv N a N_a Na,这种方式在提高或保持多模态融合性能的同时,降低了计算复杂度。

Where to fuse: early, mid and late

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

在这里插入图片描述


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1555166.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

D28【python 接口自动化学习】- python基础之输入输出与文件操作

day28 输入 学习日期:20241005 学习目标:输入输出与文件操作﹣-40 输入:如何接收用户通过键盘输入的数据? 学习笔记: 输入设备与输入方式 Input函数 命令行参数 可选参数 必填参数 强制转换参数类型 总…

Linux环境搭建git服务器和代码自动化部署

在开发过程中,我们经常遇到的问题就是提交代码到测试地址,然后进行线上测试。 要实现Git代码的自动化部署,考虑以下几种方法 FTP提交:可以使用FTP将代码上传到服务器自动化部署工具:如Jenkins、当代码被推送到仓库时…

【Kubernetes】常见面试题汇总(五十五)

目录 121. POD 创建失败? 122. POD 的 ready 状态未进入? 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 题目 69-113 属于【Kube…

Java项目实战II基于Java+Spring Boot+MySQL的宠物咖啡馆平台的设计与实现(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者 一、前言 在快节奏的城市生活中,宠物咖啡馆作为一种结合了休闲与宠物陪伴的新型业态,正…

重学SpringBoot3-集成Redis(三)

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(三) 1. 引入 Redis 依赖2. 配置 RedisCacheManager 及自定义过期策略2.1 示例代码:自定义过期策略 3. 配置…

I/O多路转接

目录 一、select 1.1、select概念 1.2、select 函数原型 1.3、理解 select 执行过程 1.4、select就绪条件 1.4.1、读就绪 1.4.2、写就绪 1.4.3、异常就绪(了解) 1.5、select 基本工作流程 1.6、select服务器 1.6.1、Sock.hpp 1.6.2、selectS…

【复习】html最重要的表单和上传标签

文章目录 imgforminput img <img src"https://tse1-mm.cn.bing.net/th/id/OIP-C._XVJ53-pN6sDMXp8W19F4AAAAA?rs1&pidImgDetMain"alt"二次元"height"350px"width"200px"/>常用 没啥说的&#xff0c;一般操作css多一些 for…

CSP-J/S复赛算法 动态规划初步

文章目录 前言动态规划动态规划常见形式动态规划求最值的几个例子1. **背包问题**2. **最短路径问题**3. **最小硬币找零问题**4. **最长递增子序列** 总结 最优子结构举个简单的例子其他例子条件 DP的核心就是穷举具体解释 递归的算法时间复杂度dp数组的迭代解法通俗易懂的解释…

LabVIEW提高开发效率技巧----使用动态事件

在LabVIEW开发过程中&#xff0c;用户交互行为可能是多样且不可预知的。为应对这些变化&#xff0c;使用动态事件是一种有效的策略。本文将从多个角度详细介绍动态事件的概念及其在LabVIEW开发中的应用技巧&#xff0c;并结合实际案例&#xff0c;说明如何通过动态事件提高程序…

招联2025校招内推倒计时

【投递方式】 直接扫下方二维码&#xff0c;或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus&#xff0c;使用内推码 igcefb 投递&#xff09; 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策…

8648 图的深度遍历

### 思路 1. **图的邻接表存储结构**&#xff1a;使用邻接表存储图的顶点和边信息。 2. **基本操作函数**&#xff1a;包括创建图、查找顶点、获取顶点值、获取第一个邻接顶点、获取下一个邻接顶点等。 3. **深度优先遍历&#xff08;DFS&#xff09;**&#xff1a;从某个顶点出…

车载项目:HIL测试、功能安全测试、CAN一致性测试、UDS测试、ECU测试、OTA测试、TBOX测试、导航测试、车控测试

FOTA模块中OTA的知识点&#xff1a;1.测试过程中发现哪几类问题&#xff1f; 可能就是一个单键的ecu&#xff0c;比如升了一个门的ecu&#xff0c;他的升了之后就关不上&#xff0c;还有就是升级组合ecu的时候&#xff0c;c屏上不显示进度条。 2.在做ota测试的过程中&#xff…

今日指数项目个股描述功能实现

个股描述功能实现 1 个股描述功能实现说明 1&#xff09;原型示意 2&#xff09;接口说明 功能描述&#xff1a;个股主营业务查询接口 服务路径&#xff1a;/api/quot/stock/describe 服务方法&#xff1a;GET 请求参数&#xff1a;code #股票编码 响应参数&#xff1a; {…

java计算机毕设课设—坦克大战游戏

这是什么系统&#xff1f; 坦克大战游戏是一款以坦克为主题的射击游戏&#xff0c;旨在为玩家提供一个刺激、有趣的游戏体验。该游戏不仅拥有丰富的功能&#xff0c;还注重玩家的互动体验。此系统是使用Java语言实现坦克大战游戏程序&#xff0c;玩家通过连接访问进入游戏&…

C语言指针plus版练习

上期我们讲了进阶的指针&#xff0c;本期内容我们来强化一下上期学的内容 一、字符串左旋 实现一个函数&#xff0c;可以左旋字符串中的k个字符。 1.1 分析题目 假设字符串为abcde&#xff0c;左旋一个以后就变成bcdea&#xff0c;就是把第一个字符移到一个新的变量里面&#…

一、走进新语言

走进新语言 介绍环境配置JDK配置Kotlin配置 开发工具代码基本结构程序注释 介绍 Kotlin是一种现代但已经成熟的编程语言&#xff0c;旨在让开发人员更快乐。它简洁、安全、可与Java和其他语言互操作&#xff0c;并提供了许多在多个平台之间重用代码的方法。它由JetBrains公司于…

8647 实现图的存储结构

### 思路 1. 读取输入的顶点个数n和边的条数m。 2. 初始化一个n*n的邻接矩阵&#xff0c;所有元素初始为0。 3. 读取每条边的信息&#xff0c;更新邻接矩阵对应位置为1。 4. 输出邻接矩阵。 ### 伪代码 1. 读取n和m。 2. 初始化n*n的邻接矩阵matrix&#xff0c;所有元素为0。 …

DatePicker 日期控件

效果&#xff1a; 要求&#xff1a;初始显示系统当前时间&#xff0c;点击日期控件后修改文本控件时间。 目录结构&#xff1a; activity_main.xml(布局文件)代码&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:and…

[C++]使用纯opencv部署yolov11-pose姿态估计onnx模型

【算法介绍】 使用纯OpenCV部署YOLOv11-Pose姿态估计ONNX模型是一项具有挑战性的任务&#xff0c;因为YOLOv11通常是用PyTorch等深度学习框架实现的&#xff0c;而OpenCV本身并不直接支持加载和运行PyTorch模型。然而&#xff0c;可以通过一些间接的方法来实现这一目标&#x…

Apollo9.0 Planning2.0决策规划算法代码详细解析 (5): OnLanePlanning::Init()

&#x1f31f; 面向自动驾驶规划算法工程师的专属指南 &#x1f31f; 欢迎来到《Apollo9.0 Planning2.0决策规划算法代码详细解析》专栏&#xff01;本专栏专为自动驾驶规划算法工程师量身打造&#xff0c;旨在通过深入剖析Apollo9.0开源自动驾驶软件栈中的Planning2.0模块&am…