预算控制

在做pacing相关研究时,阅读了一些工业界提出的预算控制方面的论文,通过流量层级的预算消费控制,以期精准化分配流量,提高平台和客户收益。
《Optimizing budget constrained spend in search advertising》
《Budget Pacing for Targeted Online Advertisements at LinkedIn》
《Smart Pacing for Effective Online Ad Campaign Optimization》
《Real time bid optimization with smooth budget delivery in online advertising》
论文侧重点主要在机制算法设计和实现结构,偏重思想,对于一些具体的策略应用和预测模型的细节,并没有过多阐述。

budget control本质上是对客户的消费重新分配。结合个人实际经验来看,大概的操作手段可以分为以下几类:

  • 概率控制展现
  • 对bid加权控制,给bid一些权重,灵活地展现(和动态调各种门槛类似)
  • 预算重新分配

在操作维度上主要分为:

  • 时间维度分类。 将时间分成若干部分分段,不同时间采取不同的策略。
  • 流量分类。同一类拥有相似的属性。对于不同的流量进行不同的策略。
  • 广告主分类。(圈客户, 进场)

Optimized Throttling算法

VPT

一种最原始的控制方法 Vanilla Probabilistic Throttling(VPT)
对于预算受设的广告假设:
B_a为广告主a当前剩下的预算
T_a为(假设预算不受限的情况下) 广告主能有的最多消费
那么对于接下来的每次pv, 对于这个广告主以 \frac{B_a}{T_a} 的速度(概率展现)消耗预算。

OPT

显然VPT算法只是一种等比消耗,是一种随机分配算法没有考虑到流量的特异性以及广告主的优化目标。论文于是提出了Optimized throttling(OPT)算法。

首先设定一个要优化的指标\theta,比如ctr,cvr,cpa
定义 F_{\theta,a}(\mu) 为预测的的所有\theta<=\mu广告消费总和占预算的比例
则为\theta>\mu的占比为R_{\theta,a}(\mu)=1- F_{\theta,a}(\mu)
只有当R_{\theta,a}(\mu)<= \frac{B_a}{T_a}时, 该广告才参与拍卖,先验的R_{\theta,a}(\mu)每次作为一个third input

Smart Pacing 算法

linkedln提出的预算控制算法
假设对于一个计划i,其每天的预算为d_i
将一天等分地划成T个时间窗口
对于某个时间窗口t:
s_{i,t}表示到t窗口之前该计划i的累积消费
f_{i,t}表示到t窗口之前该计划i的累积可展现机会(这个东西挺难先验预测的吧??大多是统计拟合)
a_{i,t}=\frac{f_{i,t}}{f_{i,T}}d_ia_{i,t}是该计划每时刻t应该花掉的钱。
对于每一次每个广告是否参与拍卖,采用概率展现。
这里的展现概率叫做pass through rate(PTR)。PTR的计算如下:

展现概率的计算方法

意思就是消费速度小于预计消费速度时,提高展现概率,大于预计消费速度时,降低展现概率。是控制上下限的参数

这里也可以采用动态调整bid的方法,来提高或削弱广告胜出的概率
b_i^*=b_i* f(s_{i,t}/d_i),其中f(x)=1-exp(x-1)
在实现上,论文有一些Details

  • 更新频率。PTR每分钟更新
  • 预测展现。利用ensemble的时间序列模型进行预测
  • 初始的参数值r设为0.1。更准确的做法是用实际消费导数来调整。两个原因没有采用:不一定可导,考虑更新频率。
  • Fast finish trick。对预测模型进行了微调,假设一天最后两个小时没有消费(理解为:机制容错设计)
  • 冷启动问题。对于所有计划设定了同样的PTR值。对投放计划来说,一个较低的ptr值可以给系统足够的时间来学习。未来会细分。(high demand-supply capmpain 设定更低的ptr值)

RTB smooth budget 算法

这篇论文相比前几篇论文,相当于提出了一个更抽象,更通用的pacing控制架构。

这里是一个optimize bid的算法。bid optimiaztion问题可以用下面的公式表达:

其中将一天分成了T个时间段,v_i表示impression i对于广告主的价值,x_i表示是否展现。c_i是需要支付给广告平台的cost,即通常所说的price(由于二价拍卖的原因,cost难以预测)

对于某个时间slot内,预算的消费被认为和展现量成正比,同时假设在特定时间slot t内,特定广告位,price可以看作恒定不变,因此,时间slot的划分,应保证在每个slot内,price的方差足够小
对于某个广告位,需要针对每个slot分配一个pacing rate。这个pacing rate就是参与拍卖的概率。
s(t)= 在这个时间片内的消费


imps(t)是该campaign在该时间段内的总展现次数(可以理解成pv)。reqs(t)是在满足广告主人群定向的广告请求,bids(t)表示参与竞价的次数。如果假设满足广告主人群定向的广告请求在所有广告请求中是一个均分分布,可以把reqs(t)看作一个常数。

令reqs(t+1)为预测的下一个时间slot广告请求,win_rate(t+1)为预测的下一个时间slot的获胜率,则有


其中除了s(t+1), 其他都是已知的或者可以模型预测到的。s(t+1)应该等于广告主在该时间段理想的消费。的具体指取决于具体的pacing算法。
对于均匀pacing(上文说到的比较简陋的VPT就是一种均匀pacing算法!):
L(t) 是第t个slot的时间长度。这很好理解,就是把剩余的预算按照时间占比等比例分配给每个slot。
显然,在绝大多数场景下,都不会使用uniform pacing,对于不同的时间slot应该区别处理。quality pacing基于历史记录中的点击或转化行为,刻画出每个时间slot的质量。根据算出来的质量,构造一个离散概率分布函数:

值得注意的是,如果, 那么在slot i内,广告主永远不会消费,那在slot i内永远不会有探索的可能性。所以论文提出,可以将广告主预算划分,使用一个混合uniform pacing和quality pacing的预算分配机制。

机制设计

下面是一些针对quality pacing算法的机制设计。
考虑广告主bid不变的情况下,


在特定slot内,所需要获得的广告请求可以由bid(t)和pacing_rate(t)计算得到。对于具体reqs(t)的数字,论文基于历史数据,对每个广告位,每个slot,构建了一个关于ctr(或者cvr,视具体需求而定)的分布。如下图所示:
横轴是ctr,纵轴是广告数量。可以根据这个分布设定广告过滤的threshold

考虑到线上的不确定性,以及这个是根据历史数据获得,具有一定的延时性,论文提出需要对thresold设定一个置信区间。实时计算了threshold的均值和方差。这块的计算逻辑我没太细看,应该是正常的mean和variance的加性更新方式

论文假设threshold服从高斯分布,因此threshold的下限和上限可以由算出的mean和variance得到。
d是统计用的天数,是超参数。这儿应该是为了引入衰减。当时,提供了95%的置信区间。因此当一个广告过来,如果他的预估ctr值低于threshold的下限,则会被过滤掉,不会提交给RTB。如果预估ctr值介于下限和上限之间,则以一定的概率参与拍卖,也就是上文说的pacing_rate。

\color{red}{这是个很好的借鉴思路,对于具有一定容错的参数,我们可以给定一个分布,而不是用一个确定的值。类似myerson刻画广告主的心理价值分布}

如果广告主是动态竞价:
因为bid是可变的,所以不需要像上面bid不变的情况下通过门槛调整,可以通过bid的变换来达到目的。
论文提出了pacing rate的两个门槛,\beta1,\beta2,将pacing_rate分成来三个区域。

  • critical region: \beta1<=pacing_rate<=\beta2
    在critical region内,出价直接按照u=ecpa*cvr出价。因为满足各项条件

  • safe region: pacing_rate<=\beta1
    在safe region内,论文统计了计费比,然后用u乘以计费比出价。
    这儿没太懂为乘以计费比的目的。仅仅是为了降低出价?

  • danger region:pacing_rate>=\beta2
    设计了一个溢价系数。 C是超参数,c^*是历史统计的price。这儿是为了防止虽然竞价频繁,但是bid不够高,无法获胜。

一些details

对于smooth_budget算法:论文提出一些实现上的details:

  1. 冷启动问题。无法预测cvr或ctr。在原始数据积累阶段,基于内容生成了website和user的推荐列表。若某本次请求在推荐列表,设置一个高的bid,否则以default bid参与拍卖。

  2. 过消费问题。设置以pacing rate展现,但如果某段时间pv急增,仍有可能会过消费。每slot检查,是否超过delta

总结来说,budget control算法除了宏观上的理论指导和方案设计,还需要考虑到各种可能性,注意容灾机制的设计,做好细节方面的精确度

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容