RTB竞价策略学习

RTB竞价策略学习

背景

近一年的工作基本是围绕着广告ctr/cvr模型优化展开的,但是对竞价广告整体框架还是缺乏了解,最近准备学习一下RTB相关的内容,笔记主要围绕着Display Advertising with Real-Time Bidding (RTB) and Behavioural Targeting 这篇文章学习

Bid Landscape Forecasting

在RTB中,作为广告主(或者DSP方)而言,关键问题其实是2个,一个是是否应该出价,第二个是应该出多少价,对于第一个问题,一般可以根据广告素材的预估ctr/cvr等判断预期收益决定,对于第二个问题则比较复杂一点;因为在RTB中,只有竞价成功了才能知道真实的计费是多少(对于一价而言就是bid,对于二价而言则需要看其他的报价),由于在每次报价之前不知道其他的报价,因此需要根据历史的一些统计经验值或者模型来预估本次出价,这个就是bid landscape forcasting.

  1. 了解几个基本的概念:

winning probability: 给定出价 b_x 和广告特征 x 单次请求赢得展示的胜率 P(win|x,b_x)

假设我们已经知道市场上出价z的分布 P_z(z) ,那么胜率可以描述为:

2. 几种常见的bid landscape forecasting

  • Tree-based log-normal model

这种方法来自Yahoo的一篇文章Bid Landscape Forecasting in Online Ad Exchange Marketplace,方法是对于adset级别的广告素材,先将历史统计的竞价信息按照特征树的方式先做一个树路径划分,每个树的路径的叶子节点值是match这个特征路径的bid,文章对这种树结构做了一个优化:对于不存在的节点将以*补充,如下图所示:

特征树划分好之后,使用GBDT去拟合历史报价,从而学习到每条路径的预估bid值,当一个新的request来的时候,则可以根据match到路径的预估值和历史报价进行本次报价预估均值和标准差。在获取到每个adset级别的均值 E[s] 和标准差 std[s] 之后,文章假设每个adset的bid分布是对数正态分布:

可以求解到

对于campaign级别的竞价,paper假设一个campaign的bid是这个campaign下面每个adset的混合分布:

其中

  • censored linear regression

线性拟合方法就比较简单,对于广告素材 x ,使用一个参数 \beta 来拟合出价bid: \hat{z} = \beta x , Pre- dicting winning price in real time bidding with censored data 这篇paper用下面的似然函数来建模:

本质上是对于win的事件,让 \beta x 尽量去拟合bid,对于lose的事件,让 \beta x 尽量出价比bid高点

  • survival model

survival model是一种基于统计的预估出价(二价)分布模型,实现步骤如下

  1. 将所有出价历史按照bid从小到大排序成 <b_i,w_i,z_i>_{i=1...N} ,其中 b_i 是第i次的出价, w_i 表示是否赢得此次出价, z_i 表示本次胜出的价格
  2. 将上述的数据按照bid从小到大转换成 <b_j,d_j,n_i>_{j=1...M} 形式,其中dj表示胜出价为 b_j-1 胜出的次数, n_j 表示出价为 b_j-1 不能胜出的次数,以下面示例图为例,当计算 b_j =3的时候,那么 d_j =1(wining_prirce为 b_j-1 的胜出次数), n_j 为4(出价为 b_j-1 时候失败的次数)。本质上计算的是当bid增加一块钱(假设单位是元)胜出的概率为: \frac{d_j}{n_j} ,对应的lose概率为 \frac{n_j-d_j}{n_j}
  3. 对于出价为b_x,loss的概率为 l(b_x) = \prod_{b_j<b_x}\frac{n_j-d_j}{n_j} ,win的概率为 w(b_x) =1- \prod_{b_j<b_x}\frac{n_j-d_j}{n_j}
survival model示例

竞价策略优化

竞价策略主要针对广告需求方,根据每次请求的context(广告素材、用户行为等)判断需不需要出价以及出多少价,主要流程可以用下图描述:

和搜索广告不同的是,RTB是针对每次的展示竞价,而不是针对搜索关键词出价,因此RTB对广告主(或者DSP)来说,需要更实时且精准的预估.

RTB竞价策略通常包括两个部分:Utility Estimation和Cost Estimation。Utility Estimation一般指赢得这次展示的期望收益,比如点击率/转换率等;Cost Estimation则指的是赢得此次竞价需要的成本,可以用下图描述:

单广告计划bid optimisation

  1. 了解几个概念
  • 给定市场出价概率密度分布Pz(z)和出价b,对应的胜率为 w(b)=\int_0^bp_z(z)dz
  • 广告的预期回报为 u(r) ,u(r)依赖具体的广告策略,如果广告希望回报是点击数,那么 u_{clk}(r)=r ;如果广告希望回报是利润,每次点击的收益是v,那么 u_{profit}(r,z)=vr-z
  • cost(如果胜出了,需要花费的成本):
  • 对于一价广告, c(b)=b
  • 对于二价广告, c(b)=\frac{\int_0^bzp_z(z)dz}{\int_0^bp_z(z)}
  • T: 广告计划的规则和生命周期决定的拍卖量
  • B:广告计划的预算budget

2. Truth-telling bidding

true-telling bidding是只考虑竞价回报,而不考虑预算的场景,期望收益为

U_{profit}(b(.)) = T\int_r\int_{z=0}^{b(r)}u_{profit}(r,z)p_z(z)dzp_r(r)dr = T\int_r\int_{z=0}^{b(r)}(vr-z)p_z(z)dzp_r(r)dr (1)

这个相当于是Lagrange无约束优化问题,直接对出价b(.)求导

(1)式对 b(.) 求导得到: (vr-b(r))*p_z(b(r))*p_r(r)=0 由此得到出价 b_r = vr

Truth-telling bidding仅适用于不限budget以及不限拍卖量的情况

3. Linear Bidding

线性出价则简单的多,基本公式是

b_{lin} = \phi vr

其中参数 \phi 是根据训练数据训练出来的值

4. 预算约束下的bidding

在拍卖量T和预算B受约束的情况下,优化目标变成:

max_{b()} T\int_ru(r)w(b(r))p_r(r)dr (2)

st: T\int_rc(b(r))w(b(r))p_r(r)dr=B

显然,这是一个等式约束条件下lagrange优化问题,自然的,引入lagrange算子 \lambda

l(b(r),\lambda) = T\int_ru(r)w(b(r))p_r(r)dr - \lambda (T\int_rc(b(r))w(b(r))p_r(r)dr-B)

l(b(r),\lambda) = T(\int_ru(r)w(b(r))p_r(r)dr - \lambda (\int_rc(b(r))w(b(r))p_r(r)dr)+\frac{B}{T}\lambda)

等价于优化

\int_ru(r)w(b(r))p_r(r)dr - \lambda (\int_rc(b(r))w(b(r))p_r(r)dr)+\frac{B}{T}\lambda (3)

求解过程:

令b(r)求导值为0可得:

 \lambda w(b(r))\frac{\partial c(b(r)}{\partial b(r)} = (u(r)-\lambda c(b(r)))\frac{\partial(w(b(r)))}{\partial b(r)} (4)

令对 \lambda 求导值为0可得:

T\int_rc(b(r))w(b(r))p_r(r)dr=B(5)


4.1 对于一价场景

c(b(r))=b(r)

假设初始z服从 p_z(z)=\frac{l}{(l+z)^2} 这一分布, \frac{l}{(l+z)^2}对应的原函数为-\frac{l}{l+z}

同时假设 p_z(z) 服从均匀分布

w(b(r))=\int_0^{b_r}p_z(z)dz=\frac{b(r)}{l+b(r)}

带入4式和5式:

 \lambda \frac{b(r)}{l+b(r)} = (u(r)-\lambda b(r))\frac{l}{(l+b(r))^2}

T\int_0^1b(r)\frac{b(r)}{b(r)+l})dr=B

由此求得:

 b_{orthb}=\sqrt{\frac{u(r)l}{\lambda}+l^2}-l

同理,如果 p_zz 服从 \frac{1}{l} 的分布,可最终得到 b(r) = r\sqrt{\frac{3Bl}{T}}

4.2 对于二价场景

c(b(r))=\frac{\int_0^{b(r)}zp_z(z)dz}{\int_0^bp_z(z)}

和上面相似的求解方法可以得到:

b_{ortb-lin}(r)=\frac{u(r)}{\lambda}

如果 p_zz 服从 \frac{1}{l} 的分布,同时假设 p_z(z) 服从均匀分布

类似的可以求解:

b(r) = 2r^3\sqrt{\frac{Bl^2}{T}}

多广告计划bid optimisation (待续)

编辑于 2019-12-21

文章被以下专栏收录