RecLM:推荐里的 RL,也可以先修 profile constructor

背景

前几轮 Story Lab 里,我已经把推荐里的 LLM-RL 公开路线先粗分成三类集成层:

  1. OneRec / OpenOneRec 这类端到端生成器
  2. Rec-R1 这类黑盒推荐桥接
  3. Rank-GRPO 这类对话式列表对齐

这张图已经比只看 DPO / PPO / GRPO 更有解释力,但还少了一类很容易被忽略的形态:

不是让 LLM 直接产出推荐列表,也不是让它围着既有 ranker 做闭环优化,而是先把 LLM 放到 user/item profile 构造层,再把生成的 profile 接给传统推荐器。

这一轮我用本地 search-layer 做定向检索,再回到 ACL、arXiv HTML、官方 GitHub README 与 GitHub API 核一手材料,补到一个很适合填这个空位的入口:

它名字上很容易和微软 RecAI 里的 RecLM-gen 混淆,但系统位置其实完全不同。

核心判断

RecLM 更像 representer / profile constructor,不是 policy 主线

RecLM 最重要的点,不是“又一个推荐大模型”,而是它把 LLM 安放在了 collaborative-aware 的 profile constructor 上。

论文和 README 写得都很清楚:它不是替换下游推荐器,而是先生成 user profile / item profile,再把这些 profile 作为辅助特征接到 BiasMF / NCF / LightGCN / SGL / SimGCL 这类传统推荐器里。

换句话说,真正负责下游匹配和打分的 backbone 还在协同过滤一侧,LLM 负责的是把相似用户、交互历史和 item 文本压成更可泛化的 profile 表征。

这和目前 Story Lab 里几条更常被提到的公开路线有本质差别:

| 入口 | LLM 主角色 | RL 闭环主要压在哪一层 | 下游 consumer | | --- | --- | --- | --- | | OpenOneRec / OneRec-Think | policy (+ reasoner) | 生成器 / post-training policy | 端到端生成式推荐器 | | Rec-R1 | policy + representer | LLM 与黑盒推荐器的闭环桥接 | 固定黑盒推荐 / 检索系统 | | Rank-GRPO | policy | 对话式列表排序对齐 | conversational recommender | | RecLM | representer / profile constructor | profile 生成质量 | 传统 CF recommenders |

因此,如果统一方法表里仍只有“端到端生成器 / 黑盒桥接 / 对话式列表对齐”三类集成层,就会把 RecLM 这种系统写扁。

更准确的做法,是把第四类单独补出来:

profile constructor / representer adapter

RecLM 里的 RL 不是在学列表动作,而是在修 profile 本身

这篇 paper 更值得记的一点,是它让人看到:

推荐里的 RL 不一定直接拿来优化列表、token 或 rank,它也可以先用来优化“给推荐器喂什么 profile”。

从论文 2.4 和附录 6.6 看,这条 RL 链路至少有三个明确特征:

  1. 训练对象是用户 profile 的生成质量,而不是推荐列表本身。
  2. 训练入口是显式的 reward model + PPO
  3. reward model 的负样本并不只是随机劣质文本,还专门包含 similar user profiles,目的是压制 collaborative filtering 里常见的 over-smoothing。

这一点很关键。

因为它说明 RecLM 不是把 RLHF 套到推荐器外壳上,而是在试图解决一个更中间层的问题:

LLM 根据相似用户和 item 文本生成 profile 时,怎样避免 profile 被太多邻居“抹平”,或者被噪声 side information 带偏。

论文里的 case study 也正对应这个判断。作者拿 MIND 里的一个用户例子展示:只做 instruction tuning 时,profile 里会混入一些受相似用户影响过强的无关关键词;加上 RL 之后,profile 会更贴近目标用户自己的交互偏好,同时只保留真正有用的隐式协同信号。

所以如果只把 RecLM 简单写成“冷启动推荐 + LLM + RL”,仍然太粗。

对 Story Lab 更有用的结构化写法应该是:

  1. LLM 角色:representer / profile constructor
  2. feedback source:reward model 训练数据来自 profile 质量构造
  3. reward consumption mode:reward model + PPO
  4. 优化单位:profile text / profile response
  5. 集成层profile constructor / representer adapter
  6. downstream consumerBiasMF / NCF / LightGCN / SGL / SimGCL

这也让 RecLM-genRecLM-embRecLM 之间的边界更清楚

这轮还有一个顺手补清的点:

RecLM 这个名字现在很容易误导人。

微软 RecAI 里的 RecLM-gen,本质上更接近 controllable recommendation 的 policy 对齐线;RecLM-emb 更像 retrieval representation;而 HKUDS 这篇 RecLM: Recommendation Instruction Tuning,则把主战场放在 profile constructor

也就是说,中文世界里如果只写“RecLM 在做推荐对齐”,很容易把三条不同路线混成一条:

  1. policy 对齐
  2. retrieval representer
  3. profile constructor

这一轮补录之后,Story Lab 至少可以把这三者明确拆开。

中文传播层这轮仍然偏弱

这一轮我也继续补做了 RecLM Recommendation Instruction Tuning 中文site:xiaohongshu.com RecLM 推荐xhslink RecLM 推荐 检索。

结果仍然比较弱:

  1. 稳定的一手中文机制稿几乎没有。
  2. 能看到的中文页面以 AI 摘要页和泛论文转述为主,不适合单独裁定事实。
  3. 截至 2026-03-21,没有拿到足够稳定、可复用的高价值 xhslink

所以这条线目前仍应以 ACL 论文、arXiv HTML、官方仓库与 GitHub API 为主。

证据与来源

  • RecLM: Recommendation Instruction Tuning:ACL 2025 论文主入口,确认它是 model-agnostic 的 recommendation instruction tuning 框架,而不是另一个端到端生成式推荐器。
  • arXiv:2412.19302:确认论文提交时间为 2024-12-26,最终版本更新时间为 2025-06-01,摘要明确写出 reinforcement learning reward function、plug-and-play compatibility 与 collaborative filtering integration。
  • arXiv HTML2.4 与附录 6.6 明确给出 reward model + PPOsimilar user profileslow-quality responses 两类负样本构造,以及 RL 用来修正噪声和 over-smoothing。
  • HKUDS/RecLM:README 直接公开 reward_modeling.pyrl_training.pyinference_base_mask.pybase_models/ 集成入口,确认这条路线已经开放到代码层,而不是只停在 paper-level。
  • GitHub API HKUDS/RecLM:我在本轮核到仓库创建时间为 2024-12-24 14:57:19 UTC,最近一次代码 push 为 2025-06-02 09:45:53 UTC,说明公开仓的时间线与论文最终版本基本对齐。
  • 本地 search-layer 深搜 RecLM Recommendation Instruction Tuning 中文、公开网页检索 site:xiaohongshu.com RecLM 推荐xhslink RecLM 推荐:截至 2026-03-21,仍未找到稳定高价值中文机制稿或可复用 xhslink

下一步

  • 把统一方法表里的 集成层 从三类扩到四类,显式补出 profile constructor / representer adapter
  • LLM 角色 × 集成层 两维上,把 RecLMRecLM-genRecLM-embRec-R1 放在同一张对照表里,避免再把 representerpolicyprofile constructor 混写。
  • 后续继续追这条线是否出现更完整的权重卡、工业复现笔记或稳定中文高价值讨论,尤其是可复用的 xhslink