Self-EvolveRec: Self-Evolving Recommender Systems with LLM-based Directional Feedback¶
会议: NeurIPS 2026
arXiv: 2602.12612
OpenReview: https://openreview.net/forum?id=OBBrMRbMXq
代码: https://github.com/Sein-Kim/self_evolverec
领域: 推荐系统
关键词: 推荐系统、代码演化、大语言模型智能体、用户模拟器、模型诊断工具
一句话总结¶
本文提出基于大语言模型方向性反馈的代码演化推荐系统框架 Self-EvolveRec,通过结合用户模拟器的定性反馈与模型诊断工具的定量剖析构建双向闭环,并引入诊断工具与模型的协同演化机制,摆脱了传统标量指标试错搜索的盲目性。
研究背景与动机¶
推荐系统从早期的矩阵分解演进到图神经网络和序列自注意力模型,其在真实工业环境中的性能上限早已不再单纯由模型骨干网络决定,而是严重依赖于负采样策略、损失函数设计以及多模态特征融合等整个推荐管线(pipeline)的综合配合。然而,人工迭代和调优整个推荐代码栈极其耗时费力。为了缓解这种设计低效性,早期神经架构搜索(NAS)尝试自动化寻找推荐结构,但这些方法受限于预定义算子集合所构成的封闭搜索空间,无法生成具有新逻辑的代码片段,更难以统一优化数据处理与自定义损失函数。
随着大语言模型(LLM)程序合成能力的爆发,以 FunSearch、Eureka、AlphaEvolve 及 DeepEvolve 为代表的 LLM 驱动代码演化框架将搜索目标拓展到了开放式的代码空间,使自动化系统具备了像人类算法研究员一样直接修改和发明新模块的潜力。然而,现有代码演化方法的核心驱动信号依然是单一的标量指标(如 NDCG、Hit Ratio 或验证损失)。这在推荐系统领域引发了严峻的“盲目试错”矛盾:与数学定理证明或确定性代码执行不同,推荐系统的失败往往是复杂且多维度的,单纯标量指标的掉点根本无法指出究竟是遭遇了严重的热门流行度偏差、类别多样性匮乏,还是表征退化或无法捕捉即时短期兴趣。标量指引的演化过程因此频繁陷入局部震荡或代码无效堆砌。
针对推荐任务失败归因困难的核心瓶颈,本文主张在代码演化循环中注入富含语义和机理解析的“方向性反馈”(Directional Feedback)。核心 idea:将多角色用户模拟器(SIM)提供的定性自然语言批判与底层模型诊断工具(DIAG)提供的定量几何与排序探针相结合,并设计诊断工具与推荐模型的协同演化机制(Co-Evolution),构建可解释且自适应的闭环代码演化体系。
方法详解¶
整体框架¶
Self-EvolveRec 围绕推荐系统代码库 \(\mathcal{B}\) 的迭代演化展开,将代码生成建模为一个双层优化问题:外层在开放程序空间 \(\mathbb{S}\) 中最大化评估效用,内层在训练集上优化参数 \(\theta\)。为了克服标量评估的无方向性缺陷,整个系统运行由方向性反馈驱动的演化工作流,并包含两个核心阶段:面向推荐代码库的“多维评估-反馈感知规划与检索-代码演化”迭代循环,以及面向评估机制本身的“诊断工具-模型协同演化”机制。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["父代推荐代码库<br/>Seed / Parent Codebase"] --> B["多维方向性评估<br/>SIM 定性批判 + DIAG 定量探针"]
B --> C["反馈感知规划与检索<br/>生成针对性查询并检索 arXiv 文献"]
C --> D["推荐代码演化<br/>Coding Agent 实施算法结构改进"]
D --> E["生成子代代码库<br/>Evolved Recommender Pipeline"]
E --> F["诊断工具协同演化<br/>解析新管线结构并自适应拓展度量"]
F -->|更新演化档案存档| A
关键设计¶
1. 多维方向性反馈生成:定性用户批判与定量表征探针的互补校验
标量指标仅告知系统“推荐好不好”,却无法解释“为什么不好”。针对这一缺陷,Self-EvolveRec 构建了双重视角的方向性反馈。首先是用户模拟器(User Simulator, SIM),基于 Agent 范式构建异构虚拟用户群体。系统从交互历史规模(Activity)、大众流行偏好偏离度(Conformity)和消费类别广度(Diversity)三个社会心理学维度量化用户 Persona,为每个抽样用户赋予结构化画像。虚拟用户评估当前推荐列表,输出自然语言诊断报告(如“推荐过于狭隘,全是大类热门,忽略了我的小众乐器偏好”),随后通过总结 Agent 聚合成反映群体共性失误的定性反馈报告 \(\mathcal{R}_{\text{SIM}}\)。然而,定性自然语言批判可能存在语义泛化过宽或感知局限,无法察觉嵌入塌缩(Embedding Collapse)等模型底层隐患。为此,系统配套引入模型诊断工具(Model Diagnosis Tool, DIAG),直接探测代码库内部状态。初始 DIAG 包含两个底层探针:一是嵌入塌缩探针,计算采样物品嵌入间的平均余弦相似度以监控表征退化;二是排序裕度探针(Ranking Margin),统计正样本与负样本预测评分的差值 \(\Delta_{u,v} = s(u,v) - s(u,v')\) 及其在各类别属性上的失败频率。LLM 解析这些数值探针输出并提炼出结构化诊断报告 \(\mathcal{R}_{\text{DIAG}}\)。两者结合,使系统既能感知上层用户体验体验痛点,又能定位底层模型表征缺陷。
2. 反馈感知规划与定向检索:由浅层试错转向针对性机理修复
通用代码演化模型常盲目修改或全局检索论文,导致改进方向脱节。Self-EvolveRec 引入反馈感知规划与检索机制。规划智能体(Planner)以定性报告 \(\mathcal{R}_{\text{SIM}}\)、定量报告 \(\mathcal{R}_{\text{DIAG}}\) 以及历史演化档案 \(\mathcal{P}^{(t)}\) 为上下文输入,形成精准的目标检索 Query(例如“如何缓解用户报告中出现的严重子类别不匹配问题与物品表征退化”)。系统从 arXiv 等外部科学数据库中定向检索前 \(|\mathcal{K}|=3\) 篇针对性学术文献,由分析 Agent 提炼为系统开发报告 \(\mathcal{R}_{\text{Dev}}\)。最后,代码编写智能体(Coding Agent)根据该报告在父代代码库 \(\mathcal{B}_{\text{parent}}\) 上实施模块重构、新损失函数设计或负采样策略调整,生成新一代代码库 \(\mathcal{B}^{(t+1)}\)。这种设计确保每次代码修改都具备明确的因果针对性。
3. 诊断工具-模型协同演化:评估准则与演化代码的动态自适应
随着代码库的持续演化,模型架构会不断加入新组件(如多模态编码器、时序衰减层或新型对比损失)。一个静态固定的诊断工具不仅无法接入新组件的张量接口,更无法量化检验 SIM 提出的新抽象需求(如“推荐风格单调无聊”)。为此,Self-EvolveRec 提出了诊断工具-模型协同演化机制。当子代代码库 \(\mathcal{B}^{(t+1)}\) 生成后,分析 Agent 首先静态扫描代码变更,输出结构蓝图 \(\mathcal{R}_{\text{Analyze}}\),总结新引入的模块与张量流动。接着,协同演化 Agent 将 \(\mathcal{R}_{\text{SIM}}\) 中的定性痛点与 \(\mathcal{R}_{\text{Analyze}}\) 对齐,自动编写新的代码诊断逻辑和度量指标(例如将用户对“缺乏多样性”的抱怨动态转化为 Top-\(K\) 类别信息熵计算代码;在序列推荐中动态合成用于检测时序敏感性的 Swap Sensitivity 和 Logit \(\Delta\) Swap 指标)。演化后的 \(\text{DIAG}^{(t+1)}\) 能够直接量化评估前期用户抱怨是否在算法底层真正得到解决,使评估准则与推荐系统本身同步进化。
损失函数 / 训练策略与轻量变体¶
在标准完整演化流程中,新候选代码库需在目标数据集(如 Amazon CDs、Electronics、MovieLens)上执行最大 300 轮全量重训练(采用统一批次大小 128、嵌入维度 50 与初始学习率 0.001),随后评估验证集 NDCG@5 并计算诊断指标。演化迭代上限设为 21 轮。
为支持工业级轻量化快速探索,作者进一步设计了零代价代理(Zero-Cost Proxies)轻量变体。该变体完全跳过全量训练,仅需在代表性 Mini-batch 上进行单次前向-反向传播,通过综合表示健康度与梯度健康度构建复合评估代理:
其中 \(i_e\) 和 \(u_e\) 分别表示交互表征矩阵与用户表征矩阵的有效秩(Effective Rank,基于归一化奇异值分布的香农熵),\(s_v = \sigma_1(I)/\sum_j \sigma_j(I)\) 为最大奇异值占总谱能量比例(直接量化表征塌缩程度),\(g\) 为反向传播得到的平均参数梯度范数(表征初始可训练性)。在零代价变体下,DIAG 直接复用上述子信号作为基础探针,SIM 则通过代码到意图的语义摘要评估逻辑合理性,实现高达 12 倍的演化速度提升且性能仅发生微弱衰减。
实验关键数据¶
主实验¶
实验基于留一法(Leave-last-out)评估协议,在 Amazon 三大子集(CDs、Electronics、Office)及 MovieLens-1M 上开展,测试集正样本与 99 个随机未交互负样本进行排序评估。各演化基准均以四种代表性骨干网络(NCF、NGCF、SASRec、MoRec)作为初始种子代码库展开 21 轮演化。
| 数据集 | 评估指标 | 初始种子 (SASRec) | AlphaEvolve | DeepEvolve | Self-EvolveRec (本文) | 相比最强基线提升 |
|---|---|---|---|---|---|---|
| CDs | NDCG@5 | 0.3559 | 0.3528 | 0.3610 | 0.3865 | +7.06% |
| HR@5 | 0.4676 | 0.4623 | 0.4870 | 0.5274 | +8.29% | |
| Electronics | NDCG@5 | 0.2325 | 0.2063 | 0.2508 | 0.2600 | +3.67% |
| HR@5 | 0.3208 | 0.2891 | 0.3427 | 0.3591 | +4.79% | |
| Office | NDCG@5 | 0.1799 | 0.1939 | 0.1816 | 0.2329 | +20.11% |
| HR@5 | 0.2526 | 0.2750 | 0.2631 | 0.3218 | +17.02% | |
| MovieLens | NDCG@5 | 0.5667 | 0.5583 | 0.5722 | 0.5765 | +0.75% |
| HR@5 | 0.7283 | 0.7199 | 0.7344 | 0.7366 | +0.30% |
在与其他代表性 NAS 算法(AutoFIS、NASRec、AutoLossGen、DNS-Rec)对比中,Self-EvolveRec 亦全面取得显著超越(例如在 CDs 上的 NDCG@5 对比最强 NAS 方案 DNS-Rec 0.2636 达 0.3865),证明了从预定义算子空间拓展至通用代码空间的巨大优势。此外,基于外部 Agent4Rec 和 PUB 多智能体沙盒的用户满意度评测显示,Self-EvolveRec 演化出的模型在留存浏览深度(Depth)与综合满意度评分(Satisfy)上均大幅领先基线。
消融实验¶
作者以 SASRec 为种子模型在 CDs 和 Electronics 数据集上进行了系统消融(全量训练设定),明确各个组件对方向性反馈的独立与协同贡献:
| 配置 | CDs (NDCG@5) | CDs (HR@5) | Electronics (NDCG@5) | Electronics (HR@5) | 说明 |
|---|---|---|---|---|---|
| (1) 仅标量指标 (Metric only) | 0.3610 | 0.4870 | 0.2508 | 0.3427 | 无方向性反馈的基线演化 |
| (2) 仅加用户模拟器 (+ SIM) | 0.3751 | 0.5102 | 0.2573 | 0.3551 | 引入定性用户体验批判 |
| (3) 仅加诊断工具 (+ DIAG) | 0.3676 | 0.4791 | 0.2515 | 0.3449 | 引入定量静态底层探针 |
| (4) 静态双向结合 (+ SIM + DIAG) | 0.3789 | 0.5164 | 0.2584 | 0.3566 | 双重视角但诊断工具不演化 |
| (5) 仅诊断协同演化 (+ DIAG + Co-Evolve) | 0.3727 | 0.5014 | 0.2532 | 0.3520 | 缺乏定性用户意图引导 |
| (6) 完整模型 (Self-EvolveRec) | 0.3865 | 0.5274 | 0.2600 | 0.3591 | SIM 定性 + 动态协同演化 DIAG |
关键发现¶
- 用户定性批判对演化增益贡献显著高于单纯底层探针:Row (2) (+SIM) 的性能跃升显著优于 Row (3) (+DIAG),表明从真实用户意图和类别覆盖层面指明系统缺陷,相比纯粹的数学表征健康度能够为 LLM 提供更具全局指导价值的改进线索。
- 协同演化机制解决评估工具滞后瓶颈:对比 Row (3) 与 Row (5),以及 Row (4) 与 Row (6),固定不变的诊断工具会随着模型结构复杂化而逐渐失灵;通过协同演化动态编写适应新结构的探针,才能保证多轮深度演化中反馈回路的持续有效性。
- 极端初始化场景鲁棒性卓越:在从零初始化的随机推荐模型(Random Recommender)上,Self-EvolveRec 仅需 8 至 11 轮即可收敛至 SOTA 水平(HR@5: 0.0525 \(\rightarrow\) 0.5165),远快于基线的 13 至 19 轮;在复杂的高性能工业级集成模型(NCF+NGCF+SASRec)中,基线方法演化后发生性能劣化,而 Self-EvolveRec 依然能突破瓶颈实现正向演化(CDs HR@5 达 0.5409)。
亮点与洞察¶
- 定性批判与定量诊断的闭合校准:SIM 捕捉宏观业务体验(如用户感知到的同质化推荐),DIAG 则深入检查底层张量表征(如余弦相似度与排序裕度)。这种结合有效防止了虚拟用户模拟器可能出现的“语义过度泛化”,保证反馈既符合人类真实偏好又具备扎实的数值机理支撑。
- “度量工具与被测系统同步演化”的前瞻思想:传统 AutoML/NAS 始终假设评估体系是静态上帝视角,而 Self-EvolveRec 首次提出“评估工具必须随算法一同演化”,让 LLM 在迭代代码的同时为自身编写测试探针,为开放式自主 Agent 系统演化提供了重要范式。
- 自零代价代理实现的工业落地平衡:通过矩阵有效秩和梯度范数构建单批次快速代理 \(\mathcal{M}_{\text{zero}}\),实现了演化搜索阶段 12 倍以上的算力开销缩减,成功降低了 LLM 大规模代码重构的技术门槛。
局限与展望¶
- 模拟器真实度的阶段性局限:尽管作者通过 Interest Groundedness 验证了用户模拟器在交互历史上的忠实性,并借助外部独立沙盒进行验证,但真实业务环境中的用户隐式交互更具噪声与动态性,最终成效仍需在工业场景进行线上 A/B 测试验证。
- 超长演化上下文与计算开销:当演化轮次更深或代码栈庞大时,维护整个代码库的执行日志、架构蓝图与多轮历史批判将耗费大量 LLM 上下文 Token,对代码合并与审查的稳定性提出了更高挑战。
相关工作与启发¶
- vs AlphaEvolve (Novikov et al., 2025):AlphaEvolve 将 LLM 代码演化拓展至完整代码库,但仅依赖单一标量反馈进行盲目试错;本文引入由 SIM 与 DIAG 构成的双向反馈,精准指明错误机理,演化轨迹更短且极少出现性能骤降。
- vs DeepEvolve (Liu et al., 2025b):DeepEvolve 引入通用文献检索以辅助科学假设生成,但其检索 Query 未能与底层具体缺陷直接绑定;本文通过多维反馈驱动定向检索,精准解决特定推荐痛点。
- vs NASRec / AutoLossGen:传统 NAS 局限于离散算子拼接或固定损失函数超参搜索;本文在图灵完备的 Python 代码空间中进行跨模块联合演化,能够自主发明诸如类别感知难负例挖掘、时间感知 RoPE 序列编码等崭新机制。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 首次将多角色用户模拟与底层结构探针结合,并开创性提出诊断工具-模型协同演化机制。
- 实验充分度: ⭐⭐⭐⭐⭐ 涵盖 4 大公开数据集、4 种基线架构、极端初始化冷启动/集成实验、外部沙盒双盲评估及零代价变体。
- 写作质量: ⭐⭐⭐⭐⭐ 逻辑结构严密,动机分析深刻,实验图表和案例溯源极具说服力。
- 价值: ⭐⭐⭐⭐⭐ 为自动化推荐系统设计及通用自主代码演化 Agent 提供了极具借鉴价值的新路线。