把物品从「随机原子 ID」升级为「语义化的离散 token 序列」,是生成式推荐与检索的地基。本报告梳理主流语义 ID 生成算法(RQ-VAE、层次 K-means、PQ/OPQ、LETTER…)、工业界落地系统,系统化的评估指标体系,并提供一个可交互的选型打分器,方便你按自己场景的权重直接对比。
如果只看一屏,记住下面这些结论。细节和依据在后续各节展开。
传统推荐/检索给每个物品分配一个随机原子 ID(如 item #48291),ID 本身没有任何语义。Semantic ID 把物品表示成一段有语义结构的离散码序列,例如 (12, 7, 41)——语义相近的物品共享前缀码字。
几乎所有语义 ID 分词器都可归入下面三种量化思路之一。理解它们的几何差异,就能快速判断某个新方法的取舍。
码字有序、逐层细化,天然前缀语义。表达力强,但需学习、易坍缩。代表:RQ-VAE / TIGER / LETTER。
码字平级、可并行,无 coarse→fine 层次。经典 ANN 技术,内存友好。代表:PQ / OPQ / RecJPQ / RPG。
非参数、无梯度、确定性,不会坍缩;但依赖原始嵌入空间质量。代表:DSI 的层次 K-means、RQ-K-means。
下面是当前主流的语义 ID 分词器(tokenizer)。工业界完整系统(OneRec/COBRA…)见下一节。年份为代表性论文年份。
用 MLP 编码器把物品内容 embedding(常取 Sentence-T5 对标题/描述的编码)压到隐向量,再做残差量化:第 0 层选最近码字 c₀,对残差 z−c₀ 在第 1 层选 c₁,依次 L 层。解码器重构,损失 = 重构 + 承诺/码本损失(沿用 VQ-VAE 的直通估计)。
最朴素的向量量化:一个码本,最近邻取码,承诺损失 + 直通估计。是 RQ-VAE 的"祖先"。单层码本对语义 ID 表达力不足,通常作为概念基线或与多码本组合使用。
不学码本,直接用聚类:对 embedding 做 K-means 得第 0 层中心;对残差再 K-means 得第 1 层……(RQ-K-means)。或递归二分/多分构造一棵平衡树(DSI 的层次 K-means)。确定性、无梯度。
把 D 维向量切成 M 个子向量,各自用大小 K 的码本独立量化,ID = 各子空间码字。OPQ 先学一个旋转矩阵去相关,再 PQ,重构更优。码字平级、可并行解码。
在 RQ-VAE 上加两个正则:协同正则把语义 ID embedding 对齐到协同过滤 embedding(让 ID 也反映行为相似);多样性正则缓解"码字分配偏置"与坍缩,鼓励码本均匀使用。目标是同时具备层次语义、协同信号与均衡分配。
用 RQ-VAE 得到物品码,再设计一组对齐任务让 LLM 把语义 ID 与自然语言、与协同语义对齐。处理碰撞时不追加去重 token,而是把冲突物品重分配到邻近空闲码(统一语义映射),使末层码均匀。核心是"让大模型真正读懂这些离散 ID"。
用联合乘积量化(Joint PQ)把物品 ID 拆成若干共享的"子 ID" embedding,大幅压缩 Transformer 序列推荐器的嵌入表(可省几十倍内存),同时基本不掉点。偏"表示压缩"而非"生成式 ID"。
EAGER(浙大+华为):双流,对行为与内容各做层次 K-means,协同 token 与内容 token 并行生成。
SEATER:约束 K-means 造平衡 k 叉树 ID,配对比与对齐损失,ID 等长、推理成本一致。
RPG(UCSD+Meta):用 OPQ 生成最长 64 位、无序语义 ID,多 token 并行预测+图约束解码,报告 NDCG@10 +12.6%。
MMGRec / MMQ(阿里):多模态语义 ID,前者用 Graph-RQ-VAE,后者用混合量化(MoQ)融合图文并适配用户行为。
下面是把语义 ID 用到超大规模、甚至端到端替换召回+排序的代表系统。它们是"完整系统"而非单纯分词器,故不进入后面的分词器打分矩阵,但范式极具参考价值。
把 RQ-VAE 语义 ID 作为 YouTube 排序模型的特征(不止用于生成式召回)。关键结论:直接用连续内容 embedding 替换随机哈希 ID 反而掉点——因为丢了"记忆"能力;而离散语义 ID 在记忆与泛化之间取得平衡,改善冷启动与长尾。是"语义 ID 到底有没有用"的重要工业级证据。
用编码器-解码器统一召回与排序,做会话级(session-wise)生成而非逐点预测,稀疏 MoE 扩容,再加迭代式偏好对齐(DPO+奖励模型)。物品用残差平衡 K-means分词——作者明确批评 RQ-VAE 的"沙漏现象"(码分布失衡),用每簇恰好 |V|/K 个物品的平衡聚类保证码本用满。快手主场景 A/B 观看时长 +1.6%;V2 用"惰性解码器"砍约 94% 算力、扩到 8B 参数。
全称 Cascaded Organized Bi-Represented generAtive retrieval。针对"纯离散语义 ID 有信息损失",级联生成:先出稀疏语义 ID抓粗粒度,再以其为条件生成稠密向量补细粒度,端到端让稠密表征吸收协同信号;推理用 BeamFusion 兼顾多样性。已在2 亿+ 日活广告平台线上取得提升。
快手提出,直击"预训练多模态表征→冻结喂下游"的两大病:表征不匹配(多模态编码器按 CV/NLP 目标训练,与推荐目标错位)与表征不可学(缓存的冻结 embedding 无法被推荐梯度更新)。做法是量化对齐机制 + 可训练、对齐行为的量化码(quantitative code),为每个下游模型定制多模态语义 ID。
评估任何方案前,先理解它要对抗的两个"物理规律"。
训练中大量码字从不被选中,少数码字承接绝大多数物品——有效码本远小于名义容量,ID 表达力骤降(OneRec 称之为"沙漏现象")。这是 VQ 家族(含 RQ-VAE)最常见的失败模式;根因是"码本被割裂优化":直通估计下只有被选中的最近码字拿到梯度。
多个物品被映射到完全相同的码序列。碰撞率高 → 模型无法区分这些物品,通常要追加去重 token,变相加长 ID、增加解码难度。指标:相同 ID 物品占比、平均每个码序列承载物品数、唯一 ID 率。
一个可复用的评估框架。内在指标不需要下游模型即可快速筛选;下游指标是最终裁判。"方向"列表示越大越好(↑)还是越小越好(↓)。
| 指标 | 定义 | 方向 | 好的样子 |
|---|---|---|---|
| 重构误差 MSE / 余弦 | 原始 embedding 与量化重构向量之间的距离 | ↓ MSE | 低 MSE / 高余弦,说明码本覆盖了表征空间 |
| 码本利用率 | 被使用码字数 / 码本大小(逐层) | ↑ | 接近 100%,无大量死码字 |
| 困惑度 Perplexity | exp(码字使用分布的熵) | ↑ | 接近码本大小 K,分布均匀 |
| 碰撞率 / 唯一率 | 与他人共享同一完整码序列的物品占比 | ↓ 碰撞 | 碰撞低、唯一率高,少依赖去重 token |
| 负载均衡 Gini | 物品在码字上的分布不均程度 | ↓ | 低 Gini,无单一码字通吃 |
| 指标 | 定义 | 方向 | 好的样子 |
|---|---|---|---|
| 逐层类目纯度 Purity | 共享同一前缀码的物品,其真实类目的集中度 | ↑ | 第 0 层分大类、深层分细类 |
| NMI(码 vs 类目) | 码聚类与类目标签间的归一化互信息 | ↑ | 高 NMI,码承载真实语义 |
| 近邻保持 | ID 前缀重叠度 与 embedding 相似度 的相关性 | ↑ | ID 距离能近似原始/行为距离 |
| 指标 | 定义 | 方向 | 好的样子 |
|---|---|---|---|
| Recall@K | Top-K 命中真实下一个物品的比例(K=5/10/20) | ↑ | 热门集高 |
| NDCG@K | 带位置折扣的命中质量 | ↑ | 兼顾命中与排序 |
| HitRate / MRR | 命中率 / 首个命中的平均倒数排名 | ↑ | 与 Recall/NDCG 一致 |
| 冷启动 Recall | 仅在训练期未见过的新物品上的召回 | ↑ | 语义 ID 的核心卖点,单独评 |
| 有效 ID 率 | 生成的码序列能对应到真实物品的比例 | ↑ | 生成式检索需高,避免"幻觉物品" |
| 指标 | 定义 | 方向 | 好的样子 |
|---|---|---|---|
| 训练稳定性 | ≥3 个随机种子下,指标的方差 | ↓ | 方差小,可复现(RQ-VAE 常偏大) |
| 分词/推理时延 | 给新物品编码出 ID 的耗时;束搜索解码成本 | ↓ | 可在线服务 |
| 码本存储 | L × K × d,以及相对原子 ID 表的节省 | ↓ | 相对亿级嵌入表大幅缩减 |
7 个分词器 × 7 个维度的定性评分(1–5,越高越好,颜色越深越好)。这些是基于文献与工程经验的定性判断,非某一数据集的实测数字,用于快速建立直觉;真实选型请结合上一节指标在你的数据上实测。
评分维度:下游精度(热门)、冷启动/泛化、训练稳定性、语义可解释性、工程简单度、内存/存储效率、协同/多模态扩展性。
同一套内容 embedding(Flan-T5-XL)、同一下游生成模型、(L,W)=(3,256),在 Amazon 上对三种残差分词器的实测(留一法,5 种子平均;数值越高越好)。关键发现:更简单的 RK-Means / R-VQ 常追平甚至超过 RQ-VAE,且训练更省——RQ-VAE 迭代量约为其 5 倍,却在 Beauty、Sports 落后。这直接质疑了 RQ-VAE"自 TIGER 以来的默认地位"。
| 数据集 / 分词器 | Recall@5 | Recall@10 | NDCG@5 | NDCG@10 |
|---|---|---|---|---|
| Amazon Beauty | ||||
| RK-Means | .0422 | .0639 | .0277 | .0347 |
| R-VQ | .0422 | .0638 | .0282 | .0351 |
| RQ-VAE | .0404 | .0593 | .0268 | .0329 |
| Amazon Toys | ||||
| RK-Means | .0376 | .0577 | .0243 | .0308 |
| R-VQ | .0327 | .0493 | .0209 | .0262 |
| RQ-VAE | .0342 | .0514 | .0224 | .0280 |
| Amazon Sports | ||||
| RK-Means | .0236 | .0353 | .0153 | .0191 |
| R-VQ | .0234 | .0352 | .0151 | .0189 |
| RQ-VAE | .0205 | .0312 | .0132 | .0166 |
调参经验:(L,W)=(3,256) 是甜点,层数并非越多越好(SID 可学习性 vs 语义信息的权衡),W=256 优于 128/512;放大文本编码器(Flan-T5 Large→XXL,14× 参数)收益甚微。加粗=该数据集该指标最优。来源:GRID(arXiv 2507.22224,含开源库)。
拖动权重滑块(0=不关心,5=极重要),或点一个预设场景。右侧按 Σ(评分×权重) 实时给出加权得分与排名,直接告诉你"在你的场景下"哪种分词器最匹配。
提示:得分接近时,优先选工程简单度更高、你团队更熟悉的方案;把省下的精力花在物品表征质量和下游实测上——它们对最终效果的影响通常大于分词器本身。
避坑:① 别只看重构误差——它高不代表下游好;② 报指标务必带随机种子方差(注意:5 种子"平均"≠报了方差);③ 碰撞率高时别忘了去重 token 会影响解码;④ 冷启动一定要单独切分评估;⑤ 抗坍缩实用手段:残差归一化(RK-Means/R-VQ)、embedding 白化(RQ-VAE)。