1. 问题与动机
MMGRec 关注多模态推荐长期沿用的 embed-and-retrieve 范式:先把用户与物品映射到同一向量空间,再用内积从全库取 Top-K。作者认为这条路线有三个结构性问题。第一,若有 U 个用户、I 个物品且向量维度为 D,为所有用户检索 Top-K 的复杂度达到 O(UID+UI log K);即便物品向量离线缓存,线上仍要做与物品规模线性相关的打分和排序。第二,线性内积对复杂的用户—物品交互表达有限,改用深层交互网络又会进一步牺牲召回速度。第三,隐式反馈把未交互物品当负样本,但未曝光或未点击并不等于不喜欢,容易产生假负样本。
TIGER 已证明可把物品编码成语义 ID,再让 Transformer 直接生成下一物品,从而绕过全库内积。然而,将这一方法搬到电影、短视频等多模态场景会暴露两项新困难:只按单一文本特征量化会丢失视觉、音频和协同行为;相似物品共享语义 token 时需要额外 token 保证唯一性,TIGER 的随机尾 token 没有语义,Transformer 难以学习。另一方面,论文处理的是没有可靠时间顺序的协同过滤数据,传统绝对位置编码无法表达不同用户眼中的物品关系。MMGRec 因此把研究问题拆成 Rec-ID 分配与 Rec-ID 生成:前者要同时保留内容、协同与唯一性,后者要在无显式时间顺序时仍能建模用户相关的物品关系。
2. 方法详解
系统分为 Graph RQ-VAE 编码、碰撞处理、关系感知 Transformer 和约束生成四部分。首先,对物品 i 的视觉、音频、文本特征做拼接并经矩阵 W 投影到 D 维,得到多模态向量 h_i^m;再与随机初始化的 D 维协同过滤向量 h_i^c 拼接,形成 2D 维初始表示。用户—物品交互被建成二部图,用户节点同样随机初始化。每层图卷积把节点自身线性变换与邻居均值聚合相加,再过 LeakyReLU;这相当于用真实交互把内容表征和协同信号融合进最终物品向量 h_i。
Graph RQ-VAE 随后用两层 MLP 编码器把 h_i 映射为潜变量 z_i,并执行逐层残差量化。第 m 层从自己的码本中选择与当前残差欧氏距离最小的向量,其索引 c_i,m 就是第 m 个语义 token;选中后从残差中减去该码字,再交给下一层,形成由粗到细的语义划分。论文使用三阶段量化,因此语义部分有三个 token。解码器也是两层 MLP,以全部码字之和重构 h_i,并用 stop-gradient 训练码本。总损失由两部分组成:一是 BPR pairwise loss,使用户与正物品的内积高于未观察物品;二是 RQ-VAE 的重构、码本与 commitment 损失,系数 beta 设为 0.25。两项子损失交替优化。
仅有三个语义 token 时,不同物品仍可能碰撞。MMGRec 不追加随机 token,而是在共享同一语义前缀的物品桶内按历史交互数排序,把排序位置作为第四个热度 token。完整 Rec-ID 因此为三个语义 token 加一个热度 token。它仍保证唯一性,但尾 token 与前缀语义和物品流行度存在统计关系,理论上比随机编号更容易被自回归模型预测。
生成阶段使用标准 encoder-decoder Transformer。Encoder 输入不是 Rec-ID,而是用户历史交互物品的原子 ID,并直接复用 Graph RQ-VAE 学到的物品向量作为 embedding;序列不足固定长度 N 时补零。由于数据没有统一时间顺序,作者用关系感知 self-attention 代替绝对位置编码。注意力分数同时包含全局项和用户特定项:全局 Q/K 投影刻画一般物品关系,用户特定 Q/K 投影刻画该用户视角下的成对关系;Value 也叠加用户特定位置向量。为避免每个用户独占 D×D 矩阵,用户向量 h_u 先经 MLP 压成标量,再乘共享基础矩阵 U,得到 W_u^Q、W_u^K、W_u^V。这样用很少额外参数调制共享注意力。
每条交互 u,i 都形成一个训练样本:Encoder 读取去掉目标 i 的历史原子 ID,Decoder 用交叉熵自回归预测目标物品的四 token Rec-ID。推理时以 beam search 保留 K 条高概率序列,并用合法前缀约束候选 token,避免生成不存在的 Rec-ID。论文给出的复杂度表明,矩阵分解对单用户仍需 O(ID)+O(I log K),而 MMGRec 的生成成本主要由 beam 宽度 K、层数 H、Rec-ID 长度 M、维度 D 和码本大小 L 决定;只有当物品库足够大时,固定步数生成才可能胜过全库内积。
实验使用 MovieLens、TikTok、Kwai。三者分别有 55,485/36,656/7,010 个用户,5,986/76,085/86,483 个物品,以及 1,239,508/726,065/298,492 条交互。每个用户的交互随机按 80%/10%/10% 划分训练、验证和测试,指标为 Recall@10 与 NDCG@10。实现基于 PyTorch 和 PyTorch Geometric,Xavier 初始化,SGD 优化;batch size 在 500、1,000、2,000、3,000 中选择,学习率网格搜索后取 0.001,L2 系数取 1e-5,验证 Recall@10 连续 20 个 epoch 不升即早停,用户/物品向量默认 64 维。码本大小在 64、128、256 中调参。论文没有披露训练硬件、最终 batch size、训练步数或墙钟时间,这是复现成本评估的重要缺口。
3. 核心技术贡献
- 将多模态内容与协同行为共同量化为可生成标识。 相比只用文本向量的 TIGER,Graph RQ-VAE 先在用户—物品图上传播行为信号,再对融合后的视听文与 CF 表征做残差量化。这样 Rec-ID 不只是内容聚类标签,也携带真实偏好结构;消融中直接量化异构原始特征的 ID w/o 版本在 MovieLens 的 NDCG@10 只有 0.1238,而完整模型达到 0.1898。
- 用热度 token 替代无语义的随机碰撞编号。 共享语义前缀的物品按交互热度排序,使最后一步的 token 具备可预测的统计含义。完整方案在三数据集上都优于随机尾 token:例如 TikTok NDCG@10 从 0.0785 提升至 0.0802,Kwai 从 0.0452 提升至 0.0470。贡献不在于彻底消灭碰撞,而是把唯一性约束转成模型可学习的有序信号。
- 为无统一时序的历史行为设计用户条件注意力。 全局注意力与用户特定双线性项同时参与打分,Value 侧再加入用户条件位置表示,避免把数据文件中的任意顺序误当时间。相对默认绝对位置编码,TikTok Recall@10 从 0.1180 提升至 0.1269,Kwai NDCG@10 从 0.0441 提升至 0.0470。
- 给出生成召回的规模边界而非只报告精度。 作者明确分析了生成与内积两种复杂度,并在不同规模 Kwai 子集上测推理时间:小物品库中自回归开销更高,物品规模扩大后 MMGRec 耗时基本稳定、MF 则随 I 快速上升。这说明生成式召回应按候选规模选择,而不是无条件替换 ANN 或矩阵乘。
4. 实验结果分析
主实验比较四个 CF 基线和六个多模态基线。最强对手是 Transformer 多模态模型 LightGT,MMGRec 在三套数据和两个指标上均最好:
| 模型 | MovieLens Recall@10 | MovieLens NDCG@10 | TikTok Recall@10 | TikTok NDCG@10 | Kwai Recall@10 | Kwai NDCG@10 |
|---|---|---|---|---|---|---|
| LightGCN | 0.2381 | 0.1592 | 0.0988 | 0.0603 | 0.0502 | 0.0411 |
| LightGT | 0.2650 | 0.1771 | 0.1213 | 0.0751 | 0.0546 | 0.0441 |
| MMGRec | 0.2804 | 0.1898 | 0.1269 | 0.0802 | 0.0567 | 0.0470 |
| 相对 LightGT 提升 | 5.81% | 7.17% | 4.62% | 6.79% | 3.85% | 6.58% |
六个提升的单样本 t 检验 p 值均小于 0.05,其中 MovieLens NDCG@10 为 2.36e-4,统计证据较完整。NDCG 的相对增益普遍高于 Recall,说明生成式解码更明显地改善了命中物品的次序,而不只是扩大命中集合。值得注意的是,论文没有把 TIGER 放入主表,因为 TIGER 要求按时间排序的序列且只处理文本语义,而这里的三个数据集没有时间标签、输入又是多模态;这个理由合理,但也削弱了与最接近生成式基线的直接比较。
消融揭示主要收益来源。去掉预训练物品表示、改为可学习 embedding 后,MovieLens NDCG@10 仅从 0.1898 降到 0.1890,但 TikTok Recall@10 从 0.1269 降到 0.1206,说明稀疏短视频场景更依赖先验内容/图表征。若完全不做融合而把原始多模态特征直接交给 RQ-VAE,MovieLens Recall@10 跌到 0.1934,表明 Graph RQ-VAE 前的协同融合是关键。ID 分配方面,层次 K-Means 在三数据集上都最差;TikTok Recall@10 为 0.1137,随机尾 token 为 0.1199,完整方案为 0.1269。
位置机制的贡献同样稳定:不使用位置编码时,TikTok Recall/NDCG 为 0.1152/0.0765;默认正弦位置为 0.1180/0.0778;用户关系感知版本为 0.1269/0.0802。Kwai 上默认位置与完整方案的 NDCG 差距为 0.0029,约 6.6% 相对提升。层数和头数分析显示,MMGRec 在 1–4 层、1/2/4/8 头设置下均优于 LightGT;其性能随头数增加后趋稳,而 LightGT 继续下降,支持生成模型能利用多种关系子空间的解释。
Rec-ID 设计存在清晰的甜点区。长度从 2 增至 4 时性能上升,因为单步候选空间缩小;增至 5 时,多一步自回归又提高错误传播和延迟,因此默认 M=4。固定 M=4 时,码本从 64 增到 128 改善表示能力,但继续增到 256、512 会扩大每步搜索空间并使性能下降,最佳为 128。效率实验也不是单向利好:在 1/16 到 1/4 Kwai 的小物品库上,MMGRec 因基础解码开销反而更慢;从 1/4 扩至完整 86,483 个物品后,MF 的全库内积时间明显上升,而 MMGRec 更稳定。论文只给图形趋势、未披露关键毫秒数和硬件配置,因此效率结论应视为条件性证据。
5. 局限与未来方向
作者在结论中明确承认 Rec-ID 碰撞仍未解决,计划寻找更有效的向量量化方法;还希望引入 ChatGPT 等大模型增强用户和物品表示,并利用生成能力处理冷启动。正文进一步显示其效率优势只在 I 足够大时成立,小物品库中自回归更慢。数据缺少时间标签,因此论文无法与 TIGER 做公平对比,也没有验证真正的 next-item 时序泛化;随机 80/10/10 切分更接近静态协同过滤,而非内容不断新增的生产流量。
论文未充分讨论的限制还有四点。其一,热度 token 虽可学习,却可能把流行度偏置写进标识,长尾物品是否被系统性压低没有单独评估。其二,三套数据均为离线公开集,没有线上 A/B、CTR、停留时长、多样性或新颖性证据,无法判断 3.85%–7.17% 的离线相对增益能否转化为业务收益。其三,训练硬件、完整 batch、步数、beam 宽度和端到端延迟数字缺失,开源代码虽降低实现门槛,成本仍难复算。其四,受合法前缀约束的 beam search 只能生成已经分配 Rec-ID 的物品;新内容上线时如何增量更新码本、避免 ID 漂移和重建索引,论文没有给出生产方案。
6. 工业实践意义
对社区 UGC 搜索/推荐团队,最值得试验的不是一次性把召回全部改成生成,而是先把 Rec-ID 当成新的离线候选通道。可用帖子正文、标题、图像、视频和音频生成内容向量,再与点击、停留、收藏、评论形成的用户—内容图融合,训练残差量化器。线上保留倒排和 ANN 主通道,新增 constrained beam 生成通道;通过同一精排模型比较增量 nDCG、CTR、长尾覆盖和去重后新增有效候选。这样能在不破坏现有召回稳定性的前提下验证语义 ID 是否真的带来跨模态和假负样本收益。
落地时应把四组指标绑在一起:ID 层监控码本利用率、碰撞率、桶大小和热门度分布;生成层监控合法序列率、各 token 位置错误率、beam 覆盖与解码耗时;候选层监控 Recall、NDCG、新内容命中和跨通道独有候选;业务层再看 CTR、有效停留、多样性与内容安全。热度尾 token 可以作为冷启动前的简单基线,但最好同时测试曝光校正、时间衰减或分桶内受控排序,避免把历史流行度永久固化进 ID。
关系感知 attention 对 UGC 场景尤其有借鉴价值:用户历史往往混合搜索点击、推荐消费、收藏和评论,事件顺序并不总等价于偏好强度。可以把论文的用户标量调制扩展为场景、行为类型和时间间隔共同调制共享 Q/K/V,但应先比较它与标准 relative position、时间差 embedding 和轻量门控的收益/延迟。论文的用户特定矩阵实际只是标量乘共享基础矩阵,参数便宜但表达能力有限;生产上可尝试低秩 LoRA 式调制,并限制在线个性化状态大小。
部署决策必须尊重论文给出的规模边界。物品只有几万且 ANN 已高度优化时,自回归生成未必更快;当物品达到千万级、候选全库打分成为瓶颈时,固定四步 Rec-ID 解码才更有吸引力。即使如此,也要为热点、新发 UGC 和 ID 重量化保留旁路,并把码本版本写入索引和模型元数据,避免生成器与物化表版本不一致。推荐的上线顺序是离线重放、影子流量、小比例候选混排、再逐步扩量;任何阶段都应允许回退到 ANN/倒排。总体而言,MMGRec 证明了「内容+协同的语义量化 ID、用户条件关系建模、合法前缀生成」能形成一条可复现的生成式召回路线,但它尚未证明可以无条件替代成熟的大规模检索系统。