小红书搜索团队将相关性评估建模为多步推理任务,设计了一套"行业规则引导 + 过程监督 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)输出"相关/不相关"概率,有三个根本问题:
模型输出一个分数,但无法解释为什么。出了 bad case 很难诊断是哪里出错,迭代依赖盲猜。
小模型难以理解复杂语义关系。比如"多肉植物冬天怎么浇水",传统模型可能只匹配关键词,无法理解"冬天→休眠期→少浇水"的推理链。
小红书的 query 和 note 都是非结构化文本,存在大量模糊场景。通用自由推理无法处理这些歧义,需要领域特定的规则引导。
为什么 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 无法有效纠正。
数学推理 vs 搜索相关性:本质差异
论文指出了为什么 DeepSeek-R1 在数学上的成功不能直接复制到相关性:
🧮 数学/代码任务
客观,受通用公理和形式逻辑约束。LLM 预训练已学到基础知识,RL 只需在已有知识上自由探索。
🔍 搜索相关性任务
主观且领域特定。相关性标准与平台业务语境和用户生态紧密耦合。没有领域引导,模型无法通过无约束探索推断出正确的相关性标准。
这就是论文选择两条关键路径的原因:(1)将平台积累的专家规则注入 prompt,提供"伪公理"作为推理的先验知识;(2)用过程监督 RL 确保模型每一步推理都正确内化这些规则。
整体训练流水线
整个方法分为四个阶段:
+ Rejection Sampling
强化学习优化
P95 ~20ms
任务定义:对每个 query-note 对 $(q, n)$,预测相关性标签 $y \in \{-1, 0, 1, 2, 3\}$,分别对应"强烈不相关、不相关、弱相关、部分相关、完美相关"。
Criteria-Augmented Prompt:三步推理
论文将小红书搜索团队多年积累的相关性评估标准直接编码到 prompt 中。这些规则包含通用原则(查询分析、分类匹配、关键词匹配、内容占比分析等)和专门处理边缘情况的细则。
模型对 query 和 note 进行高层语义比较:查询意图分析、分类体系匹配、关键词匹配、内容占比分析等。输出初步相关性分数(宏观角度)。
根据专门规则,判断当前场景下的相关性上界。如"比较类查询,笔记只覆盖一个对比项 → 最多 1 分"。多条规则触发时取最严格限制。
综合前两步输出——初始相关性估计 + 上界约束——进行最终判断。$\hat{l}$ 必须满足"语义合理"且"不超规则约束"。
\boxed{} 格式——这是后续 SAM 进行步骤级验证的基础设施。搜索 "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 预热:
DeepSeek-R1 作教师,对 50K queries × 20 notes = 1M 样本生成三步推理轨迹。
只保留最终预测与人工标注一致的轨迹,重采样恢复原始标签分布。最终 500K 条有效轨迹。
标准 SFT,让模型学会三步推理的格式和基本思维模式。
- $\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 更稳定高效。
- $\pi_{\theta}$:当前策略模型(GRM),$\pi_{\text{ref}}$:RL 前的参考模型
- $\mathcal{R}(\mathbf{o}, l)$:奖励函数——预测正确 = 1,否则 = 0
- $\beta = 10^{-3}$:KL 惩罚系数,防止策略变化过大
GRPO 的优势函数通过组内标准化计算:
- $\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 都得到正优势信号,包括那些推理错误的中间步骤。这导致"虚假奖励传播",强化了错误的推理模式。
步骤级正确性判定(零成本)
利用 prompt 中的 \boxed{} 格式在零额外成本下提取每步中间分数:
从推理链 \boxed{} 输出中提取 $(s_1, s_2, s_3)$,$s_3$ = 最终预测 $\hat{l}$。
$c_i = \text{True}$ 当且仅当 $s_i = l$(金标签)。不需要学习——纯数值匹配。
根据 $(c_1, c_2, c_3)$ 和最终结果一致性,决定每个 token 是否参与梯度更新。
- $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$)
① 最终正确 → 只强化正确步骤(屏蔽错误步骤,避免强化偶然猜对的推理)
② 最终错误 → 只惩罚错误步骤(保护正确步骤,避免打击有效推理片段)
效果:防止"一荣俱荣、一损俱损"的粗粒度信用分配,每一步得失都能被精确追踪。
场景:金标签 $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 得到正信号 → 模型学会每一步都要正确。
论文引入了巧妙的训练数据过滤——对每个样本用初始策略采样 $k=64$ 次推理,计算正确率 $\text{avg@64}$:
• $\text{avg@64} > 0.97$(5 类)→ 丢弃(太简单,RL 无梯度信号)
• $\text{avg@64} < 0.04$(2 类)→ 丢弃(太极端,可能是标注错误,破坏训练稳定性)
效果:去除两端极端后,保留有信息量但非平凡的样本,RL 更高效。
线上部署:知识蒸馏
32B 生成式模型不可能直接上线。论文策略:
32B RL 模型对百万级 query-note 生成标注,只保留最终分数(不保留推理链),蒸馏到 0.1B BERT 5 分类器。
P95 延迟约 20ms,成功率近 100%。关键妥协:推理过程只用于训练,上线保留推理"成果"(更好的决策边界),不保留推理"过程"。
实验设置
🏷️ 数据集
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 为什么最强
| Model | Data | RANDOM 2-ACC | RANDOM 5-ACC | RANDOM Macro F1 | LONGTAIL 2-ACC | LONGTAIL 5-ACC | LONGTAIL Macro F1 |
|---|---|---|---|---|---|---|---|
| SFT-Label | 200k | 90.26 | 78.64 | 65.66 | 89.11 | 77.66 | 63.24 |
| SFT-Reasoning-v1 | 150k | 80.10 | 59.44 | 47.52 | 77.50 | 59.22 | 47.45 |
| SFT-Reasoning-v2 | 500k | 83.04 | 63.06 | 51.76 | 81.15 | 63.55 | 50.64 |
| PPO-Reasoning | 150k+50k | 91.56 | 78.81 | 70.04 | 89.70 | 74.96 | 63.74 |
| OutcomeRL-Reasoning | 150k+50k | 92.09 | 80.90 | 72.46 | 89.62 | 77.03 | 65.08 |
| ProcessRL-Reasoning | 150k+50k | 92.45 | 81.23 | 73.55 | 90.04 | 77.72 | 66.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 等稀有情况)的改善尤为显著。
Label -1(强烈不相关)和 Label 1(弱相关)是低频标签(各占 2-7%)。传统模型可能把大部分样本预测为 0(不相关)或 3(完美相关),对低频类几乎不学习。
SAM 的过程监督对每一步做精确纠偏,模型在低频类上学得更仔细。Label -1 的 F1 从 47.57 → 71.46(+23.89pp),效果极其显著。
数据效率分析
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 ↓ |
|---|---|---|
| Baseline | 0 | 0 |
| 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 替代规则验证器,实现更灵活通用的步骤级信用分配。
这篇论文最出彩的是什么
"SFT+推理反而变差"是一个反直觉的结论,但论文用扎实的实验数据支撑了这个观点,然后给出了 SAM 这个低成本高收益的解法。这是一个完整的"发现问题→分析原因→提出方案→验证效果"闭环。
很多论文只讲方法的优势,本文坦诚地讨论了蒸馏 gap(学生 vs 教师差距大)、规则过拟合、overthinking 等问题,这种诚实在工业论文中很难得。
用一个 prompt 设计(\boxed{})+ 规则验证器,就实现了零成本的步骤级过程监督。对比需要昂贵人工标注(如 Let's Verify Step by Step)或蒙特卡洛估计(VinePPO)的方法,SAM 是真正的工业级过程监督。
一些值得思考的问题
🤔 推理只用于训练,上线不保留
这引出一个哲学问题:如果推理过程不用于上线,那它到底带来了什么?答案可能是:推理过程改变了模型的内部表征和决策边界,蒸馏时这种"更优的决策能力"传递给了学生模型,即使学生模型不做推理。
🤔 规则系统如何维护?
论文利用小红书多年积累的专家规则,但这些规则本身需要持续维护。如果业务逻辑变了(比如新类型内容出现),规则如何更新?模型能不能自适应?这是工业系统长期面临的挑战。
对推荐/搜索相关性的启示
① RL >> SFT 做推理任务——这和"RL generalizes, SFT memorizes"的最新研究结论一致;
② 过程监督 > 结果监督——在可验证步骤的场景中,细粒度信用分配带来显著提升;
③ 工业规则是最好的"领域知识注入"方式——比自动生成的规则可靠得多。
\boxed{} 和精确数值匹配)。对于不满足这个条件的一般推理任务,需要 LLM-as-Verifier 替代规则验证器——这是论文讨论中提到的未来方向,也与 CAPO(xie2025capo)等最新工作呼应。