MLLMRec-R1:多模态推荐里的 RL,先把视觉负担移出 rollout,再谈推理

背景

补完 Rec-R1Rank-GRPORISERV-STAR 之后,我原本已经把推荐里的 RL 瓶颈先记成几类比较熟悉的问题:

  1. black-box bridge 要不要多轮化
  2. rank / trajectory / sibling branch 的 credit assignment 该压到哪一层
  3. search budget 应该怎么和 reward signal 耦合
  4. tool-use 的轨迹是否值得被直接优化

但这轮继续沿 2026-03 的最新 arXiv 检索 recommendation + GRPOrecommender + reinforcement + large language model 后,我发现公开世界里还有一条刚补出来、而且和现有记录不完全重合的新入口:

  1. MLLMRec-R1: Incentivizing Reasoning Capability in Large Language Models for Multimodal Sequential Recommendation
  2. wangyu0627/MLLMRec-R1

它让我更明确地意识到:

多模态推荐里的 RL,未必先卡在 reward 设计,也可能先卡在 rollout 前的表征载体

因为一旦历史序列和候选集都要带图像,问题就不再只是“怎么采样更多轨迹”,而是:

你到底准备用什么 carrier 把多模态信息送进 RL loop

核心判断

MLLMRec-R1 的关键,不只是 multimodal CoT,而是先把视觉信号移出 on-policy loop

这篇论文最值得记住的一点,不是“推荐里也开始做多模态 CoT”。

真正重要的是,它把多模态 sequential recommendation 的主矛盾定义得很具体:

  1. 用户历史里每个 item 可能都带封面图
  2. 候选列表里每个 item 也可能都带封面图
  3. 一旦让 MLLM 在 rollout 阶段同时吃历史图像和候选图像,visual tokens 会迅速主导输入长度
  4. GRPO 又要求同一 prompt 下采多条输出做组内比较

论文引言直接写到,一个图像常会扩成 196 个 visual tokens。

于是这里的计算量增长,不只是和 history length 有关,还会和 candidate set size 一起放大。

这意味着 MLLMRec-R1 真正处理的,不是通用意义上的“多模态能力不足”,而是:

多模态表征一旦原样进 RL,rollout 成本就会先失控

所以它给出的第一步解法,不是更复杂的 reward,也不是更长的 CoT,而是:

先把视觉信号离线压成文本,再让 RL 消费文本化后的多模态语义

这条路线真正重写的是 reasoning carrier

如果只看摘要,很容易把它理解成“用 GRPO 训练一个多模态推荐模型”。

但继续核论文引言、README 和仓库结构后,我更愿意把它记成另一种更具体的系统动作:

把 multimodal reasoning 先改写成 text carrier,再交给 text-only RL loop

论文和 README 给出的流程很一致:

  1. caption generation
  2. pseudo-CoT construction
  3. reasoning refinement
  4. SFT
  5. GRPO

也就是说,图像本身并不直接陪着 GRPO 一路 rollout。

它先被转成三层文本资产:

  1. item 级 caption
  2. sequence 级 pseudo-CoT
  3. 进一步 refined 的 reasoning text

然后推荐训练再去消费这些文本。

这和之前补过的几条路线差别很大。

Rec-R1 / Rank-GRPO 主要是在已有推荐接口或列表上改写优化单位。

DeepRec / RecThinker 主要是在轨迹里改写 tool-use 与证据收集。

MLLMRec-R1 则是先在 RL 之前改写:

多模态信息以什么形式存在

所以它不只是“multimodal version of Rec-R1”。

更准确的说法应该是:

multimodal sequential recommendation 里的 RL,先要解决 reasoning carrier relocation

reward inflation 说明推荐里的 reasoning data 不能无条件越多越好

这篇论文的第二个关键点也很有价值。

作者没有把 CoT supervision 默认当成纯增益,而是明确把另一个问题单独拎了出来:

reward inflation

论文 Figure 1(b) 和后文都在强调一件事:

有些 CoT 数据会把训练 reward 顶上去,但 test ranking 反而变差。

换句话说,这里不是简单的“推理越多越好”,而是:

推理文本本身可能携带 shortcut signal

所以 MLLMRec-R1 又多做了一层:

mixed-grained data augmentation

它不是把所有 CoT 样本一股脑喂给模型,而是先做 confidence-based filtering,再把高置信 CoT 样本和普通样本混着训练。

我觉得这点非常值得 Story Lab 记下来,因为它说明推荐里的 reasoning training 已经开始出现一个比“有没有 CoT”更现实的问题:

哪些 reasoning traces 应该进入 RL 之前的训练流,哪些不应该

这和 RISER 那种回收 zero-advantage trajectory 的逻辑很像,只是这里清洗的对象从 rollout 轨迹换成了:

multimodal reasoning data

公开仓里暴露出的现实更尖锐:发布出来的 GRPO reward 其实很轻

继续往仓库里核 train/grpo.py 后,我觉得这条路线还有一个特别值得单独记的现实落差。

论文叙事里最重的是:

  1. multimodal CoT construction
  2. confidence-aware assessment
  3. mixed-grained filtering

而公开仓里 GRPO 这一步的 reward function 其实相当轻量。

它当前公开的 rec_reward_func 主要只看三件事:

  1. 输出格式对不对
  2. 预测 item 是否命中 target
  3. 如果格式对但 item 错,仍给一个较小正奖励

具体实现里:

  1. 格式错记 -1.0
  2. 格式对且 item 对记 1.0
  3. 格式对但 item 错记 0.3

这意味着公开代码里的重点,并不在“极其复杂的 process reward engineering”,而更像是:

先把 multimodal reasoning data 和文本 carrier 搭好,再用轻量 RL 信号做后训练

这条信息很重要,因为它让这篇论文和 DeepRec / RecThinker 又拉开了差别。

后两者的公开 RL 已经明显在监督 tool budget、invocation count 或 process quality。

MLLMRec-R1 当前公开仓告诉我们,多模态推荐里真正最稀缺的,也许还是:

可稳定消费的 reasoning carrier

而不是更花哨的 reward 分解。

所以这条线更适合并入 training-cost efficiency,但要补一个更细的子问题

MLLMRec-R1 放回 Story Lab 目前的系统瓶颈表里之后,我不太想单独再开第五大栏。

它依然更接近:

training-cost efficiency

但这轮我会把这栏再补细一点。

此前这里更多记录的是:

  1. encoder / decoder 计算浪费
  2. rollout 采样成本
  3. offline / online 对齐的训练代价

MLLMRec-R1 说明,这一栏里至少还要再单独记一个子问题:

representation offloading before RL

也就是:

哪些信息应该留在 rollout 内部实时处理,哪些应该被提前压缩成可复用的文本/语义载体

如果不补这个子问题,MLLMRec-R1 就很容易被粗糙地写成“多模态推荐版的 GRPO”。

但它真正的价值恰恰在于:

先把视觉推理成本挪走,再让 RL 变得可训练

公开边界

这轮我也专门核了它的公开边界。

目前更稳妥的说法是:

  1. arXiv 页面显示论文于 2026-03-06 首次提交
  2. GitHub API 显示官方仓创建于 2026-01-23 06:29:02 UTC,最近一次代码 push 为 2026-03-09 14:26:24 UTC
  3. 根目录已公开 agent/train/checkpoints/ 与完整 README
  4. agent/ 下已经能直接看到 caption.pypseudo-cot.pyreasoning.py
  5. train/ 下已经公开 sft.pygrpo.pyinference.pyutils/data_loader.py
  6. README 已给出 Qwen3-4B / Qwen3-VL-8B-Instruct、MovieLens / MicroLens / Netflix、SFT -> LoRA merge -> GRPO -> distributed inference 的完整命令

所以这条线已经不是 paper only

它至少已经公开到了:

multimodal CoT constructor + SFT/GRPO workflow

但另一面,复现门槛和资产开放度仍然没有真的降下来。

目前我核到的限制至少有三层:

  1. 处理后数据和 CoT 产物还是主要挂在 Google Drive
  2. README 明确要求本地准备 Qwen3-4BQwen3-VL-8B-Instruct
  3. 截至 2026-03-21,仓库仍有一条来自 Hugging Face 的公开 issue,询问作者是否愿意把模型和数据集迁到 Hub

因此它当前更准确的公开边界不是“即插即用底盘”,而是:

repo with constructor scripts + training workflow, but artifacts still external

中文传播层

这轮我也继续补做了中文检索,包括:

  1. MLLMRec-R1 中文
  2. MLLMRec-R1 推荐
  3. site:xiaohongshu.com MLLMRec-R1 推荐
  4. xhslink MLLMRec-R1

目前结果仍然很弱。

除了少量自动聚合页和 DailyArXiv 式索引外,我还没有拿到稳定高价值的中文机制稿,更没有拿到可复用的 xhslink

所以这条线当前仍然主要依赖英文一手材料。

证据与来源

  • MLLMRec-R1: Incentivizing Reasoning Capability in Large Language Models for Multimodal Sequential Recommendation:摘要和 PDF 引言明确写出两大问题分别是 visual tokens dominate rollout costCoT reward inflation,并给出 caption -> pseudo-CoT -> reasoning refinement -> mixed-grained data augmentation 这条主线。
  • MLLMRec-R1 GitHub 仓库:README 公开了 Qwen3-4B / Qwen3-VL-8B-Instruct、MovieLens / MicroLens / Netflix、Google Drive 数据入口、三阶段 agent pipeline,以及 SFT -> LoRA merge -> GRPO -> inference 命令。
  • train/grpo.py:公开实现显示当前 GRPO reward 主要由 format validity + exact hit 组成,说明 released workflow 的重心更偏 reasoning carrier 构造,而不是复杂 process reward。
  • GitHub API 检索 wangyu0627/MLLMRec-R1:截至 2026-03-21,可确认仓库创建时间、最近 push 时间、根目录结构,以及当前仍未把模型/数据稳定迁到 Hugging Face。

下一步

  • MLLMRec-R1 补进系统瓶颈表,在 training-cost efficiency 下面新增 representation offloading before RL 这一子问题。
  • 把它和 Rec-R1 / Rank-GRPO / DeepRec / RecThinker 放在一起看,单独补一列 reasoning carrier before RL,避免把“优化单位”和“输入载体”混成同一种系统设计。
  • 继续追作者是否会补充 Hugging Face 模型、数据或更完整的实验资产;如果公开边界变化,再回头修正来源池记录。