Unifying Generative Recall and Multi-Objective Ranking in a Single Decoder-Only Sequence
Ruochen Yang, Shuang Wen, Pengbo Xu, Yusheng Huang, Jiangxia Cao, Shuang Yang, Zhaojie Liu, Jiawei Sheng, Tingwen Liu
cs.IR
2026-07-27
用一个 decoder-only Transformer 同时做生成式召回和多目标排序,靠双查询前缀因果注意力给两个任务不同可见性、用 LoRA 保住排序可塑性;快手两周线上 A/B 播放量 +1.177%、点赞率 +2.560%、打赏总额 +2.569%。
工业推荐通常把召回和排序拆成两段独立管线。这套级联能支持全库检索和细粒度多目标打分,代价也明确:两段目标不一致、候选交接处丢信息、用户侧上下文在召回和排序里各算一遍。而生成式召回和多目标排序的骨干都是 Transformer,架构上天然有合并的机会。难点在于直接共享会出事,因为两段需要的信息可见度和优化方式不同。UniR² 要把生成式召回和多目标排序塞进一个 decoder-only Transformer。
模型在一个异构序列上工作:S = [P || Tgen || Trank],P 是用户段(画像加多种行为的历史序列:点击、长看、送礼等),Tgen 是 SID 轨迹(3 层 Res-Kmeans,码本 8129),Trank 是物品特征 token。
关键是双查询前缀因果注意力(Dual-Query Prefix-Causal Attention),给两个任务不同可见性:生成查询只能看用户段和自己前面位置;排序查询用受限范围的双向自注意力,能看用户段、生成段和排序段。这样排序能消费召回的整个决策过程,而不只是它吐出的离散候选。
生成的 SID 轨迹充当召回和排序之间的表征桥。优化上,底座投影权重共享,但召回和排序的参数集不相交;排序侧用 LoRA 残差矩阵保住可塑性,又不破坏生成骨干,做到前向耦合、优化隔离。
离线在大规模工业数据上,召回侧(对比 OneLive、NEZHA、PROMISE)HR@128 在 Show 上到 0.8114(+3.05%)、Click 上 0.8741(+3.86%),MRR 也全面领先。排序侧 CTR AUC 0.8513(+0.75%),UAUC +1.45%。
线上 A/B 在快手跑两周(2026 年 6 月,5% 流量)。快手主 App:播放量 +1.177%、关注率 +0.655%、点赞率 +2.560%;快手极速版:送礼用户数 +0.717%、送礼意愿 +1.567%、打赏总额 +2.569%。效率上,统一架构复用召回期算好的用户上下文和 KV 缓存,排序和策略过滤并行,省掉了两个独立服务之间的跨服务传数。
对做工业推荐系统的人,这篇给了一个可参考的「召回-排序统一」工程样板:用双查询注意力切分可见性、用 LoRA 隔离优化边界,既拿到表征耦合的好处又不让排序梯度冲垮生成骨干。线上打赏总额涨 2.569% 说明这套架构在亿级流量上真能落地。它也呼应了一个趋势:当召回和排序都 Transformer 化,两段合并的工程红利值得认真算。
论文没有专门的局限小节,这是工业系统论文的通病。能读出来的几处:规模收益有明显递减;SID 语义还不稳时得用两阶段训练防止负迁移;排序查询如果砍掉长历史会省算力,但要求生成的 SID 轨迹足够浓缩用户-物品匹配过程。一个没验证的点:统一架构把召回和排序绑在一个模型里,单点故障面变大,训练和 Serving 复杂度、故障爆炸半径论文没展开,线上稳定性要自己另算。