← 返回论文列表
LLM Agent · 推荐系统 · 自动化 ML

Self-Evolving Recommendation System

End-To-End Autonomous Model Optimization With LLM Agents

作者
Haochen Wang, Yi Wu, Daryl Chang, Li Wei, Lukasz Heldt
机构
Google Inc(YouTube)
发表年份
2026(arXiv:2602.10226)
核心命题
LLM 双 Agent 双循环自动优化 YouTube 推荐模型,在生产环境实现显著指标提升
arXiv2602.10226 PDF下载 PDF LLM Agent RecSys AutoML YouTube Production

本文来自 Google / YouTube,是首个在工业规模推荐系统中将 LLM 智能体端到端部署并成功提升线上北极星指标的完整框架。核心贡献是一套"双循环自进化系统"(Self-Evolving System),由 Offline Agent(高频内循环)和 Online Agent(低频外循环)构成,LLM 扮演专业 MLE 角色,自主发现优化器、网络结构、奖励函数的改进,无需人工逐步介入。

🌐
1. 背景与动机

1.1 问题背景

YouTube 等全球视频平台的推荐系统正在向强化学习(RL)范式演进:系统不再简单预测 CTR,而是作为 Agent 与用户环境交互,最大化用户长期满意度。这要求设计复杂的奖励函数(复合多种信号)和精密的模型结构。

1.2 现有方法局限

传统 AutoML 方法在数值超参数调优上表现良好(如 Bayesian Optimization 调 learning rate),但存在三大核心挑战:

C1:结构设计不可穷举

优化器类型、激活函数、注意力机制等是离散设计选择,搜索空间几乎无限大,AutoML 缺乏推理能力来导航开放设计空间。

C2:奖励工程的语义鸿沟

奖励函数需要融合观看时长、调查问卷、留存率等异构信号,近似"用户长期满意度",这是需要深度语义理解的推理任务,梯度方法无能为力。

C3:人工迭代的扩展性瓶颈

每次实验都需要工程师将假设翻译为代码、配置训练器、设置 A/B 测试——实验吞吐量线性依赖于工程师数量,大量配置空间从未被探索。

研究空白

将 AI Agent + 工业级推荐系统结合的工作几乎空白。现有 AutoML 只能调数值参数,现有 LLM Agent 研究缺乏真实生产部署验证。

🔧
2. 方法详解

2.1 系统总览:双循环自进化架构

整个系统的核心思路是将"发现"与"验证"两个任务解耦,形成快慢两个循环,围绕一个共享的实验日志(Experiment Journal)运转:

Offline Agent(内循环)
高频·代理指标
→ 幸存候选 →
Online Agent(外循环)
低频·北极星指标
→ 线上结果 →
共享实验日志
Experiment Journal
→ 历史反馈 →
Offline Agent
Figure 1: Self-Evolving System Architecture`" />
Figure 1(论文原图):双循环自进化系统架构。内循环(Offline Agent)作为高频认知核心,外循环(Online Agent)作为安全门控,共享实验日志实现闭环反馈。

这套设计的精妙在于:内循环使用廉价的代理指标(离线损失、SQL 相关性分析)大量筛选候选,只有通过内循环筛选的高潜力候选才进入外循环进行昂贵的线上 A/B 实验。这形成了一个严格的过滤漏斗,既保证了实验吞吐量,又保证了线上流量质量。

💡 举例:整体数据流

假设 Offline Agent(Optimizer Persona)在某次迭代中同时启动 50 个候选训练任务(调整学习率、动量、优化器类型等不同组合)。每个任务训练完成后,Persona 用 compute_loss 工具获取验证损失,排序后选出 top-3。这 3 个候选进入 Online Agent 的 PROPOSED 队列,等待依次通过编译检查 → 模型训练 → 线上 A/B 测试 → 北极星指标收集,最终结果回写到实验日志。下一轮内循环时,LLM 读取"RMSprop + 特定超参表现最好"这条历史记录,开始在这个方向上进一步探索。

2.2 Offline Agent(内循环)

Offline Agent 是整个框架的认知核心和快速测试引擎。它的目标是在廉价的离线代理信号上快速遍历配置空间,将大量候选筛选到少数高潜力方案。

Prompt 构建

每次调用 LLM 前,会动态构建 Prompt,包含以下几个关键部分:

  • 1Persona 设定:告知模型它是"具有卓越编程和分析能力的专家 MLE",并根据不同任务注入专属角色(优化器专家 / 架构专家 / 奖励工程专家)。
  • 2主要目标:明确优化方向(最小化离线损失 or 最大化相关信号),并要求 LLM 在"探索(Exploration)、利用(Exploitation)、创新(Innovation)"三者间取得平衡,避免只做微小调整。
  • 3安全护栏:明确告知某些指标的回退阈值(如"Metric#3 回退不得超过 +1%"),防止奖励黑客攻击和生产漂移。
  • 4基线配置 + Schema:提供当前生产模型配置、训练日志 Schema。
  • 5实验日志:结构化历史记录,包含过去所有实验的 diff(代码变更)及其离线/线上结果,让 LLM 从历史中学习。

2.3 三类专业 Reasoning Persona

为避免单一 Persona 因接触过多无关 Schema 而产生"上下文腐烂"和幻觉,系统为三类不同任务实例化独立 Persona,各自携带专属工具:

🔬 Optimizer Persona

工具compute_loss

职责:优化器算法选择(Adagrad / RMSprop 等)及其内部超参(学习率、动量、batch size)。

评估方式:损失函数 $\mathcal{L}_{proxy}$ 不变,直接排序 $\mathcal{L}_{proxy}(\Phi_A) < \mathcal{L}_{proxy}(\Phi_B)$ 即可比较候选优劣。

并行化:同时启动多个异步训练任务,按验证损失排序筛选。

🏗️ Architecture Persona

工具compute_loss

职责:解析 Keras/TensorFlow 模型定义,提出神经拓扑结构突变(如引入新的 Gating 机制、层归一化、激活函数替换等)。

区别于 NAS:不是从固定菜单中选择层,而是可以写全新的自定义代码,例如引入"门控路径(Gating Path)"机制。

🎯 Reward Persona

工具run_sql_query(不能用 compute_loss

职责:修改排名模型的训练标签(ground-truth reward)逻辑。

为什么不用 loss 排序:修改奖励后 $\mathcal{L}_{proxy}$ 的定义本身就变了——"仅点击"奖励的损失天然低于"点击+满意度"复合奖励的损失,不可比较。

做法:用 SQL 对训练日志做大规模特征-标签相关性分析,找到与用户长期满意度高度相关的信号。

💡 举例:Reward Persona 的数据驱动发现

Reward Persona 的 LLM 提出假设:"用户在观看结束后是否继续浏览同频道内容"可能是长期满意度的强信号。随后它调用 run_sql_query 工具,对 TB 级训练日志执行:

SELECT corr(channel_affinity_signal, long_term_retention) FROM training_logs WHERE ...

如果相关性系数超过阈值(如 0.35),该信号被标记为候选奖励组件,进入后续代码实现阶段。最终系统发现了"活跃参与度信号"、"用户-频道关系"、"视频质量信号"三个组件,构成了超越人工设计基线的复合奖励函数。

Think-Code-Verify 循环

  1. 1假设生成(Think):LLM 先提出策略(如"当前模型对点击诱饵过拟合,应在奖励中惩罚短时观看点击")。
  2. 2代码实现(Code):将假设翻译为精确的配置 diff 或代码修改。
  3. 3LLM 精化(Verify):生成的代码传给"linter Persona",负责修复语法错误、验证 Schema 合规性。
  4. 4工具调用:调用 compute_lossrun_sql_query 定量评估候选质量。
📌 关键设计:Delta-based 生成

LLM 被要求生成相对于生产文件的 diff(增量),而非完整配置文件。实践发现,要求输出完整配置文件时,LLM 极易遗漏未改动但必要的参数,或引入语法错误(幻觉);而只要求输出 diff 则大幅提升了代码有效性。

2.4 Online Agent(外循环)

Online Agent 是框架的安全门控和结果收集器。它负责将通过内循环筛选的候选推进到生产环境,通过 A/B 实验验证北极星指标,并将结果回写到实验日志。它对每个候选维护一个状态机,通过五阶段 DAG 确保安全。

2.5 五阶段 DAG

PROPOSED
Phase I:提案队列(接受 Agent 或人工提案,FIFO 调度)
VALIDATED
Phase II:静态检查(编译验证、基线阈值检查),失败立即 Fast Fail
TRAINING
Phase III:完整训练 + 推理服务就绪检测(权重导出、版本化)
LIVE
Phase IV:线上 A/B 实验(流量分配 + 安全监控,违反阈值立即中止)
COMPLETED
Phase V:北极星指标收集,结果回写实验日志,闭合外循环
💡 举例:Optimizer 候选从内循环到外循环的完整生命周期

① 内循环(Offline Agent):LLM 提出将 Adagrad 替换为 RMSprop(特定学习率、衰减率、动量),生成配置 diff → 异步启动训练 → compute_loss 返回验证损失 z-score 为 -0.85(优于基线),进入外循环。

② PROPOSED:配置 manifest 入队,等待调度。

③ VALIDATED:Agent 检查配置语法、数据量是否充足 → 通过。

④ TRAINING:完整训练(Θ(hours)),Agent 轮询推理服务器,权重上传成功后进入下一阶段。

⑤ LIVE:分配 YouTube 生产流量,持续监控指标,watch time 持续正向 → 实验正常结束。

⑥ COMPLETED:获取 YouTube 级 +0.06%、Surface 级 +0.12% 提升,写入日志。下一轮内循环 LLM 读取"RMSprop 路线成功",继续沿此方向探索(如进一步调整动量)。

📊
3. 实验结果

3.1 线上 A/B 实验结果汇总

任务类型 Agent 发现的改进 YouTube 级指标 Surface 级指标
Optimizer 切换为 RMSprop +0.06%* +0.12%*
Optimizer 训练效率 4× 提升 −0.01% +0.06%
Optimizer 训练效率 2× 提升 +0.01% +0.09%*
Architecture 门控路径(GLU) +0.06%* +0.14%*
Architecture 激活函数精化(GELU + LayerNorm) −0.02% +0.12%*
Reward 多目标奖励合成 +0.03%* +0.13%*

* 表示在 95% 置信水平下统计显著。这些是北极星业务指标(如 Watch Time)的相对提升。

关键发现亮点

  • Adagrad → RMSprop:因为手动调优成本高,优化器配置长期静止不动。Agent 自主发现切换到特定超参的 RMSprop 可显著提升,且线上统计显著。
  • GLU 门控路径:Architecture Persona 探索了从注意力机制到 MoE 的数百个方案,最终发现类似 Gated Linear Units 的乘法门控机制最优,是所有方案中线上增益最高的。
  • GELU + LayerNorm:在 GLU 成功的基础上,Agent 进一步将 sigmoid 门替换为 GELU 激活 + 层归一化,体现了"先探索新结构,再精化胜者"的两阶段策略。
  • 多目标奖励合成:Agent 通过 SQL 数据分析发现了"活跃参与度"、"用户-频道亲密度"、"视频质量"三个新奖励组件,合成的复合奖励函数超越了人工设计基线。
  • 训练效率:Agent 还优化了系统层面的训练效率,先后实现 4× 和 2× 的训练时间压缩,总计 8× 加速,且不损失业务指标——这是人工优化通常不会花时间做的事。
Figure 2: Agent Performance under different model sizes and context strategies
Figure 2(论文原图):消融实验中不同 LLM 大小和上下文工程策略下的优化器归一化代理损失对比。分数(z-score)越低表示性能越好。

3.2 消融实验:上下文工程的影响

在 Optimizer 任务上进行了 6 次独立运行(每次探索 70 个配置)的消融研究:

opt_2p5(基线)

Gemini 2.5 Pro + 专家 Persona + 完整历史(按 loss 排序)

→ 最优表现

opt_flash

将 Pro 换成 Gemini 2.5 Flash

→ 性能明显下降,说明算法发现任务需要大模型的"深度思考"能力

opt_no_role

移除专家 MLE Persona 设定

→ 显著变差,说明 Persona 框架对提案质量至关重要

opt_no_sort / opt_top_k / opt_no_context

提供未排序历史 / 只给 top-k 历史 / 不提供历史

→ 均不如完整排序历史,说明 完整且按质量排序 的历史是有效迭代的关键

3.3 实验速度对比

指标人工工作流Agent 工作流
实验吞吐量 Θ(1)–Θ(10) 次 / 周 Θ(100) 次 / 周
每次实验的工程成本 Θ(1)–Θ(10) 工时 / 周 0 工时 / 周

通过将高频离线发现与低频线上验证解耦,工程师从实验执行的关键路径上解脱出来,实验吞吐量提升约 10-100 倍,工程成本降为 0(人工只需在起始时提供研究方向、在结束时审查结果)。

💡
4. 部署经验与教训
L1:用 Delta 而非全量配置生成

让 LLM 输出 diff(增量修改)而非完整配置文件。完整配置文件会导致 LLM 遗漏未改参数或引入语法错误(幻觉);diff 模式大幅提升了提案有效率。

L2:明确要求多样性探索

若不在 Prompt 中明确要求"平衡探索、利用与创新",LLM 会强烈倾向于安全的微小调整(如连续提出 lr=0.1, 0.11, 0.12)。必须主动促使模型进行跨越式探索。

L3:冷启动问题

实验日志为空时,Agent 倾向提出教科书式的通用改进,缺乏特定系统知识。需要经过一段"热身期"积累历史试验后,性能才会显著提升。

L4:语义推理 vs 数值调优

在成熟系统中,最大的杠杆点来自结构和语义突变(新奖励逻辑、新架构组件),而非精调数值超参。Agent 的语义推理能力(尤其是 Reward Persona)提供了纯数值优化无法实现的创新。

L5:跨 Surface 泛化

将相同的双 Agent 框架部署到另一个特征 Schema、训练集、模型配置完全不同的 YouTube 推荐 Surface,Agent 在最初几次迭代内成功适应,并提升了北极星指标。说明框架优化的是"发现过程"本身,而非记忆特定数据集。

🔍
5. 理解、亮点与不足

5.1 核心亮点

✅ 工业规模真实部署,有北极星指标验证

区别于大量停留在 toy 问题或 benchmark 的 LLM+ML 研究,本文在 YouTube 真实生产流量上进行了 A/B 测试,且多个结果统计显著。这是极高的工程可信度保证。

✅ 双循环解耦设计的哲学价值

将"高频创意生成(内循环,廉价代理指标)"与"低频生产验证(外循环,昂贵北极星指标)"解耦,是非常正确的系统工程决策。两者各自优化,通过共享日志形成闭环,实现了成本和质量的最优权衡。

✅ Reward 工程的突破性视角

Reward Persona 使用 SQL 相关性分析取代 loss 评估,是极其有创意的设计——它正确地意识到不同 reward 的 loss 不可比较,转而从数据语义出发做信号发现,这是人工 reward 工程中长期依赖的核心能力。

✅ 实验速度量化

10-100× 的实验吞吐量提升、0 工时的执行成本,这些数字清晰地量化了自动化的价值,也为后续在更多团队推广提供了业务理由。

5.2 不足与局限

⚠️ 大模型依赖

消融实验显示 Gemini 2.5 Flash 明显不如 Pro,说明系统强依赖顶级 LLM 的推理能力。对于算力受限的团队,这是重要的成本约束。

⚠️ 冷启动问题未完全解决

空实验日志时 Agent 能力受限,论文承认了这一点但未提出系统性解法(如预热策略或外部知识注入)。

⚠️ 评估细节不够透明

论文未详细说明"指标 Metric#3"具体是什么北极星指标,"Surface 级"和"YouTube 级"指标的定义也比较模糊,部分结果难以复现或对比。

⚠️ 垂直定制性强

代码工具(compute_lossrun_sql_query)、Schema 格式、实验日志结构均深度绑定 YouTube 内部基础设施,通用化路径尚未讨论。

5.3 对推荐系统研究的启发

🚀 未来工作方向
  • Agent 驱动的 Reward Engineering:SQL 相关性分析驱动奖励函数发现,是一个可以大规模复制的范式,值得在其他平台验证。
  • 双循环框架泛化:快慢双循环 + 共享历史日志的框架,可以应用于任何需要在"快速离线筛选"和"慢速线上验证"之间权衡的 ML 系统。
  • 自动化 NAS 与结构突变:Architecture Persona 可以写自定义层代码,而非从固定菜单选择,这是突破传统 NAS 限制的重要方向。
  • MLE 角色的重新定义:系统自动执行重复性实验工作,工程师聚焦于战略护栏和高层视野——这是 AI 辅助工程的未来形态。