在线广告投放流程
效果类在线广告投放平台一方面承接众多广告主的投放诉求,存储数百万甚至更多的广告物料,另一方面承接众多媒体的广告请求,针对每次广告请求,从海量广告物料中实时检索出相匹配的广告进行投放。效果类在线广告投放平台出价和计价方式包括CPM、oCPM、CPC、oCPC、CPA等:
- CPM:广告主在展现上出价,广告平台也在展现上计价;
- oCPM:广告主在转化上出价,广告平台在展现上计价;
- CPC:广告主在点击上出价,广告平台也在点击上计价;
- oCPC:广告主在转化上出价,广告平台在点击上计价;
- CPA:广告主在转化上出价,广告平台在转化上计价。
以上方式均是在展现上竞价。本文后续主要基于CPC这种方式进行介绍,即广告主在点击上出价,广告平台在点击上计价。
效果类在线广告投放流程一般包含以下步骤:
- 召回(Information Retrieval,IR),从海量广告全集中召回和当前请求相匹配的候选广告集,候选广告集的规模一般是数万;
- 粗排(Approximate Rank,AR),对召回返回的候选广告集使用相对简单的模型预估每个广告的点击率pCTR,并基于广告主在点击上的出价bidclick计算eCPM:
eCPM=pCTR⋅bidclick
最后,再基于eCPM从大到小进行排序,选取排序靠前的数百个广告;
- 精排(Full Rank,FR),对粗排返回的数百个广告,和粗排类似的方式、但选择相对复杂的模型预估点击率并计算eCPM,再基于eCPM排序后,选取排序靠前的数十个广告。
- 定价(Price),对精排返回的数十个广告按照一定的机制根据出价计算最后的定价,然后将胜出的广告返回给媒体侧进行展示,当用户点击广告时,广告平台获取相应的点击事件,并按照之前计算的定价计价,扣减广告主的账户余额。由出价计算定价的机制就涉及本文将要介绍的广告拍卖机制。
从参与方的维度来看,效果类在线广告投放平台涉及三方的博弈:广告主、媒体、广告平台。广告主希望在投放成本满足一定的约束条件(如ROI和tCPA)前提下,竞得更多的优质流量,获得更多的GMV增长,媒体希望在获得更多流量变现的同时,能够保持或优化用户的使用体验,对用户展现优质和相关的广告,而广告平台在提升广告主和媒体匹配效率、尽可能满足两者上述诉求的同时,还要提升自身平台的收入。
在线广告投放流程相当于由上述三方参与的广告拍卖流程:在一次广告请求中,由媒体提供广告位作为竞拍品,由广告主出价进行竞拍,而由广告平台根据某种广告拍卖机制,先采用某种分配规则排序、选择胜出的广告主,再采用某种定价规则计算胜出广告主的定价,从而最大化各方的收益,使得整体处于博弈均衡的状态。
传统广告拍卖机制
博弈论相关概念
- 激励相容(Incentive Compatability),激励相容下,博弈中的参与者如实报告,进一步,激励相容可分为两类:优势策略激励相容(Dominant-Strategy Incentive Compatibility,DSIC),不管其他参与者如何报告,如实报告是最优反应;贝叶斯纳什激励相容(Bayes-Nash Incentive Compatibility,BIC),若其他参与者如实报告,则如实报告是最优反应;
- 纳什均衡(Nash Equilibrium),博弈中的任何参与者单方面偏离自己的均衡策略均无利可图,当下策略是其他参与者均衡策略的最优反应。
广告平台架构和拍卖机制

广告平台架构如图1所示,当用户浏览网站时,网站向广告平台发起广告请求。一次广告请求一般会包含多个广告位,令一次广告请求中的广告位个数为K。广告平台一般会根据广告主预设的定向条件和当前请求的上下文特征从海量广告全集中召回相匹配的广告候选集,令广告候选集中有N个广告主,每个广告主针对广告位的私有估值为vi,对外报价为bi(这里隐含假设广告主对每个广告位的私有估值和对外报价是相同的)。一般情况下,bi≤vi。令b−i表示除广告主i外其他广告主的报价,则b=(bi,b−i)表示所有广告主的报价。
对于广告候选集,广告平台通过模型预估用户对每个候选广告的点击率和转化率,并通过广告拍卖机制对候选广告结合其出价、点击率、转化率等信息进行分配(Allocation)和定价(Pricing),分配即从候选广告集中选择竞价胜出的广告,定价即对胜出广告计算其定价。
最后,广告平台返回胜出广告并向用户展示,用户在浏览广告后可能点击广告,并发生加购、下单等后链路行为。广告平台收集行为反馈后得到优化目标的后验效果数据,包括平台收入、广告主GMV、点击率、转化率等。
令广告拍卖机制为M(R,P),其中R表示分配规则,P表示定价规则。在广告分配时,令Ri(bi,b−i)=k表示广告主i竞得第k个广告位,Ri(bi,b−i)=0表示广告主i竞拍失败,最终会有K个广告主竞得广告位。在广告定价时,令Pi表示广告主i的定价,则ui=vi−Pi表示广告主i的效用(utility),即利润。通过设计分配规则和定价规则,使得平台、广告主各方处于博弈均衡的状态。
GSP
- 分配规则,将eCPM作为排序分从高到低对候选广告进行排序;
- 计价规则,将下一个广告的出价作为当前广告的计价,即:
pi=pCTRibi+1∗pCTRi+1+Δ
其中,Δ一般是货币的最小单位,比如1分。
可以论证,GSP是单广告位拍卖场景下,社会福利最大化的优势策略激励相容机制,即所有广告主最优策略是如实报价,并通过竞拍广告位能获取最大的效用。而在多广告位拍卖场景下,最优拍卖机制是VCG,但由于其逻辑比较复杂,实际应用比较少,这里不再详述。
基于深度学习的广告拍卖机制
Deep GSP
《Optimizing Multiple Performance Metrics with Deep GSP Auctions for E-commerce Advertising》是阿里妈妈算法团队于2021年发表的论文,其中提出了基于深度学习的多目标优化的广告拍卖机制——Deep GSP。
前面已经提到,广告拍卖涉及三方参与者:广告主、媒体、广告平台。每个参与者都有各自的优化目标,而且相互之间的目标可能存在冲突,例如,对广告分配所使用的eCPM公式,提高出价权重,降低点击率权重,则优先展示高出价、低点击率的广告,从而一方面虽能提高广告平台收入,但另一方面也影响了用户体验。另外有些优化目标在广告请求时较难通过模型实时、准确地预估,例如,电商类广告主的GMV指标,依赖于用户在广告点击后的一系列后链路行为,包括加购、下单等,只有延迟收集到这些行为反馈后,才能准确计算GMV指标。
因此在这篇论文中,不采用固定的公式,将出价和预估点击率、预估转化率相乘作为广告分配时的排序分,而是将出价、预估点击率、预估转化率、广告类别、商品价格等信息作为深度神经网络的特征,将多目标优化作为深度神经网络的目标函数,由深度神经网络充分挖掘特征和目标函数的内在联系,从而通过深度神经网络基于特征预估排序分,实现多目标优化。
另外,论文中还提到,由深度神经网络预估的排序分,后续会用于广告拍卖机制中的分配和定价,因此,排序分需要满足广告拍卖机制中的相关约束:
- 单调分配(Monotone Allocation),即排序分随出价的变化满足单调性,从而使得广告拍卖机制满足博弈均衡的特性,包括单广告位场景下的激励相容(Incentive Compatibility,IC)和多广告位场景下的对称纳什均衡(Symmetric Nash Equilibrium,SNE);
- 平滑切换(Smooth Transition),即多目标优化中的各指标权重发生变化时,广告主侧的优化目标不会有明显的波动;
背景
问题建模
令{fj(b;M)}1L表示广告拍卖场景下的L个优化目标,包括平台收入、广告主GMV、点击率、转化率等。广告拍卖机制的优化目标就是通过优化上述L个优化目标的加权和。
对上述广告拍卖机制的多目标优化问题进行建模,公式如下所示:
Mmaxs.t.Eb∼D[j=1∑Lwj×fj(b;M)]Game Equilibrium constraints,Smooth Transition constraints.
其中,目标函数即最大化L个优化目标的加权和,并使得广告拍卖机制满足以下两个约束:
- 博弈均衡约束(Game Equilibrium constraints);
- 平滑切换约束(Smooth Transition constraints)。
博弈均衡约束包括激励相容(Incentive Compatibility)和纳什均衡(Nash Equilibrium)。
激励相容指竞拍者如实报价,即bi=vi,这样拍卖机制无需考虑竞拍者的报价策略,根据Myerson推论可以得到单广告位场景下拍卖机制满足激励相容的充要条件:单广告位场景下的拍卖机制M(R,P)满足激励相容,当且仅当分配规则R单调分配(Monotone Allocation),即胜出的竞拍者如果提高出价仍能够赢得拍卖,且定价规则P基于最低出价(Critical Bid based Pricing),即定价是维持当前胜出状态的最低出价。充要条件公式如下所示:
Ri(z,b−i)≥Ri(bi,b−i) if z>bi (Monotone Allocation)Pi=inf(z∣Ri(z,b−i)=Ri(bi,b−i)) (Critical Bid based Pricing)
而对于多广告位场景,论文考虑拍卖机制满足对称纳什均衡(Symmetric Nash Equilibrium,SNE),对称纳什均衡的充要条件是:拍卖机制M(R,P)满足对称纳什均衡,当且仅当当前均衡状态下,每个广告主都通过出价得到了最符合自己利益的广告位i,而不会考虑其他任一广告位j。公式如下所示:
βi(vi−pi)≥βj(vi−pj)
其中,βi表示广告位i的点击率,即广告主在广告位i上的期望效用不小于其他任一广告位j。
平滑切换约束指多目标优化中的各指标权重发生变化时,广告主的优化目标——效用不会有明显的波动。令M0表示基准拍卖机制,uˉi(M0)表示基准拍卖机制下广告主i的效用,M表示新拍卖机制,ui(M)表示新拍卖机制下广告主i的效用,则平滑切换约束可用以下公式表示:
ui(M)≥(1−ϵ)×uˉi(M0)
即拍卖机制切换时,广告主在新拍卖机制下的效用负向波动相对于基准拍卖机制下的效用比例应小于ϵ(0≤ϵ≤1)。
Deep GSP
设计
基于上述的问题建模,论文了提出了基于深度学习的多目标优化的广告拍卖机制——Deep GSP。传统的GSP广告拍卖机制采用固定的排序分计算公式,即:
eCPM=pCTR⋅bidclick
而论文设计深度神经网络,将广告特征(出价、预估点击率、预估转化率等)、用户特征(性别、年龄等)、广告主特征(预算、营销目标等)作为模型输入,由模型预估输出排序分,可用如下公式表示这一过程:
ri=Rθ(bi,xi)
其中,bi表示广告i的出价,xi表示广告i除出价以外的其他特征,Rθ表示深度神经网络,ri表示广告i的新排序分。基于新排序分的广告拍卖机制如下所示:
- 分配规则R:广告按排序分从高到低进行排序,即:
r1≥r2≥⋯≥rN
前K个广告胜出;
- 计价规则P:胜出广告i的计价公式如下所示:
pi=Rθ−1(ri+1,xi)
其中,ri+1表示广告i下一个胜出广告的排序分,Rθ−1(⋅,xi)表示Rθ(⋅,xi)的反函数。这里可以和传统的GSP拍卖机制进行类比,传统GSP拍卖机制中,Rθ即b×pCTR,Rθ−1即pCTRr,pi可表示为:
pi=pCTRibi+1×pCTRi+1=pCTRiri+1=Rθ−1(ri+1,xi)
单点单调损失(Point-wise Monotonicity Loss)
为了满足单调分配,即深度神经网络输出的排序分随出价的变化满足单调性,论文在模型训练时,引入单点单调损失,如下所示:
Lmono=∑i=1Nmax(0,−∇bRθ(bi,xi))
其中,∇bRθ(bi,xi)表示深度神经网络输出——排序分在每个广告出价变量bi上的梯度,由单调分配的定义可知,其即要求∇bRθ(bi,xi)≥0,因此,将Lmono作为一个惩罚项加入目标函数中,在训练时,最小化该项,从而让∇bRθ(bi,xi)尽可能大于0,满足单调分配。
近似反函数(Approximate Inverse Operation)
在Deep GSP的定价规则中,需要基于Rθ(⋅,xi)的反函数Rθ−1(⋅,xi)计算定价,而Rθ−1(⋅,xi)的计算,直接方法是对深度神经网络各层权重矩阵求逆,或是基于排序分随出价单调变化的特性,采用二分查找法,通过多次前向传播,使得最终输入的出价,其输出的排序逼近ri+1,则输入的出价即定价pi。论文设计了更加巧妙的计算定价的方法,该方法将Rθ拆分为相乘的两部分,如下所示:
ri=Rθ(bi,xi)=bi×πθ(bi,xi)
其中,πθ是新的深度神经网络,其输入是出价bi及其他和出价无关的特征。基于新的深度神经网络,单点单调损失调整为以下公式:
Lmono=∑i=1Nmax(0,−(πθ(bi,xi)+bi∇bπθ(bi,xi)))
其中,πθ(bi,xi)+bi∇bπθ(bi,xi)是对bi×πθ(bi,xi)求bi的偏导,即通过最小化调整后的损失项,使得bi×πθ(bi,xi)仍满足单调分配。基于调整后的排序分计算方法,定价的计算方法如下所示:
pi=πθ(bi,xi)ri+1
这里也可以和传统的GSP拍卖机制进行类别,传统GSP拍卖机制中,πθ即pCTR,pi可表示为:
pi=pCTRibi+1×pCTRi+1=pCTRiri+1=πθ(bi,xi)ri+1
实现
Deep GSP中的模型会在广告拍卖场景下根据出价和后验数据(GMV)不断调整,比较类似强化学习中的探索机制,因此,论文采用强化学习进行模型的训练和推理。强化学习是机器通过与环境交互来实现目标的一种计算方法。机器和环境的一轮交互是指,机器在环境的一个状态下做一个动作决策,把这个动作作用到环境当中,这个环境发生相应的改变并且将相应的奖励反馈和下一轮状态传回机器。这种交互是迭代进行的,机器的**目标是最大化在多轮交互过程中获得的累积奖励的期望。**关于强化学习的相关概念这里不作介绍,建议有兴趣的同学可以阅读上海交通大学张伟楠老师撰写的《动手学强化学习》。
在Deep GSP机制下,强化学习涉及的状态、动作和奖励定义如下:
- 状态,广告i的状态si包括以下三部分信息:广告信息(出价、点击率、转化率等),广告主信息(预算、营销目标等),用户信息(性别、年龄、收入、购物偏好等),即(bi,xi);
- 动作,广告i的动作ai即由状态si输入排序分模型后输出的排序分ri;
- 奖励,获取排序分后,按照Deep GSP机制进行广告位拍卖,胜出的广告被展现后收集反馈数据、评估多个广告效果指标,奖励包括两部分:一是多个广告效果指标的线性组合,越大越好,二是平滑切换约束中广告主在新拍卖机制下的效用负向波动,越小越好,因此奖励可表示为:
rei=F(b;M)−η×max(0,(1−ϵ)×uˉi(M0)−ui(M))
其中F(b;M)=∑jwj×fj。
强化学习的优化目标就是通过训练一个策略函数Rθ∗,使得其获取的奖励最大,从而实现Deep GSP机制下的广告效果指标多目标优化,Rθ∗可表示为:
Rθ∗=argmaxRθEb∼D[rei∣Rθ]
如何实现强化学习的优化目标,论文这里使用了基于Actor-Critic算法的DDPG(Deep Deterministic Policy Gradient,深度确定性策略梯度)算法,这里不展开介绍Actor-Critic算法和相关的策略梯度算法、价值函数、策略函数等,直接摘录《动手学强化学习》中DDPG算法的流程,如下:
- 随机噪声可以用N来表示,用随机的网络参数w和θ分别初始化Critic网络Qw(s,a)和Actor网络Rθ(s)
- 复制相同的参数w−←w和θ−←θ,分别初始化目标网络Qw−和Rθ−
- 初始化经验回访池D
- for 序列e=1→E do:
- 初始化随机过程N用于动作探索
- 获取环境初始状态s1
- for 时间步t=1→T do:
- 根据当前策略和噪声选择动作at=Rθ(st)+N
- 执行动作at,获得奖励ret,环境状态变为st+1
- 将(st,at,ret,st+1)存储进回放池D
- 从D中采样N个元组{(si,ai,rei,si+1)}i=1,...,N
- 对每个元组,用目标网络计算yi=rei+γQw−(si+1,Rθ−(si+1))
- 最小化目标损失L(Qw)=N1∑i=1N(yi−Qw(si,ai))2,以此更新当前Critic网络
- 计算采样的策略梯度,以此更新当前Actor网络:∇θJ≈N1∑i=1N∇θRθ(si)∇aQw(si,a)∣a=Rθ(si)
- 更新目标网络:w−←τw+(1−τ)w−,θ−←τθ+(1−τ)θ−
- end for
- end for
论文中提到,针对广告拍卖场景的特点,对DDPG算法流程进行调整。首先,每个广告请求相对独立,只需要一次动作决策(排序分计算),并不需要多次动作决策,yi只依赖于当前广告请求后产生的奖励,并不依赖后续广告请求产生的奖励,所以yi可直接表示为:
yi=rei
其计算不再依赖Critic网络的目标网络,因此可以基于历史广告日志数据预训练Critic网络。
Critic网络的损失函数如下:
L(Qθ)=N1∑i(yi−Qθ(si,ai))2
即尽可能地减少Critic网络预估价值和实际价值之间的误差,使得Critic网络能够准确预估价值。
Actor网络的损失函数如下:
L(Rθ)=N1∑i(−Qθ(si,Rθ(si))+γ×Lmono)
即尽可能地最大化价值(即最大化多个广告效果指标的线性组合、最小化新拍卖机制下的效用负向波动),最小化单点单调损失Lmono(即满足单调分配)。
论文用图2比较形象地描述了DDPG算法在Deep GSP广告拍卖机制下的流程,其中,红色箭头表示前向传播,蓝色箭头表示反向传播。前向传播链路中,用户侧发起广告请求,广告平台召回候选广告集,对于每个候选广告,使用Actor网络,输入广告特征,输出πθ(bi,xi),和出价bi相乘得到排序分ri,基于排序分ri进行分配和计价,最后胜出的广告向用户展示,用户可能点击广告并发生进一步的转化行为,另外,前向传播链路中,对于每个候选广告,还使用Critic网络,输入广告特征和Actor网络输出的πθ(bi,xi),输出Qi。反向传播链路中,收集用户行为反馈,计算多个广告效果指标,并进而计算奖励rei,基于Qi和rei之间的差值,计算Critic网络的损失函数值和梯度,并更新Critic网络的参数,再进而更新Actor网络的参数。

实验
指标
对于实验评估的指标,首先论文使用了多个广告效果指标用于衡量Deep GSP在多目标优化上的效果:
- 千次展现广告收入(Revenue Per Mille,RPM),主要用于衡量广告平台的收入状况:
RPM=∑impression∑click×PPC×1000
- 点击率(Click-Through Rate,CTR),主要用于衡量广告是否符合用户兴趣,不影响用户体验:
CTR=∑impression∑click
- 加购率(Add-to-Cart Rate,ACR):
ACR=∑impression∑add-to-cart
- 转化率(Conversion Rate,CVR):
CVR=∑impression∑order
- 千次展现GMV,GMV Per Mille,GPM,主要用于衡量广告主(即商家)的收入状况:
GPM=∑impression∑merchandise volume×1000
其次,论文还评估了其他指标:
- 单调分配指标Tm,使用Spearman相关系数衡量模型输出是否随出价单调变化:
Tm=n1∑ρrankbids,rankoutputs
其中n表示测试数据集的大小,Tm取值范围为[-1,1],越靠近1,单调性越好;
- 计价错误率(Payment Error Rate,PER),因为计价采用近似反函数计算,所以用计价错误率衡量近似值和真实值(采用二分查找法计算)的差异:
PER=pi∗pi
其中,pi是近似计价,pi∗是真实值,PER越靠近1,错误率越低;
基线
论文使用了两种基线,用于和Deep GSP对比:
ri(bi)=bi×pCTRiσ
其中,σ用于调节出价和点击率的权重,若调大,则点击率权重较高,侧重用户体验,若调小,则出价权重较高,侧重平台收入;
ri(bi)=λ1×bi×pCTRi+oi
其中,oi可引入其他广告效果指标,例如:
oi=λ2×pCTRi+λ3×pCVRi
定价规则和GSP相同。
结果
论文首先使用淘宝电商广告的历史日志数据进行离线实验。在多目标优化设计上,先只考虑两种广告效果指标的线性组合,Deep GSP的F(b;M)采用λ×RPM+(1−λ)×X的形式,uGSP的分配规则采用λ×pCTR×bid+(1−λ)×pX的形式,其中,X从{CTR,ACR,CVR,GPM}中选择。
评估在多目标优化上的效果,论文采用帕累托曲线,如图3所示,从中可以看出,绿色所表示的Deep GSP均在每幅图的右上角,说明Deep GSP相比GSP和uGSP能更好的兼顾双目标,在双目标上均能取得较好的效果。
论文作者将Deep GSP应用在淘宝电商广告平台中进行分桶实验,采用单独分桶用于强化学习中的探索,并且每隔15分钟更新一次模型,另外采用另外6个分桶用于评估不同F(b;M)形式的效果:
- 分桶1:RPM;
- 分桶2:0.5×RPM+0.5×CTR;
- 分桶3:0.5×RPM+0.5×ACR;
- 分桶4:0.5×RPM+0.5×CVR;
- 分桶5:0.5×RPM+0.5×GPM;
- 分桶6:0.6×RPM+0.1×CTR+0.1×ACR+0.1×CVR+0.1×GPM。
各分桶在单调分配、计价错误率和激励兼容的效果如图4所示,值均接近1,说明Deep GSP在单调分配、计价错误率和激励兼容上均能取得较好的效果。
各分桶的广告效果指标相对基线的提升如图5所示,说明Deep GSP在保持平台收入(RPM)的同时,在用户体验(CTR)、广告主收入(GPM)上均有较大的提升,从而通过多目标优化实现平台、用户和广告主多方共赢。

参考文献