论文阅读 (010): Bid-aware Gradient Descent for Unbiased Learning with Censored Data.

941 阅读9分钟

阅读论文:2016 Bid-aware Gradient Descent for Unbiased Learning with Censored Data in Display Advertising

本文工作和2014 Optimal Real-Time Bidding for Display Advertising工作高度相关,建议可以先阅读2014这篇论文再阅读2016这篇论文。2014这篇论文笔记也补充上了,见:论文阅读 (011)

背景

点击率估计、出价优化等预测是在竞价前阶段使用完整数量的出价进行操作,但是在训练数据是在竞价结束后收集的,因此会导致训练数据和在线测试数据分布不一致。针对上述问题,文章有以下几点工作

  1. 使用Survival Models求解竞价获胜的概率(用于将有偏的训练数据重构到整体分布上)
  2. 在1工作的基础上,对CTR估计和出价优化进行修正

训练数据是有偏的

在竞价过程中,只有一个广告主胜出,因此只有这个广告主的请求获取了反馈,包括:是否点击、是否转化、market price值。这导致从ADX获取的数据(训练数据)和出价请求时的数据(测试数据)分布不一致,如下图所示

竞价过程等同于一个动态的数据过滤器,随bid value而不同。由于竞价失败的请求无法得到曝光,不能出现在模型依赖的训练数据中,整个训练数据相对于full-volume data是有偏的。

竞拍获胜概率

在竞价过程中,定义如下概念

  • x:请求的特征(包括:用户特征、广告特征)
  • bxb_x:对请求的出价
  • y:用户反馈,在竞价胜出后,用户是否点击或是否产生转化
  • z:market price:竞价后收取价格,文中定义比出价低
  • p(winx,bx)p(win| x, b_x):在出价为bxb_x时胜出概率
  • qx(x)q_x(x):曝光数据分布
  • px(x)p_x(x):竞价数据分布

因此曝光数据(x,y,z){(x, y, z)}存在以下的关系,式子表示了训练数据q_x(x)和竞价数据数据之间的偏移。我们需要在训练数据上进行训练,在竞价数据上测试,因此解两个分布之间的偏移,即P(winx,bx)auction selection \underbrace{P\left(\operatorname{win} \mid \boldsymbol{x}, b_{\boldsymbol{x}}\right)}_{\text {auction selection }}

qx(x)impression =P(winx,bx)auction selection px(x)bid request \underbrace{q_{x}(\boldsymbol{x})}_{\text {impression }}=\underbrace{P\left(\operatorname{win} \mid \boldsymbol{x}, b_{\boldsymbol{x}}\right)}_{\text {auction selection }} \cdot \underbrace{p_{x}(\boldsymbol{x})}_{\text {bid request }}

文中使用Survial Model来求解p(winx,bx)p(win|x, b_x)pzx(z)p_{z}^{\boldsymbol{x}}(z)表示market price为z时的获胜概率,拍卖获胜概率是market price z低于出价bxb_x时的概率:

w(bx)P(winx,bx)=0bxpzx(z)dzw\left(b_{\boldsymbol{x}}\right) \equiv P\left(\operatorname{win} \mid \boldsymbol{x}, b_{\boldsymbol{x}}\right)=\int_{0}^{b_{\boldsymbol{x}}} p_{z}^{\boldsymbol{x}}(z) d z

为了对问题进行简化,假设市场价格分布是在广告主粒度而不是曝光粒度(对广告主求一个w(bx)w\left(b_{\boldsymbol{x}}\right)),因此对于一个广告主估计相应的pz(z)p_{z}(z),从而得到w(bx)w\left(b_{\boldsymbol{x}}\right)

假设没有数据丢失(data censorship)问题,即一个广告agent在所有竞价中胜出,并知道market price,从而可以计算wo(bx)w_o\left(b_{\boldsymbol{x}}\right),计算方式如下

wo(bx)=(x,y,z)Dδ(z<bx)Dw_{o}\left(b_{\boldsymbol{x}}\right)=\frac{\sum_{\left(\boldsymbol{x}^{\prime}, y, z\right) \in D} \delta\left(z<b_{\boldsymbol{x}}\right)}{|D|}

其中当z<bxz<b_{\boldsymbol{x}}成立时δ(z<bx)=1\delta\left(z<b_{\boldsymbol{x}}\right)=1,否则为0。

实际问题就是广告主如果竞价没胜出,就无法获取market price

在竞价过程中,设想一个广告主参与了N次的竞价,记作N个元组bi,wi,zii=1N\left\langle b_{i}, w_{i}, z_{i}\right\rangle_{i=1 \ldots N},其中bib_i表示出价大小,wiw_i表示是否赢得竞价,ziz_i表示为market price。

对日志中上述格式数据进行转化,按照出价大小进行排序,bj,dj,njj=1M\left\langle b_{j}, d_{j}, n_{j}\right\rangle_{j=1 \ldots M},即bi<bj+1b_i<b_{j+1}

  • djd_j表示market price为bj1b_j-1赢得竞价的次数
  • njn_j表示为出价为bj1b_j-1未赢得竞价的次数,包括
    • market price不低于bj1b_j-1时竞标获胜的数目
    • bid price 不低于bj1b_j-1时竞标失败的数目。

那么在竞价为bxb_x时,输掉广告拍卖的概率为(使用survival models求解

l(bx)=bj<bxnjdjnjl\left(b_{\boldsymbol{x}}\right)=\prod_{b_{j}<b_{\boldsymbol{x}}} \frac{n_{j}-d_{j}}{n_{j}}

因此在竞价为bxb_x时,赢得广告拍卖的概率为

w(bx)=1bj<bxnjdjnjw\left(b_{\boldsymbol{x}}\right)=1 - \prod_{b_{j}<b_{\boldsymbol{x}}} \frac{n_{j}-d_{j}}{n_{j}}

bi,wi,zii=1N\left\langle b_{i}, w_{i}, z_{i}\right\rangle_{i=1 \ldots N}转化为bj,dj,njj=1M\left\langle b_{j}, d_{j}, n_{j}\right\rangle_{j=1 \ldots M},并计算w(bx)w\left(b_{\boldsymbol{x}}\right)的例子如下

可以看到wo(bx)w_{o}\left(b_{\boldsymbol{x}}\right)w(bx)w\left(b_{\boldsymbol{x}}\right)值更大,即训练数据相对测试数据右移。

CTR估计

给定训练数据D=(x,y,z)D={(x, y, z)},其中x服从训练数据分布qx(x)q_x(x),一个无偏的监督学习模型要求在测试数据分布px(x)p_x(x)上最小化损失函数。

在训练数据上,最小化损失函数

minθExpx(x)[L(y,fθ(x))]+λΦ(θ)\min _{\theta} \mathbb{E}_{\boldsymbol{x} \sim p_{x}(\boldsymbol{x})}\left[\mathcal{L}\left(y, f_{\boldsymbol{\theta}}(\boldsymbol{x})\right)\right]+\lambda \Phi(\boldsymbol{\theta})

其中fθ(x)f_{\boldsymbol{\theta}}(\boldsymbol{x})表示参数为θ\theta的模型预测结果,L(y,fθ(x))\mathcal{L}\left(y, f_{\boldsymbol{\theta}}(\boldsymbol{x})\right)为预测结果fθ(x)f_{\boldsymbol{\theta}}(\boldsymbol{x})和真实标签y计算得的损失函数,Φ(θ)\Phi(\boldsymbol{\theta})为参数正则项。

存在如下关系

Expx(x)[L(y,fθ(x))]=xpx(x)L(y,fθ(x))dx=xqx(x)L(y,fθ(x))w(bx)dx=Exqx(x)[L(y,fθ(x))w(bx)]=1D(x,y,z)DL(y,fθ(x))w(bx)=1D(x,y,z)DL(y,fθ(x))1bj<bxnjdjnj,\begin{aligned} & \mathbb{E}_{\boldsymbol{x} \sim p_{x}(\boldsymbol{x})}\left[\mathcal{L}\left(y, f_{\boldsymbol{\theta}}(\boldsymbol{x})\right)\right]=\int_{\boldsymbol{x}} p_{x}(\boldsymbol{x}) \mathcal{L}\left(y, f_{\boldsymbol{\theta}}(\boldsymbol{x})\right) d \boldsymbol{x} \\=& \int_{\boldsymbol{x}} q_{x}(\boldsymbol{x}) \frac{\mathcal{L}\left(y, f_{\boldsymbol{\theta}}(\boldsymbol{x})\right)}{w\left(b_{\boldsymbol{x}}\right)} d \boldsymbol{x}=\mathbb{E}_{\boldsymbol{x} \sim q_{x}(\boldsymbol{x})}\left[\frac{\mathcal{L}\left(y, f_{\boldsymbol{\theta}}(\boldsymbol{x})\right)}{w\left(b_{\boldsymbol{x}}\right)}\right] \\=& \frac{1}{|D|} \sum_{(\boldsymbol{x}, y, \boldsymbol{z}) \in D} \frac{\mathcal{L}\left(y, f_{\boldsymbol{\theta}}(\boldsymbol{x})\right)}{w\left(b_{\boldsymbol{x}}\right)}=\frac{1}{|D|} \sum_{(\boldsymbol{x}, y, z) \in D} \frac{\mathcal{L}\left(y, f_{\boldsymbol{\theta}}(\boldsymbol{x})\right)}{1-\prod_{b_{j}<b_{\boldsymbol{x}}} \frac{n_{j}-d_{j}}{n_{j}}}, \end{aligned}

即通过训练集分布x表示的loss转化为测试集分布x的loss表示。上述修正有如下的性质

  • 对于低胜出概率的出价bxb_x1bj<bxnidini1-\prod_{b_{j}<b_{x}} \frac{n_{i}-d_{i}}{\underline{n_{i}}}在训练集中估计的值较低,但是产生的相应的梯度较大,即来自竞价数据的梯度应该更高
  • 如果竞价极高,这导致100%的拍卖中标概率,则可以从真实数据分布中观察到此类数据。因此,此数据将不会进行梯度重加权(权重为1)

胜出概率和权重的调整如图所示

出价优化

已通过模型求得CTR f(x)f(x),出价价格b(f(x))b(f(x)),对于T次拍卖,在预算为B的情况下,出价优化的优化目标为。下述建模来自:Optimal real-time bidding for display advertising,其中预算约束处可取\leq,此处取==也可。

argmaxb()Txf(x)w(b(f(x)))px(x)dx\underset{b()}{\arg \max } T \int_{\boldsymbol{x}} f(\boldsymbol{x}) w(b(f(\boldsymbol{x}))) p_{x}(\boldsymbol{x}) d \boldsymbol{x}

subject to Txb(f(x))w(b(f(x)))px(x)dx=BT \int_{\boldsymbol{x}} b(f(\boldsymbol{x})) w(b(f(\boldsymbol{x}))) p_{x}(\boldsymbol{x}) d \boldsymbol{x}=B

w(b(f(x)))w(b(f(\boldsymbol{x})))表示给定bid request x\mathbf{x} \rightarrow estimated CTR ff \rightarrow bidding function bb \rightarrow winning probability ww 的一系列过程的结果。

实际的数据分布为qx(x)q_x(x),因此对上式进行变换,得到如下

argmaxb()Txf(x)w(b(f(x)))qx(x)w(bx)dx\underset{b()}{\arg \max } T \int_{\boldsymbol{x}} f(\boldsymbol{x}) w(b(f(\boldsymbol{x}))) \frac{q_{x}(\boldsymbol{x})}{w\left(b_{\boldsymbol{x}}\right)} d \boldsymbol{x}

subject to Txb(f(x))w(b(f(x)))qx(x)w(bx)dx=BT \int_{\boldsymbol{x}} b(f(\boldsymbol{x})) w(b(f(\boldsymbol{x}))) \frac{q_{x}(\boldsymbol{x})}{w\left(b_{\boldsymbol{x}}\right)} d \boldsymbol{x}=B

使用拉格朗日乘子法表示为无约束问题

L(b(f),λ)=xf(x)w(b(f(x)))qx(x)w(bx)dxλxb(f(x))w(b(f(x)))qx(x)w(bx)dx+λBT\begin{aligned} \mathcal{L}(b(f), \lambda)=& \int_{\boldsymbol{x}} f(\boldsymbol{x}) w(b(f(\boldsymbol{x}))) \frac{q_{x}(\boldsymbol{x})}{w\left(b_{\boldsymbol{x}}\right)} d \boldsymbol{x} \\ &-\lambda \int_{\boldsymbol{x}} b(f(\boldsymbol{x})) w(b(f(\boldsymbol{x}))) \frac{q_{x}(\boldsymbol{x})}{w\left(b_{\boldsymbol{x}}\right)} d \boldsymbol{x}+\frac{\lambda B}{T} \end{aligned}

由Euler-Lagrangian条件:

f(x)qx(x)w(bx)w(b(f(x)))b(f(x))λqx(x)w(bx)[w(b(f(x)))f(\boldsymbol{x}) \frac{q_{x}(\boldsymbol{x})}{w\left(b_{\boldsymbol{x}}\right)} \frac{\partial w(b(f(\boldsymbol{x})))}{\partial b(f(\boldsymbol{x}))}-\lambda \frac{q_{x}(\boldsymbol{x})}{w\left(b_{\boldsymbol{x}}\right)}[w(b(f(\boldsymbol{x}))) +b(f(x))w(b(f(x)))b(f(x))]=0\left.+b(f(\boldsymbol{x})) \frac{\partial w(b(f(\boldsymbol{x})))}{\partial b(f(\boldsymbol{x}))}\right]=0 λw(b(f(x)))=[f(x)λb(f(x))]w(b(f(x)))b(f(x)),\Rightarrow \lambda w(b(f(\boldsymbol{x})))=[f(\boldsymbol{x})-\lambda b(f(\boldsymbol{x}))] \frac{\partial w(b(f(\boldsymbol{x})))}{\partial b(f(\boldsymbol{x}))},

最优 bidding function bORTBf(x)b_{ORTB}f(x) 取决于 winning function w(b)w(b),例如取

w(b(f(x)))=b(f(x))c+b(f(x))w(b(f(\boldsymbol{x})))=\frac{b(f(\boldsymbol{x}))}{c+b(f(\boldsymbol{x}))}

其中c为常数,因此最优的出价为

bORTB(f(x))=cλf(x)+c2cb_{\mathrm{ORTB}}(f(\boldsymbol{x}))=\sqrt{\frac{c}{\lambda} f(\boldsymbol{x})+c^{2}}-c

上述存在未知数λ\lambda,拉格朗日乘子法表示的无约束问题对λ\lambda求导,由Euler-Lagrangian condition:

L(b(f(x)),λ)/λ=0xb(f(x),λ)w(b(f(x),λ))qx(x)w(bx)dx=BT1D(x,y,z)Db(f(x),λ)w(b(f(x),λ))w(bx)=BD\begin{aligned} \partial \mathcal{L}(b(f(\boldsymbol{x})), \lambda) / \partial \lambda &=0 \\ \Rightarrow \int_{\boldsymbol{x}} b(f(\boldsymbol{x}), \lambda) w(b(f(\boldsymbol{x}), \lambda)) \frac{q_{x}(\boldsymbol{x})}{w\left(b_{\boldsymbol{x}}\right)} d \boldsymbol{x} &=\frac{B}{T} \\ \Rightarrow \frac{1}{|D|} \sum_{(\boldsymbol{x}, y, \boldsymbol{z}) \in D} b(f(\boldsymbol{x}), \lambda) \frac{w(b(f(\boldsymbol{x}), \lambda))}{w\left(b_{\boldsymbol{x}}\right)} &=\frac{B}{|D|} \end{aligned}

即求解,下述问题为凸(没理解为啥为凸)

minλ(x,y,z)D12(b(f(x),λ)w(b(f(x),λ))1bj<bxnjdjnjBD)2\min _{\lambda} \sum_{(\boldsymbol{x}, y, z) \in D} \frac{1}{2}\left(\frac{b(f(\boldsymbol{x}), \lambda) w(b(f(\boldsymbol{x}), \lambda))}{1-\prod_{b_{j}<b_{\boldsymbol{x}}} \frac{n_{j}-d_{j}}{n_{j}}}-\frac{B}{|D|}\right)^{2}

使用BGD(Bid-aware Gradient Descent )进行更新

λλη11bj<bxnjdjnjinstance reweighting (b(f(x),λ)w(b(f(x),λ))1bj<bxnjdjnjBDgradient direction )(b(f(x),λ)λw(b(f(x),λ))+b(f(x),λ)w(b(f(x),λ))λbidding function gradient )\begin{aligned} \lambda \leftarrow & \lambda-\eta \overbrace{\frac{1}{1-\prod_{b_{j}<b_{\boldsymbol{x}}} \frac{n_{j}-d_{j}}{n_{j}}}}^{\text {instance reweighting }}(\overbrace{\frac{b(f(\boldsymbol{x}), \lambda) w(b(f(\boldsymbol{x}), \lambda))}{1-\prod_{b_{j}<b_{\boldsymbol{x}}} \frac{n_{j}-d_{j}}{n_{j}}}-\frac{B}{|D|}}^{\text {gradient direction }}) \\ &(\underbrace{\frac{\partial b(f(\boldsymbol{x}), \lambda)}{\partial \lambda} w(b(f(\boldsymbol{x}), \lambda))+b(f(\boldsymbol{x}), \lambda) \frac{\partial w(b(f(\boldsymbol{x}), \lambda))}{\partial \lambda}}_{\text {bidding function gradient }}) \end{aligned}

上述式子有如下性质

  • 对样本进行了重新加权,如CTR估计中的做法
  • 一个小的出价bxb_x会产生较大权重,即表示其在训练数据中的重要性
  • 训练实例的历史出价对梯度方向(gradient direction)也有影响
  • 比率B/DB/|D|将确保预算在新的出价中平均分配

观测历史出价和相应的梯度,有如下结论

  • 在两部分数据中,出价50和100,当历史出价较小时,梯度为正-->λ\lambda变大-->出价降低
  • 对于历史出价bxb_x低的数据实例,观测到该数据实例的可能性低,即在训练集中缺少类似的数据实例
  • 如果b(f(x),λ)b(f(x), \lambda)高,则最佳出价b(f(x),λ)b(f(x), \lambda)应该降低,以避免预算在全量数据中超支

实验

实验设置

离线实验数据有iPinYou和TukMob,在线实验在Yahoo上进行。实验的流程如下所示,执行真相出价策略( truth-telling bidding strategy)以模拟历史出价过程,并产生获胜(标记为但有偏差的)印象数据和丢失(未标记)的投标请求数据。

对CTR估计和出价优化的执行策略有

  • bias:CTR估计和出价优化在有偏的训练数据上直接训练
  • UOMP:使用wo(bx)w_{o}\left(b_{\boldsymbol{x}}\right)对数据进行修正,并使用文中提出的CTR估计和出价优化
  • KMMP:使用w(bx)w\left(b_{\boldsymbol{x}}\right)对数据进行修正,并使用文中提出的CTR估计和出价优化
  • FULL:使用很高的出价进行竞价,因此可以获得所有出价请求数据的标签,用这些数据进行CTR估计和出价优化

iPinYou数据集上Full和Win的数据分布如下

Winning Probability Estimation

在评估实际CTR估算和竞价优化任务之前,先分析比较模型在估算中标概率方面的表现。实验结果如下图所示,真实曲线是根据全部交易量预测数据中的所有市场价格观察结果构建的,在这里被视为真实值

从图中可以得出结论有

  • 出价为0时,胜出概率为0,并且随着出价增加,胜出概率增加,胜出概率收敛值为1
  • FULL曲线和Truth曲线最为接近,因为FULL用到了所有的点击数据并且是无偏的
  • UOMP高估了胜出概率,KMMP比UOMP更加接近Truth

实验比较了UOMP、KMMP、FULL和Truth的KL散度和Pearson相关系数,实验结果如下表所示,KMMP比UOMP效果更好,并且接近FULL。

CTR Estimation Results

实验比较了CTR估计的AUC值、Cross Entropy值,实验结果如下图所示

从图中可以得出结论有

  • 对数据进行校正的UOMP和KMMP比BIAS取得了更好的效果,表明了模型在消除训练数据实例偏差方面的有效性,这使得预测模型在预测数据上有更好的泛化
  • KMMP比UOMP相关更好,即文中提出的校正方法效果更好

文中比较了AUC和cross entropy在学习过程中的稳定性,如下图所示,结论有:UMOP和KMMP比BIAS更为稳定,FULL效果最好。

Bid Optimisation Results

按照设置预算比例,以执行离线出价优化,其中训练/测试预算设置为预算的1/64、1/32、1/16、1/8、1/4和1/2训练/测试数据集的总费用。无法将比例设置为1,因为在这种情况下,人们可能会简单地出价无穷大,以赢得数据中的所有展示次数和点击次数,而只花掉所有预算。

下表展示在iPinYou数据集上1/64和1/4出价下的结果;在TukMob数据集上的点击值和eCPC值

结论有

  • UMOP和KMMP相对BIAS效果更好,Table 6和Table 7中点击值更高,Table 7中eCPC值更低。

下图显示了相比Bias的点击、曝光的提升比例和eCPC的下降比例。相对Bias点击率和曝光率提升都是正数,eCPC的下降比例都是负数(除了FULL在1/2处为正)。

Online A/B Testing

实验在Yahoo上进行A/B测试,将流量和预算进行50%和50%的划分。控制组为使用梯度提升树以BIAS策略进行训练,对比组为使用相同模型以KMMP策略进行训练。实验结果如下图所示(省略文中两个表,图信息更多且与表中信息重叠了)

从图中可以得出结论有

  • KMMP获得了更多的点击次数和更少的曝光次数,提升了CTR值
  • 上述的提升来自于KMMP可以减少对与低流量的过高出价
  • CTR提升,eCPC降低,即可以获取更多的点击次数,并且降低了出价成本

讨论

理论推导清晰,实验丰富,十分厉害了。

阅读了和本文相关的工作,是本文出价模型的建模论文,可以参考:论文阅读 (011)

参考资料

  1. Aside: DSP的bidding算法
  2. Optimal real-time bidding for display advertising
  3. RTB广告出价策略