RTB竞价策略学习
Posted luchi007
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.
了解几个基本的概念:
winning probability: 给定出价
b
x
b_x
bx 和广告特征
x
x
x 单次请求赢得展示的胜率
P
(
w
i
n
∣
x
,
b
x
)
P(win|x,b_x)
P(win∣x,bx)
q
x
(
x
)
≡
P
(
w
i
n
∣
x
,
b
x
)
⋅
p
x
(
x
)
q_x(x) \\equiv P(win|x,b_x) \\cdot p_x(x)
qx(x)≡P(win∣x,bx)⋅px(x)
其中
q
x
(
x
)
q_x(x)
qx(x) 表示广告得到展示的概率,
p
x
(
x
)
p_x(x)
px(x) 表示发起竞价的概率,
P
(
w
i
n
∣
x
,
b
x
)
P(win|x,b_x)
P(win∣x,bx) 表示竞价的胜率
假设我们已经知道市场上出价z的分布
P
z
(
z
)
P_z(z)
Pz(z) ,那么胜率可以描述为:
w
(
b
x
)
≡
∫
o
b
x
p
z
(
z
)
d
z
w(b_x) \\equiv \\int_o^b_xp_z(z)dz
w(bx)≡∫obxpz(z)dz
几种常见的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: z ^ = β x \\hatz = \\beta x z^=βx , Pre- dicting winning price in real time bidding with censored data 这篇paper用下面的似然函数来建模:
本质上是对于win的事件,让 β x \\beta x βx 尽量去拟合bid,对于lose的事件,让 β x \\beta x βx 尽量出价比bid高点
survival model
survival model是一种基于统计的预估出价(二价)分布模型,实现步骤如下
将所有出价历史按照bid从小到大排序成
<
b
i
,
w
i
,
z
i
>
i
=
1...
N
<b_i,w_i,z_i>_i=1...N
<bi,wi,zi>i=1...N ,其中
b
i
b_i
bi 是第i次的出价,
w
i
w_i
wi表示是否赢得此次出价,
z
i
z_i
zi表示本次胜出的价格
将上述的数据按照bid从小到大转换成
<
b
j
,
d
j
,
n
i
>
j
=
1...
M
<b_j,d_j,n_i>_j=1...M
<bj,dj,ni>j=1...M 形式,其中dj表示胜出价为
b
j
−
1
b_j-1
bj−1胜出的次数,
n
j
n_j
nj表示出价为
b
j
b_j
bj-1不能胜出的次数,以下面示例图为例,当计算
b
j
b_j
bj=3的时候,那么
d
j
d_j
dj=1(wining_prirce为
b
j
b_j
bj-1的胜出次数),
n
j
n_j
nj为4(出价为
b
j
b_j
bj-1时候失败的次数)。本质上计算的是当bid增加一块钱(假设单位是元)胜出的概率为:
d
j
n
j
\\fracd_jn_j
njdj ,对应的lose概率为
n
j
−
d
j
n
j
\\fracn_j-d_jn_j
njnj−dj
对于出价为
b
x
b_x
bx,lose的概率为
l
(
b
x
)
=
∏
b
j
<
b
x
n
j
−
d
j
n
j
l(b_x) = \\prod_b_j<b_x\\fracn_j-d_jn_j
l(bx)=bj<bx∏njnj−dj,win的概率为
w
(
b
x
)
=
1
−
∏
b
j
<
b
x
n
j
−
d
j
n
j
w(b_x) =1- \\prod_b_j<b_x\\fracn_j-d_jn_j
w(bx)=1−bj<bx∏njnj−dj
竞价策略优化
竞价策略主要针对广告需求方,根据每次请求的context(广告素材、用户行为等)判断需不需要出价以及出多少价,主要流程可以用下图描述:
和搜索广告不同的是,RTB是针对每次的展示竞价,而不是针对搜索关键词出价,因此RTB对广告主(或者DSP)来说,需要更实时且精准的预估.
RTB竞价策略通常包括两个部分:Utility Estimation和Cost Estimation。Utility Estimation一般指赢得这次展示的期望收益,
以上是关于RTB竞价策略学习的主要内容,如果未能解决你的问题,请参考以下文章