快手自动出价论文GAVE阅读笔记

0 阅读7分钟

背景

自动出价已成为广告平台在动态且充满竞争的在线环境中优化出价决策的关键策略。业界自动出价系统通常经历了三代演进:从基于规则的策略(如PID控制、预算 pacing),到基于强化学习(RL)的方法,再到基于生成式序列建模的方法。基于规则的策略计算开销小、部署简单,但难以适应动态市场。基于 RL 的方法虽然能够根据环境反馈自适应调整出价,但其 MDP 框架的状态独立性假设往往忽略了出价序列内的时间依赖关系和历史上下文。近年来,Decision Transformer(DT)将强化学习重新建模为序列建模任务,能够捕捉长程依赖,为离线自动出价提供了新的方向。

然而,将DT应用于真实自动出价场景仍面临诸多挑战:不同广告主的目标各异,评估指标可能涉及CPA/CPC等复杂约束;基于固定离线数据集训练可能使模型局限于数据中记载的行为模式,并引发行为崩溃;在巨大动作空间中进行探索还容易引发OOD(Out-of-Distribution)风险。为应对这些问题,快手提出了 GAVE(Generative Auto-Bidding with Value-Guided Explorations),一个基于DT的离线生成式自动出价框架,通过基于分数的RTG、动作探索机制和可学习价值函数三项创新,实现自适应优化、稳定更新和策略改进。

本文是笔者对快手论文《Generative Auto-Bidding with Value-Guided Explorations》(SIGIR 2025)的阅读笔记。如有不足之处,请指正。


自动出价问题定义

考虑在一个离散时间段内依次到达的II次曝光机会,i=1,...,Ii = 1, ..., I。广告主需要为这些曝光机会提交出价 {bi}i=1I\{b_i\}_{i=1}^I

竞价机制遵循以下规则:对于某次曝光机会ii,如果广告主的出价bib_i大于其他广告主的最高出价bib_i^-,则该广告主竞得该次曝光机会,并产生广告消耗cic_i。工业界一般采用广义二阶竞价机制(GSP),即竞胜的广告消耗等于第二高的出价。广告主的目标是最大化竞胜曝光的累计价值:

maxi=1Ixivi(1)\max{\sum_{i=1}^I{x_i v_i}} \tag{1}

其中,viR+v_i \in \mathbb{R}^+表示曝光ii对于广告主的价值,例如预测转化率(pCVR)或预测点击率(pCTR);xi{0,1}x_i \in \{0, 1\}表示广告主是否竞得曝光ii

xi={1,if bi>bi0,otherwise(2)x_i = \begin{cases} 1, & \text{if } b_i > b_i^- \\ 0, & \text{otherwise} \end{cases} \tag{2}

同时,广告主还需要满足多个约束。首先是预算约束,广告总消耗不能超过预算BB。在实际竞价平台中,这一约束通常由平台直接控制:当预算耗尽时,平台会通过将竞得变量xix_i置为0来停止该广告的曝光,从而避免超支。

i=1IxiciB(3)\sum_{i=1}^I{x_i c_i} \leq B \tag{3}

其中,BR+B \in \mathbb{R}^+表示广告主的预算。

其他的KPI约束可用下式表示:

i=1Ixicii=1IxiviC(4)\frac{\sum_{i=1}^I{x_i c_i}}{\sum_{i=1}^I{x_i v_i}} \leq C \tag{4}

上式中,分子是广告消耗。若viv_i是预测转化率(pCVR),则分母是转化数,分子除以分母即平均每个转化的广告消耗(转化成本);若viv_i是预测点击率(pCTR),则分母是点击数,分子除以分母即平均每个点击的广告消耗(点击成本)。CR+C \in \mathbb{R}^+表示广告主可接受的最大转化或点击成本,即CPA(Cost Per Action/Acquisition,每次转化成本)。

需要注意的是,与预算约束由竞价平台直接控制不同,CPA等KPI约束在实际场景中通常是软约束:真实CPA需要整个出价周期结束后,根据全部曝光的实际价值viv_i才能计算,因此在出价过程中无法实时硬截断。这也解释了为什么建模时通常将其作为惩罚项加入目标函数,而非直接作为硬约束处理。

出价问题可表示为下述线性规划问题:

maxb1,...,bI ixivis.t. ixiciBixiciixiviC(5)\begin{aligned} \max_{b_1,...,b_I} \ & \sum_i{x_i v_i} \\ \text{s.t.} \ & \sum_i{x_i c_i} \leq B \\ & \frac{\sum_i{x_i c_i}}{\sum_i{x_i v_i}} \leq C \end{aligned} \tag{5}

进而,可求得最优出价策略为:

bi=λ0vijλj(qij(11CRj)kjpij)(6)b_i^* = \lambda_0^* v_i - \sum_j{\lambda_j^*\left(\mathbf{q}_{i j}\left(1-\mathbf{1}_{C R_j}\right)-\mathbf{k}_j \mathbf{p}_{i j}\right)} \tag{6}

其中,bib_i^*表示对于曝光ii的理论最优出价;qij\mathbf{q}_{i j}可以是任意绩效指标或常数;1CRj\mathbf{1}_{C R_j}是指示约束jj是否与成本相关的指示函数;pij\mathbf{p}_{i j}kj\mathbf{k}_j可视为在多个KPI条件下式 (5) 中viv_iCC的扩展表达式。在仅考虑预算和CPA约束的情况下,上式可进一步简化为:

bi=(λ0+λ1C)vi=λvi(7)b_i^* = (\lambda_0^* + \lambda_1^* C) v_i = \lambda^* v_i \tag{7}

因此,自动出价问题可以转化为在出价过程中迭代寻找最优的统一出价参数λ\lambda^*


基于DT的自动出价

基于强化学习的自动出价通常假设出价是一个马尔可夫决策过程,满足状态转移st+1=f(st,at)s_{t+1} = f(s_t, a_t),即当前状态只依赖上一个时间点的状态。而Decision Transformer(DT)可以用于处理序列决策(sequential decision-making),挖掘长周期内的相关信息,而不仅依赖上一个时间点的状态。

DT将强化学习任务转化为序列建模问题,利用Transformer架构强大的建模能力来预测最优策略,在离线强化学习、复杂任务规划以及非马尔可夫决策问题中表现优异。

在基于DT的自动出价中,出价过程被划分为多个时间段,包含以下定义:

  • 状态st\boldsymbol{s}_t:是一个向量,包含在时间点tt关于出价环境的多个特征,例如剩余时间、未使用预算、历史出价信息等。
  • 动作ata_t:出价变量。在本论文中,最优动作即式 (7) 中的统一出价参数λ\lambda^*,因此:
at=λt(8)a_t = \lambda_t \tag{8}
  • 奖励rwtrw_t:令时间点ttt+1t+1之间有NtN_t次曝光机会,则rwtrw_t可表示为:
rwt=n=0Ntxntvnt(9)rw_t = \sum_{n=0}^{N_t}{x_{n_t} v_{n_t}} \tag{9}

即时间点ttt+1t+1之间竞胜的曝光价值之和。

  • Return-To-Go(RTG)rtr_t:表示在剩余时间可获得的奖励之和:
rt=t=tTrwt(10)r_t = \sum_{t'=t}^T{rw_{t'}} \tag{10}

其中,TT为最终时间点,例如当天晚上12点。

出价过程可由下述轨迹(trajectory)表示:

τ=(r1,s1,a1,r2,s2,a2,...,rT,sT,aT)(11)\tau = (r_1, \boldsymbol{s}_1, a_1, r_2, \boldsymbol{s}_2, a_2, ..., r_T, \boldsymbol{s}_T, a_T) \tag{11}

GAVE 框架

GAVE 概览

GAVE(Generative Auto-Bidding With Value-Guided Explorations)采用 DT 架构,输入是式 (11) 所示的轨迹,即奖励、状态和动作的序列 (rt,st,at)(r_t, \boldsymbol{s}_t, a_t)。与传统 DT 相比,GAVE 在以下三个方面进行了创新:

  1. 基于分数的RTG(score-based RTG):通过可定制的分数函数将CPA等约束整合到训练阶段,使训练目标与不同广告主的评估指标对齐;
  2. 动作探索模块(action exploration module):在离线数据集之外探索新颖动作,并通过基于RTG的评估方法实现稳定更新;
  3. 可学习价值函数(learnable value function):估计未来RTG的上界,引导探索方向并缓解Out-of-Distribution(OOD)问题。

图 1:GAVE 整体结构。

GAVE采用离线强化学习范式:对序列样本进行推理,然后在模拟竞价环境中进行评估,让被测模型与采用固定策略的其他智能体交互。

在时间点tt,GAVE基于输入的历史轨迹预测多个量:预测动作a^t\hat{a}_t、探索系数β^t\hat{\beta}_t、可学习价值函数Vt+1V_{t+1}的估计值V^t+1\hat{V}_{t+1},以及RTG估计值r^t+1\hat{r}_{t+1}。该过程可由式 (12) 表示:

{(β^t,a^t,V^t+1)=GAVE(rtM,stM,atM,...,rt,st)r^t+1=GAVE(rtM,stM,atM,...,rt,st,at)a~t=β^tat(12)\begin{cases} (\hat{\beta}_t, \hat{a}_t, \hat{V}_{t+1}) = GAVE(r_{t-M}, \boldsymbol{s}_{t-M}, a_{t-M}, ..., r_t, \boldsymbol{s}_t) \\ \hat{r}_{t+1} = GAVE(r_{t-M}, \boldsymbol{s}_{t-M}, a_{t-M}, ..., r_t, \boldsymbol{s}_t, a_t) \\ \tilde{a}_t = \hat{\beta}_t a_t \end{cases} \tag{12}

其中,MM是超参数,表示输入序列包含M+1M+1个时间步;a~t\tilde{a}_t是由探索系数β^t\hat{\beta}_t生成的探索动作。

基于分数的RTG

如前文“自动出价问题定义”一节所述,直接优化竞胜曝光的累计奖励可能导致CPA约束超过限制。因此,目标函数需要引入惩罚项,刻画特定广告对于CPA约束的遵循程度。

“基于分数的RTG”的核心思想是:将测试阶段用于评估整个出价阶段的分数SS推广到每个时间步,得到StS_t,再通过rt=STSt1r_t = S_T - S_{t-1}计算RTG。这样,训练阶段的优化目标不再是原始累计奖励,而是与最终评估指标一致的分数,从而自然实现训练目标与评估指标的对齐。

在测试阶段,使用分数SS(公式 13)评估整个出价阶段出价模型的性能,其中γ=2\gamma=2

{CPA=ixiciixiviP(CPA;C)=min{(CCPA)γ,1}S=P(CPA;C)ixivi(13)\begin{cases} CPA = \frac{\sum_i{x_i c_i}}{\sum_i{x_i v_i}} \\ \mathbb{P}(CPA; C) = \min{\left\{\left(\frac{C}{CPA}\right)^\gamma, 1\right\}} \\ S = \mathbb{P}(CPA; C) \cdot \sum_i{x_i v_i} \end{cases} \tag{13}

CPACPA越大,即成本越高,P(CPA;C)\mathbb{P}(CPA; C)越小,分数SS越小。

论文直接在训练阶段整合上述约束,而不仅仅像先前工作那样只在测试阶段用分数SS筛选模型。相比于无约束的RTG,论文使用了带约束的分数:

{CPAt=iItxiciiItxiviP(CPAt;C)=min{(CCPAt)γ,1}St=P(CPAt;C)iItxivirt=STSt1(14)\begin{cases} CPA_t = \frac{\sum_i^{I_t}{x_i c_i}}{\sum_i^{I_t}{x_i v_i}} \\ \mathbb{P}(CPA_t; C) = \min{\left\{\left(\frac{C}{CPA_t}\right)^\gamma, 1\right\}} \\ S_t = \mathbb{P}(CPA_t; C) \cdot \sum_i^{I_t}{x_i v_i} \\ r_t = S_T - S_{t-1} \end{cases} \tag{14}

其中,ItI_t表示从时间点0到时间点tt的曝光数,StS_t表示时间点tt的分数,TT表示出价阶段最终的时间点。

更一般地,可将式 (14) 概括为:

rt=STSt1(15)r_t = S_T - S_{t-1} \tag{15}

直观上,STS_T是整个出价周期的最终累计分数,St1S_{t-1}是到时间步t1t-1为止已经获得的累计分数,两者之差rtr_t即为从时间步tt开始尚未获得、但预期可以获得的分数,因此可以作为RTG来指导模型优化。

这种基于分数的RTG函数增强了GAVE的灵活性,使其能够适用于多样化的广告目标。由于分数函数SS通常可微,不同广告目标可以通过可微编程的方式灵活地嵌入训练目标。

动作探索

探索旨在从离线数据中发现更好的策略。但在离线环境中无法与环境交互,离线探索会导致分布偏移(distribution shifts)。GAVE 设计了一种动作探索机制,在探索新颖动作的同时保持训练的稳定性。

在时间点tt,GAVE预测一个与ata_t维度相同的系数β^t\hat{\beta}_t,生成新的动作a~t\tilde{a}_t

{β^t=σ(FCβ(DT(rtM,stM,atM,...,rt,st)))a~t=β^tat(16)\begin{cases} \hat{\beta}_t = \sigma(FC_\beta(DT(r_{t-M}, \boldsymbol{s}_{t-M}, a_{t-M}, ..., r_t, \boldsymbol{s}_t))) \\ \tilde{a}_t = \hat{\beta}_t a_t \end{cases} \tag{16}

其中,DT()DT(\cdot)表示Decision Transformer骨干网络,FCβ()FC_\beta(\cdot)表示全连接网络层,σ\sigma是缩放函数:

σ(x)=Sigmoid(x)+0.5(17)\sigma(x) = Sigmoid(x) + 0.5 \tag{17}

该函数将β^t\hat{\beta}_t限制在(0.5,1.5)(0.5, 1.5)之间,使得探索动作a~t\tilde{a}_t与动作标签ata_t接近,从而将分布偏移控制在较小范围内。

为了最小化分布偏移并保持训练稳定,GAVE不直接使用a~t\tilde{a}_t生成新样本,而是将其作为额外标签来指导动作a^t\hat{a}_t的更新方向。根据强化学习中的动作价值定义,ata_t的动作价值可用rt+1r_{t+1}表示,即采取动作后可获得的累计未来回报。因此,GAVE通过比较探索动作和原始动作标签的RTG来评估两者的优劣:

{r~t+1=GAVE(rtM,stM,atM,...,rt,st,a~t)wt=Sigmoid(αr(r~t+1r^t+1))(18)\begin{cases} \tilde{r}_{t+1} = GAVE(r_{t-M}, \boldsymbol{s}_{t-M}, a_{t-M}, ..., r_t, \boldsymbol{s}_t, \tilde{a}_t) \\ w_t = Sigmoid(\alpha_r \cdot (\tilde{r}_{t+1} - \hat{r}_{t+1})) \end{cases} \tag{18}

其中,r~t+1\tilde{r}_{t+1}r^t+1\hat{r}_{t+1}分别是探索动作a~t\tilde{a}_t和原始动作标签ata_t的估计RTG,αr\alpha_r是正的超参数。wt>0.5w_t > 0.5表示在估计RTG的意义下探索动作优于原始动作标签,更新方向更偏向a~t\tilde{a}_t;反之则更偏向ata_t

对应的损失函数为:

{Lr=1M+1tMt(r^t+1rt+1)2La=1M+1tMt((1wt)(a^tat)2+wt(a^ta~t)2)(19)\begin{cases} L_r = \frac{1}{M+1}\sum_{t-M}^t{(\hat{r}_{t+1} - r_{t+1})^2} \\ L_a = \frac{1}{M+1}\sum_{t-M}^t{((1-w_t') \cdot (\hat{a}_t - a_t)^2 + w_t' \cdot (\hat{a}_t - \tilde{a}_t')^2)} \end{cases} \tag{19}

其中,wtw_t'a~t\tilde{a}_t'分别表示wtw_ta~t\tilde{a}_t的梯度冻结版本。LrL_r保证RTG预测的准确性;LaL_a在原始动作标签和探索动作之间实现平衡且稳定的更新。

可学习价值函数

虽然动作探索机制能够发现离线数据集之外的动作并保持稳定更新,但随机生成的探索动作并不能保证模型性能一定提升。为进一步引导探索方向、发现更优策略并缓解OOD问题,GAVE引入了可学习价值函数。

受强化学习中状态价值函数的启发,GAVE定义序列价值函数Vt+1V_{t+1},表示rt+1r_{t+1}的上界:

Vt+1=argmaxatArt+1(20)V_{t+1} = \mathop{\arg\max}_{a_t \in \mathbb{A}}{r_{t+1}} \tag{20}

其中,A\mathbb{A}表示可用动作空间。由于动作空间巨大且离线数据集中真实动作有限,无法直接统计计算Vt+1V_{t+1},因此通过expectile回归进行学习:

Le=1M+1tMt(L2τ(rt+1V^t+1))=1M+1tMt(τ1((rt+1V^t+1)<0)(rt+1V^t+1)2)(21)\begin{aligned} L_e &= \frac{1}{M+1}\sum_{t-M}^t{(L_2^\tau(r_{t+1} - \hat{V}_{t+1}))} \\ &= \frac{1}{M+1}\sum_{t-M}^t{(|\tau - \mathbf{1}((r_{t+1}-\hat{V}_{t+1}) < 0)| \cdot (r_{t+1}-\hat{V}_{t+1})^2)} \end{aligned} \tag{21}

其中,L2τ(ym(x))L_2^\tau(y - m(x))表示使用模型m(x)m(x)预测标签yy的expectile τ(0,1)\tau \in (0, 1)的损失函数;V^t+1\hat{V}_{t+1}Vt+1V_{t+1}的预测值;1()\mathbf{1}(\cdot)是指示函数。论文设置τ=0.99\tau = 0.99以学习rt+1r_{t+1}的上界。直观上,expectile损失通过系数τ1()|\tau - \mathbf{1}(\cdot)|对正负误差赋予不同权重:当τ>0.5\tau > 0.5时,模型低估真实RTG会受到更大惩罚,而高估则相对宽容,因此预测值会趋向于标签分布的右侧尾部。当τ=0.99\tau = 0.99时,模型几乎只关注高RTG样本,从而估计出RTG的近似上界。

通过用V^t+1\hat{V}_{t+1}估计Vt+1V_{t+1}并引导r~t+1\tilde{r}_{t+1}的更新方向,GAVE隐式地将探索动作a~t\tilde{a}_t的更新方向引向潜在最优动作:

Lv=1M+1tMt(r~t+1V^t+1)2(22)L_v = \frac{1}{M+1}\sum_{t-M}^t{(\tilde{r}_{t+1} - \hat{V}_{t+1}')^2} \tag{22}

其中,V^t+1\hat{V}_{t+1}'V^t+1\hat{V}_{t+1}的梯度冻结版本。通过LvL_v,GAVE将探索动作的RTG锚定在估计的最优值附近,缓解OOD风险并实现受控外推以改进策略。

优化算法

综合上述模块,GAVE的总体损失函数为各损失项的加权和:

Lo=α1Lr+α2La+α3Le+α4Lv(23)L_o = \alpha_1 \cdot L_r + \alpha_2 \cdot L_a + \alpha_3 \cdot L_e + \alpha_4 \cdot L_v \tag{23}

其中,{α1,α2,α3,α4}\{\alpha_1, \alpha_2, \alpha_3, \alpha_4\}是控制各损失项相对贡献的超参数。四项损失分工明确:LrL_r保证RTG预测准确,使后续基于RTG的动作评估可靠;LaL_a在原始动作标签与探索动作之间取得平衡,实现稳定性保持更新;LeL_e学习未来RTG的上界;LvL_v用该上界引导探索方向,缓解OOD风险。GAVE的完整优化流程如算法1所示。

算法 1:GAVE优化算法

  • 输入:离线数据集D={(zj,yj)}j=1D\mathcal{D}=\{(\boldsymbol{z}_j, \boldsymbol{y}_j)\}_{j=1}^{|\mathcal{D}|},其中zj={rtM,stM,atM,,rt,st,at}\boldsymbol{z}_j=\{r_{t-M}, \boldsymbol{s}_{t-M}, a_{t-M}, \ldots, r_t, \boldsymbol{s}_t, a_t\}为含M+1M+1个时间步的序列,yj={at,rt+1}\boldsymbol{y}_j=\{a_t, r_{t+1}\}为标签集;
  • 输出:训练好的模型 ff(参数为 Φ\boldsymbol{\Phi})。
  1. 随机初始化模型 ff 的参数 Φ\boldsymbol{\Phi}
  2. 对于第 1,...,MaxStep1, ..., MaxStep 步:
    • 从训练数据集D\mathcal{D}中采样一个批次BB
    • 通过f(B)f(B)和式 (12) 获得β^t\hat{\beta}_ta^t\hat{a}_tV^t+1\hat{V}_{t+1}r^t+1\hat{r}_{t+1},并根据a~t=β^tat\tilde{a}_t = \hat{\beta}_t a_t计算探索动作;
    • 通过式 (18) 获得探索动作的RTG估计r~t+1\tilde{r}_{t+1}和权重wtw_t
    • 基于式 (19)、(21) 和 (22) 分别计算损失LrL_rLaL_aLeL_eLvL_v
    • 基于式 (23) 计算总体损失LoL_o
    • 通过最小化LoL_o更新模型参数Φ\boldsymbol{\Phi}
  3. 返回训练好的模型ff

在推理阶段,GAVE处理每个输入序列以预测a^t=λt\hat{a}_t = \lambda_t,作为时间步tt的出价参数;第nn个曝光的出价价格按式 (7) 计算为btn=λtvtnb_{tn} = \lambda_t v_{tn}


离线实验

实验设置

论文在阿里妈妈发布的公开基准AuctionNet及其稀疏版本AuctionNet-Sparse上进行实验。两个数据集均包含约 50 万条出价轨迹,跨越约 1 万个投放周期,每条轨迹 48 个时间步。

表 1:数据统计。

参数AuctionNetAuctionNet-Sparse
Trajectories479,376479,376
Delivery Periods9,9879,987
Time steps in a trajectory4848
State dimension1616
Action dimension11
Return-To-Go Dimension11
Action range[0, 493][0, 589]
Impression's value range[0, 1][0, 1]
CPA range[6, 12][60, 130]
Total conversion range[0, 1512][0, 57]

评估采用模拟出价环境,48个不同策略的智能体竞争到来的曝光,测试模型依次替换每个智能体进行轮替测试,最终性能取平均。离线评估时,模型预测的动作直接作为出价参数使用(即 a^t=at\hat{a}_t = a_t)。性能指标使用式 (13) 中γ=2\gamma=2的分数SS

基线方法包括:DiffBid、USCB、CQL、IQL、BCQ、DT、CDT、GAS。

实现细节。所有实验在NVIDIA H100 GPUs上进行。GAVE采用8层、16个注意力头的因果Transformer架构,使用AdamW优化器,学习率为1e51e^{-5},批次大小为128,最多训练40万步。其他超参数通过网格搜索确定。为保证统计显著性,论文使用最优参数配置进行10次独立运行并报告平均结果。

整体性能

表 2:性能比较。粗体表示最高分数,下划线表示基线中的最佳结果,“*”表示经双尾t检验(p<0.05p<0.05)相对于最佳基线的统计显著提升。

DatasetBudgetDiffBidUSCBCQLIQLBCQDTCDTGASGAVEImprove
AuctionNet50%5486113164190191174193201*4.15%
AuctionNet75%100135139232259265242287296*3.14%
AuctionNet100%152157171281321329326359376*4.74%
AuctionNet125%193220201355379396378409421*2.93%
AuctionNet150%234281238401429450433461467*1.30%
AuctionNet-Sparse50%9.911.512.816.517.714.811.218.419.6*6.52%
AuctionNet-Sparse75%15.414.916.722.124.622.918.027.528.3*2.91%
AuctionNet-Sparse100%19.517.522.230.031.129.631.236.137.2*3.05%
AuctionNet-Sparse125%25.326.728.637.134.234.331.740.042.7*6.75%
AuctionNet-Sparse150%30.831.335.843.137.944.539.146.547.4*1.94%

从表2可以看出,GAVE在所有预算和数据集配置下均取得最优性能,相比最强基线GAS仍有1.3%–6.75%的提升。基于DT的方法(GAS、DT、CDT)整体优于传统RL和规则方法,验证了DT在捕捉时间依赖性和长程历史信息方面的优势。相比之下,DiffBid在长序列且高度动态的竞价环境中表现不佳,可能由于扩散模型的反向过程难以准确预测整条出价轨迹并从中学习。

对齐分析

为验证基于分数的RTG能够将训练目标与评估指标对齐,论文在AuctionNet-Sparse 100%预算下测试了三种评估指标S1S_1S2S_2S3S_3

{S1=ixivi,S2=min{(CCPA)2,1}ixivi,S3=min{(CCPA)5,1}ixivi.(24) \begin{cases} S_1 = \sum_i{x_i v_i}, \\ S_2 = \min{\left\{\left(\frac{C}{CPA}\right)^2, 1\right\}} \cdot \sum_i{x_i v_i}, \\ S_3 = \min{\left\{\left(\frac{C}{CPA}\right)^5, 1\right\}} \cdot \sum_i{x_i v_i}. \end{cases} \tag{24}

三者的业务含义有所不同:S1S_1只关注累计曝光价值,对应CPA约束较为宽松、允许成本波动的场景;S2S_2是论文采用的评估指标,对CPA施加中等程度的惩罚;S3S_3将CPA惩罚指数提高到5,对应CPA约束非常严格、要求成本必须贴近限制的场景。

表 3:对齐分析(AuctionNet-Sparse,100% 预算)。行表示训练 RTG,列表示评估指标。

Train \ EvalS1S_1S2S_2S3S_3
S1S_141.433.023.6
S2S_239.937.233.3
S3S_339.136.833.5

从表3可见,当训练RTG与评估指标一致时,GAVE均取得最高性能,说明基于分数的RTG能够有效对齐训练目标与评估指标。

参数分析

图 2:参数w在AuctionNet上的参数分析。

图2展示了训练过程中总体损失LoL_o和权重wtw_t的变化。wtw_t通过Sigmoid将探索动作与原始动作标签的RTG差距映射到 (0,1)(0, 1) 区间:wtw_t越接近1,说明探索动作a~t\tilde{a}_t的估计RTGr~t+1\tilde{r}_{t+1}显著高于原始标签ata_t的估计RTGr^t+1\hat{r}_{t+1},探索动作越优;wtw_t越接近0则相反。随着训练进行,wtw_t从约0.5逐渐上升至0.5以上的稳定位置,说明在价值函数引导下,模型持续探索RTG更高且接近估计最优值的动作,验证了可学习价值函数对动作探索的指导作用。

消融实验

图 3:100%预算下的消融实验。左图为AuctionNet,右图为AuctionNet-Sparse。

论文设计了两种GAVE变体,并与纯DT基线进行对比:

  • GAVE-VA:去除动作探索机制和可学习价值函数,仅保留基于分数的RTG;
  • GAVE-V:去除可学习价值函数,保留动作探索机制。由于去除了价值函数模块,LeL_e(expectile回归损失)和LvL_v同时被移除,并改用损失Lw=1Sigmoid(αr(r~t+1r^t+1))L_w = 1 - \text{Sigmoid}(\alpha_r \cdot (\tilde{r}_{t+1} - \hat{r}_{t+1}^{\prime})) 鼓励探索动作的RTG超过原始标签,其中r^t+1\hat{r}_{t+1}^{\prime}r^t+1\hat{r}_{t+1}的梯度冻结版本。然而,这种无界引导容易使探索方向偏离真实分布,导致OOD 问题;
  • DT:去除GAVE的所有设计模块,仅使用原始累计奖励ixivi\sum_i x_i v_i 作为RTG的纯Decision TransformerΩ线。

消融结果表明:(1)基于分数的RTG本身即可带来提升(GAVE-VA > DT),说明训练目标与评估指标对齐的重要性;(2)引入动作探索机制后性能进一步提升(GAVE-V > GAVE-VA),说明离线数据集之外的动作探索具有价值;(3)完整引入可学习价值函数后性能最佳(GAVE > GAVE-V),说明价值函数既能约束探索范围、缓解OOD问题,又能将探索方向引向潜在最优策略。


在线应用

论文还通过A/B测试在快手在线实时出价场景中验证了GAVE的有效性。在线测试的基线是当前生产环境中部署的离线强化学习算法IQL,测试场景包括Nobid(在每日预算内最大化转化数)和Costcap(在CPA/ROI限制下最大化转化数)两种。

在线系统中,状态为20步序列,特征包括预算、CPA限制、预测值、流量/成本速度、分时段预算、剩余时间和窗口平均出价系数。为稳定出价结果,出价系数λt\lambda_t由GAVE输出动作ata_t加上前两小时窗口(含EE个时间步)内的平均出价系数确定:

λt=at+1Et=tEt1λt(25)\lambda_t = a_t + \frac{1}{|E|}\sum_{t'=t-E}^{t-1}{\lambda_{t'}} \tag{25}

其中,ata_t是GAVE在时间步tt输出的动作。由于真实转化稀疏,训练时以预期总转化数ipcvri\sum_i pcvr_i的累计形式作为RTG(即每个时间步对应剩余预期转化数),其中pcvripcvr_i是获胜流量ii的预测转化率;推理阶段整个序列的目标RTG设置为该广告活动前一天的预期总转化数。

表 4:在线 A/B 测试。

CostConversionTarget costCPA valid ratio
Nobid+0.8%+8.0%+3.2%/
Costcap+2.0%+3.6%+2.2%+1.9%

在线A/B测试持续五天,对每个广告活动,25%的预算和流量分配给基线模型,另外25%的预算和流量分配给GAVE。这里的“Target cost”是按广告活动价值加权后的转化指标(Costcap场景下用CPA限制加权,Nobid场景下用历史平均真实CPA加权),用于统一衡量不同广告活动的转化贡献。在Nobid场景中,GAVE在成本仅增加0.8%的情况下,转化数提升8.0%,目标成本提升3.2%。在Costcap场景中,GAVE实现了成本+2.0%、转化数+3.6%、目标成本+2.2%、CPA有效比例+1.9%的全面提升。该结果验证了GAVE在真实工业环境中的有效性。


相关工作

离线强化学习与Decision Transformer

强化学习通过与环境交互训练决策智能体,但在线交互在真实应用中风险较高。离线RL通过从静态数据集中学习策略来解决这一问题,BCQ、CQL、IQL等方法在稳定控制、缓解价值过估计和减少分布偏移方面表现良好。然而,这些方法对MDP的依赖限制了对历史观测和长程依赖的建模。Decision Transformer将 RL重新建模为序列建模任务,利用Transformer捕捉历史模式和长程依赖,在离线RL中取得了优异性能。CDT等扩展进一步实现了零样本约束适应。

在线广告平台的自动出价

自动出价在管理大规模广告拍卖中发挥着关键作用。早期方法如PID和OnlineLP基于规则,使用反馈回路和随机规划解决预算pacing和出价优化问题。基于RL的方法如RLB、USCB、MAAB、SORL能够处理高维状态和多智能体协调。近年来,DiffBid和GAS等生成式序列建模方法分别使用扩散模型和带蒙特卡洛树搜索(MCTS)的transformer改进了出价轨迹生成。GAVE在此基础上提出了基于分数的RTG、动作探索机制和可学习价值函数,以实现对齐优化目标、增强探索并学习最优策略。


总结

本文对快手提出的GAVE框架进行了系统梳理。GAVE 基于Decision Transformer,针对离线自动出价场景中的三个关键挑战提出了创新解决方案:

  1. 基于分数的RTG:通过可定制的分数函数将CPA等约束整合到训练阶段,实现训练目标与评估指标的对齐;
  2. 动作探索机制:通过预测探索系数生成邻近动作,并基于RTG评估其优劣,实现保持训练稳定的更新;
  3. 可学习价值函数:通过expectile回归估计未来RTG的上界,引导探索方向并缓解OOD风险。

实验结果表明,GAVE在公开数据集和快手真实在线场景中均取得了优于现有基线的性能。该工作为动态竞价环境中的自动出价策略优化提供了有效的解决方案。


参考文献