Once Generated, Ranked:端到端生成式 Slate 推荐深度解读
1. 问题与动机
这篇论文针对的是推荐系统中“先生成、再排序”的级联结构。传统链路先从海量物品中召回候选,再由排序和重排模型在候选集合内优化;一旦相关物品没有进入候选集,后续模型无法补救,而且召回、排序、重排使用不同目标,整体优化容易被阶段边界割裂。生成式推荐用 Semantic ID(SID)直接生成物品,理论上可以绕开候选集限制,但现有方法往往只用 next-token prediction 学单个 SID token,不能直接表达一个 slate 内物品的相互影响、位置关系和整体效用。
论文进一步指出两个具体缺口。第一,已有 SID 多由内容语义量化得到,往往没有充分利用局部协同信号,长尾物品和行为稀疏物品的表示容易不稳定;第二,曝光顺序不等于用户偏好顺序,单纯模仿日志会把展示偏差固化到生成器中。作者因此把 slate 作为基本决策单位,在同一框架内处理物品表示、列表规划、位置解码和反馈对齐。论文在 KuaiRec 与快手工业数据上验证,并在快手 3% 生产流量上做线上 A/B,目标是同时改善相关性、列表质量与生成效率。
2. 方法详解
OGR 由 TUSID、GL2P 和 SPA 三个部分组成。给定用户历史 \(H_u\),每个物品先被编码为四层 SID,模型直接生成长度为 \(K=5\) 的有序 SID 列表,再通过 SID-to-item 映射得到最终 slate。离线实验使用最大历史长度 128、四层 codebook、每层 1,024 个 code,推理采用 beam width 20,运行在 NVIDIA L20 上。
TUSID:推荐感知的统一 SID
TUSID 先做语义融合。多模态编码器从物品图像、音频和文本得到细粒度表示 \(e_i^M\),共享文本编码器分别编码 Brand、Category、B-tags(供给侧内容特征)和 C-tags(需求侧用户价值)四类属性。以多模态向量作为 query、四类属性作为 key/value 做 cross-attention,再通过 sigmoid 门控残差融合:\(e_i^{sem}=e_i^M+g_i h_i^{attr}\)。门控让不同物品自适应决定属性补充强度,并用 SASRec 的 next-item 预测损失训练融合参数,同时加入残差范数正则,防止属性支路压过主语义表示。
语义表示之后加入局部协同信息。作者在用户高质量正反馈训练前缀内建立物品共现:距离为 \(|p-q|\) 的上下文物品按 \(1/|p-q|\) 加权,近邻行为贡献更大。为了避免显式保存巨大物品—上下文矩阵,CCE 使用共享 bucket hash 和 sign hash 的 CountSketch,将每个物品压缩到固定维度;随后做 signed-log、归一化和随机投影。行为证据用贡献过的不同用户数 \(U_i\) 衡量,协同置信度为 \(\gamma_i=\log(1+U_i)/(\log(1+U_i)+\tau)\),最终权重 \(\alpha_i=\alpha_{col}\gamma_i\)。统一向量采用 \([\sqrt{1-\alpha_i}e_i^{sem};\sqrt{\alpha_i}e_i^{col}]\) 拼接,再用 RQ-KMeans 递归量化为层次化 SID。这样热门物品可以利用协同结构,而冷启动物品在 \(U_i\) 很小时主要依赖内容语义。
GL2P:全局列表规划与流水线解码
GL2P 不直接把每个位置当作独立的 next-item 预测。历史编码器将层次 SID embedding 与时间 embedding 相加后编码;列表规划器以 BOS 和前面位置的 SID 聚合向量为输入,使用带因果 mask 的 Transformer decoder 生成每个位置的偏好表示 \(p_1,\ldots,p_K\)。位置 \(m\) 的 SID 解码器以 \(p_m\)、该物品已经生成的 SID 前缀和用户历史为条件生成四层 SID token。规划器生成 \(p_{m+1}\) 的同时,SID 解码器已经可以处理第 \(m\) 个物品,因此形成跨位置流水线:保留 slate 内依赖,又避免完整 slate 按物品串行生成。
训练同时使用两条监督序列。曝光序列保留原始展示顺序,反馈序列按用户对每个物品的反馈重新排序,联合损失为 \(L_{sup}=L_{sid}^{eps}+\alpha L_{sid}^{fb}\)。前者提供日志结构稳定性,后者把点击、有效观看等反馈转成更接近偏好顺序的学习信号。
SPA:奖励引导的保守偏好对齐
监督训练仍然是在模仿固定目标,不能直接比较多个生成 slate 的相对质量。SPA 以监督模型为 reference policy,对每个用户通过 beam search 产生去重候选 slate。主奖励聚合有效观看、完成、点赞、分享、立即跳过和不喜欢等反馈;辅助奖励只保留 slate 内多样性与新颖性,其中多样性权重 0.90、新颖性权重 0.10。两类奖励先在同一用户的候选集合内标准化,只有当主辅奖励方向一致时才让辅助奖励按比例参与,减少指标冲突造成的错误偏好。
策略优化使用 clipped importance-ratio 目标,同时加入 reference/current slate 分布的 KL 惩罚,并重放监督损失:\(L_{SPA}=L_{pol}+\gamma L_{KL}+\eta L_{sup}\)。对齐阶段只更新列表规划器和位置 SID 解码器,TUSID 等底层表示保持冻结。这一设计把探索集中在列表组织和解码策略上,避免奖励优化把 SID 词表和基础语义空间一起推离原模型。
3. 核心技术贡献
- TUSID 将“内容语义—属性语义—局部协同”统一到同一 SID 构造过程中。与只做语义量化或用 InfoNCE 粗略对齐不同,CountSketch 保留距离加权的局部共现,置信度门控又避免稀疏行为被误当成稳定偏好。
- GL2P 将 slate 级全局规划和 item 级 SID 解码解耦后流水化。它不是简单把多个 next-item 模型并列,而是先在偏好空间建模位置间依赖,再在每个位置内生成 SID 链,从目标和执行路径两方面修正 NTP 与 slate 效用不一致的问题。
- SPA 把线上反馈转成相对偏好,并通过主奖励、辅助奖励和保守 KL 约束联合优化。相比只做 likelihood imitation,它能够选择用户更喜欢、更多样、更不重复的列表;相比无约束 RL,又保留了与监督策略的安全距离。
- 论文把效果与系统关键路径联系起来。设 slate 长度为 K、SID 深度为 D,串行生成深度从 O(KD) 降到 O(K+D);在 K=5、D=4 时理想关键路径缩短为 20/9≈2.22 倍,实测吞吐相对 TIGER-Beam 和 OneRec-Beam 分别达到 2.43× 与 2.49×。
4. 实验结果分析
实验使用公开 KuaiRec 和快手工业数据,按时间排序并采用 leave-five-out 评估;同时报告正反馈列表上的 Hit Rate、Recall、NDCG,以及曝光列表上的 Hit Rate、Recall。主结果如下,OGR 与生成式基线使用可比的 32M 参数规模:
| 数据/方法 | Effective View Recall@5 | NDCG@5 | 备注 |
|---|
| Industrial OneRec | 0.0321 | 0.0394 | 生成式基线 |
| Industrial OGR | 0.0416 | 0.0633 | 完整 GL2P+SPA |
| KuaiRec OneRec | 0.1117 | 0.0949 | 生成式基线 |
| KuaiRec OGR | 0.1475 | 0.1303 | 完整 GL2P+SPA |
摘要层面的相对 NDCG@5 提升为工业数据 48.2%、公开数据 27.2%。在 SID 构造比较中,TUSID 的 KuaiRec Effective Recall@5/NDCG@5 为 0.148/0.130,高于 RQ-KMeans(0.121/0.116)和 GNPR-SID(0.129/0.115)。消融显示语义支路不能简单相加:仅做属性直接加法时 NDCG@5 下降到 0.1096,而 cross-attention 加门控后回升到 0.1198;再加入 CCE 拼接和 CAW 后达到 0.1303。说明属性与协同结构需要保留互补性,不能过早压成一个无区分的向量。
列表生成与对齐的消融更能说明贡献来源。工业数据上完整模型的 Effective Recall@5/NDCG@5 是 0.0416/0.0633;去掉 list-wise planner 后降为 0.0201/0.0359,去掉 SPA 后为 0.0344/0.0419,去掉 primary reward 后为 0.0332/0.0467,去掉 auxiliary reward 后为 0.0403/0.0554,去掉 conservative regularization 后为 0.0227/0.0312。最大下降来自 planner 和保守约束,表明“先规划再生成”和“控制策略漂移”比单纯添加多样性奖励更关键。KuaiRec 上去掉 feedback-aware supervision 后 NDCG@5 从 0.1303 降至 0.1139,去掉 exposure-order supervision 后为 0.1201,说明两条监督缺一不可。
效率方面,OGR 的结构把依赖深度从 20 步降为 9 步,实测吞吐比 TIGER-Beam 高 2.43×、比 OneRec-Beam 高 2.49×,但 Top-5 版本虽然更快,因缺少跨位置建模而有明显质量损失。线上 A/B 使用快手 3% 生产流量:Effective Views +1.120%、Comments +2.954%、Likes +0.505%、Forwards +1.255%。这一结果说明收益并非只来自离线 NDCG,列表规划和反馈对齐在真实行为指标上也有效;不过评论指标提升明显高于点赞,说明奖励设计与不同互动目标的权衡仍值得继续拆解。
5. 局限与未来方向
论文正文没有单列“Limitations”或“Future Work”章节,结论也主要总结方法和实验结果,因此无法把未明确陈述的内容冒充为作者自述。根据实验设置,作者实际覆盖的是一个公开数据集和一个快手工业数据集,线上验证也只来自快手 3% 流量;方法依赖多模态内容、供需侧标签、曝光日志和逐物品反馈,迁移到只有短文本、弱反馈的 UGC 社区需要重新设计 TUSID 属性和奖励。论文还固定了四层、每层 1,024 code 的 SID 配置,未系统讨论物品目录持续变化、SID 重编码和跨业务迁移。未来更自然的方向是增量 SID、冷启动物品的语义回退、跨场景奖励校准,以及在更严格的延迟和成本约束下验证生成质量。
6. 工业实践意义
对社区 UGC 搜索/推荐,最可落地的不是直接照搬完整自回归推荐器,而是分层吸收三个思想。第一,在 item 表示层把帖子文本、作者/话题/内容类型等语义特征与“同一用户短窗口内共同消费”的局部协同统计分开建模,再按行为证据加权;新帖子或低曝光帖子应自动降低协同权重,避免热门内容先验吞噬长尾。第二,在结果页优化时从单 item score 转向 slate objective,显式建模相邻结果的重复、主题覆盖和用户反馈顺序;可以先在现有召回候选内做 GL2P 式规划,逐步评估是否值得扩大生成式候选空间。第三,把曝光顺序和反馈重排同时作为监督,避免把“系统展示过”误当成“用户喜欢”。
部署上,OGR 给出的 K=5、D=4、beam width 20 和 L20 配置说明流水线并行是核心工程杠杆:如果仍然按 K×D 串行解码,延迟会迅速增长;如果只做 Top-5 并行候选,又会丢失列表依赖。建议先实现 planner 与 SID decoder 的异步流水,再对比线上 P99 延迟、GPU 利用率、重复率和 nDCG/CTR。SPA 的奖励要保持保守,主目标可用有效点击或有效阅读,辅助目标加入主题多样性、低质过滤和新鲜度,但必须监控 reward hacking、内容安全和业务约束。对于短文本社区,最终应把用户价值、内容质量、风险控制和商业目标放入同一 slate 级离线回放与小流量 A/B 框架,不能只凭生成模型的 token likelihood 判断可上线性。