GR4AD: 面向大规模广告的生成式推荐¶
1. 研究背景与动机¶
近年来,生成式推荐(Generative Recommendation)在工业界受到广泛关注,其核心思路是将推荐任务建模为基于 Semantic ID 的自回归 next-token prediction。代表性工作如 TIGER、LC-Rec、LETTER、OneRec 等已在推荐场景取得显著进展。然而,将生成式推荐直接应用于大规模广告系统面临三大独特挑战:
- 广告 Tokenization 困难:广告内容融合短视频、商品详情和 B2B 广告主元数据,现有 MLLM 无法端到端地产出广告专用 embedding;同时广告平台存在大量非语义业务信号(如转化类型、广告账户等),传统语义量化方法难以处理
- 学习范式不适配:广告推荐优化的是 ranked lists 下的业务目标(如 eCPM),需要 list-wise 的 per-item 监督,现有 LLM-style 训练方法缺少面向广告的 ranking-aware、list-wise 学习设计
- 实时服务约束严格:广告系统需要在严格延迟和 QPS 预算下生成多条高质量候选,与 LLM 交互式解码(单条响应容忍较长延迟)根本不同
为解决上述问题,本文提出 GR4AD(Generative Recommendation for ADvertising),一个面向实时大规模广告场景的生产级生成式推荐系统,覆盖 tokenization、架构、学习和服务的协同设计。
2. 方法论¶
2.1 Unified Advertisement Semantic ID (UA-SID)¶
UA-SID 的目标是为每条广告分配一个离散的语义 ID 序列 $\mathbf{y} = (s_1, s_2, \ldots, s_T)$,其中 $s_t \in \mathcal{V}_t$ 是第 $t$ 层的 token,$\mathcal{V}_t$ 是第 $t$ 层的词表。
2.1.1 Unified Advertisement Embedding (UAE)¶
采用端到端微调的广告 MLLM embedding 模型,包含两个训练阶段:
Instruction Tuning (IT):对 LLM 进行指令微调,使其理解广告场景下的多样内容格式。针对快手 6 种广告类型设计了不同的 prompt 模板,例如:
- 直播类:分析主播人设、地域属性、品牌信息
- 商品类:聚焦产品行业、品类、品牌等离散字段
- 内容类:解构广告创意的叙事手法和心理驱动因素
Co-occurrence Learning (CL):通过共现对比学习引入协同信号。基于 Swing 方法估计 item 共现强度,构建 (Video, Product, Advertiser) 三元组,采用 InfoNCE 损失:
$$\mathcal{L}_{\text{NCE}}(i) = -\log \frac{\sum_{j \in \mathcal{P}_i} \exp(\mathbf{z}_i^\top \mathbf{z}_j / \tau)}{\sum_{k \neq i} \exp(\mathbf{z}_i^\top \mathbf{z}_k / \tau)}$$
其中 $\mathbf{z}$ 为 MLLM 的最后隐层状态。
2.1.2 Multi-Granularity-Multi-Resolution (MGMR) RQ-Kmeans¶
标准 RQ-Kmeans 存在 codebook 利用率低和 SID 碰撞率高的问题。GR4AD 采用 MGMR 策略:
- Multi-Resolution (MR):低层使用更大的 codebook 以捕获主要语义因子,高层使用较小的 codebook 建模低熵残差。每层应用 Balanced K-means 聚类以提升 codebook 利用率
- Multi-Granularity (MG):广告中存在大量非语义数值信号(如转化类型、广告账户 ID 等),在最后一层用基于 hash 的数值映射替代向量量化,显著改善全局平衡并降低碰撞率
最终 UA-SID 配置为 (16384, 4096, 1024*),其中 * 表示最后一层使用 hash 策略。
量化消融实验 (Table 2):
| Embedding 优化 | R@1 | R@5 | R@10 |
|---|---|---|---|
| QARM [19] | 0.541 | 0.812 | 0.893 |
| Qwen3-VL-7B [2] | 0.769 | 0.948 | 0.977 |
| Qwen3-VL-7B + IT + CL (UAE) | 0.896 | 0.985 | 0.994 |
| 量化优化 | Cpr↓ | Col↓ | Util↑ |
|---|---|---|---|
| RQ-Kmeans [19,39] (4096,4096,4096) | 3.54 | 85.44% | 0.10%_s |
| RQ-Kmeans + MR (16384,4096,1024) | 1.78 | 59.72% | 0.20%_s |
| RQ-Kmeans + MG + MR (UA-SID) (16384,4096,1024*) | 1.07 | 18.26% | 0.34%_s |
结论:IT + CL 微调使 embedding 的 photo-to-photo recall R@1 从 0.541 (QARM) 提升到 0.896;MGMR 方案将压缩比从 3.54 降至 1.07,碰撞率从 85.44% 降至 18.26%,codebook 利用率提升至 0.34%。
2.2 Lazy Autoregressive Decoder (LazyAR)¶
背景¶
传统自回归解码器对 $T$ 层 UA-SID 逐层解码,每层需通过 $L$ 层 decoder:
$$p(\mathbf{y} \mid \mathbf{X}) = \prod_{t=1}^{T} p(s_t \mid s_{\lt t}, \mathbf{X})$$
其中上下文 $\mathbf{X} = (\mathbf{x}_1, \ldots, \mathbf{x}_S)$ 包含结构化特征和用户行为序列,由轻量级 linear context processor 处理。每一步需要以上一层 SID embedding 作为输入,形成严格的自回归依赖。
LazyAR 核心思想¶
观察到第一层 UA-SID ($s_1$) 的 loss 最大且最难学习,但其对 beam search 代价贡献极小(因为从 BOS 开始解码,有效 beam 为 1);而后续层 beam 更大但学习更容易。LazyAR 利用这种学习难度与推理代价的不匹配,将自回归依赖推迟到中间层:
对于给定的 $K$ ($1 \leq K \lt L$),每个 UA-SID level $t$ 的解码过程:
前 K 层(无自回归依赖): $$\mathbf{m}_t^{(0)} = \mathbf{p}_t$$ $$\mathbf{m}_t^{(\ell)} = \text{Dec}^{(\ell)}\left(\mathbf{m}_t^{(\ell-1)}, \mathbf{X}\right), \quad \ell = 1, \ldots, K$$
第 K 层融合上一级 SID embedding: $$\bar{\mathbf{m}}_t^{(K)} = \text{Fuse}\left(\mathbf{m}_t^{(K)}, \mathbf{s}_{t-1}\right)$$
后 L-K 层(自回归): $$\mathbf{h}_t^{(\ell)} = \text{Dec}^{(\ell)}\left(\mathbf{h}_t^{(\ell-1)}, \mathbf{X}\right), \quad \ell = K+1, \ldots, L$$
其中 $\mathbf{h}_t^{(K)} \triangleq \bar{\mathbf{m}}_t^{(K)}$,最终预测: $$p(s_t \mid s_{\lt t}, \mathbf{X}) = \text{Softmax}\left(\mathbf{W}_t \mathbf{h}_t^{(L)}\right)$$
融合函数实现为轻量级门控投影: $$\text{Fuse}(\mathbf{m}, \mathbf{s}) = \mathbf{W}_f[\mathbf{m} \odot (\mathbf{W}_g \mathbf{s}); \mathbf{s}]$$
为什么 LazyAR 更快¶
前 K 层 $\{\mathbf{m}_t^{(K)}\}_{t=1}^T$ 不依赖 $s_{t-1}$,可以对所有 level 和所有 beam 并行计算:
$$\{\mathbf{m}_t^{(K)}\}_{t=1}^T = \text{Dec}^{(1:K)}\left(\{\mathbf{p}_t\}_{t=1}^T, \mathbf{X}\right)$$
只有剩余的 $L-K$ 层需要逐级自回归。在实验中 $L=9$,$K=6$,即 2/3 的 decoder 层可并行共享,推理吞吐量接近翻倍。
为什么 LazyAR 保持性能¶
- 第一层 $s_1$ 的解码不变:仍然从初始化 embedding 通过全部 $L$ 层 decoder 生成
- 后续层直接利用前 $K$ 层产出的 latent representation,这些中间状态不是随意的——它们在 latent space 中编码了关于候选的有用信号
- 引入 MTP-style 辅助损失,设 $\mathbf{h}_t^{(K)} \triangleq \mathbf{m}_t^{(K)}$ 绕过 fusion projection,强制 trunk 直接提供足够信息用于下游解码
2.3 Value-Aware Supervised Learning (VSL)¶
SID 损失¶
标准自回归 token prediction:
$$\mathcal{L}_{\text{SID}} = -\sum_{t=1}^{T} \log p(s_t \mid s_{\lt t}, \mathbf{X})$$
eCPM-Aware Token Prediction¶
为将业务价值引入训练目标,将连续 eCPM 离散化为等频桶,附加到 UA-SID 序列末尾作为额外 token 预测:
$$\mathcal{L}_{\text{eCPM}} = -\log p(v \mid \mathbf{y}, \mathbf{X})$$
综合 NTP 损失:
$$\mathcal{L}_{\text{NTP}} = \mathcal{L}_{\text{SID}} + \lambda_e \mathcal{L}_{\text{eCPM}}$$
价值感知样本加权¶
广告训练样本的价值分布高度偏斜,为每个样本分配权重 $w = w_{\text{user}} \cdot w_{\text{behavior}}$:
- $w_{\text{user}}$:用户长期广告价值
- $w_{\text{behavior}}$:交互深度(如购买行为 > 点击行为)
辅助 MTP 损失¶
对 LazyAR 的前 $K$ 层引入多 token 预测辅助损失 $\mathcal{L}_{\text{MTP}}$,令 $\mathbf{h}_t^{(K)} \triangleq \mathbf{m}_t^{(K)}$,要求 trunk 直接预测目标 token。
最终 VSL 目标:
$$\mathcal{L}_{\text{VSL}} = \mathbb{E}_{\mathcal{D}}\left[w\left(\mathcal{L}_{\text{NTP}} + \lambda_{\text{mtp}} \mathcal{L}_{\text{MTP}}\right)\right]$$
2.4 Ranking-Guided Softmax Preference Optimization (RSPO)¶
VSL 主要拟合历史用户兴趣分布,不能直接优化下游业务目标。RSPO 是一种 ranking-aware、list-wise 的 RL 方法。
RSPO 目标¶
设候选列表 $\mathcal{Y} = \{y_1, \ldots, y_n\}$,$v_i$ 为对应 eCPM 奖励。定义 $\mathcal{E}_i = \{y_j \mid v_j \lt v_i\}$ 为排名低于 $y_i$ 的候选集。RSPO 直接对齐 RL 目标与 ranking NDCG:
$$\mathcal{L}_{\text{RSPO}} = -\mathbb{E}_{(X,y_i,\mathcal{E}_i) \sim \mathcal{D}} \left[\log_2 \sigma\left(-\log \sum_{y_j \in \mathcal{E}_i} \mathcal{M}_{ij} \exp\left(\beta \log \frac{p_\theta(y_j \mid X)}{p_{ref}(y_j \mid X)^{C_{ij}}} - \beta \log \frac{p_\theta(y_i \mid X)}{p_{ref}(y_i \mid X)^{C_{ij}}}\right)\right)\right]$$
其中系数 $\mathcal{M}_{ij} = \left|\frac{1}{D_{|i-j|}} - \frac{1}{D_{|i-j|+1}}\right| |G_i - G_j|$,$G_i = \frac{2^{v_i}-1}{2}$,$D_i = \log_2(1+i)$,直接来源于 LambdaLoss 框架。
论文在附录 A.1 中证明 $\mathcal{L}_{\text{RSPO}}$ 是 NDCGcost 的上界:
$$\text{NDCGcost} = \sum_{i=1}^{n} G_i - \sum_{i=1}^{n} \frac{G_i}{D_i} = \sum_{i=1}^{n} G_i - \text{NDCG}$$
$$\text{NDCGcost} \leq \mathcal{L}_{\text{RSPO}}$$
Reference Distribution 的可靠性门控¶
训练样本来自异构来源(GR4AD 自身生成 + 其他 pipeline),$p_{ref}$ 可能不可靠或过期。引入二值门 $C_{ij}$:
$$C_{ij} = \begin{cases} 1 & \text{if } \frac{1}{|\mathcal{E}_i \cup \{y_i\}|} \sum_{y_f \in \mathcal{E}_i \cup \{y_i\}} \left|\log \frac{p_\theta(y_f \mid X)}{p_{ref}(y_f \mid X)}\right| \lt \delta \\ 0 & \text{otherwise} \end{cases}$$
当 $C_{ij} = 0$ 时,退化为无 reference 的优化。
VSL 与 RSPO 的统一在线学习¶
定义 normalized rank discrepancy:
$$A^{(i)} = \frac{|r_p^{(i)} - r_v^{(i)}|}{n-1}, \quad A^{(i)} \in [0, 1]$$
其中 $r_p^{(i)}$ 和 $r_v^{(i)}$ 分别为模型 likelihood 排名和 reward 排名。
- 当 $A^{(i)}$ 大时,模型排名偏离 reward 排名,增加 VSL 权重
- 当 $A^{(i)}$ 小时,模型已大致对齐,增加 RSPO 权重
$$w_{\text{VSL}}^{(i)} = w_0 \cdot \exp\left(A^{(i)} \cdot \log(1 + v_i)\right)$$
$$w_{\text{RL}}^{(i)} = w_0 \cdot Z_{\max}(1 - A^{(i)})$$
最终统一在线训练目标:
$$\mathcal{L} = \mathbb{E}_{t \sim \mathcal{D}}\left[w_{\text{VSL}}^{(i)} \mathcal{L}_{\text{VSL}}^{(i)} + w_{\text{RL}}^{(i)} \mathcal{L}_{\text{RSPO}}^{(i)}\right]$$
3. 系统部署¶
3.1 系统总览¶
GR4AD (0.16B 参数) 部署于快手广告系统,服务 4 亿+ 用户,由四个组件构成闭环:
- Realtime Serving:处理用户请求,返回排序广告列表,同时记录 serving context 和用户反馈
- Realtime Index:基于 SID 的双向索引 (UA-SID <-> Item ID),新广告到达时秒级更新,无需频繁重建 embedding 索引
- Online Learning:处理实时训练信号,持续 mini-batch 训练 VSL 和 RSPO
- Reward System:在宽松延迟约束下生成更大 beam 的候选并引入受控随机探索,输出 eCPM 估计用于 RSPO
3.2 效率优化¶
Dynamic Beam Serving (DBS)¶
Dynamic Beam Width (DBW):采用逐层递增的 beam schedule(如 128-256-512 替代固定 512-512-512),减少早期层的计算量同时保持最终候选质量。
Traffic-Aware Adaptive Beam Search (TABS):根据实时 QPS $Q_t$ 动态调整 beam scale $B_t = B_{\text{base}} \cdot f(Q_t, C_{\text{avail}})$,在非高峰期增加 beam 利用空闲算力。
其他优化¶
| 优化技术 | QPS 提升 |
|---|---|
| Beam-shared KV Cache | +212.5% |
| TopK Pre-Cut | +184.8% |
| Low-Precision Inference (FP8) | +50.3% |
| Reco Result Cache | +27.8% |
- Beam-shared KV Cache:多 beam 共享单个 encoder KV cache,消除冗余计算,per-step KV read 复杂度从 $O(B \cdot L)$ 降至 $O(L)$
- TopK Pre-Cut:每步对各 beam 并行 top-$k$,再全局 top-$k$,提升 GPU 并行度
- FP8 推理:收入变化约 -0.1%,吞吐量提升 50.3%
- Reco Result Cache:1 分钟窗口内缓存结果,命中率 27.8%
4. 实验结果¶
4.1 整体性能 (Table 1 - 在线 A/B 测试)¶
| Model Settings | ΔRevenue vs. Base | ΔQPS vs. GR-Base |
|---|---|---|
| Baselines | ||
| DLRM (Base) | - | - |
| OneRec-V2 [40] (GR-Base) | +1.68% | - |
| Tokenization Optimizations | ||
| + UA-SID | +1.92% | 0% |
| Learning Optimizations | ||
| + VSL | +2.80% | -25% |
| + VSL + DPO [24] | +3.16% | -25% |
| + VSL + GRPO [26] | +3.21% | -25% |
| + VSL + RSPO | +3.86% | -25% |
| + Unified VSL & RSPO (UVR) | +4.01% | -25% |
| Serving Optimizations | ||
| + UVR + DBS | +4.32% | +20% |
| + UVR + DBS + DeepSeek-MTP [5] | +3.98% | +117% |
| GR4AD (+ UVR + DBS + LazyAR) | +4.28% | +117% |
关键结论:
- VSL 显著提升收入:通过用户和行为加权以及 eCPM token 预测,VSL 直接对齐广告业务目标,收入从 +1.92% (UA-SID only) 提升到 +2.80%
- RSPO 优于 DPO/GRPO:RSPO 以 list-wise 方式对齐生成概率与排名顺序,是学习组件中提升最大的(+3.86% vs +3.16% DPO, +3.21% GRPO)
- 统一 VSL+RSPO 进一步提升:通过 sample-level alignment indicator 动态平衡,稳定在线训练并带来额外收入(+4.01%)
- LazyAR vs DeepSeek-MTP:两者 QPS 提升相同(+117%),但 LazyAR 收入更高(+4.28% vs +3.98%),因为 LazyAR 不引入额外参数,不阻止早期 decoder 层参与后续推理
- DBS 提升效率与收入的平衡:DBW + TABS 在保持收入的同时将 QPS 提升 20%,进一步加上 LazyAR 后 QPS 提升至 +117%
4.2 Scaling Laws¶
Model Scaling¶
在 0.03B、0.08B、0.16B、0.32B 四个模型尺度下进行在线 A/B 测试(beam width 固定 512):
- Training loss 随模型增大单调下降:3.359 -> 3.203 -> 3.015 -> 2.907
- 广告收入提升单调增加:+2.13% -> +2.65% -> +4.01% -> +4.43%
Inference Scaling¶
固定 0.16B 模型,增大 beam width(128 -> 256 -> 512 -> 1024):
- QPS 下降(200% -> 100% -> 55% -> 30%)
- 广告收入提升单调增加:+2.33% -> +2.77% -> +4.01% -> +4.21%
两个维度均呈现清晰的 Scaling Law。
4.3 Dynamic Beam Width 策略对比 (Table 4)¶
| DBW Strategy | Beam Width | ΔRevenue | ΔQPS |
|---|---|---|---|
| GR-Base | [512,512,512] | - | - |
| 1st-level Reduction | [128,512,512] | -0.10% | +27% |
| 2nd-level Reduction | [512,128,512] | -0.23% | +27% |
| 3rd-level Reduction | [512,512,128] | -0.85% | +5% |
| Progressive Increasing | [128,256,512] | -0.15% | +45% |
结论:Progressive Increasing 策略(低层窄 beam、高层宽 beam)收入损失最小(-0.15%)而 QPS 提升最大(+45%)。这验证了模型在初始层具有最高预测可靠性的假设——早期层不需要宽 beam,而后续层需要更宽 beam 进行精细决策。
4.4 业务指标¶
- 中小广告主广告投放增加 17.5%
- 广告转化率提升 10.17%
- 低活用户转化率提升 7.28%
这些提升归因于基于内容的 SID 更好地支持冷启动,以及实时索引提升了 item freshness。
5. 技术亮点与贡献总结¶
- UA-SID:首个端到端微调的广告专用 MLLM embedding + MGMR 量化方案,碰撞率降至 18.26%
- LazyAR:创新的懒惰自回归解码器,将 2/3 decoder 层的计算从自回归依赖中释放,吞吐量翻倍且性能无损
- RSPO:首个面向广告推荐的 ranking-guided、list-wise RL 算法,直接优化 NDCG 上界
- 统一在线学习框架:通过 alignment score 动态平衡 VSL 和 RSPO,适应非平稳广告市场
- 系统级优化:DBS(DBW + TABS)、Beam-shared KV Cache、TopK Pre-Cut 等技术组合,实现 500+ QPS per L20、<100ms 延迟
6. 与相关工作的对比¶
- 相比 OneRec/OneRec-V2:GR4AD 专门针对广告场景设计了价值感知学习(VSL+RSPO)和广告专用 tokenization(UA-SID 含非语义 hash 层),而 OneRec 主要面向内容推荐
- 相比 GPR:GR4AD 同样将生成式范式扩展至广告,但更系统地解决了在线学习、list-wise RL 和推理效率问题
- 相比 DPO/GRPO:RSPO 是 list-wise 的且直接优化 NDCG,在广告场景中效果显著优于 pair-wise (DPO) 和 group-wise (GRPO) 方法
- 相比 DeepSeek-MTP:LazyAR 不引入额外参数,不阻止早期层参与后续推理,在推荐场景中更优