← 返回论文列表
📄 论文解读 · Search Relevance × RL × LLM

用强化学习优化生成式搜索相关性:小红书的 SAM+GRPO 工业级方案

Optimizing Generative Ranking Relevance via Reinforcement Learning in Xiaohongshu Search

作者
Zeng, Jing, Chen, Li et al. · 小红书 + 北京邮电大学
发表
KDD 2026 · arXiv 2512.00968
场景
小红书搜索的相关性排序(工业级)
核心命题
过程监督 RL 比 SFT 更高效地训练搜索相关性推理
💡一句话总结

小红书搜索团队将相关性评估建模为多步推理任务,设计了一套"行业规则引导 + 过程监督 RL"的训练范式。核心发现是:SFT 加入多步推理反而大幅变差,但用 SAM(Stepwise Advantage Masking)+ GRPO 的过程监督 RL 不仅恢复还超过了纯标签 SFT,且数据效率极高(200K 样本超过 SFT 1M 样本)。在线部署蒸馏为 0.1B BERT,CES 提升 0.72%,DCG 0/1 降低 0.36%。

📄 原文:https://arxiv.org/abs/2512.00968

🏷️ 会议:KDD 2026 (32nd ACM SIGKDD Conference)

🔗 基础模型:Qwen2.5-32B-Instruct → RedOne(小红书领域模型)

三句话核心贡献:
① 将小红书搜索相关性建模为 CoT 推理任务,把平台多年积累的专家规则纳入 prompt 作为伪公理;
② 提出 SAM(Stepwise Advantage Masking),用规则验证器实现零成本步骤级信用分配;
③ 发现 SFT + 推理反而有害,但过程监督 RL 能逆转此趋势,数据效率远超纯监督方法。
🔍背景与动机

传统黑盒模型的三重限制

搜索相关性是搜索引擎最基础的能力——判断用户查询(query)和内容笔记(note)是否相关。小红书搜索每天处理数亿次查询,传统方案用一个标量判别模型(如 BERT)输出"相关/不相关"概率,有三个根本问题:

1
不可解释(Black Box)

模型输出一个分数,但无法解释为什么。出了 bad case 很难诊断是哪里出错,迭代依赖盲猜。

2
知识容量有限

小模型难以理解复杂语义关系。比如"多肉植物冬天怎么浇水",传统模型可能只匹配关键词,无法理解"冬天→休眠期→少浇水"的推理链。

3
开放域搜索的歧义性

小红书的 query 和 note 都是非结构化文本,存在大量模糊场景。通用自由推理无法处理这些歧义,需要领域特定的规则引导。

Figure 1: 推理 vs 不推理的相关性对比
Figure 1(论文原图):显式推理增强了相关性的可解释性和效果。查询"植物为什么需要光来生长",推理模型通过光合作用原理推导出笔记部分回答了该问题(2分),而不推理模型无法建立这种连接(0分)。

为什么 SFT + CoT 推理反而更差?

自 DeepSeek-R1 成功后,直觉上"加多步推理 + SFT 微调"应该更好。但论文的实验结果给出了一个非常反直觉的发现

SFT-Label(200K 纯标签数据,无推理):2-ACC 90.26 / 5-ACC 78.64
SFT-Reasoning-v1(150K CoT 数据):2-ACC 80.10 / 5-ACC 59.44
SFT-Reasoning-v2(500K CoT 数据):2-ACC 83.04 / 5-ACC 63.06
→ SFT + 推理在所有指标上都大幅变差,即使数据量多了 2.5 倍。

原因:SFT 的 teacher-forcing 训练只优化"逐词预测"的似然度,不区分哪些推理步骤对、哪些错。模型学会了推理的格式,但学不会推理的质量。推理链引入了更多错误点,而 SFT 无法有效纠正。

关键洞察:这打破了 GRM 研究界的隐含假设——"多步推理自然会提升排序质量"。实际上,没有合适优化的推理反而有害。这就是需要 RL 介入的根本原因。

数学推理 vs 搜索相关性:本质差异

论文指出了为什么 DeepSeek-R1 在数学上的成功不能直接复制到相关性:

🧮 数学/代码任务

客观,受通用公理和形式逻辑约束。LLM 预训练已学到基础知识,RL 只需在已有知识上自由探索。

🔍 搜索相关性任务

主观领域特定。相关性标准与平台业务语境和用户生态紧密耦合。没有领域引导,模型无法通过无约束探索推断出正确的相关性标准。

这就是论文选择两条关键路径的原因:(1)将平台积累的专家规则注入 prompt,提供"伪公理"作为推理的先验知识;(2)用过程监督 RL 确保模型每一步推理都正确内化这些规则。

🧪方法详解

整体训练流水线

整个方法分为四个阶段:

① Prompt 设计
行业规则 → 三步推理
② SFT 预热
DeepSeek-R1 蒸馏
+ Rejection Sampling
③ SAM+GRPO RL
步骤级信用分配
强化学习优化
④ 蒸馏上线
32B → 0.1B BERT
P95 ~20ms

任务定义:对每个 query-note 对 $(q, n)$,预测相关性标签 $y \in \{-1, 0, 1, 2, 3\}$,分别对应"强烈不相关、不相关、弱相关、部分相关、完美相关"。

Criteria-Augmented Prompt:三步推理

论文将小红书搜索团队多年积累的相关性评估标准直接编码到 prompt 中。这些规则包含通用原则(查询分析、分类匹配、关键词匹配、内容占比分析等)和专门处理边缘情况的细则。

1
Step 1:通用语义分析(General Semantic Analysis)

模型对 query 和 note 进行高层语义比较:查询意图分析、分类体系匹配、关键词匹配、内容占比分析等。输出初步相关性分数(宏观角度)。

2
Step 2:规则上界分析(Rule-based Upper Bound Analysis)

根据专门规则,判断当前场景下的相关性上界。如"比较类查询,笔记只覆盖一个对比项 → 最多 1 分"。多条规则触发时取最严格限制。

3
Step 3:最终反思与判断(Final Reflection and Judgment)

综合前两步输出——初始相关性估计 + 上界约束——进行最终判断。$\hat{l}$ 必须满足"语义合理"且"不超规则约束"。

Figure 3: 规则增强 prompt 原型
Figure 3(论文原图):规则增强 prompt 原型。注意每步末尾的 \boxed{} 格式——这是后续 SAM 进行步骤级验证的基础设施。
设计亮点:Step 1 和 Step 2 都输出分数但角色不同——Step 1 是"语义上有多相关",Step 2 是"规则允许最高几分"。最终 = min(Step1, Step2)。很像人类评估员:先凭感觉给分,再用检查清单校准。
💡 举例:比较类查询 + 信息不完整规则

搜索 "iPhone 15 vs 华为 Mate 60 哪个好",笔记只详细对比了 iPhone 15,对华为只提了一句"也不错"。

Step 1(语义分析):笔记涉及 query 中的 iPhone 15 → 可能给 2 分

Step 2(规则上界):触发"Incomplete comparison information"规则 → 上界 1 分

Step 3(最终判断):min(2, 1) = 1 分。降级原因是笔记没有完整覆盖比较需求。

💡 举例:内容占比规则

搜索 "北京烤鸭做法",笔记是 3000 字长文,只有一个 200 字段落提了基本做法(其余是各地烤鸭历史对比)。

Step 1(语义分析):笔记确实包含"做法"内容 → 可能给 3 分

Step 2(规则上界):触发"相关内容占比过低"规则(<10%) → 上界 1-2 分

Step 3(最终判断):1-2 分。语义匹配但用户点进去会发现大部分内容与需求无关。

蒸馏 SFT 预热(Warm-up)

直接冷启动做 RL 会导致模型不遵循三步指令,所以先 SFT 预热:

1
生成 CoT 数据

DeepSeek-R1 作教师,对 50K queries × 20 notes = 1M 样本生成三步推理轨迹。

2
Rejection Sampling + 分布恢复

只保留最终预测与人工标注一致的轨迹,重采样恢复原始标签分布。最终 500K 条有效轨迹。

3
NLL 训练

标准 SFT,让模型学会三步推理的格式和基本思维模式。

$$ \mathcal{L}_{\text{distill}}(\theta) = -\sum_{(p,q,n,\hat{\mathbf{o}}) \in \mathcal{D}'_{\text{distill}}} \sum_{t=1}^{T} \log \pi_{\theta}(\hat{o}_t \mid p, q, n, \hat{o}_{1},\ldots,\hat{o}_{t-1}) $$
符号说明
  • $\mathcal{D}'_{\text{distill}}$:rejection sampling 过滤后的蒸馏数据集(500K)
  • $(p, q, n, \hat{\mathbf{o}})$:prompt、query、note 和 DeepSeek-R1 生成的参考推理轨迹
  • $\hat{o}_t$:推理轨迹中第 $t$ 个 token,$\pi_{\theta}$:待训练模型

过程监督 RL:GRPO + SAM

这是论文最核心的创新部分。

为什么选 GRPO?

GRPO 是 PPO 的变体,不需要学习价值函数,而是在组内标准化奖励。对每个 prompt 采样 $G=8$ 条回复,用组的均值和标准差估计优势。在可验证任务(数学推理 + 本文的相关性)上比 PPO 更稳定高效。

$$ \max_{\pi_{\theta}} \mathbb{E}_{(p,q,n,l) \sim \mathcal{D}, \mathbf{o} \sim \pi_{\theta}(\cdot \mid p,q,n)}\big[\mathcal{R}(\mathbf{o}, l) - \beta \;\mathbb{D}_{\mathrm{KL}}(\pi_{\theta} \| \pi_{\mathrm{ref}})\big] $$
符号说明
  • $\pi_{\theta}$:当前策略模型(GRM),$\pi_{\text{ref}}$:RL 前的参考模型
  • $\mathcal{R}(\mathbf{o}, l)$:奖励函数——预测正确 = 1,否则 = 0
  • $\beta = 10^{-3}$:KL 惩罚系数,防止策略变化过大

GRPO 的优势函数通过组内标准化计算:

$$ \hat{A}_{i,t} = \frac{r_i - \mathrm{mean}(\mathbf{R})}{\mathrm{std}(\mathbf{R})} $$
符号说明
  • $\mathbf{R} = \{r_1, \ldots, r_G\}$:同一 prompt 的 $G=8$ 条回复的奖励集合
  • $r_i$:第 $i$ 条回复的奖励(0 或 1)
  • $\mathrm{mean}(\mathbf{R}), \mathrm{std}(\mathbf{R})$:组内均值和标准差

SAM 机制深度解析

SAM(Stepwise Advantage Masking)是本文最巧妙的创新。它解决的核心问题是:

GRPO 的优势函数是 trajectory-level 的——如果一条推理链最终对了,所有 token 都得到正优势信号,包括那些推理错误的中间步骤。这导致"虚假奖励传播",强化了错误的推理模式。
Figure 2: SAM 机制示意图
Figure 2(论文原图):SAM 核心逻辑。每条推理链生成 $G$ 条回复,每步 boxed 分数与金标签对比得到 $(c_1, c_2, c_3)$。最终答案对只强化正确步骤、最终答案错只惩罚错误步骤。关键:零额外推理成本的过程监督。

步骤级正确性判定(零成本)

利用 prompt 中的 \boxed{} 格式在零额外成本下提取每步中间分数:

1
提取中间分数

从推理链 \boxed{} 输出中提取 $(s_1, s_2, s_3)$,$s_3$ = 最终预测 $\hat{l}$。

2
规则验证器判定

$c_i = \text{True}$ 当且仅当 $s_i = l$(金标签)。不需要学习——纯数值匹配。

3
构造 Advantage Mask

根据 $(c_1, c_2, c_3)$ 和最终结果一致性,决定每个 token 是否参与梯度更新。

$$ m_t = \begin{cases} 1, & \text{if } \hat{l} = l \land \text{step}(o_t) = i \land c_i = \text{True}, \\[4pt] 1, & \text{if } \hat{l} \neq l \land \text{step}(o_t) = i \land c_i = \text{False}, \\[4pt] 0, & \text{otherwise}. \end{cases} $$
符号说明
  • $m_t$:token $t$ 的 advantage mask(0 = 屏蔽梯度,1 = 允许通过)
  • $\hat{l}$:模型最终预测($s_3$),$l$:金标签
  • $\text{step}(o_t)$:token $o_t$ 所属步骤索引(1/2/3),由 boxed token 位置确定
  • $c_i$:第 $i$ 步是否正确($s_i = l$)
SAM 两条核心规则:
最终正确 → 只强化正确步骤(屏蔽错误步骤,避免强化偶然猜对的推理)
最终错误 → 只惩罚错误步骤(保护正确步骤,避免打击有效推理片段)
效果:防止"一荣俱荣、一损俱损"的粗粒度信用分配,每一步得失都能被精确追踪。
💡 举例:SAM 如何纠正训练

场景:金标签 $l = 2$(部分相关)。模型生成推理链:

Step 1(语义分析):$\boxed{1}$,错了 → $c_1 = \text{False}$

Step 2(规则上界):$\boxed{2}$,对了 → $c_2 = \text{True}$

Step 3(最终判断):$\boxed{2}$,对了 → $c_3 = \text{True}$,且 $\hat{l}=l$

没有 SAM:GRPO 对整个推理链所有 token 施加正优势 → Step 1 的错误推理也被强化了(模型学会"语义不对但靠后续弥补")。

有 SAM:Step 1 的 token 被 mask($m_t=0$),只有 Step 2 和 Step 3 得到正信号 → 模型学会每一步都要正确

💡 举例:avg@k 难度过滤策略

论文引入了巧妙的训练数据过滤——对每个样本用初始策略采样 $k=64$ 次推理,计算正确率 $\text{avg@64}$:

• $\text{avg@64} > 0.97$(5 类)→ 丢弃(太简单,RL 无梯度信号)

• $\text{avg@64} < 0.04$(2 类)→ 丢弃(太极端,可能是标注错误,破坏训练稳定性)

效果:去除两端极端后,保留有信息量但非平凡的样本,RL 更高效。

线上部署:知识蒸馏

32B 生成式模型不可能直接上线。论文策略:

1
教师标注 → 学生蒸馏

32B RL 模型对百万级 query-note 生成标注,只保留最终分数(不保留推理链),蒸馏到 0.1B BERT 5 分类器。

2
在线推理性能

P95 延迟约 20ms,成功率近 100%。关键妥协:推理过程只用于训练,上线保留推理"成果"(更好的决策边界),不保留推理"过程"

蒸馏 gap:学生模型 2-ACC 90.65 / 5-ACC 79.22,超过 SFT-Label 基线(90.26/78.64),但与教师模型(92.45/81.23)仍有明显差距,论文也承认蒸馏策略还有很大提升空间。
📊实验结果

实验设置

🏷️ 数据集

RANDOM(15K):随机采样 query,reflect 自然分布

LONGTAIL(15K):日 PV < 5 的长尾 query,更挑战

📐 指标

2-ACC:不相关(-1/0) vs 相关(1/2/3) 二分类准确率

5-ACC:5 分类准确率 | Macro F1 / Weighted F1

🧠 基座模型

Qwen2.5-32B-Instruct → RedOne(小红书领域模型)

训练硬件:SFT 16×H800,RL 40×H800

🔬 对比方法

SFT-Label / SFT-Reasoning-v1/v2 / PPO / OutcomeRL(GRPO)/ ProcessRL(SAM+GRPO)

主实验:ProcessRL 为什么最强

ModelDataRANDOM 2-ACCRANDOM 5-ACCRANDOM Macro F1LONGTAIL 2-ACCLONGTAIL 5-ACCLONGTAIL Macro F1
SFT-Label200k90.2678.6465.6689.1177.6663.24
SFT-Reasoning-v1150k80.1059.4447.5277.5059.2247.45
SFT-Reasoning-v2500k83.0463.0651.7681.1563.5550.64
PPO-Reasoning150k+50k91.5678.8170.0489.7074.9663.74
OutcomeRL-Reasoning150k+50k92.0980.9072.4689.6277.0365.08
ProcessRL-Reasoning150k+50k92.4581.2373.5590.0477.7266.39

论文围绕两个研究问题组织分析:

RQ1:推理对 SFT 是帮助还是伤害?

纯标签 SFT(200K)已经在 RANDOM 达到 78.64 5-ACC。但 SFT-Reasoning-v1(150K CoT)暴跌到 59.44,即使 SFT-Reasoning-v2 扩充到 500K 也只恢复到 63.06。这表明多步推理在 SFT 框架下反而引入更多优化难度和错误模式

RQ2:过程监督 RL 真的能提升推理吗?

三个 RL 变体使用相同的数据、prompt 和奖励,差异仅在于信用分配方式:

  • PPO:78.81 5-ACC,依赖价值函数估计引入偏差,性能接近纯标签方案
  • OutcomeRL(GRPO):80.90 5-ACC,去掉价值头、组内标准化后更稳定,但统一分配优势
  • ProcessRL(SAM+GRPO):81.23 5-ACC + 73.55 Macro F1,两个基准上所有指标全面碾压

关键提升来自 Macro F1(+1.09pp over OutcomeRL),意味着 SAM 对小类(label -1, 1 等稀有情况)的改善尤为显著。

💡 举例:为什么 Macro F1 提升最重要?

Label -1(强烈不相关)和 Label 1(弱相关)是低频标签(各占 2-7%)。传统模型可能把大部分样本预测为 0(不相关)或 3(完美相关),对低频类几乎不学习。

SAM 的过程监督对每一步做精确纠偏,模型在低频类上学得更仔细。Label -1 的 F1 从 47.57 → 71.46(+23.89pp),效果极其显著。

数据效率分析

Figure 4: 数据效率分析
Figure 4(论文原图):数据效率对比。SFT-Label 从 100K→1M 的 5-ACC 从 77.06 提升到 80.88,500K 后接近饱和。ProcessRL 仅用 200K 总量(150K SFT + 50K RL)达到 81.23,超过 SFT 1M 的效果。
数据效率结论:ProcessRL 仅用 200K 总量达到 81.23 5-ACC,超过 SFT-Label 用 1M 数据训练的 80.88。这表明过程监督 RL 利用了逐步推理来获得更好的泛化能力,而非依赖大量标注数据的刻板模式匹配。对工业界来说,标注成本降低 5 倍是巨大的商业价值。

SFT vs RL:模型行为变化

论文通过细粒度分类指标分析了为什么 RL 更好:

🔍 2-类视角

"不相关"类 precision 82.67 → 90.31:更谨慎地判断不相关

"相关"类 recall 86.70 → 93.45:更积极地发现可能相关的内容

→ 显著减少了 SFT 的 under-recall 问题

🎯 5-类视角

Label -1 F1:47.57 → 71.46(+23.89pp!)

Label 1 F1:47.87 → 55.55(+7.68pp)

低频类的 precision 和 recall 同时提升 → 边界优化而非简单映射

这些数据说明 RL 不是简单地记忆输入-输出映射,而是通过优化推理过程本身来细化决策边界。

线上 A/B 测试

ModelΔCES ↑ΔDCG 0/1 ↓
Baseline00
Ours+0.72%-0.36%
指标说明
  • CES:综合互动指标(点赞、收藏、评论、分享、关注),↑ 表示用户参与度提升
  • DCG 0/1:人工评估前 8 条结果中不相关结果数,2K 随机 query,↓ 表示排序质量提升
  • 实验组和对照组各 5% 流量,连续观测 7 天,p < 0.05

学生模型在线 P95 延迟约 20ms,成功率近 100%。CES +0.72% 和 DCG 0/1 -0.36% 均具有统计显著性。

⚠️讨论与局限

过联想(Over-Association)和推理错误

论文识别了一个关键失败模式——overthinking。在处理涉及影视角色等模糊查询时,模型可能利用内部世界知识进行"联想推理",有时能碰对,但也产生假阳性。例如查询"剧A"但笔记讲的是"剧B的角色C",而演员D同时是剧A的主演,模型可能错误关联。未来计划引入推理置信度建模和拒绝机制。

规则过拟合问题

论文的长期目标是"一次训练,业务方通过修改 prompt 动态调整规则"(Relevance LLM 概念)。但实验发现当前 RL 模型过拟合到了训练时的固定规则集——推理时修改规则,模型仍按照训练时学到的旧规则推理。未来需要引入动态规则变化训练来提高泛化性。

SAM 的通用性

SAM 当前依赖精确数值匹配($s_i = l$)进行步骤验证,这在相关性任务中可以工作,但在更通用的推理任务(如开放式问答)中不可行。论文提出未来可以将 SAM 与 LLM-as-Verifier 结合,用 LLM 替代规则验证器,实现更灵活通用的步骤级信用分配。

🧠个人理解与延伸

这篇论文最出彩的是什么

1
反直觉的发现 + 优雅的解法

"SFT+推理反而变差"是一个反直觉的结论,但论文用扎实的实验数据支撑了这个观点,然后给出了 SAM 这个低成本高收益的解法。这是一个完整的"发现问题→分析原因→提出方案→验证效果"闭环。

2
工业落地的坦诚

很多论文只讲方法的优势,本文坦诚地讨论了蒸馏 gap(学生 vs 教师差距大)、规则过拟合、overthinking 等问题,这种诚实在工业论文中很难得。

3
SAM 的巧妙性

用一个 prompt 设计(\boxed{})+ 规则验证器,就实现了零成本的步骤级过程监督。对比需要昂贵人工标注(如 Let's Verify Step by Step)或蒙特卡洛估计(VinePPO)的方法,SAM 是真正的工业级过程监督。

一些值得思考的问题

🤔 推理只用于训练,上线不保留

这引出一个哲学问题:如果推理过程不用于上线,那它到底带来了什么?答案可能是:推理过程改变了模型的内部表征和决策边界,蒸馏时这种"更优的决策能力"传递给了学生模型,即使学生模型不做推理。

🤔 规则系统如何维护?

论文利用小红书多年积累的专家规则,但这些规则本身需要持续维护。如果业务逻辑变了(比如新类型内容出现),规则如何更新?模型能不能自适应?这是工业系统长期面临的挑战。

对推荐/搜索相关性的启示

三句话启发:
RL >> SFT 做推理任务——这和"RL generalizes, SFT memorizes"的最新研究结论一致;
过程监督 > 结果监督——在可验证步骤的场景中,细粒度信用分配带来显著提升;
工业规则是最好的"领域知识注入"方式——比自动生成的规则可靠得多。
与 OneRec 等生成式排序的区别:OneRec 等 GRM 直接生成下一个 item 的 ID,本文的 GRM 是用于相关性评估(打标签),不直接生成推荐结果。两者的共性是都用 RL 优化生成式模型,但任务不同:本文是"判断相关性",OneRec 是"生成推荐序列"。
SAM 是否可以泛化?Sam 的关键前提是:能在中间步骤得到可验证的信号(本文用 \boxed{} 和精确数值匹配)。对于不满足这个条件的一般推理任务,需要 LLM-as-Verifier 替代规则验证器——这是论文讨论中提到的未来方向,也与 CAPO(xie2025capo)等最新工作呼应。