【论文笔记】LanguageBind: Extending Video-Language Pretraining to N-modality by Language-based Semantic Alignment

基本信息

标题: LanguageBind: Extending Video-Language Pretraining to N-modality by Language-based Semantic Alignment
作者: Bin Zhu, Bin Lin, Munan Ning, Yang Yan, Jiaxi Cui, HongFa Wang, Yatian Pang, Wenhao Jiang, Junwu Zhang, Zongwei Li, Wancai Zhang, Zhifeng Li, Wei Liu, Li Yuan
发表: ICLR 2024
arXiv: https://arxiv.org/abs/2310.01852

基本信息

摘要

视频语言(VL)预训练在多个下游任务中取得了显著的进步。

然而,当前的VL预训练框架难以扩展到多个模态(N模态,N≥3),超出视觉和语言之外。

因此,我们提出了LanguageBind,将语言作为不同模态之间的纽带,因为语言模态得到了充分探索且包含丰富的语义。

具体来说,我们冻结了VL预训练获得的语言编码器,然后使用对比学习训练其他模态的编码器。

结果,所有模态都被映射到一个共享的特征空间,实现了多模态语义对齐。

虽然LanguageBind确保我们可以将VL模态扩展到N模态,但我们还需要一个高质量的包含语言为中心对齐数据的语料库。

因此,我们提出了包含1000万个数据的VIDAL-10M,其中包括视频、红外、深度、音频及其相应的语言。

在我们的VIDAL-10M中,所有视频都来自短视频平台,具有完整的语义,而不是来自长视频的截断片段,并且所有视频、深度、红外和音频模态都与它们的文本描述对齐。

LanguageBind在涵盖视频、音频、深度和红外等多个模态的15个基准测试中取得了优异的性能。

此外,多项实验为LanguageBind在实现不同模态之间的间接对齐和互补的有效性提供了证据。

代码地址:https://github.com/PKU-YuanGroup/LanguageBind

主要贡献

ImageBind vs. LanguageBind

  • 我们提出了基于语言的跨模态预训练方法LanguageBind。在预训练过程中,所有模态通过对比学习逐渐与语言模态对齐,并在共享嵌入空间中统一。
  • 我们引入了VIDAL-10M,这是一个大规模的五模态视频数据集,包含1000万个数据对,具有对齐的VL、IL(infrared-language)、DL(depth-language)和AL(audio-language)模态。据我们所知,VIDAL-10M是第一个包含深度和红外模态的大规模视频数据集。
  • 大量实验验证了我们的数据集和方法的有效性,在视频和其他模态理解任务中取得了显著性能。

Comparision of existing multimodal datasets

LanguageBind achieves superior performances on a broad range of 15 benchmarks across video, audio, depth and infrared

方法

本节中,我们介绍了LanguageBind,这是一种多模态预训练方法,旨在对齐不同模态的语义并增强跨模态检索和零样本分类。

如图3所示,LanguageBind由三部分组成:

  1. 多模态编码器
  2. 语言编码器
  3. 多模态联合学习

LanguageBind overview

多模态编码器

除了语言之外的其他模态,我们使用24层、1024维度的ViT,其patch大小为14。

编码器从OpenCLIP-large初始化。

深度和红外被视为RGB图像,在通道维度上重复3次以与RGB图像对齐。

在ImageBind之后,音频数据被转换为时长为10秒(128 mel-bins)的频谱图,并重复和填充频谱图。例如,4秒的频谱图将被重复两次,然后填充零以增加额外的2秒。同样,我们在通道维度上也重复3次。如果时长超过10秒,我们将从原始音频的前1/3、中1/3和后1/3中随机采样三个10秒的音频片段,并将它们堆叠在一起。

Patch masking: 为了解决在编码器中处理所有token的效率低下问题,我们将图像划分为patch,并通过编码器掩码取一小部分patch,遵循 MAE。
LoRA fine-tuning: 使用LoRA微调Encoder。
Modality extending: 扩展到N个模态。

语言编码器和多模态联合学习

对于语言编码器,我们使用了一个12层的Transformer模型,该模型具有768维,并从OpenCLIP进行初始化。

对于给定的文本,我们最初使用BPE分词器将单词分割成相对常见的子词。每个子词对应一个唯一的token,这些token嵌入在词嵌入层中。

最终,token由语言编码器编码,以获得文本logityRL×C\boldsymbol{y} \in \mathbb{R}^{L \times C},其中LL 表示序列的长度。

为了确保不同模态之间的对齐,我们使用了对比学习。这种方法的目标是增加配对数据的相似性,使它们更接近相同的语义空间,同时最小化未配对数据的相似性。我们利用对比学习将各个模态与语言绑定。

LM2T=1Ki=1Klogexp(xiyi/τ)j=1Kexp(xiyj/τ),LT2M=1Ki=1Klogexp(yixi/τ)j=1Kexp(yixj/τ)L_{M2T} = -\frac{1}{K} \sum_{i=1}^{K} \log \frac{\exp(x_i^\top y_i / \tau)}{\sum_{j=1}^{K} \exp(x_i^\top y_j / \tau)}, \quad L_{T2M} = -\frac{1}{K} \sum_{i=1}^{K} \log \frac{\exp(y_i^\top x_i / \tau)}{\sum_{j=1}^{K} \exp(y_i^\top x_j / \tau)}

其中xix_i 是第ii 个模态数据,yjy_j 是第jj 个文本,它们的特征被归一化。KKτ\tau 分别是批次大小和温度。每个模态M\mathbf{M} 与语言T\mathbf{T} 的直接对齐使我们能够显著提高零样本分类和检索任务的性能。

THE VIDAL-10M DATASET

VIDAL-10M construction

Multi-view text generation and enhancement pipline

实验

Zero-shot Video-Text retrieval performance

Zero-shot Video-Text retrieval

Zero-shot X-Language classification

Zero-shot Audio-Language retrieval

Comparison of multi-modal language based retrieval

Comparison of emergent zero-shot retrieval

Training loss and architecture

总结

在这项工作中,我们提出了基于语言的语义对齐方法LanguageBind,用于多模态预训练。

我们采用对比学习方法,在语言模态与其他所有模态之间建立模态语义对齐。

为了提高模态完整性,我们还构建了第一个与语言模态直接对齐的大规模多模态数据集VIDAL-10M,包含1000万个对齐的VL、IL、DL和AL对。

广泛的实验结果,包括零样本X语言理解和不同模态之间的间接对齐,证明了LanguageBind的多模态对齐和互补能力的有效性,以及VIDAL-10M的有效性。