【论文极速读】IMAGEBIND —— 通过图片作为桥梁桥联多模态语义

news2024/11/29 4:52:53
【论文极速读】IMAGEBIND —— 通过图片作为桥梁桥联多模态语义
FesianXu 20230929 at Baidu Search Team

前言

当前大部分多模态工作都集中在图片-文本、视频-文本中,关于音频、深度图、热值图的工作则比较少,在IMAGEBIND中,作者提出了一种同时建模图片、文本、视频、音频、深度信息、热值图信息的方法,本文简要介绍,希望对读者有所帮助。如有谬误请见谅并联系指出,本文遵守CC 4.0 BY-SA版权协议,转载请联系作者并注明出处,谢谢。

∇ \nabla 联系方式:

e-mail: FesianXu@gmail.com

github: https://github.com/FesianXu

知乎专栏: 计算机视觉/计算机图形理论与应用(https://www.zhihu.com/column/c_1265262560611299328)

微信公众号:机器学习杂货铺3号店


在互联网中,图片-文本、视频-文本对随处可得,因此近年来出现了很多采用图文、视文进行大规模预训练的工作,如CLIP、ALIGN、WenLan等。但是由于互联网中缺少大量的音频、深度图、热值图等数据对,如果对这些数据采用原先的对比学习预训练范式,则难以找到同时具有<图片, 文本, 视频, 音频, 深度图, 热值图>的数据,即是多模态数据的共现数据(co-occur)难获取。

在Image Bind [1] 中,作者提出将图片作为关联这些不同模态数据的中间桥梁,从而使得可以同时建模不同模态的语义信息,<图片, 文本>数据是在互联网中最为可得的数据,而<图片, 深度图><视频,音频>等模态对则是容易获得的数据,通过采用图片作为模态之间的桥梁,如Fig 1. 所示,能够将<图片, 文本>学习好的语义在其他模态之间传递,从而其他模态也能得到充分的预训练。

image-bind-frame

Fig 1. 通过图片作为多模态语义传递的桥梁,将语义传递给不同的模态。

让我们进行形式化表达, < I , M > <\mathcal{I}, \mathcal{M}> <I,M>表示一个图片-模态M的数据对,其中的模态M可以是文本、音频、深度图、热值图以及IMU数据等,用 f ( ⋅ ) f(\cdot) f() g ( ⋅ ) g(\cdot) g()表示编码器,那么给定图片 I i I_{i} Ii和对应模态的成对样本 M i M_{i} Mi,有 q i = f ( I i ) , k i = g ( M i ) q_i = f(I_i), k_i = g(M_i) qi=f(Ii),ki=g(Mi)。通过infoNCE损失函数进行建模,如公式(1)所示,其中 τ \tau τ为温度系数,具体作用可见 [2]。通常对于模态对 < I , M > <\mathcal{I}, \mathcal{M}> <I,M>,会采用双向的对比损失,即是 L I , M = L < I , M > + L < M , I > L_{\mathcal{I}, \mathcal{M}} = L_{<\mathcal{I}, \mathcal{M}>}+L_{<\mathcal{M}, \mathcal{I}>} LI,M=L<I,M>+L<M,I>。在训练过程中,文本编码器采用了CLIP中的text encoder,图片编码器采用了CLIP中的image encoder,两者的参数都在Image Bind训练过程中被冻结,只有其他模态(音频、视频、IMU等等)的编码器会被更新,因此可视为其他模态的embedding往着图片、文本模态的embedding空间对齐。

L < I , M > = − log ⁡ exp ⁡ ( q i T k i / τ ) exp ⁡ ( q i T k i / τ ) + ∑ j ≠ i exp ⁡ ( q i T k j / τ ) (1) L_{<\mathcal{I}, \mathcal{M}>} = -\log{\dfrac{\exp(q_i^{\mathrm{T}} k_i / \tau)}{\exp(q_i^{\mathrm{T}} k_i / \tau)+\sum_{j \neq i} \exp(q_i^{\mathrm{T}} k_j / \tau)}} \tag{1} L<I,M>=logexp(qiTki/τ)+j=iexp(qiTkj/τ)exp(qiTki/τ)(1)

让我们再细看Fig 1.的框架,不难发现图片与音频、IMU数据的关联,是通过视频作为媒介去传递的,这一点不难理解,图片和音频,图片和IMU很难采集共现的数据,而在视频中则很容易收集(特别是音频,IMU则在某些数据集中可得,比如Ego4D dataset)。通过图片/视频作为桥梁进行语义传递的方式,即便训练时候采用的多模数据对是 < I , M 1 > <\mathcal{I}, \mathcal{M}_{1}> <I,M1> < I , M 2 > <\mathcal{I}, \mathcal{M}_{2}> <I,M2>,没有显式出现 < M 1 , M 2 > <\mathcal{M}_1, \mathcal{M}_{2}> <M1,M2>的数据对,也能隐式地学习到 < M 1 , M 2 > <\mathcal{M}_1, \mathcal{M}_{2}> <M1,M2>的关联。这就有点像NLP任务,提供了中英文对、中日文对,即便没有显式的英文-日文对,也能学到日文-英文的语义关联。这种能力,作者称之为涌现(emergency)。

为了验证这种能力,作者在zero-shot任务上进行了若干实验,笔者只摘取其中一个结果进行说明,如Fig 2.所示,MSR-VTT是视频检索数据集,即便训练数据中并没有显式地见过文本-音频数据,但是其文本-音频检索的效果仍然能比肩一些文本-视频检索的方法,如MIL-NCE,这说明了这种训练方式能间接地学习出不同模态之间的关联,将所有模态的嵌入表达(Embedding)都往着视觉方向靠拢。读者也可以参考Fig 3.,其中IMAGEBIND一行表示的是zero-shot 分类的能力(通过文本prompt激发分类能力,用蓝色区域表示),不难发现,即便没有文本-视频、文本-深度图、文本-音频等显式的数据对,其zero-shot分类能力也比较可观,这进一步证实了多个模态之间的表征能够通过图片作为中介进行对齐。至于其他实验数据和细节分析,读者若感兴趣请自行翻阅论文 [1]。
zero-shot-emergency

Fig 2. 笔者在MSR-VTT中验证emergent zero-shot能力,可以看到在文本-音频检索任务中也有不错的表现,即便训练数据中没有显式的文本-音频数据对。其中A表示Audio,V表示Video。

zero-shot-performance

Fig 3. 涌现出的zero-shot分类能力,其中采用了文本prompt的用蓝色区域表示。

作者为了证实这些效果是由于不同模态的特征向着图片特征对齐导致的,进行了一些可视化分析,如Fig 4. (a) 所示,给定一个图片 I I I和一个声音 M M M,那么将其表征相加后,有 e = f ( I ) + g ( M ) e = f(I)+g(M) e=f(I)+g(M),然后用相加后的表征在图片数据中进行最近邻检索,取top4结果。不难发现top 4结果很好的结合了原始图片和音频的语义,这意味着实现了音频特征向着图片特征的语义对齐。如Fig 4. (b) 所示,还能用音频作为query,指定物体检测的目标,这也同样说明了这件事情。
cross-modality-alignment

Fig 4. (a)进行跨模态的特征『算术计算』;(b) 音频作为query去指定物体检测的目标。

对于笔者而言,这篇论文的价值在于探索了一种切实可行的,让真正意义多模态(音频、视频、IMU、热值图、文本等)数据进行语义对齐的途径,从而不依赖与不同多模态数据的完美成对共现,要知道现实中很多数据都是异构的,本论文能让我们充分利用异构的多模态数据进行预训练。无论是多模还是单模的异构数据的使用,能够大大增加模型的表征能力,实现1+1 > 2的效果,笔者认为这必然是未来趋势,值得继续关注。

Reference

[1]. Girdhar, R., El-Nouby, A., Liu, Z., Singh, M., Alwala, K. V., Joulin, A., & Misra, I. (2023). Imagebind: One embedding space to bind them all. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 15180-15190).

[2]. https://blog.csdn.net/LoseInVain/article/details/125194144,《混合精度训练场景中,对比学习损失函数的一个注意点》

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

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

相关文章

Neo4j最新安装教程(图文版)

目录 一、软件介绍 二、下载软件 1、官方下载 2、云盘下载 三、安装教程 1、首先配置Neo4j的环境变量 2、启动neo4j服务器 3、访问界面 一、软件介绍 官网地址&#xff1a;https://neo4j.com/ Neo4j是一个高性能、可扩展的图数据库管理系统。它专注于存储、查询和处理大…

Explain执行计划字段解释说明---ID字段说明

ID字段说明 1、select查询的序列号,包含一组数字&#xff0c;表示查询中执行select子句或操作表的顺序 2、ID的三种情况 &#xff08;1&#xff09;id相同&#xff0c;执行顺序由上至下。 &#xff08;2&#xff09;id不同&#xff0c;如果是子查询&#xff0c;id的序号会…

大数据Flink(九十四):DML:TopN 子句

文章目录 DML:TopN 子句 DML:TopN 子句 TopN 定义(支持 Batch\Streaming):TopN 其实就是对应到离线数仓中的 row_number(),可以使用 row_number() 对某一个分组的数据进行排序 应用场景

cesium 雷达扫描 (扫描线)

cesium 雷达扫描 (扫描线) 1、实现方法 图中的线使用polyline方法绘制,外面的圆圈是用ellipse方法绘制(当然也不指这一种方法),图中线的扫描转动效果是实时改变线的经纬度来实现(知道中心点经纬度、又已知方向和距离可以求出端点的经纬度)使用CallbackProperty方法来实…

数据结构与算法——18.avl树

这篇文章我们来看一下avl树 目录 1.概述 2.AVL树的实现 1.概述 我们前面讲了二叉搜索树&#xff0c;它是有一个key值&#xff0c;然后比父节点key值大的在左边&#xff0c;小的在右边。这样设计是为了便于查找。但是有一种极端的情况&#xff0c;就是所有的结点都在一边&am…

7.3 调用函数

前言&#xff1a; 思维导图&#xff1a; 7.3.1 函数调用的形式 我的笔记&#xff1a; 函数调用的形式 在C语言中&#xff0c;调用函数是一种常见的操作&#xff0c;主要有以下几种调用方式&#xff1a; 1. 函数调用语句 此时&#xff0c;函数调用独立存在&#xff0c;作为…

艺术表现形式

abstract expressionism 抽象表现主义 20世纪中期的一种艺术运动&#xff0c;包括多种风格和技巧&#xff0c;特别强调艺术家通过非传统和通常非具象的手段表达态度和情感的自由。 抽象表现主义用有力的笔触和滴落的颜料来表达情感和自发性。 简单地结合“abstract expression…

基于Java的服装销售平台设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

paddle2.3-基于联邦学习实现FedAVg算法-CNN

目录 1. 联邦学习介绍 2. 实验流程 3. 数据加载 4. 模型构建 5. 数据采样函数 6. 模型训练 1. 联邦学习介绍 联邦学习是一种分布式机器学习方法&#xff0c;中心节点为server&#xff08;服务器&#xff09;&#xff0c;各分支节点为本地的client&#xff08;设备&#…

【k8s】集群搭建篇

文章目录 搭建kubernetes集群kubeadm初始化操作安装软件(master、所有node节点)Kubernetes Master初始化Kubernetes Node加入集群部署 CNI 网络插件测试 kubernetes 集群停止服务并删除原来的配置 二进制搭建(单master集群)初始化操作部署etcd集群安装Docker部署master节点解压…

SpringBoot 如何使用 Spring Data MongoDB 访问 MongoDB

使用 Spring Boot 和 Spring Data MongoDB 访问 MongoDB 数据库 在现代应用程序开发中&#xff0c;许多应用都依赖于数据库来存储和检索数据。MongoDB 是一个流行的 NoSQL 数据库&#xff0c;而 Spring Boot 是一个广泛使用的 Java 开发框架。本文将介绍如何使用 Spring Boot …

28383-2012 卷筒料凹版印刷机 学习笔记

声明 本文是学习GB-T 28383-2012 卷筒料凹版印刷机. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了卷筒料凹版印刷机的型式、基本参数、要求、试验方法、检验规则、标志、包装、运输与 贮存。 本标准适用于机组式的卷筒料凹版…

网络协议--链路层

2.1 引言 从图1-4中可以看出&#xff0c;在TCP/IP协议族中&#xff0c;链路层主要有三个目的&#xff1a; &#xff08;1&#xff09;为IP模块发送和接收IP数据报&#xff1b; &#xff08;2&#xff09;为ARP模块发送ARP请求和接收ARP应答&#xff1b; &#xff08;3&#xf…

28390-2012 幕墙铝型材高速五面加工中心

声明 本文是学习GB-T 28390-2012 幕墙铝型材高速五面加工中心. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了幕墙铝型材高速五面加工中心的分类、技术要求、试验方法、检测规则、标牌、使用说 明书、包装、运输和贮存。 本标…

基于Java的游戏检索系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言用户功能已注册用户的功能后台功能管理员功能具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博…

oracle GBK未定义编码使用Unicode写入特殊字符e000迁移lightdb-x测试

E:\HS\LightDBSVN\23.3sql文件\迁移工具\caofa\config\application.properties gbk-->uft8: logging.configclasspath:log4j2.xml # ???? etl.global.sourceDatabaseoracle etl.global.targetDatabaselightdb etl.global.showSqlfalse etl.global.fastFailfalse etl.g…

Python操作自动化

迷途小书童 读完需要 3分钟 速读仅需 1 分钟 当我们需要自动化进行一些重复性的任务时&#xff0c;Python 中的 pyautogui 库就可以派上用场了&#xff0c;这个库可以模拟鼠标和键盘的操作&#xff0c;让我们的程序可以像人一样与计算机进行交互。 首先&#xff0c;我们需要安装…

Beats Studio Buds 连接 Windows 11 声音输出不显示设备

Beats Studio Buds 连接 Windows 11 声音输出不显示设备 Beats Studio Buds 蓝牙耳机连接Windows 11电脑后&#xff0c;无法通过耳机播放声音&#xff0c;在声音输出选项中也没有耳机选项。 问题 蓝牙耳机连接电脑。 在声音输出中查看输出设备选项。 解决方法 以管理员身…

LeetCode每日一题 | 309.买卖股票的最佳时机含冷冻期

题目链接&#xff1a; 309. 买卖股票的最佳时机含冷冻期 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 算法图解&#xff1a; 解题代码&#xff1a; class Solution { public:int maxProfit(vector<int>& prices) {int n prices.size();vector&…

求∑(1,n)⌊k/i⌋∗i

对于[k/i]*i,我们可以分两端&#xff0c;前,最多有段&#xff0c;后边从到n&#xff0c;取值范围为1-&#xff0c;所以最多有段&#xff0c;共2*段。对于每段从i开始&#xff0c;其上界jk/(k/i)&#xff08;维持k/i不变最大范围i-j&#xff09;。 计算[k/i]*i时间复杂度降到级…