互联网广告系统综述三业务描述
声明:
1)该博文是整理自网上很大牛和专家所无私奉献的资料的。具体引用的资料请看参考文献。具体的版本声明也参考原文献
2)本文仅供学术交流,非商用。所以每一部分具体的参考资料并没有详细对应,更有些部分本来就是直接从其他博客复制过来的。如果某部分不小心侵犯了大家的利益,还望海涵,并联系老衲删除或修改,直到相关人士满意为止。
3)本人才疏学浅,整理总结的时候难免出错,还望各位前辈不吝指正,谢谢。
4)阅读本文需要互联网广告业的基础(如果没有也没关系了,没有就看看,当做跟同学们吹牛的本钱)。
5)此属于第一版本,若有错误,还需继续修正与增删。还望大家多多指点。请直接回帖,本人来想办法处理。
前面说了互联网广告市场发展的一些现状,其中提到了品牌广告和效果广告,也提到了广告平台中涉及的三个利益相关方广告主,用户,广告平台老板。
由于本文是利用广告平台的工程师的视角描述的,就聊聊广告平台上的利益相关方的博弈吧。
当然,要注意的是,效果广告才有这三方博弈,品牌广告往往只有广告主和平台在博弈,用户方面考虑得比较少。
下面说的东西都主要以效果广告的视角描述的。
一.三国杀
广告平台的工程师的视角,其实就是广告算法工程师的视角了,因为其他团队如产品,工程,运营团队,都没有需要直接利用代码来实现这三方利益的任务。换言之,广告算法工程师就是处于那个平衡三方利益的位置的。
下面看看这三方的需求。
老板:赚更多的钱
广告主:更合适的受众,更高的转化率
用户:我不喜欢的我不要
三个方面的利益其实不是一致的:平台老板想多赚钱,就要给用户投广告;广告主想要用最少的钱换最大量的转化;用户根本不想看他不感兴趣的广告。
这就让广告算法工程师很为难了
对于广告算法工程师来说,这三个利益方都是大爷,无论哪一方不满,都会直接投诉到广告算法工程师的邮箱或者业绩里面的。
二.算法的角色——制衡
既然有了这样的任务,广告算法工程师自然也不能坐以待毙。三方利益不能同时最大化,那就只能在三方利益中取平衡点了,这个工作起个好听点的名字“制衡”。
下面看怎么制衡
2.1 广告主
先说怎么满足广告主的需求——更适合的受众,更高的转化率。
关键点是怎么选择更适合的受众了。
广告主的要求是变化多端的,因为卖什么的广告主都有。广告主也有自己的一些经验,所以他们也大致知道什么样的人(潜在客户)适合投他们自己的广告。理想情况是广告算法工程师帮助广告主找出最合适的客户,只是广告算法工程师不可能一位一位用户地去问他们喜欢什么广告主吧。而且用户的兴趣变化多端,相关的广告主会很多,标注起来会非常复杂。
既然没办法做到极致,就只能做能做的事——准确地划分人群。
工程师划分人群后,这些人群就具备了一些属性,广告主在下单前,根据自己产品的特性去考察这些属性,去选择自己的广告受众,这个过程叫做“选择定向条件”。
这个过程就是广告行业的术语“定向”,这里先把一些通用的定向方式列一下,再说说广告算法工程师的工作吧,
常见的广告定向方式有后面几种:1、人群属性定向。2、上下文定向。3、行为定向。4、再营销。5、相似用户定向。6、地理位置定向。7、其他如时间定向;设备定向;天气定向;语言定向。
要满足广告主的这些定向方式,就考察广告算法工程师的头脑了,要做的事情其实很多的,如第一个“人群属性定向”,就说年龄性别这两个简单属性来说,很多平台都没有的,就要算法工程师用各种模型去估(其实有时候都是瞎估)了。其他的如教育背景、职业、婚姻状态、收入、消费能力、工作场所等等,有这些数据的公司很少,多数都是瞎估,估算方法五花八门,都是被逼出来的。但是这个跟三大利益方的需求有关,只好整出来。再有“行为定向”和“相似用户定向”,这两个就靠谱点了,毕竟用户行为可以总结出大致的兴趣来,相似的用户也能用机器学习方法弄出几分来。
这里只是综述,后面会有其他章节介绍广告算法工程师在定向方式方面的工作的。
2.2 老板与用户
老板的需求是——赚更多的钱。
用户的需求是——不喜欢的东西不要,只看自己感兴趣的东西。
两个写在一起的原因是这两条往往是冲突的,一个用户不感兴趣的广告,出价往往比较高;而一个用户感兴趣的广告,出价往往不高。
而能产生上面所说的冲突的原因是,一个用户来了,会有很多广告主想向他投广告,这些广告有些用户喜欢,有些不喜欢;有些出价高,有些出价低。
这就带来了广告算法工程师的苦恼,怎么办?难道仰天长叹:“元芳,你怎么看?挖掘机技术哪家强?”
早有优秀的前辈找出了解决方法,有两个相关的方法:算分排序和扣费方法。
2.2.1算分排序
算分排序这个东西能综合考虑老板和用户的需求,具体操作方式是,一个用户来了,对于想向这个用户投的广告,都打一个分,根据这个分进行倒排序,排在最前面的广告就是对这两方最合适的广告。
且看看每个广告算分公式:
Score=bid*ctr
其中的bid表示广告的出价。
而ctr的含义比较丰富,既表示了用户对广告的喜欢程度,也表示了广告的质量,还表示了这个广告的期望的点击率,还希望这个ctr跟广告真实的点击率也是一致的。这个ctr不是谁给出的,而是用一些方法(模型)估算的。这ctr估高了,会把出价不高同时用户也不喜欢的广告的分算得比较高,这样是不行的;估低了,出价一般高但是用户比较喜欢的广告的分算得比较低,没机会投出去,就会导致用户总是看到不喜欢的广告。既然这个ctr这么重要,自然也是广告算法工程师的工作的重中之重,后面有专门的章节介绍这个ctr的计算方式的,那是一个艰苦的战役。这里就把结果拿出来直接用了。
算分公式是用乘法,保证了出价高的广告分更高,也保证ctr高的广告分也更高;而光出价高,ctr特别低的广告分一般高,同时出价特别低,ctr比较高的广告分也一般高,从而更可能排名高的广告是出价一般高,ctr一般高的广告排名高了(两边不得罪)。
就这样,算分排序平衡了两方的需求。这也就平衡了收益和用户体验。
2.3 老板与广告主
上面的描述说了老板与用户的关系,就是要平衡收益和用户体验,通过算分排序完成了。
还有一对冤家的利益需要平衡,就是老板与广告主,这事情比较诡异,因为这两家的问题也比较突出的,广告主想少花钱获取更多受众和转化;老板希望尽量多收钱,而且还希望长期多收钱,这也需要广告算法工程师提供一个平衡的方法(真是老鼠钻进风箱里,两头受气)。
优秀的前辈们总是有办法的,他们提供了扣费方法,下面抄一个过来吧。
2.3.1扣费方法
有几种,广义一阶价格和广义二阶价格是被讨论得最多了。
广义一阶价格(GFP),就是广告主开多少价,在广告投放后就收多少钱。这样广告平台就会跟广告主进行重复博弈,在每一轮拍卖结束后,广告主会根据上一轮报价的情形决定下一轮的出价决策。这样就很容易出现问题,一开始广告主为了抢量不断抬价(价格攀升阶段),后面玩熟练了,大家一起压价(价格崩溃阶段)。这样广告平台就需要非常了解广告主的估计,否则,价格不断波动,流量会浪费很严重,广告平台的生意很容易就搞砸了。
广义二阶价格(GSP),这个二阶的意思就是下一位的出价,一个广告支付的钱是排在下一个位置的广告的出价,用术语来说就是:第i个广告位的广告每次展示或者点击(分别对应两种竞价方式,按展示收费或者按点击收费)所付的费用,等于第i+1个广告位的广告出价加上一个很小的值(一般是0.01)。
这里还是有两种。一种是竞价排序,根据广告的出价倒序排列,被点击的广告主付他下一家的费用。另一种是收入排序,根据期望收益最大来排序,这里的期望收益指的bid*ctr,被点击的广告主付的费用为bid(i+1)*ctr(i+1)/ctr(i);后面的那个ctr有时候也可以用score代替,即扣的费用计算公式也可以是bid(i+1)*score(i+1)/score(i),当然扣费不能超过广告的出价,也不能低于一个最小值(各个平台自己定义的)。
收入排序方式目前是最常用的,组内也正在用。这样的好处就是可以鼓励广告主优化自己的广告质量,只要某个广告比排在后面的广告质量高很多,扣费就会特别少,反之就扣得多。
说到这里,如果上面的工作完成得不错了的话(ctr计算得很好了),相关工作其实已经完成了。这是不是意味着广告算法工程师可以高枕无忧了呢?答案还是不行,因为三个利益方还会有各种要求,这个就依赖下面的业务策略来解决了。
2.4 业务策略
上面说过,系统搭建工作完成了,广告算法工程师还是不能高枕无忧。有什么困扰呢?因为三个利益方的各种要求还是很多的。
下面列一些吧
1、季末冲业绩
在每个季度的末尾,因为要发财报,要汇报等等,业务部门的压力会过来,就需要临时调整扣费策略或者排序方式来增加收入(各个公司不同)。
2、聪明的广告主
一个新上线的广告,一般通过冷启动能获取一些投放量(就是开始的ctr会估得不准,就用一些平均的值去代替,从而让新广告有一定的量)。广告主都很聪明的,有些广告主就建大量的新广告计划,从而得到了大量的投放量,但是这个广告主的广告质量很差(点击率很低),大大影响了业务指标。这个问题是很久才排查到的,然后就对每一个广告限制了广告计划数,系统就恢复了正常。
3、指标的牺牲
广告平台为了建立口碑,同时改善用户体验,需要对自己的广告进行质量把关。为了完成这个工作,就需要对低质量的广告(低点击率)进行一些打压策略,就是降低这类型广告的投放量,往往是通过对排序中的那个score进行打压得到的。打压的方式很多种,好用的方法就是根据这个广告的点击率与整个平台的整体点击率相除,得到一个ratio,这个就是打压的因子。
4、用户的抱怨
对于大型媒体和平台来说,还是要收集自己的用户意见的。用户会抱怨看到广告,这个是没有办法的了,但是用户如果抱怨的是整天看到同一个广告,那就有问题了,这样是不行的。对于广告平台来说,可以对用户看同一个广告主的广告次数进行控制,让用户在一段时间内最多只能看到同一个广告主的广告若干次(各个公司不同)。这起码一定程度上减少了用户的抱怨。做得更好一点的,对广告进行归类(聚类,相似的广告聚到一起),对用户看同一类型的广告也有次数上的控制,效果也会更好一些。
以上的这些业务策略肯定不是闲着没事想出来的,都是一些实实在在的线上问题排查的处理方法或者真的是被用户抱怨多了收集来的,这些真是经验。这可能也是广告算法工程师在搭建完系统后没有被老板赶走的原因。
一个广告系统的优化方向很多,经验有限也不能一一列举了。
致谢
多位互联网博主如@Rickjin,@江申_Johnson等。
多位同事的指点。
参考文献
[1] http://blog.csdn.net/chjjunking/article/details/20454343@ chjjunking的博文《GFP、GSP和VCG的特点和介绍》
[2] http://www.flickering.cn/ads/2014/06/%E7%BB%86%E6%95%B0%E5%B9%BF%E5%91%8A%E5%AE%9A%E5%90%91/#comment-105腾讯的广点通的技术博客《细数广告定向》
[3] http://www.techinads.com/archives/41江申_Johnson的博客
文章来源:http://blog.csdn.net/mytestmy/article/details/40930229