预算平滑技术在58商业的探索与实践

导语

本文主要介绍商业策略技术团队在预算平滑技术上的探索实践,首先介绍了主流的预算平滑技术,然后结合具体业务场景,分享基于pacing方法的预算平滑技术在58的实践应用和心得体会。

背景

按点击计费(cost per click)的在线广告是互联网平台变现的重要手段,当用户点击网站或APP里展示的广告时,平台就会收取广告主相应的费用。广义二价拍卖机制(generalized second-price auction mechanism)广泛应用于竞价类的在线广告中,广告主需要为广告设定一个出价(bid)以及每天的广告预算(budget),广告的出价会影响广告在页面里展示的排名和平均点击价格(acp),若当天的花费超过了每日的预算,广告就会从平台中下线,直到第二天恢复上线。

广告主通常都希望能将广告展示给更多的人,但受限于广告的预算,在平台的流量高峰时段内容易发生广告的预算被迅速消耗、广告过早的下线、广告主的投放体验差。针对广告预算被快速消耗的问题,业界流行的做法是通过pacing的方式,将预算的消耗合理平滑的分配到一天中的各个时间段。58平台上有大量预算非常有限的小微广告主,通过预算平滑技术延长广告的在线时长、降低广告主的转化成本十分必要。

本文主要介绍商业策略技术团队在预算平滑技术上的探索实践,包括以下几方面:

  • 主流的预算平滑技术简介

  • 58应用场景简介

  • Budget Pacing的算法原理

  • 系统设计

  • 上线效果

  • 总结和展望

主流的预算平滑技术简介

1、基于pacing的方法

在业界中主流的预算平滑技术是基于pacing的方法,大体可分为以下2类:

1) 调节广告出价(bid modification)

通过调节出价从而影响竞价成功的概率,从而达到控制预算消耗的目的。Mehta等人在论文[1]中提出了在每次广告竞价时,根据当前的预算消耗情况调节广告的出价的方法,原理公式如下:

这种方法在实践中存在2个难题:首先是在RTB(real-time bidding)类广告中,竞价环境不断在发生变化,并不是一个稳定的环境,通过调节bid难以精准的控制广告的预算消耗;其次,媒体方(SSP)通常都会设有一个底价(reserve price),当调节后的出价低于底价时、广告不被展示,影响策略的调节效果。

2) 调节广告曝光概率(probabilistic throttling)

论文[2]和[3]则基于调节广告曝光概率的方法,其原理是将广告预算以某种方式(如根据一天中的流量分布或转化的分布)分配至各个时间段,当某个时间段消耗的预算超过了计划值,策略就会降低广告的曝光量或减少广告的竞价次数,反之则增加。

2、基于强化学习的方法

使用强化学习(reinforcement learning)的技术解决RTB广告的出价策略已成为当前业界的研究热点。通过将预算作为广告竞价的一个重要约束引入到RL模型中,可以更加优雅的解决预算的消耗过快的问题,并达成广告主投放目标。相比基于pacing方法,基于强化学习的方法目前更多还处于研究阶段。

这方面的典型研究如下:

1) 2017年张伟楠团队在论文[4]提出将强化学习用于解决RTB领域的广告出价问题。论文使用MDP模型(Markov Decision Process)对RTB的广告竞价问题进行建模,通过动态规划(dynamic programming)的方式找到最优出价策略。文章在iPinYou RTB数据集上做了实验,和多个基线出价策略相比,该模型可以在相同广告消耗下获得更多的点击;模型还在Vlion DSP线上系统做了ab测,观察到在该模型的控制下,广告的预算消耗和点击分布都更加平滑。

2) 2018年阿里发表论文[5],提出了多智能体的强化学习(Multi-Agent Reinforcement Learning)来处理预算约束下的广告出价。常见的RL方法只能为单个广告主建立出价策略,该论文通过对广告主的聚类和MARL方法,可以为多个广告主确定最优出价策略。在离线实验中,相比单智能体的RL方法,该模型帮助广告主在有限预算的条件下获得了更多的订单量。

58应用场景简介

我们在58房产、招聘、黄页、二手车业务线上都落地了预算平滑策略。这4类业务有以下特点:

1)

以小微广告主居多、每日的预算极为有限,若没有预算控制策略广告每天在线时间会很短,例如有些广告每天的预算之内支持不到10次的点击,在线时长不到10分钟;

2) 产品区别大。黄页的在线广告属于竞价cpc类产品,房产属于定价cpc类产品;此外,这两类产品在广告的售卖方式、召回排序等方面的逻辑都不同;

3) 流量构成较为复杂,广告主在不同流量上的转化成本有一定的差异。首先,从平台角度,包含了PC、M、APP、小程序4种类型;然后,从场景角度,可以分为推荐、搜索、列表3类;其次,从分布角度看,流量在不同城市、一天里的不同时间段内分布差异大;

在具体实践时,为了缓解小微广告主集中消耗的问题,预算平滑策略需要能够快速、精准的控制广告的预算消耗情况;为了能够适应不同的商业产品,预算平滑策略需要具有良好的通用性;为了帮助广告主降低转化成本,预算平滑策略还需要能够帮助广告主优先将广告展示在低成本的流量上。

综合以上需求,我们在实践中采用了pacing方法,并核心参考了论文[2]中Linkin的做法,同时结合58的应用场景对算法做了改进。模型上线后在缓解广告预算快速消耗,延长广告在线时长,降低广告主转化成本上取得了较为显著的效果。下面对我们的方法做详细说明。

基于Pacing方法的预算平滑

基于Pacing方法的预算平滑,核心在于“计划“与”控制“,具体如下:
1) 预算分配,即制定一个合理的预算消耗计划。
例如可以将广告预算按一天24小时划分成24份,每小时的消耗不能超过对应的预算份额。一个合理的预算计划可以帮助广告主达成预算消耗目标、同时避免预算在某个时间段被集中消耗。
2) 预算控制,即按“计划”控制广告的消耗。
用户点击天然会滞后于广告的展现,偶然出现的流量突增等因素都会给预算控制带来了不小的挑战。
后文将从这2个方面展开,论述我们在58业务场景下的做法。

1、预算分配(budget allocation) 要解决广告预算快速消耗的问题,首先需要明确什么样的消耗方式(即预算分配,budget allocation)是合理的。这是一个开放性的问题,在不同的业务场景下往往有不同的答案,常见的做法是按一天中流量、或转化的分布情况进行分配,考虑到58是一个偏低频的应用,每天的转化分布波动较大而流量分布相对稳定,因此在实践中我们采用基于流量的分布对预算进行调节。

在实践中,各种内外部的因素都会影响模型的准确性,为了保证广告主的预算消耗率目标,我们会假定每天22点之后的流量为0,即需要在前22个小时内完成广告主的预算消耗目标,剩余的时间会放开budget pacing控制。

图1 广告请求量(归一化后)的随时间的累积分布图

2、预算控制

在初期,我们使用的是Linkin的做法,即使用固定调节速率对PTR值进行控制,后期我们根据上线效果,改为使用基于PID控制的方法。具体如下:
2.1、初版控制方法: 基于固定的调节速率

r

是公式中一个很重要的参数,表示每次的PTR的调节的步长,它是一个不随时间变化的值(因此我们称这个方法为“固定速率”的调节)。在实践中,我们通过数据分析和业务规则将流量划分为2类,每类设置一个调节参数 。这是因为前文提到58有较为复杂的流量构成,不同的流量上的广告的转化率有较大的区别,通过为不同的流量设置不同的调节步长,可以使广告优先展示在高转化率的流量上,帮助广告主降低转化成本。

此外,广告的预算通常是以天为单位设置的,每天凌晨自动重置广告的消耗数据,因此我们也会初始化广告的PTR值。为更好的帮助广告主缓解快速消耗问题,目前我们对所有广告都使用了较小的定值作为初始PTR值,在实践中发现某些广告的预算消耗率降低了,因此我们后续计划为每个广告设置不同的初始化PTR值。一个可行的做法是将广告期望的曝光量和可用曝光量的比值作为初始值,广告期望的曝光量是指将广告预算消耗完所需的最小曝光量。

1.1. 改进后的方法: 基于PID控制

PID调节器是一种线性调节器,是实际工业控制过程中应用最广泛、最成功的一种控制方法。PID控制的主要优点在于:原理简单,鲁棒性强,当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,应用PID控制技术最为快速有效。

PID调节器的离散形式的微分方程如下所示:

其中, cost 是广告的消耗, pv 是广告的曝光, ctr 是广告的点击率。我们使用统计的方法计算广告的点击率,对于新广告则使用具有相似投放需求的其它广告的平均点击率。

系统设计

在广告系统中,预算平滑功能的主要流程如图3所示,由4个模块组成。

  • 实时统计模块:使用实时处理框架Flink技术,通过消费消息队列Kafka里的广告实时展现和点击(计费)数据,统计每条广告在固定时间周期里的曝光量和预算消耗。

  • 预算分配模块:根据广告的预算计算当前时间段内的计划消耗(或计划曝光量)。

  • PID控制模块:实现PID控制逻辑,根据广告的计划值和实际值的偏差、输出广告的PTR值。

  • PTR过滤模块:为本次请求召回的每条广告生成一个[0,1]区间的随机数,若该随机数小于这条广告的PTR值,该广告在本次广告请求中不参与竞价,反之则参与。同时,在这个模块中还会集成AB test分流功能(基于广告的分流)和一些用于支持业务需求的功能(例如针对广告的黑白名单等)。

图3 预算平滑的主要流程

上线效果

通过线上ab测实验观察,基于PID控制的预算平滑策略取得了既定的业务目标:有效的缓解了广告预算快速消耗的问题、并显著增加了这些广告的在线时长。同时得益于在线时长的提高、广告受众多样性得到了提高,我们观察到广告主的转化成本有较为明显的降低。

基于PID控制的预算平滑策略上线后,我们随机挑选一个预算较充足的广告(图4)和一个预算非常有限的广告(图5),分别观察实际控制效果。

在图4中,蓝线(ptr)表示该广告一天中的ptr值的变化情况,黄线(target)代表该广告的计划累积曝光分布,红线(base)表示该广告在没有预算平滑策略的情况下的累积曝光分布,绿线(exp)表示该广告在预算平滑(基于PID)作用下的累积曝光分布。可以看出,在预算平滑的控制下,广告的在线时长由13.83个小时延长至19.75个小时,增加了43%,同时广告的预算消耗率持平、转化成本有较明显的降低,说明通过合理的预算分配能够有效的提高广告的在线时长。此外我们还看到通过PID控制,广告实际累积曝光和计划累积曝光分布基本吻合,说明了基于PID控制的策略有效。

图4 基于PID控制的预算平滑策略上线效果

如图5所示,该广告主每日预算仅能支持4次点击。当没有预算控制策略时,广告在线时间仅有7分钟(base),在上线预算平滑策略后,在线时间大幅增加至3小时(exp)。这里需要指出,对于预算非常少的广告,为了帮助广告主将预算向高转化率的流量上倾斜、降低转化成本,我们在实践中会把流量分为点击转化率高(part1)和低(part2)2类,并将策略应用在低转化率流量上。线上实验可以观察到,该广告主的在part1上的曝光占比超从基线路的12%提升至94%,同时转化成本显著降低。

图5 基于PID控制的预算平滑策略上线效果

总结和展望

我们在58多个业务线的(cpc类)在线广告产品中较为成功的落地了基于pacing原理的预算平滑策略,并在“延长广告在线时长,降低广告主转化成本”的目标上取得了一定的成绩。后续我们考虑将预算平滑和其它策略(如ocpc)相结合,通过强化学习的技术手段、智能化的帮助广告主完成广告投放,并实现广告主业务目标。

参考文献

1、Mehta A , Saberi A , Vazirani U V , et al. AdWords and Generalized On-line Matching[C]// 46th Annual IEEE Symposium on Foundations of Computer Science (FOCS 2005), 23-25 October 2005, Pittsburgh, PA, USA, Proceedings. IEEE, 2005.

2、Agarwal D, Ghosh S, Wei K, et al. Budget pacing for targeted online advertisements at linkedin[C]//Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining. 2014: 1613-1619.

3、Lee K C, Jalali A, Dasdan A. Real time bid optimization with smooth budget delivery in online advertising[C]//Proceedings of the Seventh International Workshop on Data Mining for Online Advertising. 2013: 1-9.

4、Cai H, Ren K, Zhang W, et al. Real-time bidding by reinforcement learning in display advertising[C]//Proceedings of the Tenth ACM International Conference on Web Search and Data Mining. 2017: 661-670.

5、Jin J, Song C, Li H, et al. Real-time bidding with multi-agent reinforcement learning in display advertising[C]//Proceedings of the 27th ACM International Conference on Information and Knowledge Management. 2018: 2193-2201.

6、Agarwal D, Chen D, Lin L, et al. Forecasting high-dimensional data[C]//Proceedings of the 2010 ACM SIGMOD International Conference on Management of data. 2010: 1003-1012.

作者简介

刘杨,商业产品技术部-策略技术团队算法资深开发工程师,主要负责58同城商业产品机制类策略(ocpc,预算控制),以及在推荐流量上的广告召回策略。

阅读推荐

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章