自动出价论文阅读笔记(4)

916 阅读8分钟

概述

广告主在投放效果广告时,会对广告流量设置一定的出价,而广告平台会基于多个广告主的出价进行广告流量的竞价,对竞价胜出的广告主,在广告流量上展示其广告,并进行计费。随着效果广告业务和技术的不断发展,广告主的出价功能也不断迭代。目前,不少广告平台都推出了自动出价功能,即广告主无需在展现、点击和转化上进行手动出价,仅需设置一定的约束条件,如每日广告投放预算,而由广告平台的投放系统根据广告流量和投放效果自动调整出价,为广告主实现广告流量价值的最大化,从而降低广告主的投放成本,提升广告主的投放效果。

在自动出价的具体实现上,由于广告流量和竞价环境的动态性,因此业界有较多工作基于强化学习进行自动出价,使用强化学习与环境交互、收集轨迹数据、迭代更新价值和策略函数的特点,解决广告流量和竞价环境动态性的问题。笔者之前梳理了基于强化学习的自动出价的相关论文,体系化地介绍了其发展历程,包括DRLB、USCB、PerBid、SOLA等算法,相关论文的阅读笔记地址已列在文末的参考文献中。

基于强化学习的自动出价将自动出价智能体和广告竞价环境的交互过程建模为马尔可夫决策过程,马尔可夫决策过程中的一个假设是下一个时刻的状态只与当前时刻的状态和动作相关,而从实际情况看,自动出价过程中的下一个时刻的状态与前序多个时刻的状态更加相关,并不完全满足马尔可夫决策过程的假设,因此,也有不少工作探索不基于强化学习的自动出价实现方案。

目前,AIGC及相应的生成式模型正在飞速发展,其中,扩散模型被广泛应用于图片、视频生成领域,取得了令人惊艳的效果,而扩散模型的基本原理是基于一定的条件(如图片的文字描述),从完全噪声开始逐步预测噪声并降噪,直至最终还原生成图片,其具体实现分为两步,第一步是正向扩散过程,从原始图片开始逐步增加噪声生成带噪声的图片,作为训练样本,训练模型用于预测噪声,第二步是反向扩散过程,从完全噪声开始逐步预测噪声并降噪,直至最终还原生成图片。

2024年阿里妈妈发表的论文《AIGB: Generative Auto-bidding via Diffusion Modeling》提出了DiffBid(Diffusion auto-bidding model)算法,实现了生成式的自动出价。具体实现上,其使用扩散模型,将图片替换为出价轨迹中的状态轨迹,将图片的文字描述替换为出价中的约束条件,从而通过扩散模型实现带约束条件的状态轨迹生成,并在生成状态轨迹的基础上,进一步通过逆转移模型预估从前序时刻状态到下一时刻状态所需采取的动作,以对出价进行调整,实现自动出价。论文通过实验验证了生成式的自动出价相比基于强化学习的自动出价,能为广告主带来更大的广告流量价值。

本文是对DiffBid这篇论文的阅读笔记,如有不足之处,请指正。

问题建模

首先定义带约束条件的自动出价问题,令一个周期(一般为1天)内共有NN次广告展现机会,对于第ii次展现机会,若广告主的出价bib_i高于其他广告主,则其获得该次展现机会,并展示其广告,进而获得该次展现的广告价值viv_i,并支付消耗cic_i。广告主的目标即在满足一定的约束条件下最大化获得的广告价值总和:

ioivi\sum_i{o_iv_i}

其中,oio_i表示广告主是否获得该次展现机会,而约束条件包括预算约束和其他业务指标的约束,预算约束可表示为:

ioiciB\sum_i{o_ic_i}\le B

其中,BB表示广告主一个周期内的预算,其他业务指标的约束可统一表示为:

icijoiipijoiCj\frac{\sum_i{c_{ij}o_i}}{\sum_i{p_{ij}o_i}}\le C_j

其中,CjC_j表示第jj个业务指标约束的上界,pijp_{ij}表示第jj个业务指标约束的值或常量,令共有JJ个业务指标约束,则带约束条件的自动出价(Multi-constrained Bidding,MCB)问题可表示为:

maxoiioivis.t.ioiciBicijoiipijoiCj,joi{0,1},i\begin{align} \max_{o_i} & \sum_i{o_iv_i} \\ \text{s.t.} & \sum_i{o_ic_i} \le B \\ & \frac{\sum_i{c_{ij}o_i}}{\sum_i{p_{ij}o_i}}\le C_j,\forall j \\ & o_i \in \{0,1\},\forall i \end{align}

USCB的论文中已推导出上述问题的最优出价公式,如下所示:

bi=λ0vi+Cij=1Jλjpijb_i^*=\lambda_0v_i+C_i\sum_{j=1}^J{\lambda_jp_{ij}}

其中包含J+1J+1个待求解参数:λj,j{0,...,J}\lambda_j,j\in\{0,...,J\}

基于强化学习的自动出价

基于强化学习的自动出价一般会设计一个智能体,将一个周期(一般为1天)划分为多个时刻,并将自动出价智能体和广告竞价环境的交互过程建模为马尔可夫决策过程,如图1所示,在每个时刻由智能体根据广告当前时刻的状态stSs_t\in\mathcal{S},由策略π\pi输出动作atAa_t\in\mathcal{A},对出价进行调整,然后通过与广告竞价环境的交互,获得奖励rtr_t,并在下一个时刻进入状态st+1s_{t+1},交互过程的状态转移可表示为T:st×atst+1×rt\mathcal{T}:s_t\times a_t\rightarrow s_{t+1}\times r_t。相关变量的进一步解释如下:

  • 状态sts_t,表示广告在时刻tt的状态,包括广告的剩余时间、剩余预算、预算消耗速度、实时点击成本、平均点击成本等;
  • 动作ata_t,表示智能体在时刻tt对最优出价公式中参数的调整,共有J+1J+1个参数,因此,动作可进一步表示为向量(atλ0,...,atλJ)(a_t^{\lambda_0},...,a_t^{\lambda_J})
  • 奖励rtr_t,表示广告在时刻tt获得的奖励;
  • 轨迹τ\tau,一个轨迹由广告在一个周期(episode)内的多个时刻tt的状态、动作和奖励构成。

图1 马尔可夫决策过程

笔者之前梳理了基于强化学习的自动出价的相关论文,体系化地介绍了其发展历程,包括DRLB、USCB、PerBid、SOLA等算法,相关论文的阅读笔记地址已列在文末的参考文献中,下面仅对基于强化学习的自动出价各算法作简单的介绍:

  • DRLB(Deep Reinforcement Learning to Bid)。2018年发表的论文《Budget Constrained Bidding by Model-free Reinforcement Learning in Display Advertising》提出了基于无模型强化学习的自动出价。这里的无模型是指不对环境进行建模、不直接计算状态转移概率,智能体只能和环境进行交互,通过采样得到的数据进行学习,这类学习方法统称为无模型的强化学习(Model-free Reinforcement Learning)。无模型的强化学习又可以分为基于价值和基于策略的算法,基于价值的算法主要是学习价值函数,然后根据价值函数导出一个策略,学习过程中并不存在一个显式的策略,而基于策略的算法则是直接显式地学习一个策略函数,另外,基于策略的算法中还有一类Actor-Critic算法,其会同时学习价值函数和策略函数。论文具体使用DQN算法,该算法将强化学习中基于价值的算法和深度学习相结合。另外,论文在该算法的基础上,针对自动出价场景的特点进行优化。
  • USCB(Unified Solution to Constrained Bidding)。2021年阿里妈妈发表的论文《A Unified Solution to Constrained Bidding in Online Display Advertising》针对带约束自动出价除预算约束以外、还存在其他多种类型约束的问题,提出了带约束自动出价统一方案——USCB(Unified Solution to Constrained Bidding)。该方案对各种类型约束下的自动出价进行统一建模,推导出通用的出价计算公式,并使用无模型强化学习中同时学习价值函数和策略函数的Actor-Critic算法之一——DDPG算法,先离线与虚拟竞价系统交互进行训练、再在线与真实竞价系统交互进行预测,输出出价计算公式中各参数最优值,从而计算出价并竞价,最终实现各种类型约束下广告流量价值的最大化。
  • PerBid(Personalized Automated Bidding Framework)。2023年阿里妈妈发表的论文《A Personalized Automated Bidding Framework for Fairness-aware Online Advertising》指出不同的广告主其广告投放目标和过程并不相同,基于统一方案构建一个自动出价智能体并应用于多个广告主,可能会导致该智能体为各广告主自动出价所带来的投放效果参差不齐,影响广告投放的整体公平性,因此该论文在USCB算法的基础上,提出了个性化自动出价方案——PerBid,该方案首先通过广告计划画像网络输出广告计划画像表征,能够表征广告计划的静态属性特征和动态环境特征,在此基础上,将广告计划划分为多个类簇,为每个类簇构建一个自动出价智能体,并且每个自动出价智能体将广告计划画像表征作为状态输入之一、从而感知不同广告计划动态环境的上下文,论文通过实验论证,该方案在保障投放效果的同时,也能提升广告投放的公平性。
  • SOLA(Sustainable Online Reinforcement Learning for Auto-bidding)。上述所介绍的自动出价方案,均先离线与虚拟竞价系统交互进行训练、再在线与真实竞价系统交互进行预测,因此存在一个共性问题是如何保持虚拟竞价系统和真实竞价系统的一致性,而真实竞价系统存在复杂的拍卖机制、激励的出价竞争,虚拟竞价系统难以精确模拟真实竞价系统,而如果不能保持两个系统的一致性,则可能导致虚拟竞价系统下所训练的自动出价方案在真实竞价系统中非最优。2023年发表的论文《Sustainable Online Reinforcement Learning for Auto-bidding》提出了SOLA框架,将离线强化学习和在线安全探索相结合,同时解决了训练依赖虚拟竞价系统和在线探索出价安全性的问题。

图2 自动出价过程中的下一个时刻的状态与前序多个时刻的状态更加相关

基于强化学习的自动出价将自动出价智能体和广告竞价环境的交互过程建模为马尔可夫决策过程,马尔可夫决策过程中的一个假设是下一个时刻的状态只与当前时刻的状态和动作相关,而从实际情况看,自动出价过程中的下一个时刻的状态与前序多个时刻的状态更加相关,如图2所示,并不完全满足马尔可夫决策过程的假设,因此,也有不少工作探索不基于强化学习的自动出价实现方案。

2024年阿里妈妈发表的论文《AIGB: Generative Auto-bidding via Diffusion Modeling》另辟蹊径,提出了DiffBid(Diffusion auto-bidding model)算法,实现了生成式的自动出价。具体实现上,其使用扩散模型,将图片替换为出价轨迹中的状态轨迹,将图片的文字描述替换为出价中的约束条件,从而通过扩散模型实现带约束条件的状态轨迹生成,并在生成状态轨迹的基础上,进一步通过逆转移模型预估从前序时刻状态到下一时刻状态所需采取的动作,以对出价进行调整,实现自动出价。论文通过实验验证了生成式的自动出价相比基于强化学习的自动出价,能为广告主带来更大的广告流量价值。

扩散模型

DiffBid这篇论文具体使用了扩散模型中的DDPM模型以及Classifier-Free Guidance技术,因此,以下先对上述两个概念进行简单介绍。笔者之前已体系化梳理扩散模型的相关论文,相关论文的阅读笔记地址已列在文末的参考文献中,以供读者进一步了解扩散模型。

DDPM

扩散模型于2015年在论文《Deep Unsupervised Learning Using Nonequilibrium Thermodynamics》中被提出,并于2020年在论文《Denoising Diffusion Probabilistic Models》中被改进、用于图片生成。《Denoising Diffusion Probabilistic Models》中提出的扩散模型被称为DDPM。

正向扩散过程

令原始图片样本为x0x_0,其满足分布x0q(x0)x_0 \sim q(x_0)。定义前向扩散过程,在TT步内,每步给样本增加一个小的满足高斯分布的噪声,从而产生TT个带噪声的样本x1,...,xTx_1,...,x_T,整个过程为一个一阶马尔可夫过程,xtx_t只与xt1x_{t-1}有关,可用以下公式表示:

q(xtxt1)=N(xt;1βtxt1,βtI)q(x_t|x_{t-1})=\mathcal{N}(x_t;\sqrt{1-\beta_t}x_{t-1},\beta_t\mathbf{I})

其中,q(xtxt1)q(x_t|x_{t-1})表示给定xt1x_{t-1}时,xtx_{t}的条件概率,即均值为1βtxt1\sqrt{1-\beta_t}x_{t-1}、方差为βtI\beta_t\mathbf{I}的高斯分布,集合{βt(0,1)}t=1T\{\beta_t \in (0,1)\}_{t=1}^{T}用于控制每步的噪声大小。进一步给定x0x_0时,整个马尔科夫过程的条件概率为各步条件概率的连乘,可用以下公式表示:

q(x1:Tx0)=t=1Tq(xtxt1)q(x_{1:T}|x_0)=\prod_{t=1}^{T}{q(x_t|x_{t-1})}

正向扩散过程可由图3从右到左的过程表示,其中x0x_0为原始图片,随着每步增加噪声,图片逐渐变得模糊。

图3 从右到左为正向扩散过程

对于上述正向扩散过程,可进一步令αt=1βt\alpha_t=1-\beta_t,且αˉt=i=1tαi\bar{\alpha}_t=\prod_{i=1}^{t}{\alpha_i},则xtx_t可用以下公式表示:

xt=αtxt1+1αtϵt1;where ϵt1,ϵt2,...N(0,I)=αtαt1xt2+1αtαt1ϵˉt2;where ϵˉt2 merge two Gaussians ().=...=αˉtx0+1αˉtϵ\begin{aligned} x_t&=\sqrt{\alpha_t}x_{t-1}+\sqrt{1-\alpha_t}\epsilon_{t-1} &;\text{where }\epsilon_{t-1},\epsilon_{t-2},...\sim\mathcal{N}(0,\mathbf{I})\\ &=\sqrt{\alpha_t \alpha_{t-1}}x_{t-2}+\sqrt{1-\alpha_t\alpha_{t-1}}\bar{\epsilon}_{t-2} &;\text{where }\bar{\epsilon}_{t-2}\text{ merge two Gaussians }(*). \\ &=... \\ &=\sqrt{\bar{\alpha}_t}x_0+\sqrt{1-\bar{\alpha}_t}\epsilon \end{aligned}

xtx_t是在xt1x_{t-1}的基础上,增加一个满足高斯分布的噪声ϵt1\epsilon_{t-1},循环递归,即xtx_t可进一步推导为在x0x_0的基础上,增加一个满足高斯分布的噪声ϵ\epsilon。这里使用了高斯分布的一个特性,即两个高斯分布合并后仍是一个高斯分布,例如分布N(0,σ12I)\mathcal{N}(0,\sigma_1^2\mathbf{I})N(0,σ22I)\mathcal{N}(0,\sigma_2^2\mathbf{I}),合并后的分布为N(0,(σ12+σ22)I)\mathcal{N}(0,(\sigma_1^2+\sigma_2^2)\mathbf{I})

反向扩散过程

以上介绍了正向扩散过程,即图3从右到左,对原始图片逐步增加噪声,如果将过程逆向,即图3从左到右,那么就能从满足高斯分布的噪音xTN(0,I)x_T \sim \mathcal{N}(0,\mathbf{I})逐步还原原始图片样本,这就是基于扩散模型生成图片的基本思想,即从xTx_Tx0x_0的每一步,在给定xtx_t时,根据条件概率q(xt1xt)q(x_{t-1}|x_t)采样求解xt1x_{t-1},直至最终得到x0x_0

而当正向扩散过程每步增加的噪声很小时,反向扩散过程的条件概率q(xt1xt)q(x_{t-1}|x_t)也可以认为满足高斯分布,但实际上,我们不能直接求解该条件概率,因为直接求解需要整体数据集合。除直接求解外,另一个方法是训练一个模型pθp_\theta近似预估上述条件概率,可用以下公式表示:

pθ(xt1xt)=N(xt1;μθ(xt,t),Σθ(xt,t))p_\theta(x_{t-1}|x_t)=\mathcal{N}(x_{t-1};\mu_\theta(x_t,t),\Sigma_\theta(x_t,t))
pθ(x0:T)=p(xT)t=1Tpθ(xt1xt)p_{\theta}(x_{0:T})=p(x_T)\prod_{t=1}^{T}{p_\theta(x_{t-1}|x_t)}

xTx_Tx0x_0的每一步,通过模型θ\theta,输入xtx_ttt,预测xt1x_{t-1}的高斯分布的均值μθ(xt,t)\mu_\theta(x_t,t)和方差Σθ(xt,t)\Sigma_\theta(x_t,t),基于预测值,可以从xt1x_{t-1}的高斯分布pθ(xt1xt)p_\theta(x_{t-1}|x_t)中进行采样,从而得到xt1x_{t-1}的一个可能取值,如此循环,直至最终得到x0x_0的一个可能取值。通过上述反向扩散过程,即可以实现从一个满足高斯分布N(0,I)\mathcal{N}(0,\mathcal{I})的随机噪声,生成一张图片。而由于每次预测均是从一个概率密度函数中进行采样,因此,可以保证生成图片的多样性。

更进一步,论文进一步将模型预测pθ(xt1xt)p_\theta(x_{t-1}|x_t)的均值μθ(xt,t)\mu_\theta(x_t,t)和方差Σθ(xt,t)\Sigma_\theta(x_t,t)转化为预测噪声ϵθ(xt,t)\epsilon_\theta(x_t,t),并推导出μθ(xt,t)\mu_\theta(x_t,t)ϵθ(xt,t)\epsilon_\theta(x_t,t)的关系:

μθ(xt,t)=1αt(xt1αt1αˉtϵθ(xt,t))\mu_\theta(x_t,t)=\frac{1}{\sqrt{\alpha_t}}\left(x_t-\frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}}\epsilon_\theta(x_t,t)\right)

因此,pθ(xt1xt)p_\theta(x_{t-1}|x_t)可表示为:

pθ(xt1xt)=N(xt1;1αt(xt1αt1αˉtϵθ(xt,t)),Σθ(xt,t))p_\theta(x_{t-1}|x_t)=\mathcal{N}(x_{t-1};\frac{1}{\sqrt{\alpha_t}}\left(x_t-\frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}}\epsilon_\theta(x_t,t)\right),\Sigma_\theta(x_t,t))

论文将Σθ(xt,t)\Sigma_\theta(x_t,t)固定为常量,通过模型预测ϵθ(xt,t)\epsilon_\theta(x_t,t),并使用上述公式的概率密度函数进行采样,从xtx_t降噪得到xt1x_{t-1},这也是论文标题中“Denosing”的由来。

训练采样

训练

通过模型预测误差ϵθ(xt,t)\epsilon_\theta(x_t,t),损失函数采用均方误差(MSE,Mean-Squared Error):

Lsimple:=Et[1,T],x0q(x0),ϵN(0,I)[ϵϵθ(xt,t)2]L_{\text{simple}}:=E_{t\sim[1,T],x_0\sim q(x_0),\epsilon\sim\mathcal{N}(0,\mathbf{I})}[\parallel\epsilon-\epsilon_\theta(x_t,t)\parallel^2]

模型训练的目标即最小化上述损失函数,即使模型预测出的噪声ϵθ(xt,t)\epsilon_\theta(x_t,t)和真实噪声ϵ\epsilon尽可能接近。

图4 训练算法

训练算法如图4所示,采用梯度下降算法,循环下述过程直至模型收敛:

  • 对于样本x0x_0,从{1,...,T}\{1,...,T\}中随机采样步数tt
  • 从高斯分布N(0,I)\mathcal{N}(0,\mathbf{I})中采样真实噪声ϵ\epsilon
  • 根据样本x0x_0和真实噪声ϵ\epsilon,使用前面推导出的公式xt=αˉtx0+1αˉtϵx_t=\sqrt{\bar{\alpha}_t}x_0+\sqrt{1-\bar{\alpha}_t}\epsilon计算第tt步正向扩散后带噪声的图片xtx_t
  • 根据带噪声的图片xtx_t和步数tt,使用模型预测噪声ϵθ(xt,t)\epsilon_\theta(x_t,t),即ϵθ(αˉtx0+1αˉtϵ,t)\epsilon_\theta(\sqrt{\bar{\alpha}_t}x_0+\sqrt{1-\bar{\alpha}_t}\epsilon,t)
  • 根据真实噪声ϵ\epsilon和预测噪声ϵθ(αˉtx0+1αˉtϵ,t)\epsilon_\theta(\sqrt{\bar{\alpha}_t}x_0+\sqrt{1-\bar{\alpha}_t}\epsilon,t)计算损失函数的梯度,即θϵϵθ(αˉtx0+1αˉtϵ)2\nabla_\theta\parallel\epsilon-\epsilon_\theta(\sqrt{\bar{\alpha}_t}x_0+\sqrt{1-\bar{\alpha}_t}\epsilon)\parallel^2
  • 根据梯度和学习率超参更新模型参数。

采样

图5 采样算法

采样算法如图5所示,过程如下:

  • 从高斯分布N(0,I)\mathcal{N}(0,\mathbf{I})中采样完全噪声图片xTx_T
  • 循环TT步,步数从TT到1,直至计算得到x0x_0,生成最终的图片,对于其中的某一步tt
    • 根据带噪声的图片xtx_t和步数tt,使用模型预测噪声ϵθ(xt,t)\epsilon_\theta(x_t,t)
    • 前面已推导出概率密度函数pθ(xt1xt)p_\theta(x_{t-1}|x_t)满足高斯分布N(xt1;1αt(xt1αt1αˉtϵθ(xt,t)),Σθ(xt,t))\mathcal{N}(x_{t-1};\frac{1}{\sqrt{\alpha_t}}\left(x_t-\frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}}\epsilon_\theta(x_t,t)\right),\Sigma_\theta(x_t,t)),使用公式μθ(xt,t)=1αt(xt1αt1αˉtϵθ(xt,t))\mu_\theta(x_t,t)=\frac{1}{\sqrt{\alpha_t}}\left(x_t-\frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}}\epsilon_\theta(x_t,t)\right)由噪声ϵθ(xt,t)\epsilon_\theta(x_t,t)计算均值μθ(xt,t)\mu_\theta(x_t,t)
    • 对于上述概率密度函数,指定方差Σθ(xt,t)\Sigma_\theta(x_t,t)为常量,根据该分布进行采样,从xtx_t得到xt1x_{t-1},即xt1=1αt(xt1αt1αˉtϵθ(xt,t))+σtzx_{t-1}=\frac{1}{\sqrt{\alpha_t}}\left(x_t-\frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}}\epsilon_\theta(x_t,t)\right) +\sigma_tz

Classifier-Free Guidance

OpenAI后续对DDPM进行改进,在2021年随后又发表了论文《Diffusion Models Beat Gans on Image Synthesis》,在模型结构上进一步优化,同时引入Classifier Guidance技术,通过图片分类器的梯度调节反向扩散过程,在尽量保持图片生成多样性的前提下,提升准确性,从而在多个数据集的实验效果(FID)上超过了GAN,实现了SOTA。论文将改进后的模型称为ADM(Ablated Diffusion Model)。

在Classifier Guidance机制被提出后,紧接着Google又于2021年发表了论文《Classifier-Free Diffusion Guidance》。这篇论文指出Classifier Guidance仍存在以下不足:一是Classifier Guidance需要额外训练分类器,二是Classifier Guidance会导致基于梯度的对抗攻击,欺骗FID、IS这类基于分类器的评估指标。因此,这篇论文提出了一种不需要训练分类器、但仍可以基于类别信息指导反向扩散过程的机制——Classifier-Free Guidance。

之前ADM等扩散模型可使用类别信息进行有条件的图片生成,由模型基于xtx_t和类别yy预测噪声ϵθ(xt,y)\epsilon_\theta(x_t,y),或是不使用类别信息进行无条件的图片生成,由模型仅基于xtx_t预测噪声ϵθ(xt)\epsilon_\theta(x_t),但这两种情况需要分别训练模型,而Classifier-Free Guidance的思想是在模型训练时,按一定比例丢弃类别信息,使得模型能够同时学习有条件的图片生成和无条件的图片生成,这样在采样生成图片时,由同一个模型预测ϵθ(xt,y)\epsilon_\theta(x_t,y)ϵθ(xt)\epsilon_\theta(x_t),并使用两者的差值等价替换分类器输出的梯度对ϵθ(xt,y)\epsilon_\theta(x_t,y)进行调整,调整公式如下:

ϵ^θ(xt,y)=ϵθ(xt)+s(ϵθ(xt,y)ϵθ(xt))\hat{\epsilon}_\theta(x_t,y)=\epsilon_\theta(x_t)+s\cdot(\epsilon_\theta(x_t,y)-\epsilon_\theta(x_t))

再基于调整后的ϵ^θ(xt,y)\hat{\epsilon}_\theta(x_t,y)计算均值,并从高斯分布中采样得到xt1x_{t-1}

基于扩散模型的自动出价

整体架构

图6 DiffBid整体架构

DiffBid的整体架构如图6所示,其将自动出价划分为两个监督学习任务,第一个任务使用扩散模型,生成状态轨迹,在生成状态轨迹的基础上,第二个任务再通过逆转移模型预估从前序时刻状态到下一时刻状态所需采取的动作,以对出价进行调整,实现自动出价。

扩散过程

正向扩散过程

首先定义扩散过程中第kk步的状态轨迹xk(τ)x_k(\tau)如下:

xk(τ):=(s1,...,st,...,sT)kx_k(\tau):=(s_1,...,s_t,...,s_T)_k

其中包含广告在一个周期中TT个时刻的状态。和图片生成类似,正向扩散过程中第k+1k+1步的状态轨迹xk+1(τ)x_{k+1}(\tau)满足以下条件概率分布:

q(xk(τ)xk1(τ))=N(xk(τ);1βkxt1(τ),βkI)q(x_k(\tau)|x_{k-1}(\tau))=\mathcal{N}\left(x_k(\tau);\sqrt{1-\beta_k}x_{t-1}(\tau),\beta_k I\right)

反向扩散过程

和图片生成类似,反向扩散过程中第k1k-1步的状态轨迹 xk1(τ)x_{k-1}(\tau)也满足以下条件概率分布:

xk1(τ)N(xk1(τ)μθ(xk(τ),y(τ),k),Σθ(xk(τ),k))x_{k-1}(\tau)\sim\mathcal{N}\left(x_{k-1}(\tau)|\mu_\theta(x_k(\tau),y(\tau),k),\Sigma_\theta(x_k(\tau),k)\right)

其中,高斯分布的均值可转化为:

μθ(xk(τ),y(τ),k)=1αk(xk(τ)βk1αˉkϵ^k)\mu_\theta(x_k(\tau),y(\tau),k)=\frac{1}{\sqrt{\alpha_k}}(x_k(\tau)-\frac{\beta_k}{\sqrt{1-\bar{\alpha}_k}}\hat{\epsilon}_k)
αk=1βk\alpha_k=1-\beta_k
αˉk=i=1kαk\bar{\alpha}_k=\prod_{i=1}^k{\alpha_k}

高斯分布的方差可转化为:

Σθ()=βk\Sigma_\theta(\cdot)=\beta_k

因此,可以通过扩散模型预测噪声ϵ^k\hat{\epsilon}_k,在预测噪声后,通过上述分布进行采样,得到降噪后的xk1(τ)x_{k-1}(\tau)。论文这里使用了Classifier-Free Guidance技术,分别预测无条件的噪声ϵθ(xk(τ),k)\epsilon_\theta(x_k(\tau),k)和有条件的噪声ϵθ(xk(τ),y(τ),k)\epsilon_\theta(x_k(\tau),y(\tau),k),并基于上述两个值,得到最终的噪声:

ϵ^k:=ϵθ(xk(τ),k)+w(ϵθ(xk(τ),y(τ),k)ϵθ(xk(τ),k))\hat{\epsilon}_k:=\epsilon_\theta(x_k(\tau),k)+w(\epsilon_\theta(x_k(\tau),y(\tau),k)-\epsilon_\theta(x_k(\tau),k))

图7 通过反向扩散生成出价的过程

广告投放周期中第tt个时刻出价通过反向扩散过程生成的过程如图7所示。首先从满足正态分布的完全随机噪声中进行采样,作为初始的状态轨迹:

xK(τ)N(0,I)x_K'(\tau)\sim\mathcal{N}(0,I)

对于反向扩散过程中的第kk步,由于前tt个时刻的状态已知,因此,将状态轨迹中前tt个时刻的状态替换为已知的真实状态:

xk(τ)[:t]s0:tx_k'(\tau)[:t]\leftarrow s_{0:t}

然后使用扩散模型预测噪声ϵ^k\hat{\epsilon}_k,并根据噪声计算得到均值μθ(xk(τ),y(τ),k)\mu_\theta(x_k'(\tau),y(\tau),k),再采样得到降噪后的第k1k-1步的状态轨迹xk1(τ)x'_{k-1}(\tau)

xk1(τ)=μθ(xk(τ),y(τ),k)+βkzx_{k-1}'(\tau)=\mu_\theta(x_k'(\tau),y(\tau),k)+\sqrt{\beta_k}z

其中,zN(0,I)z\sim\mathcal{N}(0,I)

上述反向扩散过程迭代多步,直至第0步,得到最终生成的状态轨迹x0(τ)x_0'(\tau)。 接着,从这个状态轨迹中获取广告投放周期中第t+1t+1个时刻、即下一个时刻的状态st+1s_{t+1}',然后使用逆转移模型,根据第tt个时刻以及之前的共LL个时刻的状态stL:ts_{t-L:t},和反向扩散过程生成的第t+1t+1个时刻的状态st+1s_{t+1}',预估第tt个时刻的动作:

a^t=fϕ(stL:t,st+1)\hat{a}_t=f_\phi(s_{t-L:t},s_{t+1}')

其中,a^tRJ\hat{a}_t\in\mathbb{R}^J,最后对出价进行调整。

模型训练

图8 DiffBid训练流程

DiffBid训练流程如图8所示,其和扩散模型的训练流程类似,采样一批出价轨迹,对于其中每个出价轨迹的状态轨迹,随机采样扩散过程的步数和噪声,生成带噪声的状态轨迹,然后由扩散模型预估噪声,计算损失函数值和梯度,再梯度更新模型参数。

训练流程和扩散模型不同的是,由于DiffBid除扩散模型外,还包含逆转移模型,因此训练时还需由逆转移模型预估动作,并且损失函数中还需包括逆转移模型的损失,最后也还需梯度更新逆转移模型的参数。

整体损失函数如下所示:

L(θ,ϕ)=Ek,τD[ϵϵθ(xk(τ),y(τ),k)2]+E(stL:t,at,st+1)D[atfϕ(stL:t,st+1)2]\mathcal{L}(\theta,\phi)=\mathbb{E}_{k,\tau\in\mathcal{D}}\left[\|\epsilon-\epsilon_\theta(x_k(\tau),y(\tau),k)\|^2\right]+\mathbb{E}_{(s_{t-L:t},a_t,s_{t+1}')\in\mathcal{D}}\left[\|a_t-f_\phi(s_{t-L:t},s_{t+1}')\|^2\right]

其中,加号前面这部分是扩散模型的损失函数,即最小化预估噪声和实际噪声的偏差,加号后面这部分是逆转移模型的损失函数,即最小化预估动作和实际动作的偏差。

另外训练时还使用Classifier-Free Guidance技术,随机丢弃条件y(τ)y(\tau),使得扩散模型既能预估带条件的噪声,也能预估不带条件的噪声。

条件设计

对于带约束条件的状态轨迹生成,论文考虑了以下几种条件。

带广告收益的生成

广告收益为广告周期内各个时刻奖励之和,如下所示:

R(τ)=t=1TrtR(\tau)=\sum_{t=1}^T{r_t}

论文对广告收益进行归一化:

R=R(τ)RminRmaxRminR=\frac{R(\tau)-R_{\text{min}}}{R_{\text{max}}-R_{\text{min}}}

其中,RminR_{\text{min}}RmaxR_{\text{max}}为数据集中分别已有的最小和最大的广告收益。论文将归一化后的广告收益加入条件y(τ)y(\tau)中。R=1R=1,说明当前出价轨迹的广告收益最高,因此,在生成状态轨迹时,论文设置生成条件y(τ)y(\tau)中的RR值为1,以使扩散模型尽可能生成高广告收益的状态轨迹。

带约束或反馈的生成

例如对于有点击成本约束的出价,可以定义二值标量用于表示最终的点击成本xx是否超过阈值CC

E=IxC(x)E=\text{I}_{x\le C}(x)

EE值加入条件y(τ)y(\tau)中。E=1E=1,表示当前出价轨迹满足约束,点击成本不超过阈值,因此,在生成状态轨迹时,可以设置生成条件y(τ)y(\tau)中的EE值为1,以使扩散模型生成满足点击成本约束的状态轨迹。

另外,广告主还可能有以下投放诉求。

平滑:广告主期望其消耗曲线尽可能平滑,避免突增或突降,定义消耗速度如下:

x=1Tt[costtcostt1]x=\frac{1}{T}\sum_t{[cost_t-cost_{t-1}]}

再定义消耗速度是否超过阈值的二值标量:

S=IxC(x)S=\text{I}_{x\le C}(x)

S=1S=1,表示当前出价轨迹满足约束,消耗速度不超过阈值,并将其加入条件中。

稍早/稍晚消耗:广告主也有可能期望其预算在某天的早晨或晚上消耗,定义上半天消耗在全天消耗中的占比:

x=t=0T/2costit=0Tcostix=\frac{\sum_{t=0}^{T/2}{cost_i}}{\sum_{t=0}^T{cost_i}}

另外,同上,也定义上半天消耗在全天消耗中的占比是否超过阈值的二值标量,并将其加入条件中。

生成时通过设置上述二值标量为1,以使扩散模型生成满足平滑消耗或者稍早/稍晚消耗的状态轨迹。

实验评估

实验环境

论文使用《Sustainable Online Reinforcement Learning for Auto-bidding》中介绍的真实竞价系统(Real-world Advertising System,RAS)作为实验环境。

真实竞价系统(Real-world Advertising System,RAS)和虚拟竞价系统(Virtual Advertising System,VAS)的不同,如图9所示,真实竞价系统采用两阶段竞价,第一阶段为粗排,从数十万广告中筛选出数百个广告,第二阶段为精排,从数百个广告中筛选出最终竞胜的广告,而虚拟竞价系统采用一阶段竞价,只使用线上精排日志模拟竞价环境;真实竞价系统存在多种拍卖机制,而虚拟竞价系统只采用GSP拍卖机制;真实竞价系统除当前广告主外、其余广告主也会不断调整出价,而虚拟竞价系统中,其余广告主的出价以市场价的形式被固定,不会变化。

图9 真实竞价系统和虚拟竞价系统的不同

真实竞价系统(Real-world Advertising System,RAS)的具体数值如图10所示,其中包含了30个广告主,对于每个广告主,一天为一个周期,被划分为96个时刻,各时刻之间间隔15分钟。

图10 真实竞价系统(Real-world Advertising System,RAS)的具体数值

数据收集

论文使用《A Unified Solution to Constrained Bidding in Online Display Advertising》中提出的基于强化学习的自动出价算法——USCB算法,在线上广告系统中为广告主进行自动出价,从而收集出价轨迹,最终产出三个数据集:

  • USCB-5K,包含5千个出价轨迹;
  • USCBEx-5K,包含5千个出价轨迹,并且随机进行探索以增加动作空间;
  • USCBEx-50K,包含5万个出价轨迹,并且随机进行探索以增加动作空间。

基线模型

基线模型除了USCB算法外,论文还选择了三个离线强化学习算法——BCQ、CQL和IQL,以及基于Transformer架构的生成式算法——DT算法。

评估方法

使用DiffBid和基线模型的智能体与使用USCB算法的智能体在真实竞价系统中进行竞价,并设置不同的预算,最终计算使用DiffBid和基线模型的智能体所获得的广告流量价值作为评估指标。

实验结果

图11 实验结果

实验结果如图11所示,其中,离线强化学习优于USCB算法,而DiffBid效果最好。USCBEx-5K和USCBEx-50K相比,说明数据集越大,效果越好。

参考文献