bandit 选方向、LLM 写改动:自动调推荐模型,线上广告主价值 +2%

RecHarness: A Bandit-Routed Agentic Harness for Self-Evolving Recommender Systems

Haoran Ling, Yuecheng Li, Zeyu Song, Jing Yao, Shuwen Kang, Chi Lu, Wenjin Wu, Peng Jiang

cs.IR, cs.AI, cs.CL

2026-07-31

RecHarness 用 Thompson bandit 选改动方向、LLM 写代码;线上短视频广告 7 天 A/B 广告主价值 +2.084%、收入 +0.534%。

这篇在解决什么

调一个现代推荐模型,至今主要还是手工活:改结构、改损失、改训练策略,看验证指标涨没涨,不行再换。LLM agent 能把这试错自动化,但如果你让 LLM 既决定「改哪个方向」又写具体改动,在试验预算紧张时搜索会很不稳,大部分 trial 浪费在烂方向上。论文的诊断是:LLM 不擅长在稀缺预算下给众多方向做分配,它该负责提假设,不该兼着当探索者。

方法

RecHarness 把这两件事拆开。第一步,一个 bandit 路由(Thompson 采样)在一组预定义的「edit arm」里挑下一个要试的方向,依据是历史的验证反馈。arm 是些诸如调学习率计划、改 dropout/权重衰减、改 embedding 维度、增减层或注意力头、换 pooling、加特征、换损失这类动作,分成局部 arm(在当前盆地内微调)和 jump arm(结构性大改,用来跳到新盆地)。每个 arm 维护一个 Beta 后验,采样、选最大、跑 trial、用一个二值成功信号更新。第二步,LLM agent 拿到选定的方向,生成一条具体假设和可执行的代码改动。第三步,为了维持长程探索,有个 jump-basin 机制:当最近一个窗口内的提升速率跌破阈值(当前盆地饱和),就激活 jump arm;而且一个 jump 要等 R 轮局部重调之后才判定是否接受,好让结构性改动在适应之后再被评价,而不是看它第一眼的裸分。外加一份「Experiment Skill」文本记忆(当前最优、近期成功、死胡同)喂给 LLM。

结果

离线:Amazon Reviews 序列推荐(5 个骨干模型)+ KuaiRec 观看时长(3 个模型)。HR@10 平均涨幅上,弱基线 GRU4Rec 涨 85.85%(0.2685→0.4990),强基线 HSTU 涨 12.58%(0.4723→0.5317),五个模型一致上涨,且超过已发表的数字。KuaiRec 上较弱的 TPM:WT-MAE 降 26.37%、WR-MAE 降 26.41%;较强的 GR 四个指标仍小涨。真正的主张是预算效率:RecHarness 的非基线 trial 里 47.92%(23/48)能刷新轮首最优,平均涨 5.06%、最多 24.00%;对照之下 TR w/ Random 是 22.45%、TR w/ LLM 是 21.74%、w/o Bandit 是 41.67%。也就是说,让试验真正回本的是 bandit 路由,不是让 LLM 选方向。线上:短视频广告平台、10% 流量、7 天 A/B,ADVV +2.084%、收入 +0.534%、曝光 +0.559%。

为什么重要

最实在的结论是一次分工:让 bandit 在方向上做信用分配,让 LLM 在方向内做代码生成。这比「让 agent 自由搜」更省试验预算,而后者正是朴素 LLM-auto-ML 的翻车模式。线上那笔涨幅不大但确实上了线、跑在海量流量上,对推荐/广告团队是看得过去的证据。方法跨了 8 个骨干模型、两个场景,不是只调一个模板。

局限与存疑

arm 是人预定义的,搜索空间有边界;RecHarness 自动的是空间内的选择,不是空间设计。弱基线上动辄 +85% 的涨幅看着唬人,一部分反映的是冷启动基线有多差,而不是 RecHarness 有多强;强基线上那几个点的涨幅才是更诚实的信号。线上涨幅小(收入约 0.5%),尽管流量巨大;相比更简单的人/随机搜索,这套 bandit 机制的复杂度值不值,w/o Bandit 仍能拿到 41.67% 这点并没有被充分隔离。场景限于推荐系统,没有证据能迁移到比如 LLM 训练。

术语

原文与代码

相关论文

全部论文解读