找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3432

积分

0

好友

451

主题
发表于 2026-2-13 07:29:08 | 查看: 33| 回复: 0

在推荐系统的多阶段Pipeline(召回→粗排→精排→重排)中,重排作为最终的决策环节,承担着将精排输出的有限候选集(通常为Top 100–500个Item)转化为最优序列的关键职责。数学定义为在给定候选集:

C = {x1, x2, ……, xn}

与目标列表长度 K,重排的目标是寻找一个排列 π,使得全局收益函数最大化。

在推荐系统、搜索排序等AI领域,Pointwise 建模是精排阶段的核心方法,即对每个 Item 独立打分后排序,pointwise 建模范式面临挑战:

  • 多样性约束:精排按 item 独立打分排序 → 高分 item 往往语义/类目高度同质(如5个相似短视频连续曝光)。
  • 位置偏差:用户注意力随位置显著衰减,且不同item对位置敏感度不同。
  • 上下文建模:用户决策是序列行为,而非独立事件。

重排架构演进:生成式模型实践

我们的重排系统采用G-E(生成-评估)两阶段协同框架:

  • 生成阶段(Generation):高效生成若干高质量候选排列。
  • 评估阶段(Evaluation):对候选排列进行精细化打分,选出全局最优结果。

在不考虑算力和耗时的情况下,理想方案是穷举所有排列 π

生成与评估双阶段框架示意图

在早期实践中,生成阶段主要依赖启发式规则、随机扰动和BeamSearch算法生成候选列表。这种双阶段范式存在显著的痛点:

  • 质量-延迟-多样性的“不可能三角”:在实践中,增加生成候选列表数量通常可以提升最终列表的质量,但边际收益递减。我们曾尝试增加多目标、多样性等策略,这些措施都带来了消费指标的提升。然而,当候选列表达到百量级时,单纯增加候选集对指标的提升变得有限,同时伴随着两个问题:
    1. 增加Beam宽度,系统耗时增加,但DCG@K的提升逐渐减少。
    2. 增加生成通道数,通道间列表的重叠度逐渐增加,去重后有效的新列表增加量逐渐减少。
  • 阶段间目标不一致
    1. 分布偏移:启发式生成或Beam Search输出的Top排列中,有相当一部分(例如20%)会被后续的评估模型否定,导致生成阶段的搜索效率被浪费。
    2. 梯度断层:Beam Search内含argmax操作,使得双阶段无法进行端到端优化;生成模型无法感知评估模型的反馈,优化方向容易偏离全局最优。

生成模型优化

生成方法可分为启发式方法和生成式模型方法。一般认为,生成式模型方法要优于启发式方法,并逐渐成为重排领域的主流范式。生成式模型主要分为两类:自回归生成模型和非自回归生成模型。

  • 自回归生成:按位置顺序逐个生成物品,第 t 位的预测依赖前 t-1 位已生成结果。

    • 优点
      1. 序列依赖建模能力强,天然能捕获物品间的顺序依赖。
      2. 训练简单稳定,每步使用真实前序作为输入,收敛快。
      3. 生成质量高,逐步细化决策,适合长序列的精细优化。
    • 缺点
      1. 推理延迟高,生成 L 个物品需 L 次前向传播,线上服务难以满足毫秒级要求。
      2. 存在局部最优风险,早期错误决策无法回溯修正,可能影响整体序列质量。
  • 非自回归生成:一次性预测整个推荐序列的所有位置,各位置预测相互独立。

    • 优点
      1. 推理速度极快:生成整个序列仅需1次前向传播。
    • 缺点
      1. 条件独立性假设过强:各位置并行预测,难以显式建模物品间复杂的依赖关系。

非自回归模型

为了对齐双阶段目标的一致性,同时兼顾线上性能要求,我们推进了非自回归模型的上线。模型结构如下图:

非自回归生成模型结构图

模型包括候选编码器(Candidates Encoder)和位置编码器(Position Encoder)。Candidates Encoder是标准的Transformer结构,用于获取item间的交互信息;Position Encoder额外增加了Cross Attention层,期望位置序列能同时关注候选物品序列。

  • 模型特征:用户信息、item特征、位置信息、上游精排打分特征。
  • 模型输出:一次性输出 n×K 的位置-物品得分矩阵(n 为候选 item 数,K 为目标列表长度),支持高效并行推理。
  • 位置感知建模:引入可学习的位置嵌入,显式建模“同一 item 在不同位置表现不同”的现象(如首屏效应、位置衰减)。
  • 训练目标:模型使用logloss,让正反馈label序列的生成概率最大,同时负反馈label序列的生成概率最小。

其中,o_ij 表示位置i上是否展示物品j,y_i 表示位置i上的label。

线上实验及收益

  • 一期新增了非自回归生成通道,pvctr +0.6%,时长+0.55%。
  • 二期在所有通道排序因子中集成(bagging)非自回归模型,pvctr +1.0%,时长+1.13%。

自回归模型

由于条件独立性假设,非自回归模型对上下文信息的建模能力存在不足。因此,我们近期重点推进了自回归模型的开发。
模型通过Transformer架构建模列表的整体收益。我们使用单向Transformer来模拟用户浏览行为的因果性,同时解决自回归生成中的暴露偏差问题,以保持训练和推理的一致性。结构如下:

自回归生成模型结构图

  • 模型特征:用户信息、item特征、位置信息、上游精排打分特征。
  • 训练目标:模型使用有序回归(Ordinal Regression)损失函数,使其在评估多个回合中不同长度的子列表时,能够很好地体现出序列中的增量价值。

线上模型推理效率优化及实验效果
自回归生成模型推理延迟高,生成 K 个物品需 K 次前向传播,线上服务难以满足毫秒级要求。因此,我们在传统自回归生成模型的基础上增加了MTP(Multi-Token Prediction)结构,旨在突破生成式重排模型的推理瓶颈。其核心思想是将传统自回归的单步预测扩展为单步多token联合预测,从而显著减少生成迭代次数。

自回归生成模型在社区推荐场景已完成推全。在实验中,我们新增了自回归生成模型通道,但并非完全体,仅对部分位置的生成调用了模型:

  • 一期调用两次模型,每次预测4个位置,pvctr +0.69%,有效vv +0.58%。
  • 二期调用两次模型,每次预测5个位置,pvctr +0.54%,有效vv +0.40%。

推理性能优化:端到端生成的效率保障

工程架构

为解决CPU推理模型延迟高、制约业务效果的问题,我们对模型服务进行升级,引入高性能GPU推理能力,具体方案如下:

模型服务GPU推理架构图

  • GPU推理框架集成与升级
    1. 框架升级:将现有依赖的推理框架升级为支持GPU的高性能服务框架。
    2. 硬件资源引入:引入 NVIDIA L20 等专业推理显卡,为当前的listwise评估模型及自回归生成模型提供专用算力,实现模型推理的硬件加速。
  • 模型服务独立部署与容量提升
    1. 为解决模型部署效率低与资源竞争问题,将模型的打分逻辑从现有重排服务中完全解耦,构建并部署独立的专用模型服务集群,从根本上消除与重排服务在CPU、内存等关键资源上的竞争。

模型优化

  • 模型格式转换与加速:将模型导出为 ONNX 格式,并使用 TensorRT 进行量化、层融合、动态张量显存优化等技术加速推理。
  • Item Embedding缓存:预计算item的静态Embedding网络,线上直接查询以节省大量计算量。
  • 自回归生成模型核心优化,KV Cache 复用:缓存已生成token的Key和Value状态以及attention值,在生成新token时仅计算增量部分,避免重复计算。
  • 其他LLM推理加速技术应用落地,例如GQA(Grouped-Query Attention)。

未来规划:迈向端到端序列生成的下一代重排架构

当前“生成-评估”双阶段范式虽在工程落地性上取得了平衡,但其本质仍是局部优化:生成阶段依赖启发式规则或浅层模型生成候选,评估阶段虽能识别优质序列,却无法反向指导生成过程,导致系统能力存在理论上限。为突破这一瓶颈,我们规划构建端到端序列生成(End-to-End Sequence Generation) 架构,将重排从“候选筛选”升级为“序列创造”,直接以全局业务目标(如用户停留时长、互动深度、内容生态健康度)为优化目标。

核心架构设计

  • 统一生成器:以 Transformer 为基础架构,搭建自回归序列建模能力,采用分层混合生成策略:
    1. 粗粒度并行生成:首层预测序列骨架(如类目分布、内容密度等)。
    2. 细粒度自回归精调:在骨架约束下,自回归生成具体 item,确保局部最优。
  • 序列级Reward建模
    1. 构建多目标 reward 函数。
    2. Engagement(参与度):基于用户滑动轨迹建模序列累积收益(如滑动深度加权CTR)。
    3. Diversity(多样性):跨类目/创作者/内容形式的分布熵。
    4. Fairness(公平性):冷启内容、长尾创作者曝光保障。

训练范式升级:强化学习与对比学习融合

推进自回归生成模型的架构升级与训练体系重构,引入强化学习微调(如PPO/DPO)与对比学习机制,以提升序列的整体效率。

  • 搭建近线系统,生成高质量列表候选,提升系统能力上限

    1. 基于 DCG 的列表质量打分

      • 对每个曝光列表L,计算其 DCG@K 作为质量分数:
      DCG(L) = Σ(j=1 to K) gain(item_j) / log₂(j + 1)
      • 其中 gain(item) 可定义为:
        • 若点击:+1.0
        • 若互动(点赞/收藏):+1.5
        • 若观看 >5s:+0.8
        • 否则:0
    2. 构造偏好对
      • 对同一用户在同一上下文下的两个列表 L_win(胜者)和 L_lose(败者)。
      • DCG(L_win) - DCG(L_lose) > δ(δ 为 margin,如 0.1),则构成一个有效偏好对。
  • 引入强化学习微调(PPO/DPO)与对比学习机制
    1. 模型结构
      • 使用当前自回归生成模型作为 策略模型 π_θ
      • 固定一个预训练模型作为 参考策略 π_ref(即 DPO 中的“旧策略”)。
    2. DPO损失:利用上述构造的偏好对 (L_win, L_lose),优化策略模型,使其生成的列表更接近高质量列表的分布。
  • 技术价值
    1. 突破“质量-延迟-多样性”不可能三角:通过序列级优化,在同等延迟下实现质量与多样性双提升。
    2. 为AIGC与推荐融合铺路:端到端生成器可无缝接入AIGC内容,实现“内容生成-序列编排”一体化。

参考文献

  1. Gloeckle F, et al. Better & faster large language models via multi-token prediction[J]. arXiv preprint arXiv:2404.19737, 2024.
  2. Ren Y, et al. Non-autoregressive generative models for reranking recommendation[C]//Proceedings of the 30th ACM SIGKDD Conference on Knowledge Discovery and Data Mining. 2024: 5625-5634.
  3. Meng Y, et al. A generative re-ranking model for list-level multi-objective optimization at taobao[C]//Proceedings of the 48th International ACM SIGIR Conference on Research and Development in Information Retrieval. 2025: 4213-4218.
  4. Zhao X, et al. Deep reinforcement learning for page-wise recommendations[C]//Proceedings of the 12th ACM conference on recommender systems. 2018: 95-103.
  5. Feng Y, et al. GRN: Generative Rerank Network for Context-wise Recommendation[J]. arXiv preprint arXiv:2104.00860, 2021.
  6. Pang L, et al. Setrank: Learning a permutation-invariant ranking model for information retrieval[C]//Proceedings of the 43rd international ACM SIGIR conference on research and development in information retrieval. 2020: 499-508.

本文分享了一种在电商社区场景下,基于生成式模型的重排系统演进路径。对于此类涉及复杂算法与工程优化的实践,欢迎在云栈社区与更多开发者交流探讨。




上一篇:从深圳撤退到二线,我同学为何半年后重返“深漂”?
下一篇:华为防火墙IPsec配置:解决NAT穿透的实战指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-23 10:26 , Processed in 0.646048 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表