[论文阅读笔记] ImageBind, One Embedding Space To Bind Them All

Abstract

将大量模态和图像模态对齐,再将图像和文本对齐,使模型获得大量模态zero-shot泛化能力。学习出一个能容纳大量模态的语义空间,并使用了实验证明。各个模态的encoder可以使用已有的pretrain encoder,降低使用门槛。训练数据多依赖于co-occur的模态数据,因此降低了收集数据的成本。

Introduction

图像可以和大量体验关联(e.g. 沙滩图像和海浪声/微风/沙子的触感对齐)
→ \rightarrow 可以将视觉feature和这些体验数据相对齐。但是搜集这些数据非常困难。
→ \rightarrow 近期工作:对齐一对模态,这些学出的特征最终只能适用于用以训练的模态场景,切换模态场景后无法使用。导致这个局限性的原因是缺乏所有模态都有的大量多模态数据。
→ \rightarrow 文章通过将各个模态和图像对齐,推出一种不需要所有模态同时共存的方法,去学习一个所有模态适用的公共子空间。
→ \rightarrow 具体落实:使用CLIP的image-text zero-shot能力,辅佐上一些天然共存的数据集(e.g. 视频/音频),从而将zero-shot能力通过image带给更多的模态。同时,学出的模态公共子空间可以用于大量不同的downstream任务。

Method

使用nature co-occur的成对数据,学习各个模态的潜在对齐关系,获得公有特征空间。
→ \rightarrow 使用大规模text-image dataset,将image和text模态绑定。
其余模态使用图像和图像对应co-occur的模态信息进行对齐。

使用对比学习将各个模态归一化后的embedding做对齐
→ \rightarrow 发现通过将各个模态和图像对齐,最终embedding空间里各个模态也是对齐的。
→ \rightarrow 因为这些模态能够在空间里对齐,因此他们同样具备text带来的zero-shot能力。

Encoder全部使用了transformer架构,根据不同模态数据特性定制了transformer类型。各个模态各自拥有独立encoder,在每个encoder的尾部加入线性层,将各模态的embedding映射为相同长度。对映射后的embedding归一化,然后进行对比学习对齐。

  • 为减轻学习量,一些模态使用了pretrain的encoder(e.g. text和image模态使用CLIP)

Experiment

  1. zero-shot/few-shot评估:
    判断language和其他模态之间的对齐程度
  2. 不同模态embedding对齐的分析实验:
    1 将两模态的embedding相加减,然后拿加减后embedding去搜索对应图像模态的图片,看一下是否把语义信息叠加起来了。
    2 将text模态外的其他模态的embedding输入到text-based的下游downstream model中,观察效果是否正常。
  3. 图像encoder性能对于其他模态对齐性能的影响:
    因为其他模态都和图像对齐,所以要研究图像encoder的性能对其他模态embedding质量影响。采用的指标是zero-shot指标。为保证公平性,其他模态的encoder超参保持一致,只改变图像encoder的超参。

Code

提供的api进行inference时输出为embedding

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值