快手 UniRec 联合训练粗精排融合模块,在线使用时长提升 0.616%

UniRec: Cross-stage Multi-Task Fusion with Preference Alignment for Cascaded Recommender Systems

Lingyuan Kong, Jiaqi Cui, Fanjiao Zeng, Congqi Wang, Yu Li, Yuan Cheng, Jingxin Liu, Xiaoshuang Chen, Kaiqiao Zhan

cs.IR

2026-09-10

快手把粗排和精排的多任务融合放进同一张计算图,用跨阶段偏好对齐和属性组正则。全量上线后 App 使用时长 +0.616%,总观看时长 +0.675%。

这篇在解决什么

级联推荐里,粗排从几千候选里砍到几百,精排再精打细算。两边目标、特征和时延预算都不一样,融合模块通常各训各的。粗排可能把精排真正想要的条目提前丢掉;精排自己调融合,又可能把上游刚涨回来的改进抵消掉。

现有跨阶段工作多半拿精排当冻结教师,给粗排分数加一项蒸馏。真正一起优化两边融合头的做法,此前基本没人做。

方法

UniRec 给粗排和精排各放一个融合 agent,部分共享输入 embedding,在同一张图里反传。精排独有 pXTR 走私有 embedding。粗排塔用 MLP-Mixer 扛更大候选量;精排塔用缩小版 AutoInt,因为候选更少、时延更松。适配器把粗排表示接到精排打分,这条路径 stop-gradient,避免精排目标反过来改写粗排。跨阶段耦合主要走共享 embedding。

监督沿两个轴。竖直轴把精排成对偏好当成标签,要求粗排分数保持同一顺序,对齐的是序而不是分数尺度。水平轴把几十个任务的成对损失先按正负证据加总,再过 Softplus,计算量从 O(M N²) 收到 O(N²),代数上与逐任务求和等价。曝光样本上再加一项后验反馈损失。

端到端优化会钻视频时长这类属性:长视频更容易攒观看证据,整组抬分就能降损失。AGRR 按时长分桶,组内算相对优势,再让融合分数去匹配组内目标分布。整桶一起抬没有梯度可占,跨时长排序仍由原来的成对损失负责。

结果

公开级联日志 RecFlow 上,UniRec 的精排 NDCG@10/30/50 为 0.0990 / 0.1870 / 0.2409,高于单阶段融合 UMRE 的 0.0947 / 0.1818 / 0.2376。rankAUC 是 0.5912,略低于 UMRE 的 0.6009;AUC 跨请求混合,NDCG 看单次请求内排序,后者更贴近截断。跨阶段一致性 ASH(精排 Top-10 被粗排 Top-50 留住的比例)到 0.9978,UMRE 0.9855,只改粗排的 COPR 0.9668。Kendall τ / Spearman ρ 为 0.6318 / 0.8072。

独立训练的 EMER 在 ASH 上只有 0.7219,说明单阶段学得再花,粗排仍可能把精排想要的条目滤掉。

线上替换快手两边融合模块,一周 20% 流量 A/B:App 使用时长 +0.616%,总观看 +0.675%,视频观看 +0.755%,活跃用户 +0.189%,点赞 +2.367%,关注 +1.573%。论文称所列指标没有下跌,现已全量。

为什么重要

工业界真正决定谁留下的,是融合公式,不是单任务 pXTR。把两个融合头当成一个可微问题,比再给粗排加一个蒸馏系数更对症。CPPA 让「几十个目标」在精排侧训得动;AGRR 把时长钻营从合法优化方向里拿掉。0.6% 量级的使用时长,在快手这种体量上已经是全量级改动。

局限与存疑

对齐损失不回传到精排私有参数,精排质量主要靠本阶段监督,联合训练对精排 NDCG 的贡献在消融里几乎看不见。AGRR 目前只按视频时长分桶。RecFlow 上 NDCG 绝对值偏低,和标签处理、截断设定有关,跨论文不宜直接比大小。还没接到重排,也还没做到电商和广告。

术语

原文与代码

社区讨论

相关论文

全部论文解读