Datawhale干货
作者:知乎King James,伦敦国王大学
导读:广告和推荐算法的技术框架比较相似,却在很多公司中分属两个团队,两者的区别在哪里?这里从两者在实际业务中运用的角度,聊聊它们的异同。
首先我们将问题再明确一下,我们是将 广告算法里面的推荐广告
和 自然推荐结果里的推荐系统
进行对比,因为广告算法里面还有“搜索广告”,搜索广告和推荐系统差异性就太大了,这里不做讨论。
图里面就既有广告,又有自然结果
下面正式回答推荐广告和自然推荐的异同:
推荐广告和自然推荐本质要处理的群体和衡量的利益完全不一样。
自然推荐:提升用户体验和信息分发效率。只需要考虑用户和平台之间的利益,商家侧在自然推荐里面的体验,自然推荐考虑较少。因为这部分流量是免费的,商家侧没有投入任何成本。
推荐广告:提升广告收入,提升流量变现效率。这里面需要同时兼顾用户、平台和广告主三者之间的利益,权衡好三者之间的关系。广告主花钱投放了广告,就需要对广告主的商品尽可能地多曝光,广告多曝光平台才可以针对广告收更多的钱。但是曝光的广告商品,用户是否感兴趣,给用户强推广告商品非常影响用户体验,如何做到广告收入和用户体验之间的平衡是推荐广告需要考虑的关键点,同时广告主还要看广告投入ROI。
二者本质完全不同,推荐广告整体要比自然推荐复杂,需要考虑的业务因素和权衡的利益关系更多。
如果分别只能挑选一个核心评估指标的话:
推荐广告:CPM(Cost Per Mille,千次展现成本)。CPM越高代表推荐广告的变现效率越高;相同流量情况下,CPM高的广告收入更多。
自然推荐:CTR(点击PV / 展现PV)。CTR越高代表用户对于推荐的内容越感兴趣。
问题里面有一个错误认知,就是推荐广告和自然推荐的点击率差异性很大,二者有差距但没有很大,在首页这种核心位置上差异大概在20%左右吧,这里的CTR差异是因为两个原因导致的,其中一个就是广告优化的目标是CPM。但又因为CPM = CPC(单次点击成本) * CTR(点击率) * 1000(千次展现)。
目前广告都是按照点击进行扣费,CPC代表一次点击收广告多少钱,那么千次展现*CTR=千次点击次数,再乘以CPC就等于CPM。广告的CTR如果太低,CPM也会很低,虽然广告侧终极目标是提升CPM,但是CTR同样需要兼顾。同时广告和自然推荐在一个流量场,平台侧会对比,广告侧的CTR不能太拉垮。
经常有一个错误认知,就是“广告资源数量通常比内容资源多得多”,实际上恰好反过来。
目前互联网平台所有的资源位基本都是由推荐系统来分发了,传统的那种运营手工配置的模式基本没有了。但是不是所有的资源位都接入了推荐广告。同时同一个资源位下,广告的比例远小于自然推荐的比例。比如抖音的广告基本是6出1,广告只有1/7。绝大部分流量都是在自然推荐侧。
上面介绍推荐广告和自然推荐的CTR差异是因为两个原因导致的,一个是因为优化目标不一样,另一个就是因为二者的物料池完全不一样。
推荐广告:只能召回平台上广告主投放的广告物料,同时有很多商品受到《广告法》的约束是不能投放广告的。正常情况广告物料会比自然物料少很多,量级大概可以差10倍。而且广告物料会呈现价格偏高的趋势,因为特别便宜的商品广告主再投放广告就更没有利润空间了。
自然推荐:理论上讲可以使用平台上所有有效的物料;只是有一些调性差,比较敏感的SKU比如情趣用品等,这种SKU自然推荐也是不会推荐的。
二者整个召回算法上其实没有特别大的差异,都是多路召回,双塔模型等等。只是广告侧多了一层召回,准确地说叫做DMP(Data Management Platform)定向。
因为广告主在投放广告的时候会有针对性地进行广告投放,比如广告主自己圈选了一些人群,或者上传了一些人群包,希望它的广告重点面向这些人群进行展现,这些操作都在DMP平台上。那么推荐广告系统在对用户进行物料召回时,就需要重点考虑该用户有没有被一些广告主圈选,希望重点展示它的广告物料。DMP定向在自然推荐侧是没有的。
二者的排序逻辑完全不一样。
自然推荐:主要参考模型对于每个物料预估的CTR指标,可能还会再结合销量、评价等指标,但是主要是CTR。
推荐广告:以ecpm来进行排序。并不是用户对哪个广告物料更感兴趣,哪个物料就排序在前,我们还需要考虑广告收益的最大化,整体的排序计算公式见下图:
P-CTR代表模型实时预测用户对该广告的点击率,CPC代表广告主愿意为买一次广告点击出的价格。P-CTR* 1000 就代表如果曝光1000次该广告,用户可能点击的次数。比如P-CTR(B)* 1000=10次,就代表给用户曝光1000次,用户可能点10次,那么平台就可以收入10*100=1000元。所以eCPM的意义就是曝光1000次,平台侧可能的收入。
像上图中B广告主虽然出价高,但是模型预测用户的CTR很低,最终用户点击的次数会很少。因为广告一般都是按照点击进行扣费的,用户必须点击平台侧才可以扣广告主的费用。所以最终C竞价成功,对于平台侧来说曝光C的广告,预期收入是最大的。
但实际排序时eCPM只是参考的一个方面,广告侧还需要去考虑广告商品的质量、历史销量、历史好评率等等各种因素,将这些因素综合考虑组成另外一个分数Q值,最终二者按照一定权重,形成一个复合公式:
Rank_Score = a*eCPM + b*Q
ecpm计算公式
按照综合的 Rank_score进行排序。推荐广告的排序要比自然推荐考虑的因素要更多,也更复杂。
广告标识:很多场景中用户前端看到的广告商品是需要标识出“广告”二字的,尤其是搜索广告。而自然推荐则不需要任何标识。
业务干预度:自然推荐结果中业务侧可以强干预,因为是免费流量期望偏向于某个类目都可以。但是广告侧很难做到,因为广告侧还需要为商家的体验负责,某个类目多给流量自然会带来其他类目商家的流量减少,其他商家肯定会来投诉。所以业务干预层面广告侧自由度很低。
自然推荐,用户对推荐的商品感兴趣下单就结束了,至此和推荐相关的事情就全部结束了。但是在计算广告领域还有一个非常重要的环节就是如何对广告主进行扣费。
上面也提到过了,广告侧是按照点击CPC扣费。这里面又牵扯出来另外一个领域就是反作弊,因为广告侧扣费是需要扣除作弊流量的,不然广告主被别人薅羊毛了会造成成本激增。但这部分作弊点击对于自然推荐基本没有影响,商家毫无损失。自然流量仅需要针对一些特殊优惠权利时不能被某些设备某些pin一直薅羊毛就可以了。
商家投放了广告,如何去计算投放广告的ROI?这时候就需要知道哪些订单是广告流量转化的,需要对订单进行归因,这就是跟单。
自然流量当然也需要跟单,需要知道哪些订单是自然推荐流量带来的。但是广告侧的跟单和自然流量跟单整体逻辑不太一样。广告侧需要尽可能地跟更多的单去提升广告主ROI,所以像点击后直接下单的我们叫做直接订单,但是点击后没有直接下单但是一段时间后下单了同店铺其他商品的,广告侧也会算作广告转化,叫做间接订单。间接订单的种类有很多很多,在此不再细述。总的来说就是广告侧需要尽可能多地跟上更多的单,自然推荐侧跟单没有广告侧这么宽泛。
介绍完不同点,下面介绍相同点。其实推荐广告和自然推荐整体应用的算法和系统架构是差不多的,没有太大差异。基本上每一步双方都有,推荐广告唯一多的一步就是计费了。这一步自然推荐是没有的。
不管是推荐广告,还是自然推荐,二者整体都还是推荐系统的架构,从召回、排序再到重排,最终前端展示等。一整套系统架构二者是一样的。
召回层二者所使用的一些思路和算法也基本一样,比如针对不同用户群体构建不同的召回策略,多路召回等等。常见的几路召回策略比如:ItemCF、Rebuy、Top_CTR、双塔模型等,这些策略在推荐广告商品和自然推荐时都会用到。
排序层使用的排序模型比如传统的LR+GBDT,和现在的DeepFM、甚至是深度强化学习,双方都会使用,也不存在某一个模型对于二者有什么偏好。
过滤一些敏感隐私商品、针对一些连续的重复类目商品进行打散、特定时段优先展示某些商品,这些策略双方都需要考虑。
推荐广告和自然推荐本身因为参与方和优化目标不同,所以很多环节的考核指标不一样,推荐广告的业务性会更强,但是二者整体的系统架构和技术栈差异不大。
在很多公司里面,自然推荐和广告部是完全两个独立的部门,自然推荐和广告推荐也是两个完全不同的推荐团队来做,存在一种赛马的味道。
对于很多互联网公司来说,广告部是公司每年收入的核心。比如百度的凤巢、阿里的阿里妈妈、字节的巨量引擎等。对于技术人员来说,其实钻研的技术没有多大差异,但是所从事的业务却不一样,越靠近收入部门,未来产生的价值也就越大。所以如果有知友陷入到底选择推荐广告还是自然推荐,个人还是更建议推荐广告,毕竟广告是直接产生收益的部门。最后给大家推荐两本书,是我觉得对应领域比较权威且科普性强的书,一本是刘鹏写的《计算广告》,一本是项亮写的《推荐系统实践》。