BitTiger.io
首发于BitTiger.io
计算广告训练与平滑思想(上)

计算广告训练与平滑思想(上)

简介

目前主流的互联网广告有CPT,CPC,CPM这几种计价方式,其中CPT是按时间计价,比如:在某一个广告位投放广告以投放天数计费,这种广告投放方式是比较简单的。而CPC和CPM这两种方式则不同,CPC是按照效果计价,也就是按照用户点击数进行计价,那么理所当然的,相同的曝光量下,广告的CTR与广告的点击单价乘积越高,广告的收益就越大。CPM是按照曝光次数计价,相同的曝光量下,广告的曝光单价越高广告的收益就越大。


注:互联网广告投放活动至少有两个主体,一是拥有广告位的媒体方,另一个是拥有投放预算的广告主,有一些广告系统还有类似于中介的第三方。本文是站在媒体方的角度,讨论如何在广告位资源一定的情况下,获得尽可能多的广告收益。所以,对广告主来说,本文的讨论的策略是不适用的。

而工业界最主流的广告形式是由媒体方来预估CTR,由广告主来对每一次点击出价的CPC模式。因为媒体方拥有全部的投放和点击数据,可以准确的评价各个广告的CTR,而广告主拥有通过广告而产生的用户消费,可以准确的评价每一次广告点击他所能获得的商业价值,从而能确定商业价值最大化的广告出价策略。在CPC模式下,双方都具有达成自己利益最大化的数据条件,所以双方都会对这样的合作模式感到满意。那么,从媒体的角度讲,应该如何使自己的收益最大化呢?

如何达到利益最大化
比如某一个APP有4个广告位,每个广告位可产生的曝光数都是不一样的,为了充分利用每一个广告位的价值,在不考虑个性化展示的情况下,媒体肯定希望把最赚钱的广告放在曝光数最多的广告位(基于的假设是:一个广告同时放在多个不同的广告位的效率会低于仅把它放在其中曝光量最大的广告位上,其余广告位放其他的广告)。
图1:某一个有四个广告位的广告系统展现规则。

评价一个广告的收益预期,通常使用ECPM。

公式:

其中pi,即:单次点击价格是由广告主设定的,那么ECPM计算的准确与否就直接取决于媒体对于广告CTR的预测是否准确。如果能够把每一个广告的ECPM都算准,那么接下来要做的事情就非常简单了,即:把ECPM最高的广告放在曝光量最大的广告位上,把ECPM次高的广告放在曝光量次高的广告位上,以此类推(如下面公式的含义)。所以,在非个性化展示(个性化展示在后面的文章做讨论)的情况下,计算广告媒体端的核心问题就转化为了如何把每一个广告的CTR预估准确。

因此,我们希望得到如下系统:

实际业务中,不能使收益最大化的因素是CTR通常估计不准,特别是对于一个刚加入广告系统的广告来说,没有任何先验知识,也缺少实验数据,很难对其CTR做一个合理的估计。接下来我们讨论一下该如何思考和解决这样的问题。

如何预测ECPM
首先,任何一个新广告加入到已有的广告系统中,都会破坏广告系统的平衡。如之前所说,新广告的ECPM通常是算不准的,如果把新广告的ECPM预测高了会影响广告系统的收入,如果把新广告的ECPM预测低了会导致新广告很难和其他广告竞争,从而再也没有机会被展现在广告位,比如:在刚才的图1的广告系统中,如果把广告5的ECPM预测为10元以下,那么它将无法出现在任何一个广告位上。

为了规避这两种问题的发生,一种可行的做法是为新广告开辟专有的训练位,也就是新的广告进入系统后,只会出现在一些特定的广告位,通过在这些训练位产生足够的曝光和点击数据后,对这些新的广告CTR进行预估,然后再让其加入稳定的广告系统中计算ECPM及分配广告位。比如:在图1的广告系统中,可以把位置4设定位训练位,一旦有新的广告进入广告系统,那么无论它的ECPM被预测为多少,它都将出现在位置4上,直到完成训练(训练完成的标志是广告被展示的次数达到预先设定的数量)。
但是这种方法有一个严重的弊端,就是需要单独开辟训练位,而这些训练位所产生的广告收益往往非常低,而且不是每一个广告环境都可以开辟出独立的训练位,一个极端的例子是只有一个广告位的情况,根本没有其他的位置可以专门用于训练。因此,为了保证系统的强适应性,最好的方式是不区分新广告和成熟广告,在很短的时间内给新广告一个靠谱的CTR预估,让其与训练完成的成熟广告具有可比性。

短时间内预测CTR?
于是,第二个问题随之而来,如何在短时间内给新广告做一个靠谱的CTR预估?能不能直接用短时间内的点击数据除以曝光数据得到CTR的预估呢?答案是不行。通常根据广告和媒体的不同,点击率CTR一般在0.1%到1%之间浮动,那么假如一个广告在1000次曝光中产生了3次点击,估计它的点击率是0.3%显然是有很大犯错的可能性,就好比抛硬币,为了使得实验预测的正面可能性尽可能接近真实,需要重复大量的试验,比如:10000次,才能保证足够的精确度。广告和抛硬币最大的不同在于,广告的曝光是需要成本的,不可能投入过多的曝光来做CTR预估,否则浪费大量的曝光资源。
CTR预测误差的影响
至此,我们遇到了第三个问题,即:在曝光数很少的情况下,如何尽可能降低CTR预测不准带来的负面影响。那我们就分析一下把CTR估计高和估计低分别有哪些负面影响。
如果把CTR估计的过高,那么ECPM也会被计算的偏高,所以这个广告就会出现在它原本无法占有的很好的广告位上,造成曝光数的浪费。但这种情况并不会持续很久,因为处于较好的广告位会让该广告短时间内积累更多的曝光,随着曝光数的增加对该广告的CTR估计会越来越准,直到之前预估的较高的CTR被慢慢修正趋近于其真实CTR。
那么,如果把CTR估计的过低会有什么负面影响呢?很容易推断该广告的ECPM会偏低,它会被放在更差的位置上,导致起积累曝光数据的速度变慢,甚至无法出现在任何广告位上。因为广告是具有时效性的,在起步阶段对CTR较低的预估很可能会导致该条广告永久的沉溺,无法创造任何价值。综上所述,结论一目了然,在CTR无法准确预估的情况下,把CTR估计高的负面影响远小于把CTR估计低产生的负面影响。
解决方案
问题的分析先告一段落,我们来讨论下如何解决这些问题。接着刚才的问题,既然把CTR估计的高一些负面影响更小,那么我们就需要在训练初期给预估的CTR做一定的加成,以降低把CTR预估偏低的可能性。简单的加一个因子或者乘以一个放大因子不合理的地方在于对所有广告的CTR预估都一视同仁,但是每个广告获得的曝光都不同,其真实CTR也不同,用一个通用的放大方法一定不是最优解。
让我们换一个角度,把广告在某一次曝光中是否被点击看作一个伯努利实验,我们重复进行很多次这样的试验可以得到一个对CTR的估计,同样的我们也可以得到它在某一个置信水平上的置信区间,如果我们希望把CTR估计的尽量大一些,我们为什么不能用它的置信区间上界作为它的估计值呢?

表1:三个点击率相差极大的新广告,经过置信区间转化后的CTR差距表

我们假定有三个新广告,他们的真实转化率都是0.1%,但广告1运气很好,曝光10次,产生了1个点击;广告2表现正常,100次曝光产生了1个点击;广告3运气很差,曝光了1000次产生了一个点击,数据如上表。可以看出,原本预测CTR差距有100倍的广告1和广告3,在99.7%置信水平下置信区间上界的转化后,CTR的差距缩小到10倍左右。因此,使用置信区间上界代替CTR可以降低新广告间的CTR差距,有助于让所有的广告公平的完成训练。


有了这个思路后,剩下的就只需要考虑怎么确定置信水平了。因为置信区间上界=CTR+n*标准差,当广告所获得的曝光数越小时,CTR可能估计的越不准,也就有可能估计值比真实值小很多,为了使估计值不至于太小,需要让n更大一些。故当曝光数特别少时,不妨取置信度为99.7%,也就是n=3,当曝光数特别大时,因为预估CTR会趋近于真实CTR,也就不需要用置信区间上界代替CTR的估计值了,可以令n趋近于0。至此,我们只需要设计一个函数,让其在曝光趋于0时,值趋于3,在曝光趋于无穷大时,值趋于0,然后用该函数的值(因变量)代替n即可。但用曝光数来计算n是最合理的吗?


显然不是,因为不同的广告训练需要的曝光数是不一样的。还是用抛硬币举例,可能试验100次就能大致测出其正面出现的概率,不会有多少偏差,但对一个点击率千分之几的广告来说,试验1000次可能都不会有一个点击,无法估计其CTR。所以CTR越高的广告训练所需的曝光数越少。

表2:不同预测CTR的广告,预测准确度的差异。


根据上表可以看出,在同样置信区间下,对于预估CTR较高的广告1来说,它的标准差只有其预测CTR的3倍,而对于广告3来说,其标准差是其CTR的31倍,这充分说明了CTR绝对值越小的广告,越难预测准。因此为了得到准确的预测CTR,训练需要的曝光数也就越多。
既然每个广告训练所需的曝光数不同,那我们就用广告训练完成的百分比代替曝光数,来计算n的大小。也就是说训练完成百分比越低的广告,n越大,从而得到一个更大的CTR估计值;对于训练接近完成的广告来说,因为其在训练中积累了足够的数据,CTR预测的相对较准确,所以n会接近0,只能得到一个稍稍高于试验数据的CTR。


至于如何计算每个广告训练所需的曝光数,请听下回分解。下面给出一个置信水平和训练完成度的函数曲线图,当然读者可以根据自己所处的业务环境自行设计这个函数,下面的图仅供参考:

图2:训练完成度和置信水平的曲线图,训练完成度越低,置信水平越高,n也就越大,置信区间上界从而越大,CTR预估得到的加成幅度就越大。


总结
让我们来做一个总结,为了不需要设置独立的训练位,我们需要在很少的曝光中估计新广告的CTR,因此在不可能准确估计的情况下,需要尽可能减少估计错误造成的负面影响。其中一种比较巧妙的方法是用置信区间的上界作为CTR的估计值,同时根据其训练完成的比例,动态的调整其置信水平。这样CTR被预测低的广告也可以有不错的ECPM,而CTR被预测高的广告可以快速通过训练使预估CTR回归到合理的水平。这样整个广告系统可以通过自身的训练机制灵活调整,较好的保持平衡和保证收益。

本文作者:Ivan Cui,更多内容,请访问:BitTiger.io, 扫描下面二维码,关注微信公众账号“论码农的自我修养”

编辑于 2016-07-04

文章被以下专栏收录