快手把推荐拆成技能基因组,六项测试AUC全超人工

EvoSkillRec: Skill-Genome Evolution for Recommender Architecture Discovery

Xiaopeng Li, Kuo Cai, Bo Chen, Wenlin Zhang, Mengyang Ma, Yingyi Zhang, Zichuan Fu, Yu Yang, Qidong Liu, Yiyu Wang, Ruiming Tang, Wenwu Ou, Jiang Wu, Zhanbo Xu, Xiangyu Zhao

cs.IR

2026-09-28

港城大与快手用技能基因组进化推荐架构。六数据集测试AUC全超最强人工基线,最大+0.0085。

这篇在解决什么

推荐系统真正拉开差距的,经常是架构里的归纳偏置:写进网络结构的任务先验。CTR 预测要稀疏类别特征做结构化交叉,DeepFM 和 DCN 把这个写进网络。目标感知排序里,不同候选应激活用户历史的不同片段,DIN、DIEN 用注意力来做。多任务要共享表示又不把任务信号揉烂,MMoE 和 PLE 用专家路由。这些模块靠专家手搓。换任务、换特征分布、换业务场景,一轮轮试错,知识很少能直接搬走。

NAS(神经架构搜索)能在给定算子空间里搜交互、连边或损失,NASRec 和 AutoLossGen 走的就是这条路。空间本身仍是人写死的,搜不到语法外面的新模块。LLM 直接改代码把空间打开了,FunSearch、AlphaEvolve、Self-EvolveRec 都在做。无约束编辑会产出大量非法或无效架构,成功的改动也困在一次 diff 里,下一轮还从代码库和反馈文本重来。会进化的推荐系统应该能记住。

方法

EvoSkillRec 把现成推荐模型拆成原子、可执行的技能,再用带类型的技能基因组表示整张模型。港城大、快手和西安交大合作,实习在快手完成。

一张技能不是一段 prompt。它带着 PyTorch 代码、输入输出张量键、归纳偏置说明、适用任务、失败签名和验证套件,走一块黑板式上下文 SkillContext。两个技能能拼接,只要生产者的输出键覆盖消费者的输入键。卡片上的 goodfor / badfor 在检索时当说明书。

启动库从 Torch-RecHub 和 UniRank 编译,覆盖 DeepFM、Wide & Deep、DCN、DIN、DIEN、SASRec、MMoE、PLE 等。解析可孤立模块,写卡片,改写成 BaseSkill,再验证。最硬的一关是重建种子模型,端到端行为必须对上。Tier-1 共 94 个技能、11 类,一次实验内固定。Tier-2 只收通过同一套管线、并且放进基因组后确实抬高指标的发明。

每代默认 8 个候选,6 个来自技能空间,2 个来自代码空间。

技能空间把模型当成基因组图,做加节点、替换兼容技能、杂交不同家族的分支、按任务特化。检索先按任务、接口、实现能否加载做硬过滤,再按任务匹配、张量键、诊断文本、对应失败签名的归纳偏置、历史平均增益打分。

代码空间在库够不着当前失败模式时写新模块。LLM 拿到的不是训练数据,是设计简报:父代基因组、失败诊断、近期进化记忆、当前张量键和约束。规划器先出结构草图,合成器再写 nn.Module。草图只允许宏级别改动,换节点、插入、分叉进融合层或换融合层,并且只能读基因组里已有的中间张量。静态分析会丢掉带文件、网络、子进程或动态执行能力的代码。前向反向都能跑,才进入训练。幸存者携带的新技能沉进 Tier-2,下一代按普通库技能检索,不再消耗代码空间预算。

验证分数连续 k 代抬不上去,预算就偏向代码空间;新技能入库后再退回默认比例。AutoResearch 控制器把诊断、提案、训练、选幸存者和沉淀技能收成一条外循环。

结果

主实验代码空间用 GPT-5.5。验证指标做选择,测试 AUC 做报告。

任务最强人工NASRecOpenEvolveEvoSkillRec相对最强基线
CTR-MovieLens0.7487 Wide & Deep0.73610.75210.7522+0.0001
CTR-Amazon Books0.6587 Wide & Deep0.64870.66540.6708+0.0054
CTR-Amazon Beauty0.6666 AutoInt0.66320.67600.6845+0.0085
MTL-Census0.9726 AITM0.97110.97220.9748+0.0022
MDL-Amazon0.7012 SAR-Net0.68700.69030.7033+0.0021
MDL-MovieLens0.7924 SAR-Net0.76190.77300.7932+0.0008

NASRec 在六项上都低于最强人工模型。OpenEvolve 在三项 CTR 上超过人工,在 MTL 和 MDL 上掉回去,MDL-MovieLens 落后 0.0194 AUC。EvoSkillRec 是对照里唯一六项都超过最强人工基线的方法。MovieLens CTR 相对 OpenEvolve 只有 +0.0001,和持平几乎没区别。

关掉其中一个空间后,完整模型六项仍最高,相对更强那一侧经常只有 +0.0002(MovieLens CTR)和 +0.0005(Beauty)。代码空间在 CTR 上更常是更强的单空间,技能空间在 MTL-Census 和 MDL-Amazon 上更强,MDL-MovieLens 两边 0.7924 对 0.7926。晋升进库的代码技能从 Beauty 的 16 个到两个多域任务的 45 个。多域上技能空间幸存者比例只有 3.1% 和 6.2%,大量重组被判成重复架构,训练前就丢掉。

QK-Video 上从 RankMixer 跑 30 轮,联合优化验证 AUC 和训练 MFU(实际训练 FLOP/s 占 GPU 峰值的比例)。入围:MFU 不低于种子的 95%,验证 AUC 落在现任 10^{-3} 以内。Pareto 五个点里只有第 19 轮 P1 在测试集上两项都还在:测试 AUC 0.93598 对 0.93580,MFU 1.477% 对 1.433%。验证 AUC 最高 0.9301,MFU 最高 1.605%。五个前沿模型都把 RankMixer 从 L=3、E=2 扩到 L=4、E=3,并在 DIN 注意力后插入 Hadamard 交叉混合。P1 在塔接口加了低秩任务路由,是五个里 MFU 最低的。

换 LLM:Claude Opus 4.8 在 CTR-Books 上测试 AUC 0.6738 最高;GLM-5.2 在 MTL 0.9739、MDL 0.7935 领先,和 GPT-5.5 的 0.7932 基本持平。DeepSeek-V4-Pro 三项都弱,有效提案率也更低。

为什么重要

NAS 的可组合算子和 LLM 改代码的开放发明,被接到同一条可积累的库上。已经有 CTR、多任务、多域模块的团队,可以让一次跑出来的新模块在下一轮被类型检查后重新拼进去。

表上的 AUC 多数是渐进改进。公开 CTR 最大的 +0.0085 出现在 Beauty;MovieLens 和 MDL-MovieLens 的优势落在随机噪声附近。跟这篇,跟的是晋升再复用这套工程。

主实验绑的是 GPT-5.5。RQ5 说明换模型会换出不同架构,框架和驱动它的 LLM 分不开。

局限与存疑

部分优势是 10^{-4} AUC,Table 1 每个格子都是单次进化。多随机种子跑不起,因为每个格子是一次完整进化,不是一次拟合。小的排序只能当观察。

代码空间每个提案两轮 LLM 调用再加完整训练,大量提案在训练前被拒。全部骨干和任务大约花了 7000 美元。这些数字刻画的是 EvoSkillRec 加上驱动它的模型。

跨任务迁移没测,技能库只在同一任务家族内生长。工业接触面只有 QK-Video,库仍从公开学术架构冷启动。P1 的测试 AUC 增益是 1.7×10^{-4},和公开榜上那些万分位是同一量级。

让 agent 取代有经验的推荐架构工程师,目前还做不到。不同骨干提案靠谱程度差很多,预算、晋升阈值和评估协议都还要人盯。

术语

原文与代码

社区讨论

相关论文

全部论文解读