GRAB:百度推荐广告生成排序模型技术实践

B站影视 内地电影 2025-09-20 08:00 1

摘要:导读近年来,以大语言模型(LLM)为代表的生成式人工智能取得了突破性进展,其展现出的“Scaling Law”现象——即模型性能随着参数、数据和算力的投入呈可预测性增长——为许多技术领域带来了新的发展范式 。在情况复杂的推荐系统领域,尤其是对实时性、精准性和商

导读 近年来,以大语言模型(LLM)为代表的生成式人工智能取得了突破性进展,其展现出的“Scaling Law”现象——即模型性能随着参数、数据和算力的投入呈可预测性增长——为许多技术领域带来了新的发展范式 。在情况复杂的推荐系统领域,尤其是对实时性、精准性和商业化效率要求极高的广告场景,传统的深度学习推荐模型(DLRMs)正面临着日益严峻的性能瓶颈 。

本文将详细阐述百度商业技术团队在此背景下,为突破传统范式而设计并全量上线的生成式推荐排序模型——GRAB(Generative Ranking for Ads at Baidu)。我们将系统性地剖析其从问题诊断、范式探索,到框架设计、核心技术挑战攻坚,再到最终业务成效的全过程,希望能为业界同仁提供一份有价值的参考。

主要介绍:

1. 推荐大模型化趋势

2. GRAB 整体设计

3.挑战及解法

4. 总结及展望

5. 问答环节

分享嘉宾|陈少鹏 百度 资深工程师

编辑整理|陈锡杜

内容校对|郭慧敏

出品社区|DataFun

01

添加图片注释,不超过 140 字(可选)

在 GRAB 诞生之前,百度推荐广告模型的主流范式是经典的 DLRMs,其核心是“大规模离散特征+MLP”的结构 。这一范式下的模型,离散特征规模已达到万亿级别,而 DNN 部分的参数量也攀升至亿级 。尽管这一模式在过去通过精细的特征工程取得了巨大成功,但我们清醒地认识到,它已触及自身的天花板:

特征工程的边际效益递减:当特征规模已近乎饱和时,进一步增加特征带来的性能提升微乎其微,迭代成本却居高不下。序列表征的“有损压缩”:传统的序列建模方法,如 SIM(Search-based Interest Model)、Hard Search 等,为了处理长序列,不可避免地对用户信息进行了大量压缩,导致了显著的建模损失。“强记忆,弱推理”的本质缺陷:大规模离散 ID 特征使模型非常善于“记住”哪些特征组合曾经有效(强记忆),但在面对新广告、新用户或需要进行逻辑推演的场景时则能力不足(弱推理)。动态广告场景下的 ID 激活率难题:广告内容、落地页等元素变化极快,严重依赖历史 ID 记忆的序列建模方式,在新物料上激活率很低,难以捕捉瞬息万变的用户兴趣和市场趋势。

与 DLRMs 难以通过扩大规模来持续提升性能的困境形成鲜明对比,大语言模型领域清晰地展示了“Scaling Law”的威力:随着模型参数量的指数级增长,其损失(Loss)可以实现线性下降。这一发现如同一盏明灯,让我们看到了突破推荐模型性能瓶颈的希望:我们能否将推荐模型也“大模型化”,享受 Scaling 带来的持续红利?

LLM 的成功并非偶然,它站在了数据、算力和算法这三大基石的肩膀上 。特别是算法层面的三次关键创新,为今天的百花齐放铺平了道路:

BP反向传播算法:解决了神经网络的“训练”难题 。ResNet残差网络:通过残差连接,解决了模型如何“做深”的难题 。Transformer架构:凭借其卓越的序列建模能力和对异构硬件并行计算的极致利用,彻底革新了序列处理任务 。

3. 百度推荐大模型化的三种路径探索与抉择

基于以上思考,百度在推荐场景中对大模型化进行了三条关键路径的探索和评估:

路径一:大语言模型直接推荐。我们尝试将广告场景数据直接适配给通用 LLM,利用其强大的记忆和推理能力。结论是此路不通。实验指标差距达到了百分位以上,这是一个非常夸张的跌幅 。我们反思其根本原因有三点:a.直接迁移丢失了推荐领域至关重要的海量离散特征;b.通用LLM自身的能力和我们的场景需求存在偏差;c. LLM的建模方式和算力利用特点与推荐场景差异巨大 。路径二:大语言模型表征增强。我们利用LLM生成高质量的特征表征,以增强推荐模型的泛化能力。结论是有一定价值,但非治本之策。该方法确实能提升泛化性、补充多模态理解能力,业界也已充分验证 。但在排序模型上,这种收益更偏向长期,且其商业价值会受到长尾用户、冷启广告本身商业价值上限的限制 。路径三:生成式序列化建模。我们借鉴 LLM 中的 Transformer 和长上下文(Long-context)等核心技术,对用户行为序列进行端到端的生成式建模。结论是这才是正确的方向。受 Meta 提出的 GRs 范式启发,我们发现按用户序列来组织和建模,能够真正地让推荐模型也具备“Scaling”能力 。这条路径最终催生了我们自己的生成式推荐排序模型——GRAB。

02

GRAB 的设计哲学旨在从根本上重塑推荐模型的建模范式,其核心理念体现在四个维度的转变上:

“分离”到“统一”:我们将历史行为序列与目标广告(Target Item)在统一的表征空间中建模 。这彻底打破了传统模型中两者表征分离的壁垒。这一思想与 LLM 类似,在 LLM 的词表中,待预测的下一个词元(Token)与历史词元并无本质区别 。“平铺”到“结构化”:我们将用户行为重构为结构化的序列信号,能够灵活处理不定长、不定宽的层级化复杂序列输入 。“手动设计”到“自适应”:我们直接将用户原始序列作为输入,让模型自适应地学习信息,避免了人工特征工程可能带来的信息偏差和折损 。“序列检索”到“高效注意力”:我们用高效的 Transformer 注意力机制替代了传统的序列检索逻辑(如Hard Search),致力于实现全域、全周期的用户序列的极致建模 。

GRAB 模型的核心是一个端到端的序列化建模框架,其数据流如下:

输入与组织:将用户的历史行为序列与待打分的广告序列按时间顺序拼接(Concat)在一起,形成一个统一的事件序列 。Token 化:序列中的每一个“事件”(无论是历史行为还是待打分广告)都会经过一个广告级的 GATE 和 MLP 层,完成 Token 化处理,将其映射到高维向量空间。序列建模:Token 化后的序列被送入一个采用因果注意力(Causal Attention)机制的 Transformer 中进行深度建模。因果注意力确保了在预测任何一个位置时,模型只能“看到”该位置之前的历史信息,而不会“看到”未来的信息,这对于时序建模至关重要。输出:Transformer 的输出再经过一个 MLP 和 Sigmoid 函数,为序列中的每个广告位预估其点击率(CTR)。

这一新范式最重要的一个特点是,它保证了输入信息的无损。我们将曝光序列的广告全信息(即过去模型所使用的全部离散特征)都作为输入,确保了与基线模型相比,信息量只增不减。

为了更清晰地定位 GRAB,我们将其与 LLM 和传统的 DLRM 进行对比。GRAB 可以被看作是借鉴 LLM 方法论并为推荐场景深度定制的产物。它与 LLM 共享 Transformer 这一核心架构,但其处理的单位是“用户行为”,序列依据是“行为时间”,训练范式是面向推荐目标的“判别式学习”而非生成语言的 SFT/RLHF 。与 DLRM 相比,GRAB 用定制的 Transformer 和因果 mask 替代了人工特征工程和简单的全连接网络,实现了从“数据组织”到“训练范式”的全方位革新 。

03挑战与解法

在将 GRAB 从理念付诸实践的过程中,我们面临并解决了一系列来自训练、表征、推理和系统层面的严峻挑战。

(1)问题:通用的 Transformer 注意力机制无法直接适配推荐场景中复杂的交互信号和时间信号。

(2)解法:我们设计了 Q-Aware RAB(Query-aware Relative Attention Bias)因果注意力机制 。它在标准的多头注意力基础上,融合了三种核心设计:

因果 Mask:这是基础,确保模型在预测时不会看到未来的信息 。双滑窗注意力:我们设计了一种结合时间滑窗和长度滑窗的机制,以兼容推荐模型的流式训练需求 。查询感知相对偏置:这是我们设计的核心。传统的相对位置编码是与 Query 无关的,而我们的设计(wᵢⱼ = qᵢᵀ· (kⱼ + Posᵢⱼ + Actionᵢⱼ + Timeᵢⱼ))让 Query(即待打分广告)能够与相对时间、相对位置和相对行为等偏置信息进行直接交互,从而动态地感知不同 Query 下的上下文关系,比朴素的相对偏置(wᵢⱼ = qᵢᵀ· kⱼ + Posᵢⱼ + ...)更具灵活性 。实验也证明,该机制下的注意力权重曲线非常符合用户兴趣随时间衰减的直觉 。

(1)问题:按用户序列组织样本进行训练,会导致训练成本激增一到两个数量级,这是一个决定项目生死的工程难题 。同时,这种组织方式带来了灾难性的过拟合问题,我们的初步实验中,训练集 AUC 涨了一个多百分位,测试集 AUC 反而跌了一个百分位 。

(2)解法

变长序列零冗余算法:为解决效率问题,我们借鉴 LLM 的思路,将不同用户的序列拼接打包(Sequence Packing),并通过 Mask 机制在计算注意力时将它们隔离开。这显著提升了 GPU 利用率,使训练效率与之前基本持平 。STS(Sequence then Sparse)两阶段训练算法:为解决过拟合问题,我们分析其根源在于推荐场景中用户兴趣的局部性,即同一用户短时间内的行为高度相似,导致序列打包后一个 mini-batch 内样本分布严重倾斜 。我们的解法是创新的两阶段训练法:第一阶段(Sequence Phase)是端到端的序列化自回归学习;第二阶段(Sparse Phase)则是非序列化的、按曝光样本组织的,专门用于学习和训练离散表征。这种解耦的方式彻底解决了过拟合问题。

(1)问题:百度的推荐模型已经过十余年不间断的热启训练,形成了一个极其复杂的“老汤模型” 。直接冷启一个全新的 GRAB 模型,不仅数据难以追溯,性能也完全无法打平基线 。

(2)解法

异构 Token 表征:我们将用户序列中基本不变的静态属性(如年龄、性别)与动态变化的行为进行分离。静态属性被设计成一种异构 Token,只在需要时与目标广告结合,而不是冗余地加入到每个历史行为中,这大大降低了序列的冗余度和系统的开销 。双 Loss 堆叠式训练与热启:我们设计了一套无缝迁移方案。首先,新模型中离散特征的 Embedding Table 直接从“老汤模型”热启动 。其次,在训练初期,我们同时保留原模型的组网结构及其损失函数(Losso),与 GRAB 的序列化损失(lossseq )共同训练(即总Loss=lossseq+Losso )待模型收敛后,再逐步去掉 Losso。这一策略保证了模型能够平稳、高效地完成热启动并快速取得收益。

(1)问题:生成式模型的推理成本同样会阶次性上涨,若不加优化,在商业广告这种高并发场景中完全无法上线。

(2)解法:我们借鉴了 LLM 推理优化的成熟经验,并结合自身场景,最终实现了推理成本与传统模型基本持平:

KV-Cache:由于采用的是单向因果注意力,历史序列的 Key(K)和 Value(V)向量(KV)具有无后效性,可以被预先计算并缓存下来 。当一次 PV 请求进来,我们异步请求用户模型,计算并缓存用户历史序列的 KV。系统与算法优化:在精排阶段,我们只需计算候选广告的 K/V,并与缓存的 KV 拼接即可。我们还对整个推荐系统进行了生成式重构,实现了行为的实时化感知。同时,采用了 M-Falcon 分包算法、算子融合、低精度计算等一系列优化手段,共同保证了在线推理的高效能 。04总结及展望

GRAB 模型成功在百度推荐广告 CTR 模型上全量上线,取得了显著的业务成效:

AUC:提升约 3个千分位收入:提升 4%点击率:上涨约 5%

更重要的是,我们通过实验清晰地验证了 GRAB 架构的“Scaling Law”能力:

随着输入的用户序列长度每提升一个阶次(从 64 到 1024+),模型的 AUC 指标能获得近乎线性的增长 。这证明了我们的技术路线是正确且具备长期潜力的,为未来的持续优化指明了清晰的方向。

假如不考虑资源成本,我们理想中的下一代推荐系统应该是什么样子?它应该具备以下三种核心能力:

广域知识与推演能力:它应具备基本的世界知识,能理解概念并掌握一般规律 。例如,它应该能推断出,用户买了一双球鞋后,下一个更可能的需求是篮球,而不是另一双球鞋 。推荐域知识全覆盖:它能够处理图文、视频、声音等全模态内容输入,并能对用户的交互行为进行“电影式”的全时空回放与记忆 。快速学习与适配能力:它可以无限细分地刻画每个用户和场景,并能快速响应客户投放、流量趋势等外部变化 。

这一切的实现都依赖于“更多的数据 + 更强的算力” 。我们认为,推荐系统的技术演进路径将是:

百度 GRAB 模型不仅是一次成功的范式革新,更是一次对推荐系统“Scaling Law”的有效探索与验证。通过一系列针对性的算法和系统创新,我们成功克服了在工业界落地生成式模型所面临的训练、推理、模型继承等关键挑战,实现了显著的业务增长。我们相信,当前的工作只是一个开始,GRAB 为我们铺就了一条通往下一代推荐系统的坚实道路。未来,我们将继续在超长序列、全域用户建模等方向深耕,致力于最终实现一个更加智能、高效、深刻理解世界的纯生成式推荐系统。

05问答环节

Q1:关于生成式推荐的“涌现”能力和 “Scaling Law”

提问

生成式推荐的涌现能力如何体现?达到某个量级后 AUC 显著提升是否是体现?大模型的“Scaling Law” 来自于自然语言,为什么推荐系统也会体现?

回答

关于“涌现”:个人倾向于避免使用“涌现”这个词,我认为这是一种现象,而非一种能力。大模型的能力是随着数据和参数量的增加而逐步获得的,并非凭空出现。例如,模型在参数量达到 10^5 时可能掌握基本文法,在更高量级上能说出整句话,再往上才能进行数学计算或答疑解惑,这是一个渐进的现象。因此,在推荐系统中,性能随参数提升而提升也是一种现象,不应急于将其定义为一种“能力”。关于“Scaling Law”:不应将大模型和推荐模型割裂看待。推荐系统本质上也是在解决搜索和推荐的问题。自然语言之所以有规律,是因为人的讲话有逻辑。同样,人的行为虽然信噪比低,但并非毫无规律,是有迹可循的。当数据足够多时,对用户或广告的了解就足够深入,其规律性就能被模型捕捉到,因此也会体现出 “Scaling Law”。

Q2:生成式在推荐和广告中的区别

提问:推荐和广告的生成式应用有什么区别?

回答

参与方和目标不同:广告涉及平台、用户、广告主三方,需要平衡各方利益,广告主会直接参与到排序结果中。而内容推荐的目标更多元,如用户长期价值(LT)、时长、点击、评论等。广告的目标则更清晰,主要是 CPM 或平台商业价值。生成过程不同:广告的生成是一个从投放到创意、样式、落地页逐步丰富的过程,甚至在入库时都没有完全定义好“广告”本身是什么。而内容推荐中,一个内容从召回到最终排序,其本身是不变的。这在生成式建模角度是很大的区别。

Q3:对训练架构的改变多吗?

提问:生成式推荐对训练架构的改变多吗?

回答:个人感知,如果不做特别激进的尝试,在排序模型层面,训练架构的变化在可控范围内。目前没看到推荐系统和广告系统在训练架构上有太大的区分度。

关于特征处理,例如使用异构 token 表达长期属性时,通常是将这些属性特征与目标 item 的特征合并在一起进行表征(如拼接或做 Attention),而不是让每个属性特征作为独立的 token 与整个长序列做 Attention。

Q4:两阶段训练如何兼顾效率与过拟合?

提问:为什么采用两阶段训练能在避免过拟合的同时,保持训练效率不变?

回答:首先澄清,并非完全不变,而是通过两阶段解决了问题。第一阶段的模型非常简单,因此它对整体训练效率的影响相对可控。

Q5:两阶段模型学习空间不一致如何处理?

提问:两个阶段的模型学习空间不一致,直接拼接是否会有效果?是否需要做对齐工作?

回答

可以将这个问题从“预训练+迁移学习”的角度来理解。两阶段训练中的第一阶段产出的离散表征,可以看作是一种预训练的结果。这种非端到端的模式确实可能存在目标不一致的问题,就像预训练和下游任务的迁移一样。但是,目前端到端训练导致的分布倾斜和过拟合问题更为严重。相较之下,两阶段带来的目标不一致问题是相对次要的,因此这种方法是值得的。

Q6:grab模型在精排环节的应用细节

提问

1. grab 在精排环节是替换 pctr 还是 pcvr?还是其他?

2. 对于有多个排序目标时候,如何建模更合适(拆分多个 grab 模型?)

3. grab 有端到端预估 ecpm 吗,有的话广告出价是如何注入的?

4. 训练分为哪几个环节,有拆分预训练和强化学习吗,如果有用到强化学习 reward 是什么?

回答:

1. 在精排环节,grab 模型会用于替换预估的 pctr 和 pcvr。

2. 处理多个排序目标时,常见的策略是拆分成多个单独的 grab 模型(如一个模型预估 pctr,另一个预估 pcvr),或者采用多目标学习(Multi-Task Learning)的方式在一个模型中同时预估多个目标。具体选择需要根据业务需求(by design)来决定。

3. 目前 grab 模型暂未实现端到端地预估 ecpm。

4. 训练环节的具体划分暂未包含明确的预训练阶段或强化学习阶段。

Q7:上线部署策略与特征表达

提问:

1. 上线的时候,是粗精一体 serving 的方式来打平收益/成本的 ROI 么?

2. 异构 token 表达长期属性,是说每个属性特征都作为一个 token,去和长序列做attention吗?

回答:

1. 上线策略是直接在精排阶段进行替换(使用 grab 模型预估的 pctr/pcvr 等),并非采用粗排精排一体化(粗精一体)的 serving 方式来平衡 ROI。

2. 关于异构 token 表达长期属性:通常的做法是将目标 item 的特征与这些属性特征合并在一起进行表征(例如拼接成一个向量或 token),然后再与长序列进行交互(如 Attention)。并非将每个属性特征都作为独立的 token 去与整个长序列做 Attention。

以上就是本次分享的内容,谢谢大家。

来源:DataFunTalk

相关推荐