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(winx,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(winx,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(winx,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 bj1胜出的次数, 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 njnjdj
对于出价为 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<bxnjnjdj,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)=1bj<bxnjnjdj

竞价策略优化

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

和搜索广告不同的是,RTB是针对每次的展示竞价,而不是针对搜索关键词出价,因此RTB对广告主(或者DSP)来说,需要更实时且精准的预估.
RTB竞价策略通常包括两个部分:Utility Estimation和Cost Estimation。Utility Estimation一般指赢得这次展示的期望收益,

以上是关于RTB竞价策略学习的主要内容,如果未能解决你的问题,请参考以下文章

RTB竞价流控-budget pacing

RTB竞价流控-budget pacing

RTB 竞价介绍

实时竞价(RTB) 介绍(基础篇)

以OpenResty搭建RTB竞价引擎接入层

大数据营销名词解释:RTB,DSP,SSP,Ad Exchange