跳转至

多模态专题:从技术基础到推荐算法落地

本专题由多模态技术基础、多模态大模型框架、多模态在推荐算法的应用(以快手 OneRec 为主线)三部分组成。整体沿"根本问题 → 共享语义空间 → 两大范式 → 大模型架构 → 推荐场景落地"的主轴自顶向下展开,既可作为长期复习的心智模型,也可作为深入某一具体技术点(Q-Former、RQ-Kmeans、协同对齐等)的导航地图。各章尾部标注其素材来源位置,便于回溯原文。

阅读地图

部分 章节 核心问题
第一部分 多模态技术基础 第 1 章 根本问题 多模态到底要解决什么?
第 2 章 模态编码机制 图像、音频如何被切成 Transformer 可消费的 token?
第 3 章 关键概念辨析 对齐与融合的精确区分、可学习 query 的本质
第二部分 多模态大模型框架 第 4 章 总体架构 Modality Encoder → Connector → LLM → Generator
第 5 章 Connector 设计范式 MLP 投影 / Q-Former / Fusion-based 三类连接器
第 6 章 LLM 主干与生成器 LLM 如何"读懂"视觉 token?生成器何时需要?
第 7 章 两阶段训练 特征对齐预训练 + 视觉指令微调
第三部分 多模态在推荐算法的应用 第 8 章 生成式推荐定位 从"检索+排序"到"一体化生成"
第 9 章 OneRec Stage 1 多模态语义理解:miniCPM-V + Q-Former
第 10 章 OneRec Stage 2 协同对齐与 Semantic ID:L_I2I + Caption 正则 + RQ-Kmeans
第 11 章 业界技术谱系 TIGER / LETTER / HLLM / NoteLLM 等横向对比
第 12 章 基础原理透视 融合范式、Perceiver 谱系、量化方法全景
第 13 章 电商场景特殊考量 SKU 粒度、价格动态性、结构化属性融合
第 14 章 工程 Checklist 复现清单、决策矩阵、常见误区

第一部分 多模态技术基础

第 1 章 多模态学习的认知骨架

1.1 根本问题:异构信号的协调

从最朴素的直觉出发,人类认识世界从来不是依赖单一通道的。判断一个视频是否值得看、一件商品是否值得买、一段对话是否包含讽刺时,人同时在处理画面、文字、语气、背景音。单模态模型的根本局限,不在于它"看得不够多",而在于单一模态往往无法消歧——同样一句"这太棒了",配上微笑的表情是赞美,配上翻白眼的表情是讽刺;同样一张白底运动鞋的图片,配上"Nike 新款发布"是广告,配上"二手九成新"是转卖。任何单模态模型在这类场景下都会系统性地误判。

由此可以提炼出多模态领域的根本问题:如何让机器在处理一个实体(entity)时,同时吸收并协调来自多个异构信号通道的信息,从而做出比任何单一通道都更准确的判断或生成。 这里的关键词是"异构"——文本是离散的符号序列,图像是连续的像素矩阵,音频是时序的波形采样,它们在数学形式、信息密度、时间尺度上完全不同。多模态的所有技术努力,本质上都在对抗这种"异构性"。

1.2 领域的锚点:共享语义空间

一旦把根本问题定位为"异构信号的协调",解决方案的方向就几乎唯一了——必须为所有模态构建一个共享的语义表示空间。只有在同一个空间里,"一段文本"和"一张图片"才能被放在一起比较、被一起送进下游任务、被互相翻译。这个"共享语义空间"是整个多模态领域的锚点,是所有流派、所有具体技术最终都在服务的目标。

理解了这一点,许多看似零散的技术选择就能被统一解释。对比学习为什么要把图文对的嵌入拉近、不相关对的嵌入推远?因为它在用对比损失"雕刻"出这个共享空间。BLIP-2 的 Q-Former 为什么要用可学习 query 去压缩图像特征?因为它在把图像映射进 LLM 已有的语言表示空间。LLaVA 为什么要训练一个从视觉编码器到 LLM 词嵌入层的投影矩阵?因为它在强行把视觉空间对齐到语言空间。这些技术的共性是——模态独立编码在前,空间对齐在后——这正是"后期融合"路线,也恰恰是当代多模态的主流范式。

共享语义空间有两种典型形态。第一种是向量空间,每个模态的内容都被压缩成一个固定维度的向量(例如 CLIP 里的 512 维),空间里的几何关系(夹角、距离)直接代表语义关系。第二种是 token 空间,每个模态的内容都被转写成 LLM 词表中的离散 token 序列,图像变成"视觉 token"、音频变成"音频 token",与文本 token 共用同一个解码器。前者适合检索、分类、排序这类"度量型"任务,后者适合对话、生成、推理这类"生成型"任务。这也是后面两大主流流派的分水岭。

1.3 训练与推理的基本范式

多模态模型的训练范式可以用一个统一的公式化描述来把握:给定一组成对或成组的跨模态样本,通过某种对齐目标,让模型学到共享语义空间。 训练数据的最小单位不是单条样本,而是"模态对"或"模态组"——最常见的是图文对(image-text pair),从互联网上抓取的"图片 + alt 文本"、"视频 + 标题"、"商品 + 描述"都是天然的训练素材,规模可以轻易达到亿级甚至十亿级。训练目标有三种基本类型:

  • 对齐型目标:让配对样本在共享空间中靠近,让随机样本远离。典型是 CLIP 的对比学习。
  • 生成型目标:给定一个模态作为条件,预测另一个模态的 token 序列。典型是图像描述生成、视觉问答。
  • 匹配型目标:给定一对样本,二分类判断是否配对。典型是 BLIP 的 ITM 损失。

绝大多数现代多模态模型是这三种目标的组合,BLIP-2 的三任务(ITC + ITM + ITG)就是一个标准范例。

推理范式则比训练范式灵活得多,原因恰恰在于共享语义空间一旦建立就可以被多种任务复用。以 CLIP 为例,它训练时只做对比学习,但训练完之后,可以把它的图像编码器和文本编码器拆开独立使用——喂一张图进去得到图像向量,喂一组类别文本("一张猫的照片"、"一张狗的照片")进去得到一组文本向量,谁与图像向量的余弦相似度最高就是哪类,这就是零样本分类;也可以让图像向量去和一个文本向量库做近邻检索,这就是图文检索。训练一次,推理多用,是对齐型范式的核心优势。生成型范式的推理则更贴近我们熟悉的 LLM——输入一张图和一句问题,模型自回归地生成回答 token。前者的输出是向量、是分数、是排序;后者的输出是自然语言。"CLIP 推理时为什么只需要把 image encoder 拿出来就能分类"的答案也在这里——CLIP 在训练阶段已经把图像空间与文本空间对齐好了,推理时的零样本分类本质上是"一次跨模态近邻检索"。

1.4 两大主流范式的分野

把上面的骨架梳理清楚之后,多模态领域从 2021 年至今的发展就能清晰地划分为两条主线。

第一条主线是表示对齐范式。它的代表是 CLIP(OpenAI, 2021)及其后继者 ALIGN、SigLIP、EVA-CLIP。这条路线的目标是纯粹的——训练出一对质量极高的跨模态编码器,产物是"向量对向量"的对齐空间。它不试图让模型"理解"或"回答"什么,它只负责把图像和文本翻译到同一种度量语言里。它的结构也极简:双塔架构,一边是图像编码器,一边是文本编码器,对比损失拉近配对、推远随机对,训练数据是四亿级别的图文对。推理时这两个编码器可以独立使用,也可以联合使用。CLIP 范式的胜利在于它的通用性与可迁移性——一个训练好的 CLIP 可以同时支持零样本分类、图文检索、内容审核、甚至后续 Stable Diffusion 的文本条件控制。但它也有天花板——它不会"生成",不会"对话",它只会"度量"。

第二条主线是生成理解范式。它的代表是 BLIP/BLIP-2(Salesforce, 2022/2023)、Flamingo(DeepMind, 2022)、LLaVA(Liu et al., 2023)、以及后续的 GPT-4V、Qwen-VL、InternVL、miniCPM-V 这一整脉。这条路线的目标是让大语言模型"长出眼睛"——把视觉信号翻译成 LLM 可以理解的形式,然后让 LLM 以自然语言回答关于视觉内容的问题。它的典型结构是三段式:一个冻结的视觉编码器(通常直接用 CLIP 的 image encoder)负责抽取视觉特征,一个轻量的跨模态连接器(BLIP-2 的 Q-Former、LLaVA 的线性投影)负责把视觉特征翻译成 LLM 词嵌入空间里的 token,一个冻结或微调的 LLM 负责在这些"视觉 token + 文本 token"混合序列上做标准的自回归生成。这条路线的产物不再是向量,而是一个能看图说话、能视觉问答、能多模态推理的对话系统。它的优势是任务开放性——同一个模型可以回答任意关于图像的自然语言问题,不需要为每个任务单独训练;它的代价是计算成本——LLM 的推理开销远高于 CLIP 的编码器。

值得注意的是这两条主线并不是互斥的,而是有清晰的依赖关系——生成理解范式通常站在表示对齐范式的肩膀上。BLIP-2 和 LLaVA 的视觉编码器基本都直接复用 CLIP 或其变体,因为 CLIP 预训练出的视觉表示已经与语言概念对齐良好,是生成式多模态的理想起点。可以把这两条线理解为不同层次的工作——CLIP 做的是"跨模态的通用表示基础设施",BLIP-2/LLaVA 做的是"基于这个基础设施的应用系统"。


第 2 章 图像与音频的编码机制

2.1 编码任务的本质

在进入具体技术之前,需要先厘清编码这一步在多模态框架中的角色。前一章骨架已经指出,多模态的核心目标是构建共享语义空间。但共享空间的前提是每个模态必须先被转写成 Transformer 可以处理的形式,即一个固定维度的向量序列。文本天然由离散符号组成,只需一张嵌入查找表即可完成转写。图像与音频的原始数据不是离散符号,而是连续信号——图像是二维空间上的像素矩阵,音频是一维时间上的振幅采样。编码机制要解决的根本问题,就是把这些连续信号切成离散的单元,每个单元对应一个向量,从而构成 Transformer 可消费的 token 序列

这一转写过程不是简单的格式转换,它同时承担了两项任务。其一是降维与压缩,原始图像可达数百万像素,原始音频每秒包含上万采样点,若逐像素或逐采样点送入 Transformer,计算量无法承受。其二是局部语义聚合,单个像素或单个采样点几乎不携带语义,必须经过局部聚合才能形成有意义的基本单元。因此,编码机制的核心工程考量是如何在"切分粒度"与"语义完整性"之间取得平衡。

2.2 图像的数学表示与编码路径

2.2.1 图像作为张量

一张 RGB 彩色图像在计算机中的数学形式是一个三维张量 \(\mathbf{X} \in \mathbb{R}^{H \times W \times C}\),其中 \(H\) 是高度,\(W\) 是宽度,\(C\) 是通道数。对 RGB 图像而言 \(C = 3\),三个通道分别记录红、绿、蓝分量的强度。每个元素 \(\mathbf{X}[i, j, c]\) 是一个整数,原始范围为 \([0, 255]\)。进入神经网络前通常需要归一化,做法是除以 255 使其落入 \([0, 1]\),再按通道均值与方差做标准化,最终取值范围大致在 \([-2, 2]\)。对 ImageNet 预训练模型,三个通道的标准化参数分别为均值 \((0.485, 0.456, 0.406)\)、标准差 \((0.229, 0.224, 0.225)\),这一惯例被 CLIP 乃至后续的 VLM 广泛沿用。

2.2.2 卷积神经网络路径的历史地位

在 2020 年之前,图像编码的主流是卷积神经网络。以 ResNet-50 为代表的 CNN 通过堆叠卷积层与池化层,逐级提取从边缘到纹理再到语义的多层次特征。一张 \(224 \times 224 \times 3\) 的图像经过 ResNet-50 的五个阶段,空间分辨率依次下降为 \(112 \times 112, 56 \times 56, 28 \times 28, 14 \times 14, 7 \times 7\),通道数则升至 2048,最后通过全局平均池化得到一个 2048 维的图像向量。CNN 的优势在于其归纳偏置——局部连接与权重共享先天契合图像的平移不变性;其劣势在于感受野受限,远距离像素的交互需要堆很多层才能实现。CLIP 的最初版本同时提供了 ResNet 骨干与 ViT 骨干,但后续工作几乎全面倒向 ViT,因此本章重点放在 Vision Transformer 上。

2.2.3 Vision Transformer 的 Patch Embedding 机制

Vision Transformer(Dosovitskiy 等, ICLR 2021)提出了一个简洁而彻底的思路——把图像切成小块,每一块当作一个 token,然后整体送入标准 Transformer 编码器。这一思路的关键是 patch embedding,即把连续的像素块线性投影成离散的 token 向量。

设输入图像为 \(\mathbf{X} \in \mathbb{R}^{H \times W \times C}\),预定义 patch 尺寸为 \(P \times P\)。patch embedding 首先将图像切分为 \(N = \frac{HW}{P^2}\) 个互不重叠的小块,每个小块是一个 \(P \times P \times C\) 的三维张量。每个小块被展平成一个长度为 \(P^2 C\) 的一维向量。随后通过一个线性投影矩阵 \(\mathbf{E} \in \mathbb{R}^{P^2 C \times d}\) 映射到 \(d\) 维,这里 \(d\) 是 Transformer 的隐藏维度。整个过程等价于一次步长等于 patch 尺寸的卷积操作,因此在工程实现上通常用一个 \(\text{Conv2d}\) 层完成,卷积核尺寸为 \(P \times P\),步长为 \(P\),输出通道数为 \(d\)

以 ViT-B/16 为例,输入尺寸为 \(224 \times 224\),patch 尺寸 \(P = 16\),因此 \(N = (224/16)^2 = 196\) 个 patch。每个 patch 展平为 \(16 \times 16 \times 3 = 768\) 维向量,线性投影到 \(d = 768\) 维(巧合地数值相同)。经过 patch embedding 后,一张图像被转换为 196 个 768 维 token,形成形状为 \(196 \times 768\) 的矩阵。至此,图像已从空间信号转换为 Transformer 标准输入。

对 ViT-L/14(CLIP 常用配置),patch 尺寸 \(P = 14\),输入若为 \(224 \times 224\) 则产生 \((224/14)^2 = 256\) 个 patch,每个 patch 投影到 \(d = 1024\) 维。若输入分辨率提升到 \(336 \times 336\)(CLIP-L/14@336),patch 数则增至 \((336/14)^2 = 576\),这也是 LLaVA 视觉塔的默认配置。

2.2.4 CLS Token 与位置编码

Patch embedding 产生的序列只包含局部信息,缺少两个必要组件。第一个是全局表示的容器。若要用一个向量代表整张图像,需要额外引入一个可学习的 CLS token,记作 \(\mathbf{x}_{\text{cls}} \in \mathbb{R}^{d}\),放在序列最前端。经过 Transformer 多层自注意力后,CLS token 会与所有 patch token 充分交互,其最终表示可作为全图嵌入用于下游任务。第二个是位置信息。Transformer 对输入顺序不敏感,若不显式提供位置信息,打乱 patch 顺序不会影响输出,这显然不符合图像的空间结构。ViT 采用可学习的一维绝对位置编码 \(\mathbf{E}_{\text{pos}} \in \mathbb{R}^{(N+1) \times d}\),直接加到 token 序列上。最终输入序列为

\[ \mathbf{z}_0 = \left[\mathbf{x}_{\text{cls}};\ \mathbf{x}_1 \mathbf{E};\ \mathbf{x}_2 \mathbf{E};\ \dots;\ \mathbf{x}_N \mathbf{E}\right] + \mathbf{E}_{\text{pos}} \]

其中 \(\mathbf{x}_i\) 是第 \(i\) 个 patch 展平后的向量。后续工作提出了多种位置编码改进,例如 Swin Transformer 的相对位置编码、RoPE 式的旋转位置编码、以及 SigLIP 的二维分解位置编码等,但 ViT 原始的加性可学习位置编码仍是最常见的基线。

2.2.5 Transformer 编码器的层间计算

Patch 序列经过位置编码后,进入堆叠的 Transformer 编码器层。每一层由两个子模块组成——多头自注意力(Multi-Head Self-Attention, MSA)与前馈网络(MLP)——且都采用残差连接与层归一化。第 \(l\) 层的计算规则为

\[ \mathbf{z}'_l = \mathrm{MSA}\big(\mathrm{LN}(\mathbf{z}_{l-1})\big) + \mathbf{z}_{l-1} \]
\[ \mathbf{z}_l = \mathrm{MLP}\big(\mathrm{LN}(\mathbf{z}'_l)\big) + \mathbf{z}'_l \]

多头自注意力的内部计算是 Transformer 的核心。设输入序列为 \(\mathbf{Z} \in \mathbb{R}^{(N+1) \times d}\),先通过三个投影矩阵得到查询、键、值

\[ \mathbf{Q} = \mathbf{Z} \mathbf{W}_Q, \quad \mathbf{K} = \mathbf{Z} \mathbf{W}_K, \quad \mathbf{V} = \mathbf{Z} \mathbf{W}_V \]

其中 \(\mathbf{W}_Q, \mathbf{W}_K, \mathbf{W}_V \in \mathbb{R}^{d \times d}\)。注意力权重通过缩放点积计算

\[ \mathrm{Attn}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \mathrm{softmax}\left(\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d_k}}\right) \mathbf{V} \]

\(d_k = d / h\) 是每个头的维度,\(h\) 是头数。多头的意义在于把 \(d\) 维空间切成 \(h\) 个子空间,每个子空间独立做注意力,再拼接并投影回 \(d\) 维。这允许模型在不同语义子空间中同时建模不同类型的 token 依赖。前馈网络是一个两层 MLP,中间维度通常为 \(4d\),激活函数为 GELU。

ViT-B/16 堆叠 12 层 Transformer,隐藏维 768,头数 12;ViT-L/14 堆叠 24 层,隐藏维 1024,头数 16。完整前向计算后,CLS token 的最终表示 \(\mathbf{z}_L[0]\) 作为图像嵌入输出。在 CLIP 中,这一嵌入再经过一个线性投影映射到共享语义空间(通常 512 维),与文本嵌入对齐。

2.2.6 非 CLS 路径与多模态场景

值得指出的是,CLS token 并非唯一的图像表示方式。在生成式多模态场景,例如 BLIP-2 与 LLaVA,视觉塔输出的全部 patch token(去掉 CLS 或保留 CLS)被整体送入后续的跨模态连接器或直接送入 LLM。这样做的理由是——CLS token 是全图语义的压缩,适合做分类与检索,但回答"图中第三个人穿什么颜色的衣服"这类细粒度问题需要 patch 级别的空间信息。LLaVA-1.5 直接把 576 个 patch token 通过一个两层 MLP 投影到 LLM 词嵌入空间,整体作为视觉 prompt 送入 LLM;BLIP-2 则用 Q-Former 把 patch token 压缩为 32 个 query token。这两种设计的共同点是保留空间细节,而不是用 CLS token 代表整图。这也是 OneRec 选择 miniCPM-V 的骨干逻辑——它继承的是 LLaVA 式的 patch 级接入范式,而非 CLIP 式的全图向量范式。

2.3 音频的数学表示与编码路径

2.3.1 原始波形的数学形式

音频信号在时域的数学表示是一维离散时间序列 \(x[n]\),其中 \(n\) 是采样点索引。采样率决定了每秒采集多少个点。人类语音处理通常使用 16 kHz 采样率,即每秒 16000 个点;高保真音乐使用 44.1 kHz 或 48 kHz。一段 10 秒的 16 kHz 语音包含 160000 个采样点,每个点通常用 16 位整数或 32 位浮点表示。

这一表示形式对 Transformer 极不友好。原因有二。首先,16 万 token 的序列长度远超 Transformer 的自注意力承受能力,其 \(O(L^2)\) 复杂度使得直接建模不可行。其次,单个采样点本身几乎不含语义信息——它只是某一瞬间的气压扰动数值,语义需要在数毫秒到数百毫秒的时间尺度上聚合才能显现。因此音频编码必须先做两件事——时频变换时间维度下采样

2.3.2 短时傅里叶变换与梅尔频谱

时频变换的经典工具是短时傅里叶变换(Short-Time Fourier Transform, STFT)。STFT 的核心思想是——将长时域信号切成短时窗,对每个窗内的信号做傅里叶变换,从而得到"时间—频率"二维表示。设窗函数为 \(w[n]\)(典型选择是 Hann 窗),窗长为 \(N_w\),跳步为 \(H\),则 STFT 定义为

\[ X[k, m] = \sum_{n=0}^{N_w - 1} x[n + mH]\, w[n]\, \exp\left(-j\frac{2\pi k n}{N_w}\right) \]

其中 \(m\) 是时间帧索引,\(k\) 是频率 bin 索引,\(k \in \{0, 1, \dots, N_w/2\}\)\(|X[k, m]|^2\) 称为功率谱,可视化为时间在横轴、频率在纵轴、强度用颜色表示的二维图,即频谱图。

对 16 kHz 语音,典型参数为窗长 25 ms(即 \(N_w = 400\) 个采样点)、跳步 10 ms(即 \(H = 160\))。这样一来,原本 1 秒内 16000 个采样点被压缩为 100 个时间帧,每帧包含若干频率 bin。时间维度的下采样因子达到 160 倍,这是音频编码高效性的第一来源。

直接使用功率谱仍不理想,因为傅里叶频率是线性分布的,而人耳对频率的感知是对数分布的——低频段的分辨率应当更高。梅尔频率刻度通过一个经验变换把线性频率映射到近似对数的梅尔频率

\[ m_{\text{mel}} = 2595 \log_{10}\left(1 + \frac{f}{700}\right) \]

梅尔滤波器组是在梅尔频率域上均匀分布的一组三角形带通滤波器,典型数量为 80 个,覆盖 0 Hz 到 8 kHz 的频段。将 STFT 功率谱经过梅尔滤波器组加权求和,再取对数,即可得到对数梅尔频谱(log-mel spectrogram),其形状为 \(T \times F\),其中 \(T\) 是时间帧数,\(F = 80\) 是梅尔 bin 数。对数梅尔频谱是 Whisper、AST、wav2vec 2.0 等主流模型的事实标准输入。

2.3.3 频谱作为图像:Audio Spectrogram Transformer

一旦音频被转换为对数梅尔频谱 \(\mathbf{S} \in \mathbb{R}^{T \times F}\),就可以将其视为一张单通道图像,从而直接套用 ViT 的 patch embedding 机制。这一思路被 Audio Spectrogram Transformer(AST, Gong 等, INTERSPEECH 2021)首次系统化。AST 将对数梅尔频谱切成 \(P_T \times P_F\) 的 patch(典型取 \(P_T = P_F = 16\)),每个 patch 展平并线性投影为 \(d\) 维 token,然后堆叠 Transformer 编码器层,结构与 ViT 完全一致。

以 10 秒语音为例,对数梅尔频谱尺寸约为 \(1000 \times 80\),切成 \(16 \times 16\) 的 patch 后得到约 \((1000/16) \times (80/16) = 62 \times 5 = 310\) 个 patch。每个 patch 被编码为 \(d = 768\) 维 token,经 12 层 Transformer 处理后输出音频嵌入。AST 在 AudioSet 分类任务上取得了超越所有 CNN 基线的表现,证明了"音频即图像"路线的可行性。这一思路的哲学意义在于——一旦把异构模态都压缩到二维特征图,Transformer 可以作为通用编码器适用于任何模态,这也是多模态架构走向统一的关键一步。

2.3.4 直接从波形学习:wav2vec 2.0 与 HuBERT

另一条路线绕开梅尔频谱,直接在原始波形上学习表示。Facebook AI 的 wav2vec 2.0(Baevski 等, NeurIPS 2020)是这条路线的标杆。它采用两段式结构——前端是一个卷积特征提取器,用 7 层步长卷积把 16 kHz 波形压缩到 50 Hz 的特征序列(即每 20 ms 一个特征向量),后端是一个 12 或 24 层的 Transformer 编码器,对这些特征进一步建模长程依赖。

wav2vec 2.0 的训练目标是自监督对比学习。具体做法是——将 Transformer 输入随机遮盖约一半时间步,要求模型在这些位置预测被遮盖片段的量化表示。量化器通过 Gumbel-Softmax 把连续特征映射到有限码本中最接近的离散单元,使得对比学习有清晰的正负样本。对比损失要求每个被遮盖位置的 Transformer 输出与对应真实量化单元的相似度高于同序列中其他量化单元。这一机制让模型在无标注语音上学到音素级别的表示。

HuBERT(Hsu 等, TASLP 2021)对 wav2vec 2.0 做了简化改进。它先通过 K-means 对 MFCC 或前轮训练的特征做聚类,得到伪标签,再让 Transformer 在被遮盖位置预测这些离散伪标签,任务从对比学习变为简单的分类,训练更稳定。HuBERT 被用作 SpeechLLM 与多模态对话系统的常见语音前端。

2.3.5 神经音频编解码器与离散音频 token

随着生成式多模态的兴起,出现了第三条路线——把音频直接量化为离散 token 序列,与文本 token 共用同一个 LLM 词表。代表工作是 Google 的 SoundStream(Zeghidour 等, TASLP 2022)与 Meta 的 EnCodec(Défossez 等, 2022)。它们采用残差向量量化(Residual Vector Quantization, RVQ)架构,与后面将要讨论的 RQ-VAE 同源——编码器把波形下采样到低帧率的连续表示,然后通过多层残差码本逐层量化。EnCodec 典型配置是 8 层码本、每层 1024 个中心,对 24 kHz 音频得到 75 Hz 的 token 流,压缩率可达 150 倍以上。

离散音频 token 的最大价值在于它让语音可以像文本一样被自回归生成。Google 的 AudioLM、Meta 的 MusicGen、OpenAI 的 Voice Engine 都建立在这一思路上。它也是多模态 LLM 吸收语音模态的主流接口——把音频转成 token 序列,与文本 token 交错送入 LLM,训练一个统一的多模态生成模型。

2.4 统一视角:模态编码的共同范式

纵观图像与音频两条编码路径,可以提炼出一个贯穿各模态的统一范式。任何连续信号的 Transformer 编码都遵循"切块—投影—位置化—堆叠"四步。切块是把连续信号离散化为有限单元——图像切 patch、音频切频谱帧或波形段。投影是把每个单元用线性变换映射到隐藏维度 \(d\)。位置化是显式注入空间或时间位置信息,使 Transformer 能感知顺序。堆叠是让多层自注意力对单元间关系做递归建模。

这一范式的普适性有两个重要推论。其一,不同模态的编码器在结构上高度同构,差异主要在前端切块方式。ViT、AST 的后端 Transformer 甚至可以共享权重。其二,一旦把各模态编码为等长的隐藏维 \(d\) 的 token 序列,后续融合步骤就不再关心模态差异——无论是 early fusion 的拼接后联合自注意力,还是 late fusion 的对比学习,或是 hybrid fusion 的 Q-Former 交叉注意力,都在操作同一种数据结构。这也是为何 Q-Former 可以同时兼容图像、视频、音频等多种输入——只要前端编码器把它们翻译为 token 序列,后端处理就是统一的。


第 3 章 关键概念辨析

本章把几个在多模态学习中最容易混淆、也是最关键的辨析点集中整理,为进入第二部分的大模型架构做铺垫。

3.1 模态对齐:是否只围绕文本进行?

主流做法确实是以文本为中心的星形对齐——图像对文本、音频对文本、视频对文本,各自独立训练。文本作为枢纽(anchor modality),其他模态通过与文本的对比学习被间接对齐。一旦图像和音频都对齐到了文本空间,它们之间也就获得了某种程度的传递性对齐,不需要再单独训练图像-音频配对。这是一种工程上的务实选择——因为图文对、音文对的数据容易从互联网大规模采集(图片的 alt 文本、视频的字幕),而图像-音频这种直接配对的数据稀缺。

但"不同模态之间的直接学习"也确实存在,代表工作是 Meta 的 ImageBind(CVPR 2023)。它的做法是——仍然以图像为枢纽,但同时训练图像对文本、图像对音频、图像对深度图、图像对热成像、图像对 IMU 共六种配对。训练完后,虽然从未直接训练过"音频对文本",但通过图像枢纽的传递性,音频与文本也被隐式对齐了。这证明了一个重要直觉——只要所有模态都对齐到同一个枢纽,它们之间会自然涌现对齐。所以现代多模态工作普遍不再单独训两两配对,而是统一锚定到一个枢纽模态(通常是文本或图像)。

3.2 "一件事物是否同时拥有多个模态"

这个问题在不同场景下有不同答案。

纯输入处理场景(用户只发一段语音 + 一张图片),主流做法确实是把语音先 ASR 转成文字,再让 LLM 处理文字 + 图片。OneRec 对短视频音频的处理也是这个思路——音频走 ASR 变文本,不单独做音频编码。

但对需要保留音频语义的场景(比如识别说话人情绪、背景音乐风格、语音语调),就需要直接把音频编码成音频 token 送进 LLM,而不是先转文字。代表工作是 Qwen-Audio、GPT-4o。GPT-4o 是目前最激进的实践,它把语音的音调、情绪、节奏等副语言信息全部保留在音频 token 里,直接与文本 token 混合输入 LLM,这样模型才能回答"这个人是不是在生气"这种 ASR 文本会丢失的问题。

所以"基本都围绕文字"是 2023 年的事实,2024 年之后已经在向"多模态 token 直接混合输入"演进。但对推荐场景,ASR 转文本仍然是成本最低、信息损失可接受的主流方案。

3.3 对齐(Alignment)与融合(Fusion)不是同一件事

这是整个多模态讨论中最关键的一组概念辨析。

对齐的含义是——同一件事物的图像向量与文本向量在共享空间中靠近。 CLIP 训练完成后,一张猫的图片产生的向量 \(\mathbf{v}_{\text{image}}\) 与文本 "a photo of a cat" 产生的向量 \(\mathbf{v}_{\text{text}}\) 余弦相似度很高。这是一种点对点的匹配关系

融合的含义是——图像的局部细节与文本的局部词语之间发生交互,产生一个整体联合表示。 比如用户问"图中左边那只猫的颜色",模型需要让"左边"这个词去 attend 图像的左半区域、让"颜色"这个词去 attend 猫的毛色区域。这种细粒度的跨模态交互,是"对齐"做不到的。

CLIP 编码器产出的图像向量是一个全图级别的单一向量——它把整张图压缩成一个点,与文本的全句向量对齐。这个向量里不再保留"左边那只猫是什么颜色"这种空间细节。所以把 CLIP 图像向量和 CLIP 文本向量拼接起来,得到的只是"两个全局描述的并置",模型无法在图像局部与文本局部之间做推理。

LLaVA 那套"图像编码 + MLP 投影 + 拼接文本 token 送给 LLM"的路线为什么能跑通? 关键是 LLaVA 拼接的不是 CLIP 的全图向量,而是 CLIP 图像编码器的中间层 patch token。CLIP 的 ViT-L/14 在最后一层会输出 \((576 + 1) \times 1024\) 的表示——576 个 patch token 加 1 个 CLS token。LLaVA 丢掉 CLS token、只保留 576 个 patch token,再经 MLP 投影后拼接到文本 token 前面。这 576 个 patch token 每一个对应图像的一小块区域,保留了空间细节。LLM 在自注意力里可以让文本 token "左边" 去 attend 图像左侧的 patch、让 "颜色" 去 attend 猫的 patch——融合就发生在 LLM 内部的自注意力里,而不是在编码器里

因此,"拼接已对齐的编码器输出"这个思路本身没错,但必须满足两个条件

  • 条件一:拼接的必须是 patch 级 token 而非全图池化向量。若拿的是 CLS token(一个 1024 维向量)和文本编码器输出的句向量拼接,得到的就是"两个全局描述的并置",信息损失严重。
  • 条件二:拼接之后必须有一个下游模块让它们真正交互(最常见的就是把拼好的混合 token 序列送进一个 LLM,让 LLM 的 self-attention 去做跨模态交互)。如果拼接完就直接做下游任务,那就是纯粹的 late fusion,模态间没有细粒度交互,性能会差。

精确描述应当是:用预训练对齐过的编码器分别编码 → 保留 patch/token 级细节 → 拼接 → 送进 LLM 让 self-attention 完成真正的融合。这就是 LLaVA 路线,也是 miniCPM-V 内部的工作流程。

3.4 可学习 query 的本质

普通自注意力里,Query 来自输入序列本身(\(\mathbf{Q} = \mathbf{X} \mathbf{W}_Q\)),所以 Query 数量等于输入序列长度;Q-Former 把 Query 的来源从"输入投影"改成了"独立的可学习参数"(\(\mathbf{Q} = \mathbf{q} \mathbf{W}_Q\),其中 \(\mathbf{q}\) 本身是模型参数的一部分,不依赖输入),所以 Query 数量完全解耦于输入长度——由设计者指定(BLIP-2 的 32,OneRec 的 4)。这样输入无论多长,输出的 token 数是固定的,实现了变长到定长的压缩。

这个思想还可以进一步延伸——每个可学习 query 可以理解为一个"视角"或"探针",它通过反向传播被训练成"擅长捕捉某种特定语义"的接受器。比如 BLIP-2 训练完后,32 个 query 中可能有几个专门关注颜色,有几个关注物体位置,有几个关注全局主题。这种自动学出来的"视角分工"是 MLP 投影做不到的。

3.5 Q-Former 到底在做什么:压缩还是交互?

两者都做。Q-Former 在 MLLM 架构里确实主要承担压缩职责(把 576 个 patch 压到 32 个 query 输出),但它内部的交叉注意力机制本身就包含了跨模态交互。每个可学习 query 在 cross-attention 里遍历所有视觉 patch,相当于"用 K 个探针去主动读取图像的 K 个不同侧面"。这个过程既是压缩也是交互——压缩是结果,交互是手段

换句话说——MLP 投影路线把"交互"完全留给下游的 LLM;Q-Former 路线则把一部分"交互"提前到了连接器里(通过 query 与 patch 的 cross-attention),剩下的交互再交给 LLM。所以两者都有交互,只是交互发生的位置不同。


第二部分 多模态大模型框架

第 4 章 总体架构:四段式流水线

4.1 先纠正一个认知误区:CLIP 的输出不是"靠近"

在进入架构讲解之前,先澄清关于 CLIP 的一个常见直觉——"图像和文本的张量会比较靠近"。这个描述方向是对的,但不够精确,容易导致后续理解偏差。

CLIP 训练完之后的产物是两个独立的编码器:一个图像编码器 \(f_I: \text{图像} \to \mathbb{R}^d\),一个文本编码器 \(f_T: \text{文本} \to \mathbb{R}^d\)。训练过程让这两个编码器的输出落在同一个共享向量空间里,且满足——配对的图文向量余弦相似度高,不配对的余弦相似度低。所以"靠近"这个词要更精确地理解为:在一个共同的 \(d\) 维空间内,语义相关的图文向量夹角小

这里有一个重要推论:CLIP 的图像编码器输出的向量,本质上已经被"语言化"了。它不是一个纯粹的视觉特征,而是一个"已经对齐到文本描述空间"的特征。正是这个性质,让 CLIP 的图像编码器成为后续所有 MLLM 的首选视觉塔——因为它输出的特征对 LLM 来说最容易"看懂"。如果换成 ImageNet 预训练的 ResNet,它的特征是为分类优化的,没有与语言对齐,直接塞给 LLM 效果会差很多。

4.2 四段式流水线的总体解读

标准 MLLM 的工作流如下:输入端可以是图像、音频、视频中的任意一种或多种非文本模态,加上文本。非文本模态走一条处理路径——模态编码器(Modality Encoder)→ 连接器(Connector)→ 喂给 LLM;文本直接经过词嵌入后喂给 LLM。LLM 在混合输入上做自回归生成,默认输出是文本。如果任务需要生成图像、音频、视频等其他模态,LLM 后面再挂一个可选的生成器(Generator)

这个架构的精髓在于一个关键词——把所有非文本模态"翻译成 LLM 词嵌入空间里的 token",然后让 LLM 当作普通 token 处理。LLM 的计算逻辑完全不变,它只知道自己在处理一串 token 序列,至于这些 token 来自文本还是图像,它并不关心。整个 MLLM 的工程难点,就在于这个"翻译"——也就是三种连接器的设计。

4.3 Modality Encoder(模态编码器)

这一模块的职责是把原始非文本信号变成一个 token 序列的向量表示。

  • 对图像:输入是像素矩阵 \(\mathbb{R}^{H \times W \times 3}\),输出是一个形状为 \(N \times d_v\) 的特征矩阵,\(N\) 是 patch 数,\(d_v\) 是视觉隐藏维。
  • 对音频:输入是波形或对数梅尔频谱,输出也是 \(N \times d_v\) 形状的时间-频率 token 序列。
  • 对视频:输入是多帧图像,输出是 \(T \times N \times d_v\)(时空 token)。

这一层的原理在第 2 章已经讲透。

关键工程事实是这一层几乎不从头训练。几乎所有 MLLM 都直接用开源的预训练编码器——视觉塔绝大多数选 CLIP 的 ViT-L/14 或其增强版(SigLIP、EVA-CLIP、InternViT),音频塔选 Whisper encoder、HuBERT、CLAP,视频塔选在 CLIP 基础上加时序建模的变体。理由就是——这些编码器已经预训练到了与文本对齐的状态,是 MLLM 最省事的起点。训练阶段通常冻结这个编码器,以节省显存与计算,同时防止它的语言对齐能力被下游任务破坏。


第 5 章 Connector(连接器)——整张架构的心脏

这是整张架构最核心的部分。三种主流连接器要解决的共同问题是——模态编码器输出的特征维度与 LLM 词嵌入的维度不匹配,直接塞进 LLM 它也不认识。连接器就是那个"翻译官"。但三类连接器在"如何翻译"这件事上有本质区别。

5.1 MLP 投影式连接器(Projection-based)

这是最简单、最直接、也是目前最主流的方案,LLaVA 系列从 1.0 到 1.5 都用它。视觉 token(\(N \times d_v\))经过一个 MLP(通常是两层,中间一个 GELU 激活),变成 \(N \times d_l\)\(d_l\) 是 LLM 的隐藏维。数学上就是一个线性变换加激活:

\[ \mathbf{z}_{\text{visual}} = \mathbf{W}_2 \cdot \text{GELU}(\mathbf{W}_1 \cdot \mathbf{h}_{\text{visual}} + \mathbf{b}_1) + \mathbf{b}_2 \]

其中 \(\mathbf{W}_1 \in \mathbb{R}^{d_v \times d_h}\)\(\mathbf{W}_2 \in \mathbb{R}^{d_h \times d_l}\)。以 LLaVA-1.5 为例,\(d_v = 1024\)(CLIP-L/14),\(d_l = 4096\)(Vicuna-7B),中间维度 \(d_h\) 也取 4096。

关键点:token 数量完全不变。视觉编码器输出 576 个 token,经过 MLP 后还是 576 个 token,只是每个 token 的维度被拉到了 LLM 的词嵌入维度。这些变换后的 token 会被直接拼接到文本 token 的前面,形成一条混合序列喂给 LLM。

用一个具体例子说穿这个过程。假设用户问"图中是什么动物?"——LLM 的实际输入是下面这样一条 token 序列:

[视觉 token × 576][用户] ["图"][中][是][什][么][动][物][?][助手]

对 LLM 而言,前 576 个位置是"视觉 token",与后面的文本 token 在数据结构上完全一样,都是 4096 维的向量。LLM 的多头自注意力机制会让文本 token(比如"动物")去与所有 576 个视觉 token 做注意力交互,从而"看到"图像内容,并自回归生成回答。

这也回答了一个直觉疑问——已经训练好的图像编码器产出的张量,是以"被当成特殊 token"的方式被 LLM 利用的。它不是通过"靠近某个文本张量"来发挥作用,而是作为序列中的一批额外 token,让 LLM 在注意力机制里主动去读取。

MLP 投影的优点是极简——参数少、训练快、效果惊人地好。LLaVA-1.5 用一个两层 MLP 在多个 VQA 榜单上打爆了参数量远大于它的方案,证明了只要视觉编码器本身质量高,连接器不需要复杂结构。缺点是 token 数不会被压缩,高分辨率图像会产生几千个视觉 token,拖慢 LLM 推理。

5.2 Q-Former 式连接器(Query-based)

Q-Former 正是 OneRec 和 BLIP-2 采用的那一类。它与 MLP 投影的本质区别是引入了一组可学习的 query token,作为"信息探针"

工作原理如下。视觉编码器输出的 \(N\) 个 token 被作为 Key 和 Value,而一组固定数量 \(K\) 个可学习 query 作为 Query,三者进入一个交叉注意力层:

\[ \mathbf{Q} = \mathbf{q} \mathbf{W}_Q, \quad \mathbf{K} = \mathbf{h}_{\text{visual}} \mathbf{W}_K, \quad \mathbf{V} = \mathbf{h}_{\text{visual}} \mathbf{W}_V \]
\[ \mathbf{z}_{\text{out}} = \text{softmax}\left(\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d}}\right)\mathbf{V} \]

输出形状是 \(K \times d_l\),也就是无论输入多少个视觉 token,输出都是固定 \(K\) 个 token。BLIP-2 取 \(K = 32\),OneRec 取 \(K = 4\)。这就是"Perceiver Resampler 谱系"的核心机制——用固定数量的可学习 query,反复去视觉特征中"捞信息",实现任意长度输入到固定长度输出的压缩。

Q-Former 式连接器的价值有两点。第一是 token 数大幅压缩,从几百压到几十甚至几个,大大降低 LLM 推理成本。第二是可学习的 query 本身带有归纳偏置——每个 query 可以学到去"关注"图像的不同语义方面(颜色、物体、空间关系等),这比 MLP 那种"逐 token 独立投影"更具表达力。代价是——参数多了,训练难度也更高,BLIP-2 需要 ITC+ITM+ITG 三任务配合才能训好 Q-Former。

OneRec 采用 Q-Former 的理由也很清楚——推荐场景要把物品压缩成几个紧凑向量以便量化,MLP 投影保持 token 数不变不符合这个需求,Q-Former 的"固定长度输出"特性刚好匹配。

5.3 Fusion-based 连接器

第三类连接器与前两类在设计哲学上有根本差异。前两类连接器把视觉信号处理完之后,把结果作为 token 拼到 LLM 的输入里;而这一类连接器的视觉信号根本没进 LLM 的输入层

视觉 token 和文本 token 分别产生各自的 Q、K、V,然后送进 LLM 内部的多头注意力层。具体做法是——在 LLM 的每一层(或某些层)内部,插入一个额外的交叉注意力模块,让文本 token 作为 Query,去 attend 到视觉 token 作为 Key、Value 的特征上:

\[ \mathbf{h}_{\text{text}}^{(l+1)} = \mathbf{h}_{\text{text}}^{(l)} + \text{CrossAttn}\big(\mathbf{h}_{\text{text}}^{(l)}, \mathbf{h}_{\text{visual}}, \mathbf{h}_{\text{visual}}\big) \]

这就是 Flamingo 的经典做法,它在冻结的 LLM 各层之间穿插了"Gated Cross-Attention"模块。视觉信息不是作为输入 token 进入 LLM,而是在 LLM 的内部计算过程中通过注意力机制被"注入"进来。

这种设计的好处是视觉信息可以在 LLM 的每一层都参与交互,融合粒度更细。缺点是对 LLM 本身的结构有侵入性——无法用一个现成的 LLM 直接推理,必须在每一层都插入新的参数,训练也更复杂。这也是为什么 LLaVA 路线(简单的 MLP 拼接)在 2023-2024 年全面超越 Flamingo 路线成为主流——工程简洁性战胜了架构精致性

5.4 三种连接器的定位总结

MLLM 综述的经典表述是——前两类在 LLM 的输入层做"token 级融合"(把视觉当成一种 token 拼进去),第三类在 LLM 的中间层做"特征级融合"(视觉信号直接参与每层的注意力计算)。

连接器类型 代表工作 视觉 token 进入位置 输出 token 数 优点 缺点
MLP 投影 LLaVA, LLaVA-1.5 LLM 输入层 与输入 patch 数相同(如 576) 极简、效果好 不压缩,推理慢
Q-Former BLIP-2, OneRec, miniCPM-V LLM 输入层 固定 \(K\)(32 或 4) 压缩、query 带归纳偏置 训练复杂
Fusion-based Flamingo LLM 中间层 视觉不作为输入 token 每层细粒度融合 对 LLM 结构侵入性强

第 6 章 LLM 主干与生成器

6.1 LLM 主干:它到底做了什么

LLM 在 MLLM 中的角色没有任何变化,它还是一个普通的自回归语言模型。它接收一串 token 序列,按顺序逐个预测下一个 token,直到生成结束符。它不关心序列中某些 token 是视觉来的、某些是文本来的——对它而言都是 4096 维的向量。

真正关键的一点是——LLM 的词嵌入层定义了一个语义空间,MLLM 的全部设计努力都是为了把视觉信号"翻译"到这个空间里。词嵌入层是 LLM 在语言预训练阶段学到的产物,它把每个单词映射到一个 4096 维的向量,空间里的几何关系编码了词与词之间的语义关系(国王—男人+女人=皇后那种)。当视觉 token 被 MLP 或 Q-Former 投射到这个 4096 维空间后,它实际上是在说——"这个视觉特征,如果要用词嵌入空间的语言来表达的话,它落在这个位置"。

LLM 对视觉 token 做自注意力时,发生的事情可以形象地理解为——LLM 把视觉 token "读"成了一串"没写出来的词"。它用处理语言的方式处理视觉信号,借助预训练积累的语言理解能力去对图像内容做推理。这就是 MLLM 能从 LLM 那里"继承"智能的根本机制。

6.2 Generator(生成器)——可选的输出模态扩展

默认的 MLLM 只能生成文本——LLM 自回归解码的产物就是一串文本 token。如果任务需要生成其他模态(图像、音频、视频),就要在 LLM 后面再挂一个生成器。

典型做法有两种。第一种是让 LLM 直接输出模态 token——把图像离散化成 VQ-VAE 或 RQ-VAE 的视觉 token(比如 8192 词表里的索引),让 LLM 把这些视觉 token 当作自己词表的扩展来预测,生成后再用 VQ-VAE 解码器还原为像素。代表工作是 Chameleon、SEED、Emu3。第二种是让 LLM 输出条件信号,驱动下游的扩散模型——LLM 生成一个条件向量,送进 Stable Diffusion 这类扩散模型生成图像。这种生成器路线更适合高保真图像生成。

对推荐场景而言,生成器这部分基本用不到。OneRec 所做的"生成 Semantic ID"其实走的是第一种思路的变体——它让 Transformer 解码器输出的"模态 token"就是 Semantic ID,每个 token 对应一个物品语义码本的索引。所以 OneRec 的整体架构可以粗略地看成"简化版 MLLM"——去掉视觉部分的高分辨率细节,把物品的多模态特征 Q-Former 压缩后交给一个解码器(类似 LLM)生成 Semantic ID 序列(类似 LLM 生成的 token 序列)。


第 7 章 两阶段训练范式

MLLM 的主流训练做法是两阶段训练,紧扣"如何把视觉特征对齐到 LLM 词嵌入空间"这一核心逻辑。

第一阶段:特征对齐预训练。冻结视觉编码器和 LLM,只训连接器。目的是让连接器学会把视觉特征投到 LLM 的词嵌入空间里,使得视觉 token 对 LLM "可读"。训练数据通常是大规模图文对(CC3M、LAION),任务是给定图像生成描述。

第二阶段:视觉指令微调。解冻 LLM(连接器也一起训),在高质量的多模态对话数据上微调,教会模型根据视觉信号遵循指令。视觉编码器一般仍保持冻结。

这个训练范式的精髓是——LLM 的语言能力在语言预训练阶段已经学会了,视觉编码器的视觉感知能力在 CLIP 预训练阶段已经学会了,MLLM 训练只需要把这两样东西"粘合"起来。连接器是粘合剂,视觉指令微调是让粘合过的模型适应真实任务。

7.1 MLLM 架构的三点认知闭环

第一Modality Encoder → Connector → LLM 这条主干是 MLLM 的"骨",所有工作无论多花哨都在这条骨上做文章。连接器的三种类型(MLP、Q-Former、Cross-Attn Fusion)只是填充这条骨的不同"肉"。

第二这套架构的成功依赖两个预训练组件的"免费午餐"——CLIP 式视觉编码器和通用 LLM。MLLM 的训练成本之所以远低于端到端视觉-语言模型(如 Chameleon),是因为它把两个预训练好的模块粘起来,只训中间的连接器和少量微调。

第三这套架构是高度可移植的。推荐场景只是在"连接器的训练目标"这一位置替换了 MLLM 的"图文对齐"为"协同+内容联合对齐",主干结构完全不变。这解释了为什么 OneRec 能这么快把 MLLM 思路工业化落地——技术栈大半都是现成的。


第三部分 多模态在推荐算法的应用——以 OneRec 为主线

本部分以快手 OneRec(arXiv 2502.18965 / 2506.13695)为纵轴,以 TIGER、LC-Rec、LETTER、COBRA、EAGER、MMGRec、HSTU、HLLM、NoteLLM、MTGR 为横轴,完整还原生成式推荐中 Semantic Tokenizer 的原理、工程实现与权衡。核心认知有三:第一,仅靠内容嵌入(TIGER 路线)得到的语义 ID 在工业大规模场景下会"语义相近但行为不相关",必须显式注入协同信号;第二,把协同信号注入连续表示的最稳健做法是"对比对齐 + 生成正则"——前者拉近行为相似物品,后者(Caption Loss)防止表示坍缩到纯协同信号而丢掉可解释性;第三,在量化层,RQ-Kmeans 凭借训练稳定性已实质替代 RQ-VAE 成为工业首选

第 8 章 生成式推荐中 Semantic Tokenizer 的定位与核心挑战

8.1 从"检索+排序"到"生成式一体化"

传统推荐系统采用多级级联:召回(ANN / Two-Tower)→ 粗排 → 精排 → 重排,每一级都学习自己的 item embedding。生成式推荐从 TIGER(Rajput et al., NeurIPS 2023, arXiv 2305.05065)开始,主张把整个流程重构为"输入用户序列 → 自回归解码下一个物品的 Semantic ID"的单一 seq2seq 任务。OneRec(Deng et al., 2025)将此范式推进到"同时替代召回与精排"的一体化生成器,并在快手主场景取得 App Stay Time +1.6% 的线上收益。

这种范式迁移的基础是\(10^9\) 量级的原子 item ID 编码为 \(10^2\)\(10^3\) 量级的共享子词表上的短序列。OneRec 采用 3 层码本、每层 8192 个中心,理论可表达 \(8192^3 \approx 5.5 \times 10^{11}\) 个不同 ID,完全覆盖快手十亿级短视频库,且通过前缀共享实现相似物品天然聚类。

8.2 Semantic Tokenizer 要同时满足的四个约束

  • 语义表达力:要求嵌入能区分内容差异,决定了为何必须引入多模态大模型。
  • 协同一致性:要求行为相近物品在嵌入空间邻近,决定了为何要有 I2I 对比损失。
  • 可量化性:要求嵌入分布均匀且残差可快速收敛,决定了 Q-Former 的压缩与 RMSNorm 的选型。
  • 稳定性:要求新旧物品的 ID 不在模型迭代中频繁漂移——这是工业场景特有、学术论文较少涉及的隐性约束。

OneRec 的设计正是在这四个约束之间做权衡,这也是它与 TIGER、LC-Rec 等学术工作最显著的差异。

8.3 OneRec 三段式流水线总览

生成式推荐的核心是把亿级原始物品压缩进一张"语义词表",然后让一个自回归解码器像说话那样逐 token 生成候选 ID。 这张词表的构造过程就是 Semantic Tokenizer。OneRec 将该过程收敛为三段式流水线:

① 多模态独立编码 → ② Q-Former 压缩 → ③ 残差量化(RQ-Kmeans)

并在第二段与第三段之间插入协同信号对齐,以打通"内容语义"与"行为语义"两条脉络。OneRec 的关键技术选择——miniCPM-V-8B 作为多模态骨干、4 个可学习 query 的 Q-Former、Swing 作为 I2I 正样本构造器、Caption 生成作为正则、抛弃 RQ-VAE 改用 RQ-Kmeans——代表了 2025–2026 年工业级生成式推荐的共识解法。

后续章节将沿两条轴组织:纵向(第 9、10 章)逐步拆解 OneRec Stage 1 与 Stage 2 的全部公式与工程实现;横向(第 11、12、13 章)将 OneRec 的每一个技术选择放到业界坐标系里对比。


第 9 章 OneRec Stage 1:多模态语义理解

9.1 输入构造:十三类字段并行喂入多模态大模型

OneRec 对每一条视频构造一个"多模态 bundle",包含四类文本字段与两类视觉字段:caption(视频标题)、tag(作者打的话题标签)、ASR(语音转写)、OCR(画面内嵌文字识别),以及封面图一张 + 按均匀时间戳采样的 5 帧。这与电商场景典型的"标题 + 主图 + 属性"构造(见第 13 章)在信息粒度上显著不同:短视频的信息是时序动态的,而电商商品是静态多角度的。

选择 miniCPM-V-8B(Hu et al., 2024)作为骨干基于三个理由。其一,miniCPM-V 是一个原生支持多图输入的 VLM,可以直接吃 6 张图(封面 + 5 帧)+ 长文本,不需要逐帧单独编码再拼接;其二,8B 规模在推理成本与表达力之间达到平衡——13B 以上会使 tokenizer 离线训练成本不可接受;其三,miniCPM-V 的输出原生与 LLaMA 系词表对齐,便于下游 LLaMA3 解码器(Caption Loss 部分)复用。原文未显式声明该骨干是否冻结——这是论文一个需要重点注意的未明示点。从二次解读推测,工业实践通常保持骨干权重不变、仅训练 Q-Former 和投影头,以避免 8B 模型反向传播带来的显存爆炸。

9.2 骨干输出的形状:为什么是 1280 × 512

经 miniCPM-V-8B 处理后,每条视频得到表示矩阵 \(\mathbf{M} \in \mathbb{R}^{N_M \times d_t}\),其中 \(N_M = 1280\)\(d_t = 512\)。1280 这个数字由三部分构成:图像 patch tokens(6 张图 × ≈180 patch)约占 1000 个,文本 tokens(caption+tag+ASR+OCR)约占 200–300 个。1280 远大于语言模型通常的 prompt 长度,若直接拿去做对比学习或 K-means,计算复杂度和显存都不可接受——这就为下一步的 Q-Former 压缩提供了动机。

关于这个 1280 × 512 的表示,第 3 章的"对齐 vs 融合"辨析已经回答了一个关键问题——miniCPM-V 不是把视觉和文本分别编码后直接拼接的双塔结构,它是一个完整的 VLM。它的内部流程是——SigLIP 视觉编码器产出 patch token → 一个 resampler(类似 Q-Former 的压缩模块)把 patch 压到固定数量的视觉 token → 投影到 LLM 词嵌入空间 → 与文本 token 拼接后送进它内部的 LLM。所以跨模态交互发生在 miniCPM-V 内部的那个 LLM 的 self-attention 里,输出的 \(1280 \times 512\) 表示已经是融合后的联合表示,不是两路独立特征。OneRec 把 miniCPM-V 当作一个"端到端多模态编码器"来使用,它的产出物是跨模态交互过的 token 序列。

9.3 Q-Former 的精确结构

OneRec 的 Q-Former 是一个极轻量的 Transformer 压缩器,关键参数如下:

参数 OneRec 取值 对照 BLIP-2(原始 Q-Former)
可学习 query 数 \(\tilde{N}_M\) 4 32
层数 \(N_c\) 4 12
隐藏维度 \(d_t\) 512 768
子模块 Cross-Attn + FFN + RMSNorm Cross-Attn + Self-Attn + FFN + LayerNorm

逐层计算规则为:

\[ \mathbf{Q}^{(i+1)} = \mathrm{CrossAttn}(\mathbf{Q}^{(i)}, \mathbf{M}, \mathbf{M}), \quad \mathbf{Q}^{(i+1)} = \mathrm{FFN}\big(\mathrm{RMSNorm}(\mathbf{Q}^{(i+1)})\big), \quad i \in \{1, \dots, N_c\} \]

最终输出 \(\tilde{\mathbf{M}} = \mathbf{Q}^{(N_c+1)} \in \mathbb{R}^{4 \times 512}\),即每条视频被压缩为 4 个 512 维向量。相对原始 1280 token,压缩比 320:1

为何 4 个 query 而不是 BLIP-2 的 32 个? 这是一个值得深思的设计决定。BLIP-2 的 Q-Former 输出要送进 LLM 做开放式视觉对话,需要保留丰富细节,32 query 必要;而 OneRec 的 Q-Former 输出仅用于两件事——I2I 对比损失与 RQ-Kmeans 聚类。这两个下游任务本质都在学习"物品级"身份向量,不需要像素级细节。将 query 数压到 4,等价于把每条视频表征在 4 个正交子空间里做信息瓶颈(information bottleneck),有利于后续 RQ-Kmeans 三层码本与 4 个子空间形成松耦合,减少冗余。将隐藏维从 768 降至 512 也是同样逻辑:\(d_t = 512\) 刚好对应 miniCPM-V 倒数第二层的投影维度,跨层传递无需再做维度变换。

RMSNorm 替代 LayerNorm 是 2023 年后 LLaMA 系工作的标配,其去掉均值中心化、只做均方根归一的设计,已被反复验证比 LayerNorm 在大模型训练中更稳定,且计算量降低约 30%。OneRec 作为工业落地项目,沿用这一选择完全合理。

9.4 Q-Former 作为压缩器的思想根源:Perceiver Resampler 谱系

Q-Former 并非 BLIP-2 首创,而是 Perceiver / Perceiver IO(DeepMind, ICML 2021)→ Flamingo Perceiver Resampler(NeurIPS 2022)→ BLIP-2 Q-Former(ICML 2023) 这一脉的变体。核心思想是"用固定数量的可学习 query 去反复 cross-attend 到可变长度的输入特征,从而产生固定长度的输出",绕开了 Transformer self-attention 对序列长度 \(O(L^2)\) 复杂度的死锁。Flamingo 用 64 个 query、BLIP-2 用 32、OneRec 用 4,体现了随着下游任务从"开放多模态对话"退化到"单一身份识别",query 数可大幅缩减的规律。

9.5 Q-Former 在 Stage 1 内部是否有独立训练目标?

这是论文中一个容易被忽略的细节。OneRec Tech Report 中,Q-Former 没有像 BLIP-2 那样的 ITC/ITM/ITG 三任务表示学习阶段;它是与 Stage 2 的协同对齐任务联合训练的,即 Q-Former 参数由 \(\mathcal{L}_{I2I} + \mathcal{L}_{caption}\) 这两个下游损失反向传播。这意味着 OneRec 并不追求"每个 query 各捕捉不同模态"的语义解耦,而是直接让 4 个 query 被协同信号与内容生成联合塑造。这是 OneRec 与 BLIP-2 在设计哲学上的根本差异——前者是端到端任务驱动,后者是分阶段自监督。


第 10 章 OneRec Stage 2:协同对齐与 Semantic ID 量化

10.1 为什么必须对齐协同信号——TIGER 路线的"语义相近但行为不相关"陷阱

TIGER 与 LC-Rec 的共同做法是直接用 Sentence-T5 或 LLaMA 得到内容嵌入,然后 RQ-VAE 量化。这种做法在学术数据集(Amazon Beauty/Toys)上可获得 Recall@5 相对 SASRec +29% 的提升,但在工业场景会暴露两个病症:其一,"语义相近但行为不相关"——两条封面图都是"白底运动鞋"的视频,其内容嵌入极为接近,但用户行为可能分化极大(一条是 Nike 新款广告,一条是二手处理),TIGER 会把它们分到同一 Semantic ID 前缀,召回质量下降;其二,"行为相关但语义疏离"——用户连续看的两条视频(如"烹饪教程"与"餐厅探店")内容嵌入差异大,但属于同一兴趣簇,TIGER 无法建立联系。

OneRec Tech Report §4.4 中明确引述了这一判断:"prior solutions generate semantic IDs exclusively from context features, neglecting collaborative signals and yielding suboptimal reconstruction quality"。这是 OneRec 引入 \(\mathcal{L}_{I2I}\) 的根本动机。

10.2 视频对 \(\mathcal{D}_{pair}\) 的构造:Swing + U2I 双路召回

OneRec 用两条独立的召回路径生成训练对 \(\mathcal{D}_{pair}\)

路径一:Item-to-Item via Swing similarity。Swing(Yang et al., 2020)是阿里巴巴在 ItemCF 基础上提出的去噪相似度,公式为:

\[ \mathrm{score}(i, j) = \sum_{u \in U_i \cap U_j}\ \sum_{v \in U_i \cap U_j,\ v\neq u} \frac{1}{\alpha + |I_u \cap I_v|} \]

其核心洞察是:对每一对"共同点击过 \(i\)\(j\) 的用户 \((u, v)\)",用他们共同点击物品数的倒数作为权重。共点物品多的用户对(即活跃、什么都点的"热门用户对")权重低,反而稀疏共点的用户对提供更可靠的相关信号。这比传统 ItemCF 的 Jaccard 相似度更能抵抗热门用户"搭便车效应"。

路径二:User-to-Item retrieval。对每个活跃用户,取其当前正向点击的 target item,与该用户最近正向历史中最协同相似的 item 组成一对。这条路径捕捉的是"同一用户兴趣下的物品对",与 Swing 的"群体共现"形成互补。

两路召回的 item pair 合并入 \(\mathcal{D}_{pair}\),构造 mini-batch。相较 TIGER/LC-Rec 仅用内容或仅用序列邻近,OneRec 的双路构造显著提升了正样本多样性

10.3 \(\mathcal{L}_{I2I}\):对称 InfoNCE 对比损失

核心损失为:

\[ \mathcal{L}_{I2I} = -\frac{1}{|\mathcal{D}_{pair}|}\sum_{(i,j)\in\mathcal{D}_{pair}} \log \frac{\exp\big(\mathrm{sim}(\tilde{M}_i,\tilde{M}_j)/\tau\big)}{\sum_{(i',j')\in\mathcal{D}_{pair}}\exp\big(\mathrm{sim}(\tilde{M}_{i'},\tilde{M}_{j'})/\tau\big)} \]

几个工程要点: 1. 相似度 \(\mathrm{sim}(\cdot,\cdot)\) 论文未指定形式,按 CLIP/InfoNCE 惯例通常为 L2 归一化后的点积(即余弦)。 2. 温度 \(\tau\) 论文未给数值,参考 CLIP 的 0.07、SimCLR 的 0.1 与 MoCo 的 0.07 是合理推测范围。 3. 负样本策略采用 in-batch negatives——分母对整个 batch 内所有 pair 求和,没有额外的 queue 或 MoCo memory bank。 4. Batch size 论文未公开,但从 90 台 8-GPU 服务器的训练资源和对比学习的规模规律推断,至少在数千量级。

为何是"对 \(\in \mathcal{D}_{pair}\)"而非"对每个 anchor 枚举所有其他 item 作为负"?这是 CLIP 式 symmetric contrastive 的写法——正样本对 \((i, j)\) 的相似度在分子,所有其他对 \((i', j')\) 的相似度都在分母。这隐式假设了 "batch 内其他 pair 是负样本",比经典 triplet loss 的显式负采样更高效。

10.4 Caption 生成损失 \(\mathcal{L}_{caption}\):防止 collaborative collapse 的正则机制

若只有 \(\mathcal{L}_{I2I}\),会发生一个危险现象:Q-Former 学到把 \(\tilde{M}\) 退化为某种"行为簇索引"的低维嵌入,完全丢弃内容信息——这在对比学习文献中称为 representation collapse 或更具体的 collaborative collapse。极端情况下,所有被 Swing 判为相关的视频都被映射到同一点,对比损失达到最优但嵌入失去鉴别力。

OneRec 的解决方案借鉴 BLIP-2 的哲学:用生成任务作为正则。具体地,将 \(\tilde{M}\) 作为软提示(soft prompt)喂给 LLaMA3 解码器,预测视频原 caption 的逐 token 条件概率:

\[ \mathcal{L}_{caption\_gen} = -\sum_{k} \log P\big(t^{k+1}\ \big|\ \tilde{M},\ [t^1, t^2, \dots, t^k]\big) \]

这是标准的 next-token cross-entropy。原理是:caption 重建要求 \(\tilde{M}\) 中包含足够的内容信息(标题、场景、人物、动作),否则 LLaMA3 无法准确预测;这就强制 Q-Former 不能只编码协同信号。论文原文表述为"prevents hallucination … preserving content understanding capabilities"。

这一思想与 BLIP-2 Stage 1 的 ITG(Image-grounded Text Generation) 本质相同——Q-Former 必须能"讲清楚"输入是什么,才能获得有意义的表示。Caption Loss 在 OneRec 中的角色相当于"内容保真度锚点"LLaMA3 是否冻结论文未显式说明,但工程上通常冻结以防破坏其语言先验。

10.5 损失权重 \(\lambda\) 与消融结果

总损失形式上可写作:

\[ \mathcal{L}_{tokenizer} = \mathcal{L}_{I2I} + \lambda \cdot \mathcal{L}_{caption\_gen} \]

\(\lambda\) 的具体数值论文未披露。此外,OneRec Tech Report §4.4 的消融实验只比较 RQ-Kmeans 与 RQ-VAE,并未给出去掉 \(\mathcal{L}_{caption}\) 的对照数字——这是原论文一个实质性的缺失。研究者若要复现 OneRec,需自行扫 \(\lambda \in \{0.1, 0.5, 1.0, 5.0\}\) 并监控 representation collapse 指标(如嵌入方差、码本利用率)。

10.6 从 \(\tilde{M}\) 到 Semantic ID:三层残差 K-means

得到 \(\tilde{M} \in \mathbb{R}^{4 \times 512}\) 后,进入量化阶段。OneRec 采用 \(L_t = 3\) 层残差 K-means,每层码本大小 \(N_t = 8192\)(§4.4 主实验;§4.2 有 32K 的 scaling 研究)。残差量化的递推为:

\[ \begin{aligned} \mathbf{R}^{(1)} &= \{\tilde{M}_i\}, \\ \mathbf{C}^{(l)} &= \mathrm{KMeans}\big(\mathbf{R}^{(l)}, N_t\big), \\ s_i^{(l)} &= \arg\min_k\ \big\| \mathbf{R}_i^{(l)} - \mathbf{c}_k^{(l)} \big\|, \\ \mathbf{R}_i^{(l+1)} &= \mathbf{R}_i^{(l)} - \mathbf{c}_{s_i^{(l)}}^{(l)}. \end{aligned} \]

注意每层码本向量 \(\mathbf{c}_k^{(l)} \in \mathbb{R}^{4 \times 512}\),即作用在完整的 4-token \(\tilde{M}\) 上,而非每个 token 独立量化。这一点与 PQ 式"沿维度分片量化"有根本区别。

最终每条视频得到 3 个整数 \((s_i^{(1)}, s_i^{(2)}, s_i^{(3)})\),以特殊 token 包裹成 <|sid_begin|><s_a_{·}><s_b_{·}><s_c_{·}><|sid_end|> 的形式(见 OpenOneRec 报告),作为下游 encoder-decoder 的目标 token 序列。

10.7 Balanced K-means:避免"沙漏现象"的关键工程技巧

OneRec V1 附录 Alg. 1 给出 Balanced K-means:强制每个簇恰好分配 \(w = |V| / K\) 个 item,防止码本出现"少数中心吸附大量样本、多数中心吸附零样本"的 hourglass 坍缩(Kuai et al., 2024)。这是 OneRec 区别于通用 RQ-VAE 实现的一个重要工程增强——没有这一步,3 层 × 8192 的码本即使用 RQ-Kmeans 也会出现前缀严重不均,影响下游解码器学习的 token 分布。

10.8 RQ-Kmeans vs RQ-VAE 的量化对比

Tech Report §4.4 Table 11 给出了 3 层 × 8192 配置下的消融(三层 balanced K-means vs 三层 RQ-VAE):

指标 RQ-Kmeans 相对 RQ-VAE
重建损失 −25.18%(显著降低)
码本利用率(三层) 1.0000 / 1.0000 / 1.0000(RQ-VAE 第 2、3 层 < 1.0)
Token 熵提升(三层) +6.31% / +3.50% / +1.44%

RQ-VAE 的劣势来自随机初始化 + STE + commitment loss 的三重不稳定性。在深层残差量化中,随着层数加深,残差 \(\mathbf{R}^{(l)}\) 的范数指数衰减,RQ-VAE 的梯度信号越来越弱,更容易坍缩到少数码。RQ-Kmeans 直接在残差分布上做无梯度聚类,每层都能获得数据驱动的中心,天然规避这一问题。代价是 encoder(即 Q-Former 及其前的 miniCPM-V)不能与 codebook 联合端到端优化——但 OneRec 通过 Stage 2 的 \(\mathcal{L}_{I2I} + \mathcal{L}_{caption}\) 已经充分塑造了 encoder,联合优化带来的边际收益有限。

10.9 训练规模、GPU 与 ID 稳定性

OneRec Tech Report 没有单独列出 tokenizer 训练的 GPU 数与 token 数,但整体系统训练资源信息为:90 台服务器,每台 8 张旗舰级 GPU(约 720 GPU),NVLink 节点内通信 + 400 Gbps RDMA 节点间,每日处理 18 B 样本 / 54 B token,OneRec-0.935B 模型在约 100 B 样本后收敛,训练 MFU 23.7%。Tokenizer 训练属于这个大系统的前置离线阶段。

ID 稳定性是工业部署中比论文强调得更重要的问题。OneRec 采用两个手段: 1. 离线周期更新——tokenizer 不在线实时训练,而是以天/周为粒度重训并发布新码本。 2. Format reward 防止非法 ID——在 RL 阶段(ECPO)增加 format reward 约束,合法 token 率可提升到约 95%,解决 squeezing effect 导致的非法化。

对新物品(冷启动),新视频只需经过一次 miniCPM-V + Q-Former 前向即可获得 \(\tilde{M}\),再与冻结的码本做近邻查找即可得到 ID——这一过程的延迟在百毫秒级,可支持流式索引。


第 11 章 业界 Semantic Tokenizer 的技术谱系

11.1 十篇代表作的设计轴对比

论文 机构·年份 内容骨干 协同注入方式 量化方法 码本配置 冷启动
TIGER Google, NeurIPS'23 Sentence-T5 RQ-VAE 3–4 层×256 前缀共享自然支持
VQ-Rec WWW'23 BERT + 文本 负样本混合域 Product Quantization 单层多 subcodebook 跨域迁移
LC-Rec ICDE'24 LLaMA2-7B 对齐调优任务 RQ-VAE(均匀映射) 3 层×256 LLM 语义泛化
LETTER CIKM'24 T5 CF 对比正则(LightGCN/SASRec) RQ-VAE + 多重正则 4 层×256 多样性正则缓解
TokenRec 2024 LightGCN 蒸馏 Masked VQ K-way 面向未见用户/物品
LMIndexer ICML'24 T5 进阶训练 + 对比 端到端 跨任务迁移
EAGER KDD'24 双流 Transformer 行为流 + 语义流分离 两套 token 行为-语义双视图
MMGRec 2024 ViT + CLIP + Audio Graph RQ-VAE(融合 U-I 图) Graph RQ-VAE 3 层×64–256 多模态先验
COBRA Baidu, ICLR'25 Sparse-dense 级联 RQ-VAE + dense 向量 交替生成 BeamFusion
OneRec Kuaishou, 2025 miniCPM-V-8B Swing + U2I + Caption 正则 RQ-Kmeans 3 层×8 192 流式前向查表
HSTU/GR Meta, ICML'24 不做 Semantic ID,直接在 item ID 序列上做 依赖 scaling

11.2 五种典型路线的深层差异

路线一:纯内容嵌入(TIGER、LC-Rec)。假设"内容相近 → 行为相关",仅用文本 encoder + RQ-VAE。优点是简单、可在无行为数据的场景(如新平台冷启)工作;缺点是前述的"语义-行为错位"。这条路线更适合学术基准与 0→1 阶段。

路线二:内容 + 对比正则(LETTER、OneRec)。在 RQ-VAE/RQ-Kmeans 训练目标或 encoder 训练目标中加入"CF 嵌入对比项"。LETTER 直接让 RQ-VAE 量化的 item 在 SASRec 嵌入空间的邻域结构中保持邻近;OneRec 则让 Q-Former 输出的 \(\tilde{M}\) 在 Swing 图中邻近。这是目前工业最主流的路线

路线三:双塔/双流表征(EAGER、COBRA)。不把协同与语义塞进同一套 token,而是维护两套并行序列,通过共享 encoder + 解码器交替生成同时保留两种粒度。COBRA 的 BeamFusion 把 beam search 与 NN 检索融合,在 Baidu 200M DAU 上线上 +3.6%。这条路线的代价是架构复杂度高。

路线四:多模态图量化(MMGRec)。把用户-物品二部图与多模态特征一起塞进 RQ-VAE 的编码阶段(Graph RQ-VAE),让残差量化的每一层都带图结构信息。优势是单一量化器同时覆盖内容与协同;劣势是图扩散使得训练不稳定,目前主要在学术数据集验证。

路线五:放弃 Semantic ID,用原子 ID + scaling(HSTU)。Meta 的主张是——只要模型够大(1.5 T 参数)、行为序列够长、attention 够高效(HSTU 替代 softmax),原子 item ID 就够用,不需要语义压缩。HSTU 在公开基准上 NDCG 相对提升 65.8%,线上 A/B +12.4%,并展现出明确的 LLM 式 power-law scaling。这本质是另一条道路:Semantic Tokenizer 的价值在于"有限算力下的信息压缩",当算力充足到可以吃下原子 ID 时,它就不再必要。OneRec V2 的"Lazy Decoder-only + 8B 参数"路线,实际上正在向 HSTU 靠拢——但仍保留 Semantic ID,因为 tokenizer 仍是节省解码算力的关键。

11.3 OneRec 后续版本的演化——Tokenizer 稳定,主干激进

OneRec-V2(arXiv 2508.20900, 2025-08):主要创新在"Lazy Decoder-Only"架构——发现 V1 的 encoder-decoder 架构中 encoder 消耗 97.66% FLOPs,V2 将序列编码精简,总计算量降 94%,训练资源降 90%,模型规模 scale 到 8B。Semantic Tokenizer 本身未做改动,仍用 miniCPM-V-8B + Q-Former(4 query) + RQ-Kmeans(3×8192)。线上 A/B:快手 App Stay Time +0.467%、快手极速版 +0.741%、互动指标 +9.6%–+29.2%,但冷启视频曝光下降 36.7%–44.7%(官方承认需后续优化)。

OneRec-Think(arXiv 2510.11639, 2025-10):首次为推荐引入显式思维链推理。骨干切换到 Qwen-8B,通过 Itemic Alignment 将 item token 嵌入 LLM 文本 embedding 空间。Tokenizer 本身(RQ-Kmeans 系 3 层码本)未变,但引入 "Think-Ahead" 推理架构——离线先跑 CoT 预生成前 2 个 itemic token 作为前缀,在线只解末位 token,解决 CoT 延迟问题。

OpenOneRec(arXiv 2512.24762, 2026-01):首个开源版本(1.7B/8B),骨干换为 Qwen3,继续用 RQ-Kmeans 3 层×8192,引入 RecIF-Bench 评测,首次在公开数据上系统拟合推荐域 scaling law。

OneRec-V2 量化推理(arXiv 2603.11486, 2026-03):FP8 PTQ 使 V2 推理延迟降 49%、吞吐 +92%,线上验证无损。

核心观察:2025-02 至 2026-04 的 15 个月,Semantic Tokenizer 的技术栈(RQ-Kmeans 3 层×8192 + Q-Former 压缩 + 多模态骨干 + 协同对齐)几乎零改动,所有创新集中在主解码器与 RL。这强烈暗示这一 tokenizer 设计已触及局部最优,短期内难以撼动。


第 12 章 基础原理透视

12.1 多模态融合的三种范式与 OneRec 的选择

Early fusion(早期拼接):把文本 token、图像 patch、音频 frame 直接拼成一条长序列喂进联合 Transformer。优点是单一模型、模态间可充分交互;缺点是异构模态的 token 位置编码难设计,且需为每个场景重训。

Late fusion(后期对齐):各模态独立编码,仅在嵌入层通过对比损失对齐(如 CLIP)。优点是模块化、各骨干可独立预训练复用;缺点是模态间的细粒度交互在对齐层丢失。

Hybrid fusion(分层融合):各模态独立编码浅层,中层通过 cross-attention 或 bottleneck 融合,深层再联合优化。Q-Former/Perceiver Resampler 属于这类。

OneRec 选择了 Hybrid:各模态先经 miniCPM-V 独立编码(该骨干内部已经做了 visual-text 融合),再通过 Q-Former 用 4 个 query 做信息瓶颈压缩,最后在压缩表示上做协同对齐。这是对三种范式的折中——既利用了预训练 VLM 的成熟融合能力,又通过 Q-Former 避免了 late fusion 的细粒度信息损失,还不必承担 early fusion 的重训成本

12.2 Q-Former 的理论内核

Q-Former 的本质是一个可学习 query 驱动的跨模态注意力压缩器。给定输入特征 \(\mathbf{M} \in \mathbb{R}^{N \times d}\)\(N\) 可变),Q-Former 维护 \(K\) 个可学习 query \(\mathbf{Q} \in \mathbb{R}^{K \times d}\)\(K\) 固定),通过

\[ \mathbf{Z} = \mathrm{softmax}\Big(\frac{\mathbf{Q}\mathbf{W}_Q (\mathbf{M}\mathbf{W}_K)^\top}{\sqrt{d}}\Big) \cdot \mathbf{M}\mathbf{W}_V \]

\(\mathbf{M}\) 的信息"聚合"到 \(\mathbf{Z} \in \mathbb{R}^{K \times d}\)。这就把"序列长度依赖"从下游解耦——无论输入是 1280 token 还是 100 token,输出始终是 \(K\) 个 token

Perceiver(Jaegle et al., ICML 2021)首次把这种结构应用在任意模态;Flamingo(NeurIPS 2022)将其简化为 Perceiver Resampler(64 query)插入冻结 LLM;BLIP-2(ICML 2023)进一步为 Q-Former 设计了 ITC + ITM + ITG 三任务表示学习阶段(32 query)。OneRec 是这一脉在推荐工业场景的极简化变体(4 query)。

12.3 对比学习的 InfoNCE 内核与温度 \(\tau\) 的工程意义

标准 InfoNCE 损失:

\[ \mathcal{L}_{\text{InfoNCE}} = -\log \frac{\exp(\mathbf{q}\cdot\mathbf{k}^+/\tau)}{\exp(\mathbf{q}\cdot\mathbf{k}^+/\tau) + \sum_{i=1}^{N-1}\exp(\mathbf{q}\cdot\mathbf{k}_i^-/\tau)} \]

温度 \(\tau\) 控制分布锐度:小 \(\tau\)(如 CLIP 的 0.07)让 softmax 尖锐,加大正负样本区分力但易梯度爆炸;大 \(\tau\)(如 0.5)让分布平滑,降低区分力。典型取值 CLIP=0.07、SimCLR=0.1(NT-Xent)、MoCo=0.07。OneRec 未披露 \(\tau\)\(\tau\) 调优的经验法则是:若观察到 representation collapse,\(\tau\) 过小;若观察到正负样本难以区分、损失平稳不下降,\(\tau\) 过大。

负样本构造有三种: 1. in-batch negatives(OneRec、CLIP、SimCLR 都采用)——batch 内其他样本作为负,零额外开销。 2. memory queue(MoCo)——维护数万量级的历史表征队列,增加负样本数。 3. hard negative mining(BLIP-2 ITM)——基于当前相似度挑选最难的负样本。

工业级大模型对比学习一般 in-batch 已足够,前提是 batch size 足够大(典型 2K–32K)。

Representation collapse 的防治除了 Caption Loss 式辅助生成目标外,还有:BYOL/SimSiam 的 stop-gradient、BatchNorm 正则、SwAV 的 Sinkhorn-Knopp 聚类正则、以及最近 Kim & Kim (2025) 的 temperature-free tanh 替代。

12.4 量化方法全景:VQ-VAE、RQ-VAE、RQ-Kmeans、FSQ、PQ

VQ-VAE(van den Oord et al., 2017)是所有后续量化方法的源头,其单层码本 + STE + commitment loss 设计带来了广为人知的 codebook collapse(少数码被频繁使用,多数码废弃)。

RQ-VAE(Lee et al., CVPR 2022, arXiv 2203.01941)引入残差量化思想:对 encoder 输出 \(\mathbf{z}\),递归地用 \(D\) 层码本量化残差 \(\mathbf{r}_d\),最终 \(\hat{\mathbf{z}} = \Sigma \mathbf{e}_{c_d}\)。理论上 \(D\) 层 × \(K\) 码 ≈ \(K^D\) 容量,远超单层 VQ。损失:

\[ \mathcal{L} = \mathcal{L}_{recon} + \beta \|\mathrm{sg}[\mathbf{z}] - \hat{\mathbf{z}}\|^2 + \gamma \sum_d \|\mathrm{sg}[\mathbf{e}_{c_d}] - \mathbf{r}_d\|^2 \]

但深层残差的 codebook collapse 比单层 VQ 更严重——残差随层数加深范数指数衰减,后层码本难以获得有效梯度。缓解策略包括 K-means 初始化、EMA 码本更新、dead-code reseed、HQ-VAE 的贝叶斯随机量化。

RQ-Kmeans 用非参数 K-means 替代可学习 codebook。优点:纯聚类无梯度、天然均衡(可配合 balanced 约束)、码本利用率 100%。代价:encoder 不能与 codebook 端到端联合学。OneRec、OpenOneRec、GRID(Snap)均已改用 RQ-Kmeans,标志着工业级方案的范式转移

FSQ(Mentzer et al., arXiv 2309.15505)更为激进——把每个维度量化到固定的有限标量等级(如 [3, 5, 4]),隐式 codebook \(= \prod L_i\)。优点:零参数、零 codebook collapse、零辅助损失。缺点:码间无语义层次结构,不支持前缀共享式冷启。Alibaba RecGPT 已在跨域场景采用。

Product Quantization(Jégou et al., 2011)沿维度切分子空间独立量化,主要用于 ANN 检索。与 RQ 的关键区别:PQ 在维度上并行分片,RQ 在量化阶段上串行递归。RPG(arXiv 2506.05781)在推荐场景结合 PQ 做并行解码。

量化方法小结

方法 训练稳定性 端到端可微 层次结构 码本利用率 工业应用
VQ-VAE 差(易 collapse) 早期
RQ-VAE 残差层次 TIGER/LC-Rec/LETTER
RQ-Kmeans 残差层次 ≈100% OneRec/OpenOneRec/GRID
FSQ ✓(STE) 100% RecGPT
PQ 无(并行) 100% ANN 检索/RPG

12.5 协同信号注入连续表示的四种路径

路径 A:I2I 对比学习(OneRec、NoteLLM)。以 Swing/ItemCF 构造正对,用 InfoNCE 拉近。适合对称的 item-item 关系,训练简单。

路径 B:U2I 对比学习(DSSM 式双塔)。以用户-物品行为对做正样本,拉近用户向量与物品向量。OneRec 的 \(\mathcal{D}_{pair}\) 构造实际上把 U2I 转化为了 I2I——取同一用户相邻的两次点击 item 作为一对。

路径 C:从图模型蒸馏(LETTER、TokenRec、CCF-LLM)。先用 LightGCN/GraphSAGE 在 U-I 图上训练得到协同嵌入 \(\mathbf{e}^{CF}\),再用 MSE 或 cosine 对齐到语义嵌入:\(\mathcal{L}_{align} = \|\mathbf{W} \cdot \mathbf{h}^{sem} - \mathbf{e}^{CF}\|^2\)。优点是图模型可捕获高阶协同信号;缺点是两阶段训练不方便。

路径 D:Graph-aware 量化(MMGRec)。把 U-I 图直接塞进 RQ-VAE 的 encoder,让量化器隐式学习图结构。

OneRec 选择路径 A——以 Swing 作为协同图的离线摘要,用 I2I 对比学习注入。这比路径 C 少一个阶段,比路径 D 稳定得多,是工业部署的务实选择。

12.6 Caption 生成作为正则项的理论定位

Caption Loss 与 BLIP-2 的 ITG 是同构的——都要求"压缩后的 query 表示必须足够信息丰富,才能支持下游文本生成"。从信息论视角看,设 \(\tilde{M}\) 是 Q-Former 输出、\(T\) 是 caption、\(Y\) 是协同标签(Swing 正负对),那么:

  • 单用 \(\mathcal{L}_{I2I}\) 最大化 \(I(\tilde{M}; Y)\),但 \(I(\tilde{M}; T)\) 可能退化为零。
  • 加入 \(\mathcal{L}_{caption}\) 相当于同时最大化 \(I(\tilde{M}; T)\)
  • 总目标 \(\approx\) 最大化 \(I(\tilde{M}; Y) + \lambda \cdot I(\tilde{M}; T)\),这是一个多任务信息瓶颈

为什么选 caption 而不是图像重建、对比学习到文本? 三个理由: 1. caption 已是 miniCPM-V 输入的一部分,无需额外标签。 2. 文本重建对语言先验强的模型(LLaMA3)是天然任务。 3. caption 是"内容最精简摘要",最能代表"物品是什么"。


第 13 章 电商场景的特殊考量

13.1 电商与短视频在模态构造上的结构性差异

电商商品与短视频在信息形态上有四个系统差异:

  • 文本信号:电商以标题、SKU 参数、商家描述为主,高度模板化、信息稠密但同类商品重复率极高("2024 夏季新款纯棉短袖 T 恤"这类标题在一个类目下可能有十万条几乎一致的变体);短视频则是口语化 UGC,噪声大但个性化强。
  • 视觉信号:电商以白底主图/详情图为主,静态、高分辨率、强调"商品真身";短视频是动态帧,强调情感与吸引力。
  • 结构化属性:电商强依赖类目树(4–5 级)、品牌、价格、库存、产地、材质——这些属性在搜索、筛选、合规上都是硬约束;短视频仅有话题、时长、作者等弱属性。
  • Item 生命周期与 ID 粒度:电商 SPU 可持续售卖数月至数年,但 SKU(颜色/尺码组合)可膨胀 10–100×,总量可达十亿级;短视频头部内容仅数天热度,冷启极端频繁。

13.2 结构化属性与非结构化信息的三种融合方案

方案一:文本化拼接(M6-Rec、P5、HLLM 的 Item LLM)。直接把属性塞进 prompt:"[类目] 女装/连衣裙 [品牌] 优衣库 [价格] 199元 [标题] ..."。优点是零改动利用 LLM 世界知识,缺点是连续数值 token 化会损失精度。

方案二:Field-wise embedding 拼接(传统 DLRM 风格融合进 GR)。类目、品牌走 embedding lookup,价格走分桶或 MLP 编码,与内容嵌入 concat。GRID 框架(Snap, arXiv 2507.22224)支持 Title + Categories + Description + Price 一起进 Flan-T5 encoder 做 mean pooling。

方案三:视觉 + 文本 + 属性多路 Q-Former。仿照 OneRec 的 Q-Former 压缩,但输入由三类 token 组成(视觉 patch、文本 token、属性 token),用不同模态的 positional embedding 或 modality embedding 区分。NoteLLM-2(arXiv 2405.16789)采用了这种 late fusion + mICL 的设计。

业界共识的最佳实践是分信息类型选择不同融合策略:高基数类别(品牌、三级类目)文本化丢进 LLM,低基数离散属性(颜色、材质)用 field embedding,连续数值(价格、销量、评分)分桶嵌入或用 MLP 编码与 item embedding 相加,视觉与文本走 Q-Former 对齐。

13.3 电商 Semantic ID 的四个特有挑战

挑战一:SKU vs SPU 粒度。TIGER 原生在 SPU 粒度工作即可;电商若在 SKU 粒度,item 空间 10–100× 膨胀,RQ-VAE 的 collision 与 collapse 更严重。解决:多层 Semantic ID 的前缀共享 SPU,末位区分 SKU(前两层码本编码款式/风格,第三层码本编码 SKU 细分)。

挑战二:同品不同店。一款爆款手机在数百家店上架,内容嵌入几乎一致导致 SID 大规模冲突。TIGER 的"append 额外 token"方案引入非语义 token 扩大搜索空间,已被 arXiv 2509.16446(Purely Semantic Indexing)证明损害性能。工业解决方案是把店铺 ID 作为独立 field 进入下游模型,而不塞进 SID。

挑战三:价格与库存的动态性。价格是高频变动信号,RQ-VAE/RQ-Kmeans 一旦训练完固化嵌入就无法实时更新。解决:SID 仅编码静态语义(品类、款式、风格),价格/库存/促销走传统实时特征通道。arXiv 2604.13273(Mitigating Collaborative Semantic ID Staleness)给出定期刷新 SID 并做 alignment 的方案。

挑战四:长尾与新品冷启。电商每日有海量新品上架且零交互。arXiv 2507.03568(GenPlugin)指出生成式推荐在长尾 item 上 exposure bias 严重。解决方案包括 LLM 内容先验直接产嵌入(HLLM)、dual-encoder shared-decoder + semantic substitution、检索增强生成(RAG)。

13.4 业界主要工作索引

  • 阿里巴巴:M6-Rec(arXiv 2205.08084)用 M6 多模态预训练模型统一推荐任务;URM(arXiv 2502.03041)探索 LLM 作通用召回器;GPSD/LUM/RecGPT 2025 系列探索生成式预训练迁移到 CTR。
  • 字节跳动:HLLM(arXiv 2409.12740)双塔架构——Item LLM 用 [ITEM] 特殊 token 抽文本嵌入,User LLM 在 item embedding 序列上做 next-item prediction,在 Douyin 广告线上带来可观收益,PixelRec R@5 超越 SASRec。
  • 京东:GenCTR(arXiv 2507.11246)两阶段——生成式 next-item 预训练 + 判别式 CTR 微调,搜索广告 RPM +1.25%。
  • 美团:MTGR(arXiv 2505.18654)HSTU 架构 + 保留 DLRM cross features + GLN(Group-Layer Normalization)+ 动态 mask,FLOPs 65× 传统 DLRM,外卖首页订单量 +1.22%。
  • 小红书:NoteLLM(arXiv 2403.01744)Note Compression Prompt 把笔记压到单个 token + GCL 对比学习 + CSFT 生成 hashtag;NoteLLM-2(arXiv 2405.16789)多模态 mICL + late fusion。
  • 亚马逊/学界:P5 的统一文本化 prompt paradigm、GenRec 的 masked item prediction。

第 14 章 工程实现 Checklist 与关键 Trade-off

14.1 复现 OneRec 风格 Tokenizer 的工程 Checklist

数据准备阶段,需收集每条物品的多模态 bundle(对短视频是 caption/tag/ASR/OCR + 封面 + 5 帧,对电商是标题/类目/属性/价格 + 主图 + 详情图)、并离线算好 Swing 相似度矩阵(取 top-K 邻居作为正样本候选)以及用户行为序列(用于 U2I 路径)。

Stage 1 阶段,需固定多模态骨干权重,搭建 Q-Former(query 数 4–8、层数 4、隐藏维 512–768)并确保 RMSNorm 与 FFN 正确串联,投影头将骨干输出维度对齐到 \(d_t\)一个常见陷阱是骨干输出的 token 数(\(N_M\))随输入长度变动,需在前置做 padding/truncation 到固定 \(N_M\)(如 1280),否则 batch 内 cross-attention 对齐出错。

Stage 2 阶段,对比学习的 mini-batch 需保证每个 batch 至少覆盖数千样本以获得足够 in-batch negatives;\(\tau\) 从 0.1 开始扫参,若出现 representation collapse 就调大 \(\tau\) 或增大 \(\lambda\);LLaMA3 decoder 冻结、仅训练跨模态投影头;Balanced K-means 不可或缺,尤其是码本规模 ≥ 4096 时。

Stage 3 量化阶段,层数 3、每层 8192(或 scaling 到 32768)是 OneRec 基线;每层做完 K-means 后,务必监控码本利用率(应 ≥ 99%)与 token 熵(应接近 \(\log N_t\));RQ-Kmeans 的每一层必须在上一层量化完的残差分布上做聚类,不能并行训练所有层。

部署阶段,新物品通过前向 miniCPM-V → Q-Former → 近邻查找码本得到 SID;码本每天或每周离线刷新一次,刷新时做旧 SID → 新 SID 的兼容映射,避免下游模型突然失效。Format reward在 RL 阶段注入可显著提升合法 token 率(OneRec 报告 ≈95%)。

14.2 关键 Trade-off 的决策矩阵

骨干选择:多模态 VLM(miniCPM-V、Qwen-VL)vs 文本 LLM(Qwen、LLaMA)。前者支持图像但训练/推理成本高;后者成本低但需要预生成图像描述。OneRec-Think 与 OpenOneRec 向后者迁移,暗示大参数文本 LLM + 图像 caption 作文本已能匹敌原生多模态。

压缩器:Q-Former 4 query vs 直接 mean-pooling。Q-Former 提供可学习、可联合优化的压缩,但引入额外参数;mean-pooling 零参数但损失信息。工业场景,当下游任务是 I2I 对比 + Caption 生成这类"物品身份"任务时,Q-Former 4 query 是最佳折中。

量化:RQ-Kmeans vs RQ-VAE vs FSQ。RQ-Kmeans 最稳定但不可端到端;RQ-VAE 端到端但需精心调参;FSQ 最简单但无层次结构。若已有强 encoder(OneRec 场景),选 RQ-Kmeans;若需要 encoder 与 codebook 联合学(小模型场景),选 RQ-VAE + 多重正则;若追求极简且不需前缀语义(跨域场景),选 FSQ

协同注入:对比对齐 vs 图蒸馏 vs Graph-aware 量化。对比对齐最简单稳定(OneRec 选择);图蒸馏能捕获高阶信号但需两阶段训练;Graph-aware 量化理论最优但工程复杂度高。

冷启动策略:前缀共享 vs LLM 先验 vs RAG。前缀共享是 Semantic ID 固有优势,新物品自动继承邻近物品统计;LLM 先验(HLLM 路线)在无交互时提供世界知识嵌入;RAG 在长尾场景做检索增强。OneRec 的 44.7% 冷启曝光下降明确告诉我们:即使有前缀共享,Semantic ID 生成器对冷启也不够友好——这是下一代工作的机会所在。

14.3 三个常见误区

误区一:认为 Semantic ID 可以直接替代整个推荐链路。实际上 SID 只替代"召回+粗排",精排阶段的 CTR/CVR 模型仍需要大量 cross features 与实时行为——这是美团 MTGR 保留 DLRM cross feature 的原因。

误区二:盲目扩大码本尺寸。从 8192 扩到 32768 OneRec 报告 playtime 仍有提升,但扩到 \(10^5\) 以上会面临解码器词表爆炸、负样本不均衡等问题,且对数据规模要求陡增。工业推荐码本规模应与 item 数、用户行为日均 token 数共同缩放

误区三:把 Caption Loss 当可选项。没有生成正则的纯对比学习 tokenizer 极易在训练后期坍缩到"协同索引"嵌入,表面上对比损失很低,但内容可解释性为零——这种 tokenizer 在 ID 稳定性、新物品泛化、可视化调试上都会暴露问题。

14.4 结语:范式稳定、主干激进——Tokenizer 进入平台期

Semantic Tokenizer 的三段式架构(多模态独立编码 → Q-Former 压缩 → RQ-Kmeans 量化)已在 OneRec 15 个月的迭代中证明是稳定的局部最优。 协同信号的注入方式也已收敛——Swing + I2I 对比学习 + Caption 正则构成了当前的工业参考答案,LETTER 在学术端给出了与之一致的多重正则哲学。

真正仍在激烈演化的是生成式推荐的主解码器(OneRec-V2 的 Lazy Decoder-Only、OneRec-Think 的思维链、HSTU 的 trillion-param scaling)与强化学习对齐(ECPO、IPA、duration-aware reward),这些才是 2026 年推荐系统研究的前沿。Tokenizer 层面的下一波创新可能来自三个方向: 1. FSQ 或端到端可微量化重返主流(DIGER 已给出原型); 2. 冷启动特化的 tokenizer——OneRec-V2 的 44.7% 冷启曝光下降是明确的研究靶; 3. 电商场景下 SKU 粒度、价格动态性、结构化属性的联合建模——这是目前学术界探讨最少、工业价值最大的空白地带。

从更高维度看,HSTU 路线对 Semantic ID 的合理性提出了根本挑战——当模型规模、行为序列长度、attention 效率都足够时,原子 ID 直接建模是否会最终胜出?OneRec 的 V2 已经悄悄回答了这个问题的一半:主干可以激进扩张,但 Semantic Tokenizer 仍是节省解码算力的必经之路。这意味着,在可预见的三到五年内,本专题梳理的这套 Semantic Tokenizer 技术栈仍将是生成式推荐系统不可或缺的基础组件。


附录

附录 A 素材来源索引

本专题的内容系对三份源材料的重新组织与轻度改写,保留原始数学推导、公式与表格不变。各章节对应的源文件行号如下:

专题章节 源文件 行号范围
第 1 章 多模态学习的认知骨架 多模态框架.md 3–45
第 2 章 图像与音频的编码机制 多模态框架.md 48–170
第 3 章 关键概念辨析 与大模型多模态交互的历史记录.md 431–525
第 4 章 总体架构 与大模型多模态交互的历史记录.md 282–308
第 5 章 Connector 设计范式 与大模型多模态交互的历史记录.md 310–374
第 6 章 LLM 主干与生成器 与大模型多模态交互的历史记录.md 376–396
第 7 章 两阶段训练范式 与大模型多模态交互的历史记录.md 386–423
第 8 章 生成式推荐定位 compass_artifact...md 3–26
第 9 章 OneRec Stage 1 compass_artifact...md 29–71
第 10 章 OneRec Stage 2 compass_artifact...md 74–172
第 11 章 业界技术谱系 compass_artifact...md 175–217
第 12 章 基础原理透视 compass_artifact...md 221–308
第 13 章 电商场景 compass_artifact...md 311–339
第 14 章 工程 Checklist compass_artifact...md 343–384

附录 B 延伸阅读:多模态权威综述三篇

B.1 A Survey on Multimodal Large Language Models

作者为中科大与腾讯优图实验室联合团队(Yin 等),2024 年发表于《National Science Review》(Oxford 旗下顶刊,IF 约 20)。这是目前引用量最高、流传最广的多模态大模型(MLLM)入门级权威综述。论文链接 https://academic.oup.com/nsr/article/11/12/nwae403/7896414,arXiv 预印本编号 2306.13549(持续更新)。GitHub 仓库 https://github.com/BradyFU/Awesome-Multimodal-Large-Language-Models

这篇综述的核心价值在于它提供了一套被业界广泛接受的 MLLM 通用架构抽象——模态编码器、预训练连接器、LLM 骨干、生成式连接器、模态生成器这五大模块的划分。论文还系统梳理了预训练、指令微调、对齐调优这三个标准训练阶段,并专章讨论了多模态幻觉、多模态上下文学习、多模态思维链这三个前沿议题。建议作为"生成理解范式"的权威扩展读物。

B.2 The Revolution of Multimodal Large Language Models: A Survey

作者为意大利摩德纳大学 AImageLab 团队(Caffagni 等),2024 年 8 月发表于 ACL 2024 Findings。论文链接 https://aclanthology.org/2024.findings-acl.807/

这篇综述侧重架构实现的技术细节与系统性对比,明确区分了三类视觉-语言连接器——线性/MLP 投影(LLaVA 路线)、Q-Former(BLIP-2 路线)、交叉注意力层(Flamingo 路线)——并给出了单阶段训练与两阶段训练的对比分析。对于深入 CLIP 到 BLIP-2 再到 LLaVA 的演化脉络,这是最直接的参考材料。

B.3 A Survey of Multimodal Models on Language and Vision: A Unified Modeling Perspective

2025 年《Data Mining and Machine Learning》期刊,是目前最新、视角最独特的一篇综述。论文链接 https://media.sciltp.com/articles/2510001963/2510001963.pdf

独特价值在于跳出了传统的"异构架构(vision encoder + LLM + adapter)"视角,正面讨论了多模态建模的两条进阶路线——统一语言建模目标(将所有模态离散化为 token 送入同一个 LLM 自回归训练)和单一视觉视角建模(将所有模态统一为图像形式)。这两条路线正是 2024 至 2025 年多模态领域最前沿的探索方向,代表性工作包括 Chameleon、Emu、SEED-X 等。OneRec 所采用的 Semantic ID 范式,本质上就是"统一语言建模"路线在推荐领域的应用。

阅读建议:若时间有限,第一篇作为入门地图(两到三小时通读),第二篇作为架构字典(不必通读,用作在具体实现问题上的参考检索),第三篇作为前沿视野(精读其中关于统一 token 化和单一视觉视角的章节)。