这次主要分享一下多模态相关知识。

1. 模态(Modality)

文本、图像、语音、视频、深度/点云、表格、传感器、结构化知识等。

多模态指的是数据或者信息的多种表现形式,一个信息,它可以存在多种表现形式。

2. 多模态学习

联合利用多种模态完成理解、生成、推理或控制。

2.1 多模态核心任务

根据不同的目标和应用,多模态学习可以分为几个经典的任务方向:

a. 表示

1、视觉模态表示----Vit路线
  • 图像切 Patch:将输入图像划分为多个固定大小的碎片(例如 16×16 像素),每个 Patch 可以看作是一个小图像块。对于高分辨率图像,有时会采用更细粒度的划分,此时每个小块常被称为 Tile

  • 投影成 Token:每个 Patch 通过一个线性投影层(可学习的全连接层)映射为一个一维向量,称为 Visual Token。同时加上可学习的位置编码(Position Embedding),因为模型需要知道 patch 在原始图像中的空间位置。

  • 输出:一系列 Token 序列,形状为 (N_patches, embed_dim),后续可送入 Transformer 编码器。

常见模型:ViT (Vision Transformer)、DINO、CLIP 的视觉编码器。

2、文本模态表示 —— BPE
  • 字词切分:纯字符级别会丢失语义,整词级别会导致词表过大。BPE(Byte Pair Encoding)是一种介于字符和词之间的子词切分方法。

  • 例子"swimming" 在语料中可能被切成 "swim" + "ming",高频子词被保留为独立 token。BPE 能够处理未登录词,减少词表大小。

  • 输出:每个子词对应一个 Token ID,再通过词嵌入矩阵映射为向量,并加上位置编码,形成文本 Token 序列。

扩展:除了 BPE,还有 WordPiece(BERT 使用)、SentencePiece(T5 使用)等。

3、语音模态表示
  • 特征提取:原始音频波形(时域)先通过预处理,常用 MFCC(梅尔频率倒谱系数)或 FBank(Filter Bank)提取频域特征。

  • 采样成帧:将连续音频信号划分为短时帧(例如 25ms 一帧,帧移 10ms),每帧得到一个特征向量(通常 80 维左右)。

  • Tokenization:有两种主要方式

    • 帧级 Token:直接每一帧作为一个 token 序列。缺点是序列非常长(1 秒音频约 100 帧)。

    • 离散化 Token:通过 VQ-VAE 或 Hubert 等方法将连续帧特征聚类为离散的“声学单元”,类似 BPE 对语音做的切分。例如 HuBERT 或 EnCodec 将音频转为离散 token。

  • 输出:语音 Token 序列,长度与帧数相关,可与文本/视觉 token 对齐后送入统一 Transformer。

现代多模态模型(如 AudioLM、VALL-E)常将语音表示为三种 token:语义 token(类似 BERT 处理后的特征)、声学 token(音色)、声码器 token(用于还原波形)。

b. 对齐

对齐解决的核心问题是:如何让模型知道不同模态中的哪些部分在语义或时间上是“对应的”。分几种角度

1、语义对齐 —— 音话同步
  • 定义:将不同模态中表达相同含义的部分联系起来,而不要求严格的时间点对齐。

  • 例子:一段描述“一个人在微笑”的文字,和一张微笑的人脸图片,需要模型把这两个样本在语义空间中对齐。

  • 技术手段:常用对比学习(InfoNCE),拉近匹配对的向量距离,推远不匹配对。代表工作:CLIP、ALIGN。

2、时间对齐

很多数据天然有时序,比如视频与音频、手势与语音。

  • 概念:同一个实体在不同时间点表达的信息不同。例如一段演讲视频中,某时刻的词“苹果”可能对应此时画面中出现的水果或手机,需要模型精确找到该时刻的视觉区域。

  • 细粒度对齐:音频帧与视频帧之间的同步。例如 AV-HuBERT 通过预测掩码来对齐语音和嘴唇运动。

  • 动态时间规整(DTW):传统方法,用于处理不同模态之间时间速度不一致的问题。

3、全局对齐(弱对齐) vs 局部对齐(强对齐)
类型 含义 例子 标签精细度
全局对齐 整个样本对之间是否匹配,而不关注内部细粒度对应。 一张图片与一句描述:“海边日落” → 整体匹配即可。 弱监督(只有样本对标签)
局部对齐 模态内部的局部片段与另一模态的局部片段之间的对应关系。 图像中的一个区域(狗的脸)与文本中的词“狗”对齐;视频中第3-5秒的枪声与字幕中的“砰”对齐。 需要更精细的标注或自监督学习(如匹配图)

局部对齐通常通过注意力机制或最优传输(Optimal Transport)实现。例如在多模态 Transformer 中,视觉 token 与文本 token 的交叉注意力权重可以直接解释为局部对齐的软程度。

c. 融合

融合回答两个问题:什么时刻融合 + 在什么粒度下融合

1. 何时融合 —— 早期、中期、晚期
  • 早期融合(Early Fusion / 数据级融合)

    • 在输入层就将原始数据拼接或组合。

    • 例子:将图像像素和对应的热力图像素堆叠成多通道输入送进 CNN。

    • 优点:模型可以学习模态间的低阶交互。缺点:原始数据差异大时难学,且容易过拟合。

  • 晚期融合(Late Fusion / 决策级融合)

    • 各个模态独立处理,最终将各自的预测结果(概率、分数)进行融合(加权平均、投票、元学习等)。

    • 例子:一个模型识别图片中的物体类别(输出概率),另一个模型识别音频中的物体类别,最终加权求和。

    • 优点:简单、鲁棒,不同模态可以使用完全不同的模型。缺点:失去了模态间交互的机会。

  • 中期融合(Intermediate Fusion / 混合融合)

    • 在模型的中间层进行融合,即各模态先经过若干层编码,然后融合其特征表示,再继续联合处理。

    • 例子:CLIP 的双塔架构中,视觉和文本独立编码到最后才计算相似度 → 其实更接近晚期融合;真正的中期融合如 VilBERT,图像区域特征和文本词特征经过若干层后互相对齐并融合。

    • 当前主流:多模态 Transformer 本质上是在每一层都进行交叉注意力(一种极端的中期融合,甚至可称为“早但又深的融合”)。

2. 什么粒度融合 —— 注意力、门控
  • 注意力机制

    • 允许模型动态选择不同模态中“最相关”的部分进行融合。

    • 例如,在视觉问答中,当问题提到“颜色”时,模型会加大视觉 token 中与颜色相关区域的注意力权重。

    • 常见形式:Cross-Attention(一种模态的 query 去另一种模态的 key/value 中检索信息)。

  • 门控机制(Gated Fusion)

    • 学习一个“门”向量,控制每个模态特征进入下一层的比例。

    • 例子:fused = g * feature_A + (1-g) * feature_B,其中 g 由当前输入特征动态生成。

    • 优点:可以抑制噪声模态,突出信息量大的模态,常用于情感识别或多传感器融合。

  • 其他粒度:拼接、加权和、乘法、双线性池化等,但注意力机制和门控是目前最有效的。

d. 迁移

迁移学习在多模态领域中非常有价值,尤其是利用已经预训练好的单模态大模型来加速多模态模型的学习,或者将一个模态的知识迁移到另一个模态。

核心思想:单模态大模型预训练 → 多模态适配

  • 背景:在很多场景下,单个模态(如文本、图像)有海量无标签数据,容易训练出强大的单模态大模型(如 BERT、GPT、ViT、HuBERT)。但是多模态数据(如视频-字幕对)相对稀少。直接从头训练多模态模型很昂贵且容易欠拟合。

典型工作流

  1. 从各自的单模态预训练模型(如 BERT 和 ViT)中取出编码器部分。

  2. 将它们拼接成一个多模态架构,中间加入跨模态融合层(交叉注意力等)。

  3. 在多模态数据(如图文对)上进行微调,可以冻结部分层或全部解冻。

  4. 最终模型既能利用单模态预训练学到的丰富知识,又能学习跨模态的关联。

2.2 经典技术和模型架构

目前主流的多模态模型主要依赖深度学习,尤其是Transformer注意力机制

a. 双塔(Dual-Encoder)

  • 原理:用两个独立的编码器分别处理不同模态(如一个处理文本,一个处理图像),通过一个对比损失函数(如InfoNCE)将它们映射到同一个向量空间,让相似样本的向量距离更近,不相似的更远。

  • 代表作CLIP(OpenAI),ALIGN(Google)。

  • 优点:效率高,特别适合检索任务。

  • 缺点:模态间的交互较浅,不适合复杂推理。

b. 单塔/融合编码器架构

  • 原理:将不同模态的输入(如文本token和图像patch)拼接在一起,输入到一个统一的Transformer模型中进行深层交互。

  • 代表作Flamingo(DeepMind),GPT-4V(OpenAI),LLaVA

  • 优点:模态间交互充分,推理能力强,适合视觉问答、图像描述等任务。

  • 缺点:计算成本极高,难以处理超长输入。

c. 统一Transformer架构

  • 原理:将所有模态(文本、图像、声音、视频)都“分块”(tokenize)成序列,然后用同一个Transformer模型以同样的方式处理。这是一种更激进的统一方法。

  • 代表作ImageBind(Meta),UniVL

  • 优点:架构极其简洁,理论上可以学习任何模态之间的关联。

d. 编码器-解码器

  • 原理:一端理解多模态输入,一端生成文本或其它模态(caption、VLM 回答、语音合成等)类似Seq2Seq。

2.3 对比学习

对比学习是一种自监督学习方法,其基本想法非常简单:

拉近相似样本,推开不相似样本。

  • 常用案例

假设我们没有任何标签,只有一堆猫和狗的图片。我们给每张图片做两种随机增强(旋转、裁剪、变色等),得到两个不同视角的版本。

  • 同一个原始图片的两种增强 → 正样本对(尽管它们看起来不完全一样,但语义相同)。

  • 不同原始图片的增强 → 负样本对(语义不同)。

对比学习的目标是:

  • 让正样本对的特征向量在空间中尽可能接近(高相似度)。

  • 让负样本对的特征向量在空间中尽可能远离(低相似度)。

训练完成后,模型提取的特征能够将不同物体(猫和狗)自然分开,甚至形成一个语义聚类

实现步骤:

构建正负样本对

  • 正样本对:同一张图片经过不同数据增强(如裁剪、旋转、变色)后得到的两张图。模型需要学会:它们表征的是同一个东西。

  • 负样本对:一张图片与其他不同的图片。模型需要学会:它们的表征应该不同。

映射到特征空间

模型(通常是神经网络)将每张图片映射到一个被称为特征空间的高维球面上。在这个空间中,相似的事物距离近,不相似的事物距离远。

使用对比损失函数(如InfoNCE Loss)

这是最关键的一步。损失函数会计算:

  • 分子:正样本对之间的相似度(鼓励更大)。

  • 分母:正样本对相似度 + 所有负样本对相似度(鼓励分母中负样本贡献小)。

损失函数的核心公式逻辑(简化版):

3. 扩散模型(Diffusion Models)

扩散模型是一种通过逐步向数据添加噪声(前向过程),然后学习逆转这个过程(反向过程)来生成新数据的生成模型。

核心思想从有序到混沌(加噪),再从混沌到有序(去噪)。


直观比喻:一幅画的“消失与重现”

想象有一张清晰的猫的照片。

  • 前向过程(加噪):你反复在照片上叠加一层又一层的模糊雪花。经过足够多的步骤后,照片变成了一团完全的随机噪声(看起来像老电视的雪花屏)。每一步,猫的形象都稍微更模糊一点。

  • 反向过程(去噪):你训练一个神经网络,教它如何从稍微更模糊的图片,预测出稍微清晰一点的图片。比如,给它看第99步的噪声图,让它预测第98步的样子。反复应用这个去噪步骤,最终就能从纯噪声恢复出一张清晰的猫图。

关键点:模型不需要直接一步生成图像,而是学习一个微小的、可重复的去噪操作。多次应用这个操作,就能从纯噪声“雕刻”出任何你想要的图像。

4. CLIP模型

CLIP(对比语言-图像预训练)模型是多模态领域的一个里程碑,它解决了如何让AI像人类一样,同时“看懂”图像和“读懂”文字这个难题。它的伟大之处在于,通过“图文配对”这种海量、弱监督的数据进行学习,最终获得了强大的“零样本学习”(Zero-shot Learning)能力,无需针对新任务进行专门训练就能完成分类、检索等操作。

零样本迁移能力:

零样本学习(Zero-shot Learning)是CLIP最引人注目的特性。它让模型能够处理在训练时从未明确见过的类别。

举个例子,假如我们需要一个从未“学习”过“柯基犬”的模型进行识别:

  1. 任务输入(Text Prompt):我们不需要为任务重新训练模型。只需将“柯基犬”这个类别名称,嵌入到一个精心设计的文本提示模板中,如“一张[标签]的照片”,送入文本编码器,得到该类别在上述向量空间中的位置 T

  2. 图像推理:将一张待识别的“狗”的图片送入图像编码器,得到其在向量空间中的位置 I

  3. 相似度计算与决策I 和 T 之间会进行相似度计算(通常是余弦相似度)。相似度得分越高,表示图像与文本描述越匹配。

它的原理在于,虽然没见过“柯基犬”,但CLIP在预训练时已经学会了“狗”、“短腿”、“长耳朵”这些基本概念及其组合,从而能通过语义空间中的位置关系,准确推断出目标。

CLIP在ImageNet上直接达到了76.2%的零样本准确率,相比之前11.5%的SOTA(最先进技术水平)有了质的飞跃。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐