NeurIPS 2023 | 基于多模态统一表达的跨模态泛化

news2024/11/27 12:58:50

0d0701f3bc8bdfded76277a6f2e713f0.gif

©PaperWeekly 原创 · 作者 | 夏炎

学校 | 浙江大学

研究方向 | 多模态


bf1825765edb30caece1d601915df369.png

论文标题:

Achieving Cross Modal Generalization with Multimodal Unified Representation

模型&代码地址:

https://github.com/haihuangcode/CMG

在本文中,我们提出了跨模态泛化任务,旨在将模型从已知模态中学到的知识,迁移到未知模态上,而实现的关键在于通过对大量成对数据的预训练实现多模态统一表达。之前的方法在多模态统一表达领域取得了不错的进展,但是这些方法都是在粗粒度层面进行对齐,或者基于不同模态的信息能够一一对应的前提下。然而在实际情况中,成对的模态很难完全实现完全一致的信息对齐。

因此,我们提出了对偶跨模态信息解偶和多模态 EMA,让不同模态互相作为对方模态的监督信号,将来自不同模态且具有相同语义的信息映射到一起,在细粒度层面上实现多模态输入序列的统一表达。我们在音视频、音频文本,以及甚至在音频-视频-文本三个模态上都进行了统一表达,并在下游实现了各种任务的跨模态泛化,例如跨模态事件分类、定位,跨模态检索,基于查询的视频分割,以及跨数据集的泛化任务。

ee7ec35237326aebaf0329fa90faf37c.png

介绍

44c1944ebbf078e0c1cea1fe2a81976a.png

随着多模态信息的爆炸性增长,如何处理这些繁杂的信息成为一个急需解决的问题。多模态学习逐渐成为深度学习中一个重要的组成部分,在图像/视频/音视频问答,query-based 图像/视频分割,多模态检索等领域取得了重要的进步。然而,对不同模态的标注难度是不一样的,并且很多标注场景中只能获取少数几个模态,缺乏其他模态,在迁移应用中难免会有很多局限。

然而,成对的无标注的多模态数据往往是容易获得且大量的(例如互联网上存在的大量图像 - caption 对,视频中往往包含了与之对应的音频等)。因此在本文中,我们提出了跨模态泛化,研究如何从这些成对无标注的多模态数据中学到一致性,当下游任务中只有一个模态有标注时,能实现在其他模态中实现的 zero-shot 的性能。

近年来,研究者们开始研究如何在模型中将各种各样的多模态信息映射到统一的语义空间中,这些工作分为隐式映射和显式映射两种。在隐式层面上,一些方法使用一个 modal-agnostic 的 Encoder 来表征不同的模态,然而这些隐式的表达只能在隐空间上将不同的模态靠近,难以解决跨模态泛化任务。

在显式层面上,一些工作开始研究如何用一个统一的 codebook 或者 prototype 来映射不同的模态,但是这些工作只能将模态向量压缩成一个单个向量后再进行映射,或者基于不同模态的信息是完全对齐的假设。然而在更普遍的场景中,不同模态的信息并不是完全对齐的,直接使用之前的方法会导致不属于同一语义的多模态信息被错误的映射到一起。因此,我们这篇文章的重点在于研究如何实现细粒度层面上的多模态序列统一表达。

在这篇工作中,我们将该问题分解为两个要解决的难点:一,如何将不同模态中具有相同语义的信息提取出来,同时避免 modality-specific 信息的干扰;二,如何将这些具有相同语义的不同模态用统一的 codebook 表征。

之前的大部分工作都忽略了第一点,在这篇文章中我们证明其对于实现跨模态泛化是非常重要的。我们首先提出了对偶的跨模态解耦,将一个新提出的跨模态 CPC 与互信息最小化(CLUB)相结合。具体来说,我们使用 CLUB 来优化互信息上界,将不同模态中语义相关的信息(表达主要内容或事件的信息)与模态独立的信息(与语义不相关的其他信息,例如视觉中的光照、视角;音频中的音色、音高等)解耦开。

然而,在没有其他指导信息的情况下,模型很难学到哪些是有用的语义信息。受到多模态信息往往具有互相补充指导的启发,我们提出了新颖的跨模态 CPC,可以根据当前模态的已知序列信息,去预测对方模态中的未来信息,实现不同模态之间细粒度的互信息最大化,逐渐提取语义信息并互相靠近。同时,我们还提出了多模态 EMA,利用 teacher-student 机制,让不同模态相互指导,在离散空间中互相靠近,并最终将具有相同语义的不同模态变量收敛到一起。

b976096118ed4849082ee34dd2201c4a.png

方法

5694ca7d19dca61f37ae7a6fcb77ee6a.png

2.1 基础方法

给定两个成对的模态(),我们分别利用两个语义 Encoder( 和 )去提取模态无关特征 ,并利用两个 modal-specific Encoder( 和 )去从两个模态中提取剩余的特征,具体公式为:

daf8e6e286a656e27748588ad14b4add.png

我们对语义特征使用 VQ-VAE 在细粒度层面上对模态信息进行离散化,使用了同一个 codebook,然后我们将离散化后的向量与模态无关向量合并后,重构回原来的特征:

085d7ba77f9d19876f1f2a2e7b376a9c.png

在本文中,我们使用指数平均移动(EMA)来代替 VQ loss,重构 loss 则保证了压缩后的离散变量仍旧具有不同模态的语义信息。但是,在没有监督的情况下,因为 domain gap 导致不同模态的语义特征会收敛到 codebook 中的不同区域,难以实现下游的各种跨模态泛化任务。因此,我们分别提出了以下几个模块来缓解这个问题。

2.2 对偶跨模态信息解耦(DCID)

我们从两个角度来实现我们的 DCID 模块:首先是在每个模态内部将 modal-agnostic semantic features 与 modal-specific features 的互信息最小化(CLUB),其次是对不同模态中 modal-agnostic semantic features 的互信息最大化(Cross-CPC)。

  • 基于CLUB的互信息最小化

相比于 InfoNCE 和 MINE 等优化互信息下界的方法,CLUB 能够很好的优化互信息的上确界,在信息解偶等领域更有优势。给定语义特征 和 modal-specific 特征 ,我们将原始的 CLUB 改造成时序版本,公式如下:

60638118ea57c752e5e45426212d2c11.png

预训练时,近似网络和主网络交替优化。最后,我们可以减少每种模态中语义信息和模态特定信息之间的相关性。然而,仅仅使用 CLUB 最小化互信息对模型识别相关语义仍旧是不够的。鉴于配对的多模态信息可以提供相互指导并充当彼此的监督信号,我们设计了一个新颖的 Cross-CPC 方法来缓解这个问题。

  • Cross-CPC

对比学习预测(CPC)被广泛的用于序列特征的自监督训练中,可以通过强大的自回归模型预测序列中未来的 token 与当前 token 的相关性来提取高维特征,之前的工作仅考虑在将 CPC 应用在单模态训练中,然而对于人类来说,我们可以根据当前模态中的已知序列去预测另一个模态中可能发生的情况,因此,我们提出了跨模态 CPC,可以通过这种细粒度的跨模态对比预测将不同模态中相关的语义信息互相提取出来:

56906cb17befaa167d3372a8650550af.png

3.3 Multi-modal Exponential Moving Average

当不同模态的语义信息被充分解偶出来后,如何能让来自不同模态的具有相同语义的特征映射到同一个离散 code 中,对于实现下游的跨模态泛化任务至关重要。之前的方法难以解决这种 unconstrained 细粒度的跨模态对齐,因此我们提出了一个多模态 EMA 方法,能够让不同模态在离散化过程中,互相作为 teacher-student 迭代更新,最终收敛到一起。

首先我们使用 Cross-Attention 将对方模态中相关的信息,引入到当前模态中,以模态A为例:,其中 是 query, 是 key 和 value。向量 包含从 中得出的语义信息,与 有强烈的相关性,同时也保留了模式 B 的内在属性。因此,它可以在 EMA 过程中作为一个中介,促进模态A与模态 B 的对齐。

给定一个 codebook 中的离散变量 ,我们可以获取 个模态 A 中跟其相关的 semantic vectors 以及 个模态 B 中跟其相关的 semantic vectors ,MM-EMA 的公式如下所示:

5840df2c9f4406274f3a4639bc85fb85.png

最终的预训练阶段 Total loss 为:

7610c722735e3cbfa61d2199117fe259.png

45cba0c1618385e0ee476299f4620b32.png

实验

当预训练结束后,我们获得了一个多模态通用的 codebook,以及能将这些模态映射到该离散空间的对应模态的编码器,在下游任务中,我们利用预训练得到的编码器和 codebook,只对一种模态进行训练,然后让将训练得到的模型零样本的迁移到其他未知模态中进行测试。

3.1 测试任务

  • 跨模态事件分类:在 AVE 中,每个视频都包含一个在音频和视觉信息中都存在的主要事件。因此,我们可以使用单一模式(例如,视频)来训练一个事件分类器,并直接评估该分类器在另一种模式(例如,音频)上的性能。

  • 跨模态事件定位:在 AVVP 中,部分数据被标注了音频和视觉模式的细粒度事件标签。类似于 AVE,我们可以在一个模式上进行事件定位,然后直接将模型转移到另一个模式进行测试。

  • 跨模态视频分类:在 AVS 中,每一份 AVS 数据包含一段音频,发出声音的物体的视频片段,与物体相对应的文本标签,以及人工标记的 mask。我们将每个文本标签扩展为一句描述性的句子。我们使用一种模式(例如,音频)来训练基于查询的视频分割,并直接在另一种模式(例如,文本)中测试分割能力。

  • 跨模态检索:我们选择检索任务来证明我们的方法也可以应用于视觉-文本的泛化。我们使用音频作为一个媒介来衡量我们的模型在这两种模态之间的泛化能力,并做了一个任意模态到音频的检索任务。具体来说,在第一阶段,我们使用 VGGSound24K 数据集进行视觉-文本统一表示学习,然后在第二阶段,在下游训练期间,我们让模型学习文本(视频)-音频检索,最后在推理期间,我们直接测试模型在视频(文本)-音频检索上的泛化能力。

3.2 实验结果

在 AVE 和 AVVP 中的跨模态泛化能力:Baseline 的结果说明了如果不加任何限制的话,模型很难在预训练中学到不同模态的对齐关系,导致在下游的实验效果跟不用预训练相比差不多。同时,实验结果也显示,单纯的使用这些方法在这种无限制的细粒度音视频对齐中,会有很大的局限,而当加上我们提出的 DCID 后,这些模型在下游任务上的表现有了一个很大的提升。

这进一步说明了我们提出的 DCID 可以有效的将不同模态的语义信息解偶出来,帮助预训练过程中的多模态对齐。同时,与之前最先进的方法 CMCM 相比,我们的方法也可以大幅领先,并且当预训练数据较少时,我们的方法优势越大。

394eac3e48e01c01215d010f3ffd1a06.png

对我们所提出一些关键模块的消融实验:首先我们以音视频的统一表达为例,测试了当移除模型的主要部件之后,模型在下游的 AVE 和 AVVP 任务上的表现情况,结果如表 2 所示。我们可以看到,当移除了这些部件之后模型的性能都有下降。在 DCID 模块中,去除 Cross-CPC 的影响要远远大于去除 CLUB 的影响,这说明如果没有 Cross-CPC 提供细粒度的跨模态对齐约束的情况下,单纯使用 CLUB 很难从原模态特征中提取出有效的语义信息。

当移除 MM-EMA 之后,模型性能也下降较多,证明了 MM-EMA 可以有效的利用 Cross-Attention,将不同模态的相关信息逐步映射到一起,帮助实现统一表达。而去除 reset code 的实验结果表明该模块可以有效去除 MM-EMA 导致的 code 多余,缓解 VQ-VAE 中的 codebook collapse 问题。最后,当移除 L_cmcm 后模型性能也会有小幅下降,说明了该模块的有效性,可以帮助我们的模型实现统一表达。

12b25cce6c8e92ed3e785948311a531c.png

在跨模态视频分割以及跨模态检索中的实验结果:

a969d2011769af44f62ea6d5d3e1d621.png

跨模态分割的可视化结果:

c6a8426af5fe688aa303ff00733ea4ed.png

更多阅读

6cad01ee277ed96237f105d443ade40c.png

bd92e1c25968b4625041e711b2b01ce8.png

17555bdf4cb3ce57fdcac7aabe65b65e.png

30cc75ee9b3b08c9554786f6e71a9797.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

c79d7db54b109582dc381fa8cf7767d8.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

·

9e0c5399a675173374c442c3053dca87.jpeg

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

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

相关文章

LeetCode 面试题 16.17. 连续数列

文章目录 一、题目二、C# 题解 一、题目 给定一个整数数组,找出总和最大的连续数列,并返回总和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。…

树结构及其算法-线索二叉树

目录 树结构及其算法-线索二叉树 C代码 树结构及其算法-线索二叉树 虽然我们把树转换为二叉树可减少空间的浪费——由2/3降低到1/2,但是如果仔细观察之前使用链表建立的n节点二叉树,那么会发现用来指向左右两个节点的指针只有n-1个链接,另…

如何快速导出、备份微信通讯录好友联系人微信号

6-9 如果因工作需要,你有多个微信,并且你的业务开发的客户都在这些微信里,将会面临一个问题,那就是备份问题,因为通过微信做业务,如果遇到微信不小心被封号,或者离职的交接等情况,客…

【Mybatis小白从0到90%精讲】03:编写Mapper,第一个入门程序

文章目录 前言一、创建mysql user表二、注解方式三、XML方式四、编写main方法调用前言 映射器Mapper是 MyBatis 中最重要的文件,简单的讲主要用来映射SQL语句。 映射器有两种实现方式:注解方式、XML文件方式(推荐)。 接下来演示通过两种方式,开发Mybatis第一个入门程序,…

GEE数据集——2019、2020、2021、2022和2023年全球固定宽带和移动(蜂窝)网络性能Shapefile 格式数据集

全球固定宽带和移动(蜂窝)网络性能 全球固定宽带和移动(蜂窝)网络性能,分配给缩放级别 16 网络墨卡托图块(赤道处约 610.8 米 x 610.8 米)。数据以 Shapefile 格式和 Apache Parquet 格式提供&…

安装MySQL时出现 由于找不到 MSVCR120.dll,无法继续执行代码。重新安装程序可能会解决此问题。

--------------------------- mysqld.exe - 系统错误 --------------------------- 由于找不到 MSVCR120.dll,无法继续执行代码。重新安装程序可能会解决此问题。 --------------------------- 确定 --------------------------- 安装MySQL时出现 “This appl…

C语言实现九九乘法表

学习C语言后&#xff0c;我们会发现打印九九乘法表是很简单的&#xff0c;话不多说&#xff0c;我们上代码&#xff01; 目录 1.函数代码 2.运行结果 1.函数代码 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() {int i 1;int j 1;int n 0;//行数in…

麒麟系统 UFW 操作文档

麒麟系统 UFW 操作文档 1. UFW 介绍 ufw&#xff08;简单防火墙 Uncomplicated FireWall&#xff09;真正地简化了 iptables&#xff0c;虽然 ufw 的底层依 然会调用 iptables&#xff0c;但是配置防火墙规则时操作更加方便&#xff0c;命令更加简洁&#xff0c;本文档主要介…

49基于matlab的Non dominated sorting genetic algorithm -II(NSGA-Ⅱ)多目标遗传算法

基于matlab的Non dominated sorting genetic algorithm -II&#xff08;NSGA-Ⅱ&#xff09;多目标遗传算法&#xff0c;其优势是降低了非劣排序遗传算法的复杂性&#xff0c;具有运行速度快&#xff0c;解集的收敛性好的优点&#xff0c;成为其他多目标优化算法性能的基准。程…

Python自定义函数练习(持续更新中~)

1.计算矩阵的面积和周长&#xff1a; class Rectangle:def __init__(self, width, height):self.width widthself.height heightdef area(self):return self.width * self.heightdef perimeter(self):return 2 * (self.width self.height)if __name__ "__main__"…

Ubuntu网络IP地址一直显示127.0.0.1

问题描述&#xff1a; 终端输入ip a显示127.0.0.1&#xff0c;原来类似192.168.231.1的地址不见了。 ip a 点击网络配置&#xff08;ubuntu桌面版&#xff09;&#xff0c;发现无线网络模块看不见了 正常情况应该有wired 模块&#xff0c;就是下面标红的 解决方案&#xff1a…

c语言实现http下载功能,显示进度条和下载速率

#include <stdio.h>//printf #include <string.h>//字符串处理 #include <sys/socket.h>//套接字 #include <arpa/inet.h>//ip地址处理 #include <fcntl.h>//open系统调用 #include <unistd.h>//write系统调用 #include <netdb.h>//…

时序分解 | Matlab实现PSO-VMD粒子群算法优化变分模态分解时间序列信号分解

时序分解 | Matlab实现PSO-VMD粒子群算法优化变分模态分解时间序列信号分解 目录 时序分解 | Matlab实现PSO-VMD粒子群算法优化变分模态分解时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 PSO-VMD粒子群算法PSO优化VMD变分模态分解 可直接运行 分解效果…

Linux C/C++下抓包分析mysql流量(协议解析)

MySQL通信协议是一个有状态的协议&#xff0c;主要用于MySQL客户端与服务器之间的通信。这个协议在MySQL客户端连接器&#xff08;如Connector/C、Connector/J等&#xff09;、MySQL Proxy以及主从复制中都有实现。 该协议的特性包括&#xff1a;支持SSL、压缩和认证等功能。 …

【JavaScript】零碎知识点总结_2

1. 引入网站图标 可以直接放在根目录 还可以 link 引入&#xff08;推荐&#xff09; <linkrel"shortcut icon"href"./assets/favicon.ico"type"image/x-icon">2. 转换为数字 123 -> 123 除 做字符串拼接&#xff0c;算术运算符都…

梳理自动驾驶中的各类坐标系

目录 自动驾驶中的坐标系定义 关于坐标系的定义 几大常用坐标系 世界坐标系 自车坐标系 传感器坐标系 激光雷达坐标系 相机坐标系 如何理解坐标转换 机器人基础中的坐标转换概念 左乘右乘的概念 对左乘右乘的理解 再谈自动驾驶中的坐标转换 本节参考文献 自动驾驶…

map和set的例题

随机链表的复制 138. 随机链表的复制 - 力扣&#xff08;LeetCode&#xff09; 我们为什么要拷贝原链表的结点一个个链接到原链表结点的后面&#xff1f; 其实就建立了原链表结点与拷贝链表每个结点的一种映射关系, 方便我们设置拷贝结点的random域。 那我们现在C有了map: …

WPF中的Binding的常见知识点与技巧

完全来源于十月的寒流&#xff0c;感谢大佬讲解 在XAML中&#xff0c;可以绑定到许多不同类型的数据源和属性。以下是一些可以绑定的常见数据源和属性&#xff1a; 属性&#xff1a;可以绑定到对象的属性&#xff0c;例如控件的Text、Visibility、IsEnabled等属性。 集合&am…

爱上C语言:函数递归,青蛙跳台阶图文详解

&#x1f680; 作者&#xff1a;阿辉不一般 &#x1f680; 你说呢&#xff1a;生活本来沉闷&#xff0c;但跑起来就有风 &#x1f680; 专栏&#xff1a;爱上C语言 &#x1f680;作图工具&#xff1a;draw.io(免费开源的作图网站) 如果觉得文章对你有帮助的话&#xff0c;还请…

Python基础入门例程42-NP42 公式计算器(运算符)

最近的博文&#xff1a; Python基础入门例程41-NP41 二进制位运算&#xff08;运算符&#xff09;-CSDN博客 Python基础入门例程40-NP40 俱乐部的成员&#xff08;运算符&#xff09;-CSDN博客 Python基础入门例程39-NP39 字符串之间的比较&#xff08;运算符&#xff09;-C…