RecHarness: A Bandit-Routed Agentic Harness for Self-Evolving Recommender Systems 论文笔记
快手的 MLE Agent 优化工作,目前挂在 Arxiv 26.07 上,提出了一种将 Bandit 算法与 LLM 智能体相结合的推荐模型自动化优化框架 RecHarness
背景
推荐系统优化天然适合 MLE Agent,但直接应用通用 MLE Agent 存在一个关键的系统挑战:每个候选修改都需要代码生成、执行、训练和验证,每一次试验都消耗不可忽略的预算。更重要的是,推荐模型优化不是一组独立的单次实验,而是一个持续的模型迭代过程,每次试验都提供超越最终验证分数的优化相关证据(收敛行为、训练稳定性、暴露的失败模式)。如果让 LLM 同时负责选择修改方向和生成具体假设,往往会导致在有限实验预算下搜索不稳定
最近一篇使用 LLM 解决多臂 XXX(敏感词省略,bandit)问题的工作说明了将 LLM 的推理和预测结合起来会比直接让 LLM 独立的完成更有效,因此作者借鉴这篇工作的思想和做法设计了一套新的用于自进化推荐系统的 Harness 优化工具
方法

RecHarness 将推荐模型迭代组织为三层控制过程 :
-
Level 1(人工定义):人类专家定义优化目标、验证指标和候选编辑臂
-
Level 2(Bandit 路由):Bandit 路由器利用标量验证反馈在候选臂间分配有限的实验预算,决定下一轮应搜索哪些编辑维度
-
Level 3(LLM 推理):实验技能和 LLM 推理形成下一个改进假设
推荐优化作为 Bandit 问题
-
形式化定义:本文将推荐优化视为一个有限时间预算下的 Bandit 问题。输入为初始推荐实现 \(f_0\)、训练-验证划分 \(\mathcal{D} = (\mathcal{D}_{\text{train}}, \mathcal{D}_{\text{val}})\)、验证指标 \(M\) 和试验运行时预算。每次试验包括应用模型突变、训练突变后的推荐模型、用验证指标评估。给定任务 T 和有效模型实现的空间 S,我们的目标是在资源预算 B 下找到最佳实现。 RecHarness 将这一预算受限的目标实施为顺序试验分配:每轮仅评估一组预算内的候选突变,并且它们的验证结果用于指导后续搜索
-
搜索空间表示:RecHarness 将搜索空间表示为一组预定义的编辑臂:\(\mathcal{A} = \{a_1, a_2, \ldots, a_K\}\)。每个臂代表一个可解释的编辑维度而非确切的代码补丁或标量超参数(例如:调整学习率调度、调整 dropout 或 weight decay、改变 embedding 维度、修改层数或注意力头数、改变序列池化策略、添加特征、或改变损失函数)。根据编辑粒度将臂分为局部臂(local arms) 用于精炼,和跳跃臂(jump arms) 用于非局部盆地转移
-
基于当前最优(incumbent-based)的搜索:设 \(f_t^*\) 表示第 \(t\) 轮前最佳验证实现,验证分数为 \(s_t^* = M(f_t^*)\)。在第 \(t\) 轮,RecHarness 选择一个或多个臂,并相对于 \(f_t^*\) 生成候选模型突变:\(f_{t,a} = \mu_{\phi}(f_t^*, a, m_t, \ell_t) \tag{6}\)。其中 \(m_t\) 为实验技能,\(\ell_t\) 总结了最近的日志和验证轨迹,\(\phi\) 表示用于代码生成的冻结 LLM。只有改进当前最优的候选才会被提升
Thompson Sampling 用于探索-利用
Bandit 路由器回答 "在有限试验预算下一步搜索哪里" 的试验分配问题,这里参考 Bandit 领域经典做法使用 Thompson Sampling 在编辑臂间分配试验。具体而言,对于每个臂 \(a\),系统维护一个 Beta 后验:\(\theta_a \sim \text{Beta}(\alpha_a, \beta_a) \tag{11}\)
其中 \(\alpha_a\) 和 \(\beta_a\) 总结了先前成功和失败的结果。每轮开始时,RecHarness 从每个可用臂的 Beta 后验中采样 \(\hat{\theta}_a\),选择采样值最大的臂(相当于从该可用臂的历史记录里,随机抽一个 "我认为它下次能成功的概率")。每轮后,RecHarness 使用二元验证结果更新对应的臂后验。这里也会进行分组并行试验,每一轮从所有可用 Arm 中选择采样值最大的前 G 个 Arm
实验技能与反馈
实验技能和反馈强盗路由器选择臂后,RecHarness 使用实验技能和 LLM 推理在每个选定臂内形成下一个改进假设。实验技能是一个紧凑的文本指南,记录当前的现有内容、最近成功的编辑、无效或拒绝的方向、失败原因以及验证趋势的简短摘要
每轮验证后实验技能都会自动更新。对于成功或升级的试验,RecHarness 将 Arm、补丁摘要、验证分数和改进模式提炼为可重复使用的课程,并将它们附加到最近的文本渐变中。对于失败、无效或有害的试验,系统会将避免规则提取到失败反馈部分,例如避免重复的界面不匹配、训练崩溃或已知的低产编辑。然后,系统会根据当前在职人员、分数历史记录和最近的试验摘要呈现刷新的实验技能文档
盆地感知跳跃
基于当前最优的搜索是样本高效的,但可能最终在优化空间的局部盆地内饱和,因此引入轻量级盆地感知跳跃机制。设 \(s_t^*\) 为第 \(t\) 轮前的最优验证分数。在 \(W\) 轮窗口上测量近期改进率 \(\widehat{\Omega}_t = \frac{s_t^* - s_{t-W}^*}{W} \tag{15}\)。当近期改进率低于阈值 \(\tau\) 时,当前盆地被认为已饱和,跳跃臂将变为 available(默认是不可使用跳跃臂的)
跳跃 Arm 的接受标准:经过 \(r\) 轮局部重调后,若跳跃分支的验证分数超过跳跃前最优 \(\delta_{\text{jump}} > 0\),则接受跳跃。这一延迟标准允许结构变更在局部适应后被评估,而非仅凭其即时验证分数
实验

结果肯定是全优化(因为本身就是在推荐实现上不断迭代的,没有与现有 harness 框架去对比)
总结
个人认为看看就行,控制优先预算的方法很简单就是优先改局部而已,整篇工作偏故事性,也没有与现有 harness 框架去对比看不出好坏,算是比较 toy 的工作吧