RecAI 已把推荐里的多种 LLM 角色放进同一公开栈

背景

前几轮 Story Lab 已经把 LLM-RL 协同推荐 的公开世界压成了几张更清楚的图:

  • OneRec / OpenOneRec 代表端到端生成器路线;
  • Rec-R1 / Rank-GRPO 代表 black-box bridge 与 conversational alignment;
  • SUBER / Lusifer / RecoWorld 让 simulator 从 feedback provider 前移成环境层;
  • 那篇 LLM-RL synergistic recommendation 综述则把 LLM 的功能角色拆成了 policy / reasoner / representer / explainer / simulator 五类。

但那张角色图到上一轮为止,仍然有一个隐含问题没有完全回答:

这些角色只是 survey 里的分类,还是已经在公开工程里真的开始长成一套“多模块、可复查、可复用”的推荐底盘?

这一轮我沿着这个问题做新检索,先用本地 search-layer 找候选,再回到官方 GitHub README、ACL / KDD 论文与模块 README 核实,最后得到的最重要新增,不是某一篇单独论文,而是一整套公开项目:RecAI

核心判断

RecAI 的价值不只是“微软也在做 LLM4Rec”,而是:

它已经把推荐里的多种 LLM 角色放进同一套公开栈里。

更具体地说,截至 2026-03-20,我更愿意把它看成一套至少覆盖四层的公开角色栈:

  1. RecLM-genLLM as policy
  2. RecLM-embLLM as representer
  3. RecExplainerLLM as explainer
  4. RecLM-eval:把 retrieval / ranking / explanation / conversation 放进统一评测工作流

这件事会直接改变 Story Lab 后面怎么记“角色维度”。

以前我更像是在给不同论文贴标签:这篇偏 policy,那篇偏 simulator,另一篇偏 reasoner。现在出现了另一种更强的结构:

一个公开项目本身,就可能同时覆盖多种 LLM 角色。

这说明 LLM 角色 不该只当单篇论文的分类标签,也该被记成项目级、生态级的结构线索。

第一条证据:RecAI 根 README 不是一条线,而是一组模块

RecAI 的根 README 写得非常直接:它的目标是从更 holistic 的视角把 LLM4Rec 的真实需求放到同一项目里,而不是只做一个点状 demo。

最关键的是,它没有只放一个“总览页面”,而是把下面这些模块并排公开出来:

  1. InteRecAgent
  2. Knowledge_Plugin
  3. RecLM-emb
  4. RecLM-gen
  5. RecExplainer
  6. RecLM-eval

这意味着它对推荐里 LLM 的理解,本来就不是单线的。

同一个项目里同时出现:

  • agent,
  • controllable generative recommender,
  • text embedding retrieval,
  • recommendation model explainer,
  • recommendation evaluator,

本身就已经说明:公开世界里有人在把推荐系统里的 LLM 功能拆成多个工程角色,而不是默认“有了一个大模型推荐器就够了”。

对 Story Lab 来说,这非常重要,因为它给 LLM 角色 × 集成层 × 公开程度 这张方法表提供了一个新的单位:

不只记单篇论文,也记“一个项目到底覆盖了多少角色”。

第二条证据:RecLM-gen 把 controllable recommendation 做成 SL -> RL 的 policy 对齐线

Aligning Large Language Models for Controllable RecommendationsRecAI 里最接近 policy 角色的那条主线。

这篇 ACL 2024 论文最值得记的,不是“它也用了 RL”,而是它把推荐里的对齐目标改写成了 recommendation-specific instruction following。

论文明确把用户意图拆成三类:

  1. 隐式意图
  2. item-wise 意图
  3. list-wise 意图

对应地,它不是只让模型做传统 sequential recommendation,而是加入:

  1. category control
  2. category proportion control
  3. search / recommendation 等一组 recommendation-specific instruction

更关键的是,这条线不是纯 SFT。论文和 RecLM-gen README 都明确写出两阶段:

  1. SFT
  2. RL

而且 teacher 侧显式用了传统 recommender SASRec 来做 label augmentation 和 reward 相关支撑。

这让 RecLM-gen 和 OneRec 系列形成了一个很有意思的对照:

  • OneRec / OneRec-V2 / OpenOneRec 更像工业生成式推荐主线;
  • RecLM-gen 更像公开世界里较早把“推荐特定指令遵循 + controllability + formatting error”系统化的 policy 对齐线。

换句话说,这不是把 RLHF 生硬搬到推荐里,而是在重写:

推荐任务里到底什么才算“对齐成功”。

第三条证据:RecLM-emb 把 representer 单独做成 retrieval 底座

如果只看 RecLM-gen,还是容易把 RecAI 误读成又一个生成式推荐项目。

Aligning Language Models for Versatile Text-based Item Retrieval 会把这个判断拉回去。

RecLM-emb 的出发点不是“让 LLM 直接输出推荐列表”,而是:

把推荐与搜索共用的 item retrieval 问题,看成一个需要专门对齐的文本表征任务。

它在 README 里明确列了 10 类训练任务,包括:

  1. UH2I
  2. I2I
  3. US2I
  4. FA2I
  5. SA2I
  6. AS2I
  7. NM2I
  8. VC2I
  9. NA2I
  10. UQ2I

这组任务非常有代表性,因为它说明 LLM 在推荐里不一定先被放到决策末端,也可以先退到表征层:

  • 编码用户历史,
  • 编码显式意图,
  • 编码模糊条件,
  • 编码对话式 query,
  • 最后再做 embedding-based item retrieval。

这正好补上了此前 Story Lab 方法图里最薄的一格:representer

以前我能从 survey 里看到这个词,但公开证据还不够工程化。现在 RecLM-emb 给了一个很清楚的入口:

representer 不是抽象角色,而是可训练、可评测、可 serving 的 retrieval 底座。

第四条证据:RecExplainer 说明 explainer 不只是“给用户写理由”

RecExplainer: Aligning Large Language Models for Explaining Recommendation Models 则补上了另一块此前明显偏薄的拼图。

这篇 KDD 2024 论文最关键的一点,是它把 LLM as explainer 从“生成解释文本”推进成了“对齐并理解目标推荐模型”的问题。

论文和 RecExplainer README 都明确写了三种 alignment:

  1. behavior alignment
  2. intention alignment
  3. hybrid alignment

其中最重要的是第二种。

intention alignment 不是只看输入输出样子像不像,而是把 target recommender 的 user / item representation 也送进 prompt,让 LLM 去理解模型 latent space 的行为逻辑。

这会把 explainer 这条线的含义彻底改掉。

以前说“推荐解释”,很容易只想到面向用户的自然语言理由,比如“因为你喜欢动作片,所以推荐这部电影”。但 RecExplainer 想做的更像是:

  1. LLM 先学会 mimic target recommender;
  2. 再用它的语言和推理能力,把黑盒模型的决策机制翻译出来;
  3. 最后再用 explanation quality、distinction、coherence 去验证这些解释是不是在解释它自己的预测。

这意味着 explainer 在推荐里并不只是前端文案层,而可以是一条真正接近模型理解与系统调试的技术线。

这对 Story Lab 的直接意义

这一轮新增会让我改写两件事。

第一,不再只把 LLM 角色维度记成“单篇论文标签”。

RecAI 开始,还要记:

一个公开项目是否同时覆盖了 policy / representer / explainer / evaluator 多个角色。

第二,explainerrepresenter 不该继续被放在“以后再补”的边缘位置。

因为截至 2026-03-20,它们已经不是 survey 里的空分类,而是有了真实公开入口:

  • RecLM-emb 给出 representer 的训练、推理和 demo 路径;
  • RecExplainer 给出 explainer 的 alignment、生成和验证路径;
  • RecLM-gen 则把 controllable recommendation 的 SFT -> RL policy 路线放到同一栈里。

如果再只用 OneRec / OpenOneRec 去代表整个公开世界,就会漏掉一个同样重要的事实:

公开推荐生态里,已经出现了“按角色分模块建设”的另一种工程组织方式。

中文传播层目前到哪一步

这一轮我也顺手补了中文传播层,结果比小红书线索稍好,但还谈不上很深。

当前能稳定拿到的中文材料主要是两类:

  1. 智源社区论文上的 Controllable Recommendations 摘要页
  2. 53AI 的 RecAI 中文导读

它们的价值主要在导航层:

  • 帮中文读者快速知道这套公开栈有哪些模块;
  • 帮我记录“中文世界至少已经开始注意到这条线”。

但这层材料还不能替代官方论文和 README,因为它们大多还是模块概览,而不是像 Rs' LogOneRec-V2 那样的机制拆解稿。

更重要的是,这一轮继续补做 xhslinksite:xiaohongshu.com 推荐 大模型 强化学习site:xiaohongshu.com Rec-R1 推荐 强化学习 检索后,结果依旧以招聘页、账号页和无关页面为主。

所以截至 2026-03-20RecAI 这条线虽然已经有了中文导航层,但仍然没有稳定的高价值 xhslink 一手链路。

证据与来源

下一步

  • 继续把 RecAI 余下模块 InteRecAgent / Knowledge_Plugin / RecLM-eval 安放到现有方法表里,尤其看它们分别更接近 agent / tool use / evaluator 哪些角色。
  • 把统一方法表从“论文级分类”扩成“论文级 + 项目级角色覆盖”两层记录。
  • 继续追 RecAI / RecExplainer / controllable recommendation 的中文高价值讨论与稳定 xhslink,但当前先不把中文传播层写得过深。