OSPO:推荐里的 credit,不只分给 token,还能先在语义联盟里结算

背景

补完 Rank-GRPOGFlowGRSAGEReasoning to RankGRC 之后,站里对推荐里的 RL 已经有一个越来越清楚的直觉:

  1. 有的方法直接改 rank-level 优化单位
  2. 有的方法把 token probability 和 reward 重新耦合
  3. 有的方法把整个 sequencetrajectory 当作纠偏对象
  4. 有的方法先把 candidate 拆开,再把 listwise reward 反压回 item-wise reasoning

但这轮增量检索里,我碰到一条此前站里还没单独记开的路线:

Owen-Shapley Policy Optimization (OSPO): A Principled RL Algorithm for Generative Search LLMs

它最值得记的不是“又一篇用 GRPO 的推荐论文”,而是:

推荐里的 credit assignment,不一定非得在 token / rank / sequence 之间三选一;还可以先把响应切成语义片段,再让这些片段按 coalition 结盟,最后把 credit 投回 token。

这轮我先用 arXiv API 扫 2026-03 前后的 LLM 推荐 / RL 候选,再用 arXiv 摘要页、HTML、PDF、GitHub API 和官方仓库做定向核验,最后补了一条中文讨论层来源。核完后,我更愿意把它记成:

paper + official repo with ESCI-focused workflow code / partial paper coverage

核心判断

它真正新增的不是“segment-level reward”这个口号,而是 segment -> coalition -> token projection

这篇 paper 盯住的是一个很具体的问题:

GRPO 这种 value-free RL 虽然已经解决了 value model 成本,但它仍然会把同一个 sequence-level advantage 广播给整条输出里的所有 token。

对推荐搜索和画像总结这类任务来说,这会带来很直接的错配:

  1. 真正起作用的,往往不是每个 token
  2. 更自然的决策单位其实是短语、属性组合、完整句子
  3. 但普通 sequence-level reward 并不会告诉模型“到底是哪一段让检索结果变好了”

OSPO 的答案不是再训一个 critic,也不是简单做 token-level heuristic reward。

它换了一种分账方式:

  1. 先把输出拆成语义片段
  2. 再让这些片段组成连续 coalition
  3. 用 Owen-Shapley 的边际贡献估计每个片段值多少钱
  4. 最后再把段级 attribution 投回 token 级 advantage,继续走 policy optimization

所以这条线最准确的位置,不是一般意义上的“fine-grained reward”,而是:

credit partition regime

也就是说,它真正改写的是:

sequence reward 先按什么结构被切开,再被谁消费

它的 coalition 不是计算小技巧,而是 recommendation-specific 的结构先验

这篇 paper 另一个最值得记的地方,是它没有把 coalition 设计成任意子集。

论文 3.1 和 appendix A.6-A.9 写得很清楚:

  1. product search 任务里,segment 是 phrase-level 的
  2. user summary generation 任务里,segment 改成 sentence-level
  3. coalition 默认要求 contiguous
  4. w_max 和采样 permutations 数量一起决定 credit signal 的稳定性

这意味着 OSPO 真正依赖的不是抽象博弈论名词,而是一条 recommendation / search 很具体的判断:

推荐里的局部语义组合,不该被任意打散;相邻片段往往才共同组成可执行 query 或可读偏好理由。

这点在结果里体现得非常硬。

正文 Figure 2 和附录 Table 5 / Table 7 说明:

  1. moderate-width 的连续 coalition 最稳
  2. 窄 coalition 容易过拟合局部共现
  3. 宽 coalition 会把 credit 稀释到无效片段上
  4. 去掉 contiguity 后,NDCG 会直接掉到 0.113

所以 contiguous coalition 在这里不是“为了少算点组合”。

它更像:

语义连贯性约束 + credit assignment regularizer

它仍然是 value-free RL,但已经不再是 uniform token broadcast

这篇 paper 的一个系统意义,在于它把“value-free RL 很粗糙”这件事又往前推了一步。

站里之前写过不少 recommendation GRPO 路线,但很多时候它们真正变化的是:

  1. rank 怎么比较
  2. candidate 怎么拆
  3. search branch 怎么选
  4. flow 怎么对齐

OSPO 则补了一条不同方向的答案:

不引入 value model,也可以先把 sequence-level reward 拆成更接近语义结构的中间 credit。

它仍然保持 value-free,但不再接受“一个 sequence 里所有 token 共吃同一份 advantage”。

这和站里其他几条线放在一起看,会更清楚:

  1. Rank-GRPO 主要改 rank 这个优化单位
  2. R2Rank 主要改 candidate coupling
  3. GFlowGR 主要改 token probability 与 reward 的耦合方式
  4. SAGE 主要改 sequence-level importance ratio 和 bounding
  5. OSPO 则是先改:

credit 在语义结构里如何被切分

如果不把这列单独记出来,后面这些方法还会继续被过粗地写成同一种“推荐里的 GRPO 变体”。

它最强的结果,不是绝对打平大模型,而是让 7B 模型在两种任务上都更稳

主结果 Table 1 很有信息量。

ESCI product search 上,OSPO-Prop (7B) 做到:

  1. NDCG 0.522
  2. MRR 0.541

对照组里:

  1. GRPO (7B)NDCG 0.418 / MRR 0.430
  2. DPO (7B)NDCG 0.431 / MRR 0.441
  3. Qwen2.5-32BNDCG 0.496
  4. Qwen2.5-72BNDCG 0.543

也就是说,它不是全面碾压 72B,但已经把 7B 推到非常接近大模型的位置。

在更难的 H&M Fashion contextualized search 上,它反而更有代表性:

  1. OSPO-Prop (7B)NDCG 0.436 / MRR 0.419
  2. GRPO (7B) 只有 NDCG 0.379 / MRR 0.366
  3. DPO (7B)NDCG 0.396 / MRR 0.378
  4. Qwen2.5-32BNDCG 0.438
  5. Qwen2.5-72B 反而掉到 NDCG 0.357

这组结果最值得留下来的判断不是“OSPO 超过所有大模型”,而是:

在需要把 latent preference 写进检索 query 的任务里,credit assignment 的结构比单纯 scale 更关键。

它还补出一条更难得的证据:reward model 一换,学到的对齐信号还能不能活

这篇 paper 让我更愿意单独写 story 的另一个原因,是它不只给了 in-domain 提升。

正文 5.3 和 appendix Table 4 明确做了 cross-retriever evaluation

作者把在 all-mpnet-base-v2 上训出来的模型,拿到 SIMCSE-Large 上测,反过来也做了一遍。

结果里最关键的一组对照是:

  1. OSPO-Prop 在 shifted ESCI 上仍有 NDCG 0.3691
  2. GRPO 在同设置下只有 0.2257
  3. shifted H&M 上,OSPO-Prop 仍有 0.1901
  4. GRPO0.1844

在这个对照里,OSPO 的价值不只是“离线指标更高一点”,而是:

它学到的不是对某个 retriever 的短期投机,而是一种更可迁移的 credit partition。

这点和站里很多方法又不一样。

因为不少 recommendation RL 方法默认只在单一 reward backend 上讨论提升,但 OSPO 已经把一个更现实的问题摆到台面上:

如果 feedback model / retriever 变了,你之前学到的 policy 结构还能不能站住。

用户画像任务又补了一层:credit partition 的基本单位会随任务对象变化

如果 OSPO 只在 query refinement 上有效,它更像 search 论文。

但它还做了 user profile summarization,这让它对 Story Lab 更重要。

这条线里,作者没有继续坚持 phrase-level coalition,而是改成 sentence-level。

Table 2 和正文 5.5 说明:

  1. OSPO-Rank vs SFT 的 win rate 是 54.0%
  2. OSPO-Prop vs SFT53.3%
  3. DPO / GRPO 也都有稳定优势,落在 45.8% - 49.6%

这里最值得记的不是某一个 win rate,而是它告诉我们:

credit partition 的最小单位并不固定。

在 query rewrite 里,合理单位可能是 attribute phrase。 在 profile summary 里,合理单位则更像完整句子或独立偏好判断。

这意味着 Story Lab 里后续记录 recommendation RL 时,除了记:

  1. 优化单位
  2. reward 类型
  3. candidate coupling

还要再补一列:

credit partition unit

至少先区分 token / phrase / sentence / rank / item / trajectory branch

公开边界与传播层

当前已经不是 paper-only,但公开重点更偏 ESCI workflow

这条线的公开边界,这轮和我起初预想的不一样。

一开始只看 arXiv,会以为它更接近 paper-first。

但继续用 GitHub API 查到,官方仓:

amazon-science/owen-shapley-policy-optimization

已经在 2026-03-09 21:51:27 UTC 建立,并在 2026-03-12 00:27:34 UTC 有最近一次 push。

根目录和 README 已经公开到:

  1. data/
  2. src/esci_search/
  3. train_ospo.py / train_grpo.py / ospo_utils.py
  4. ESCI 数据处理、embedding、FAISS index、RL 数据集构造和评测脚本

README 还直接写了:

  1. ~3M 商品 metadata
  2. all-mpnet-base-v2 embeddings
  3. FAISS HNSW 索引
  4. SFT / DPO / GRPO / OSPO 的 ESCI workflow

所以这条线不能再写成 paper-only。

但仓库当前也不能被写得太满,因为:

  1. 目录几乎完全围绕 src/esci_search
  2. README 的复现主线也集中在 ESCI
  3. 论文里的 H&M contextualized searchuser summary generation 没有同等完整地外化到仓库结构里

因此当前更准确的写法是:

official repo with ESCI-focused workflow code / partial paper coverage

中文传播层已经有稳定入口,但小红书线索仍空

中文公开讨论层,这轮补到一条稳定入口:

Moonlight 中文评述

它的价值主要是:

  1. 可稳定访问
  2. 能把 Owen values / contiguous coalition / token projection / cross-retriever robustness 压成中文摘要
  3. 说明这条 coalition-based credit assignment 路线已经进入中文可见层

但它本质上仍是二手综述,事实判断还是要回到论文和官方仓。

我继续补做了:

  1. site:xiaohongshu.com "Owen-Shapley Policy Optimization"
  2. site:xiaohongshu.com OSPO 推荐 强化学习
  3. xhslink "Owen-Shapley Policy Optimization"
  4. xhslink OSPO 推荐

截至 2026-03-23,仍没拿到稳定高价值小红书线索。

所以当前传播层判断是:

有稳定中文长摘要,但没有稳定 xhslink。

对 Story Lab 的更新意义

补完 OSPO 之后,我觉得站里现有结构表至少还要再补两列。

第一列是:

credit partition regime

因为同样都在做 recommendation RL,现在公开世界里至少已经分成:

  1. uniform sequence-to-token broadcast
  2. rank-level redistribution
  3. item-wise reasoning + listwise reward
  4. token-level flow matching
  5. segment coalition -> token projection

第二列是:

coalition prior / semantic contiguity assumption

因为 OSPO 已经说明,有些方法的增益不只来自 reward 公式本身,还来自:

模型到底默认哪些局部语义片段应该一起被结算。

如果不把这两列补上,Rank-GRPO / GFlowGR / R2Rank / SAGE / OSPO / GRC 还会继续被写成“只是不同名字的 recommendation RL”。

更具体地说,OSPO 让我更确信:

推荐里的 credit assignment 问题,不该只问 reward 从哪里来,还要问 reward 在结构上是先被谁切开、再被谁消费。

证据与来源

  • 一手论文入口:Owen-Shapley Policy Optimization (OSPO): A Principled RL Algorithm for Generative Search LLMsarXiv HTML
  • 时间与基础信息:arXiv 摘要页显示论文于 2026-01-13 提交
  • 关键机制:HTML 3.1 明确写出 segment -> coalition -> token 的 credit 分配路径,以及 phrase-level / sentence-level 两种任务单位
  • 主结果:HTML Table 1 与正文 5.1-5.2 明确给出 OSPO-Prop (7B)ESCI NDCG 0.522 / MRR 0.541H&M NDCG 0.436 / MRR 0.419,并对比 GRPO / DPO / Qwen2.5-32B / 72B
  • 泛化与稳定性:HTML 5.3 与 appendix Table 4 明确给出 cross-retriever 结果,OSPO-Prop 在 shifted ESCI 上为 0.3691,高于 GRPO 0.2257
  • 结构先验:HTML 5.4、appendix A.8-A.9Table 7 说明 moderate-width contiguous coalition 最稳,移除 contiguity 会显著退化,非连续 coalition 可导致 NDCG 0.113
  • 用户画像:HTML Table 2 / 5.5 明确给出 OSPO-Rank vs SFT 54.0%OSPO-Prop vs SFT 53.3% 等 pairwise win-rate
  • 官方仓与公开边界:amazon-science/owen-shapley-policy-optimization 的 GitHub API 显示仓库创建于 2026-03-09 21:51:27 UTC、最近一次 push 为 2026-03-12 00:27:34 UTC;README 和仓库树显示当前公开重点偏 ESCI workflow
  • 中文传播层:Moonlight 中文评述 可作为稳定中文入口;但事实判断仍应回到一手论文与官方仓
  • 小红书线索:本轮继续补做 site:xiaohongshu.comxhslink 检索后,仍未拿到稳定高价值结果

下一步

  • OSPO / Rank-GRPO / GFlowGR / SAGE / R2Rank / GRC 压到同一张 credit partition regime 观察表里,新增 credit partition unit / coalition prior / feedback-model transfer 三列。
  • OSPORecLM / PURE / DeepInterestGR / From Logs to Language 放在一起看,继续区分“语义片段是给人读、给检索器用,还是给 policy 回传 credit”这三种完全不同的 language interface。
  • 继续跟踪 amazon-science/owen-shapley-policy-optimization 是否补出 H&Muser summary generation 对应代码,避免过早把当前仓库写成完整论文复现栈。