Datawhale干货

作者:知乎King James,伦敦国王大学

导读:广告和推荐算法的技术框架比较相似,却在很多公司中分属两个团队,两者的区别在哪里?这里从两者在实际业务中运用的角度,聊聊它们的异同。

首先我们将问题再明确一下,我们是将 广告算法里面的推荐广告和 自然推荐结果里的推荐系统进行对比,因为广告算法里面还有“搜索广告”,搜索广告和推荐系统差异性就太大了,这里不做讨论。

图里面就既有广告,又有自然结果

下面正式回答推荐广告和自然推荐的异同:

1. 不同点

1.1 本质不同

推荐广告和自然推荐本质要处理的群体和衡量的利益完全不一样。

自然推荐:提升用户体验和信息分发效率。只需要考虑用户和平台之间的利益,商家侧在自然推荐里面的体验,自然推荐考虑较少。因为这部分流量是免费的,商家侧没有投入任何成本。

推荐广告:提升广告收入,提升流量变现效率。这里面需要同时兼顾用户、平台和广告主三者之间的利益,权衡好三者之间的关系。广告主花钱投放了广告,就需要对广告主的商品尽可能地多曝光,广告多曝光平台才可以针对广告收更多的钱。但是曝光的广告商品,用户是否感兴趣,给用户强推广告商品非常影响用户体验,如何做到广告收入和用户体验之间的平衡是推荐广告需要考虑的关键点,同时广告主还要看广告投入ROI。

二者本质完全不同,推荐广告整体要比自然推荐复杂,需要考虑的业务因素和权衡的利益关系更多。

1.2 优化目标

如果分别只能挑选一个核心评估指标的话:

  • 推荐广告: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不能太拉垮。

1.3 资源位

经常有一个错误认知,就是“广告资源数量通常比内容资源多得多”,实际上恰好反过来。

目前互联网平台所有的资源位基本都是由推荐系统来分发了,传统的那种运营手工配置的模式基本没有了。但是不是所有的资源位都接入了推荐广告。同时同一个资源位下,广告的比例远小于自然推荐的比例。比如抖音的广告基本是6出1,广告只有1/7。绝大部分流量都是在自然推荐侧。

1.4 物料池

上面介绍推荐广告和自然推荐的CTR差异是因为两个原因导致的,一个是因为优化目标不一样,另一个就是因为二者的物料池完全不一样。

  • 推荐广告:只能召回平台上广告主投放的广告物料,同时有很多商品受到《广告法》的约束是不能投放广告的。正常情况广告物料会比自然物料少很多,量级大概可以差10倍。而且广告物料会呈现价格偏高的趋势,因为特别便宜的商品广告主再投放广告就更没有利润空间了。

  • 自然推荐:理论上讲可以使用平台上所有有效的物料;只是有一些调性差,比较敏感的SKU比如情趣用品等,这种SKU自然推荐也是不会推荐的。

1.5 召回

二者整个召回算法上其实没有特别大的差异,都是多路召回,双塔模型等等。只是广告侧多了一层召回,准确地说叫做DMP(Data Management Platform)定向。

因为广告主在投放广告的时候会有针对性地进行广告投放,比如广告主自己圈选了一些人群,或者上传了一些人群包,希望它的广告重点面向这些人群进行展现,这些操作都在DMP平台上。那么推荐广告系统在对用户进行物料召回时,就需要重点考虑该用户有没有被一些广告主圈选,希望重点展示它的广告物料。DMP定向在自然推荐侧是没有的。

1.6 排序

二者的排序逻辑完全不一样。

  • 自然推荐:主要参考模型对于每个物料预估的CTR指标,可能还会再结合销量、评价等指标,但是主要是CTR。

  • 推荐广告:以ecpm来进行排序。并不是用户对哪个广告物料更感兴趣,哪个物料就排序在前,我们还需要考虑广告收益的最大化,整体的排序计算公式见下图:

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进行排序。推荐广告的排序要比自然推荐考虑的因素要更多,也更复杂。

1.7 展现

  • 广告标识:很多场景中用户前端看到的广告商品是需要标识出“广告”二字的,尤其是搜索广告。而自然推荐则不需要任何标识。

  • 业务干预度:自然推荐结果中业务侧可以强干预,因为是免费流量期望偏向于某个类目都可以。但是广告侧很难做到,因为广告侧还需要为商家的体验负责,某个类目多给流量自然会带来其他类目商家的流量减少,其他商家肯定会来投诉。所以业务干预层面广告侧自由度很低。

1.8 计费

自然推荐,用户对推荐的商品感兴趣下单就结束了,至此和推荐相关的事情就全部结束了。但是在计算广告领域还有一个非常重要的环节就是如何对广告主进行扣费。

上面也提到过了,广告侧是按照点击CPC扣费。这里面又牵扯出来另外一个领域就是反作弊,因为广告侧扣费是需要扣除作弊流量的,不然广告主被别人薅羊毛了会造成成本激增。但这部分作弊点击对于自然推荐基本没有影响,商家毫无损失。自然流量仅需要针对一些特殊优惠权利时不能被某些设备某些pin一直薅羊毛就可以了。

1.9 跟单

商家投放了广告,如何去计算投放广告的ROI?这时候就需要知道哪些订单是广告流量转化的,需要对订单进行归因,这就是跟单。

自然流量当然也需要跟单,需要知道哪些订单是自然推荐流量带来的。但是广告侧的跟单和自然流量跟单整体逻辑不太一样。广告侧需要尽可能地跟更多的单去提升广告主ROI,所以像点击后直接下单的我们叫做直接订单,但是点击后没有直接下单但是一段时间后下单了同店铺其他商品的,广告侧也会算作广告转化,叫做间接订单。间接订单的种类有很多很多,在此不再细述。总的来说就是广告侧需要尽可能多地跟上更多的单,自然推荐侧跟单没有广告侧这么宽泛。

2. 相同点

介绍完不同点,下面介绍相同点。其实推荐广告和自然推荐整体应用的算法和系统架构是差不多的,没有太大差异。基本上每一步双方都有,推荐广告唯一多的一步就是计费了。这一步自然推荐是没有的。

2.1 整体架构

不管是推荐广告,还是自然推荐,二者整体都还是推荐系统的架构,从召回、排序再到重排,最终前端展示等。一整套系统架构二者是一样的。

2.2 召回

召回层二者所使用的一些思路和算法也基本一样,比如针对不同用户群体构建不同的召回策略,多路召回等等。常见的几路召回策略比如:ItemCF、Rebuy、Top_CTR、双塔模型等,这些策略在推荐广告商品和自然推荐时都会用到。

2.3 排序

排序层使用的排序模型比如传统的LR+GBDT,和现在的DeepFM、甚至是深度强化学习,双方都会使用,也不存在某一个模型对于二者有什么偏好。

2.4重排

过滤一些敏感隐私商品、针对一些连续的重复类目商品进行打散、特定时段优先展示某些商品,这些策略双方都需要考虑。

3. 总结

推荐广告和自然推荐本身因为参与方和优化目标不同,所以很多环节的考核指标不一样,推荐广告的业务性会更强,但是二者整体的系统架构和技术栈差异不大。

在很多公司里面,自然推荐和广告部是完全两个独立的部门,自然推荐和广告推荐也是两个完全不同的推荐团队来做,存在一种赛马的味道。

对于很多互联网公司来说,广告部是公司每年收入的核心。比如百度的凤巢、阿里的阿里妈妈、字节的巨量引擎等。对于技术人员来说,其实钻研的技术没有多大差异,但是所从事的业务却不一样,越靠近收入部门,未来产生的价值也就越大。所以如果有知友陷入到底选择推荐广告还是自然推荐,个人还是更建议推荐广告,毕竟广告是直接产生收益的部门。最后给大家推荐两本书,是我觉得对应领域比较权威且科普性强的书,一本是刘鹏写的《计算广告》,一本是项亮写的《推荐系统实践》。

干货学习,三连

都是推荐系统,广告算法和推荐算法有啥区别?相关推荐

  1. 推荐系统(7)——推荐算法4(深度学习时代来临:模型结构上的突破)ACF、DIN、DIEN、DRN

    文章目录 1 ACF,DIN--注意力机制在推荐上的应用 1.1 AFM--NFM的交叉特征+Attention得分 1.2 DIN--淘系广告商品推荐的业务角度 1.3 注意力机制对于推荐系统的启发 ...

  2. 广告算法和推荐算法有什么异同?

    广告算法和推荐算法可以说是不同应用场景下的算法体系,而两者在广告推荐这个场景下是存在一定的交叉. 广告系统的投放过程除了有推荐的场景,还有搜索和指定定向的场景.而推荐系统针对内容分发也可区分为广告推荐 ...

  3. 【推荐系统】协同过滤推荐算法

    [推荐系统]协同过滤推荐算法 原创 魏晓蕾 最后发布于2018-08-28 10:41:42 阅读数 9633 收藏 发布于2018-08-28 10:41:42 分类专栏: Recommender ...

  4. 在线图书推荐网 Python+Django+Mysql开发技术 个性化图书推荐系统 协同过滤推荐算法在图书网站中的运用 基于用户、物品的协同过滤推荐算法 个性化推荐算法、机器学习、分布式大数据、人工智

    在线图书推荐网 Python+Django+Mysql开发技术 个性化图书推荐系统 协同过滤推荐算法在图书网站中的运用 基于用户.物品的协同过滤推荐算法 个性化推荐算法.机器学习.分布式大数据.人工智 ...

  5. 在线电影推荐网 使用Python+Django+Mysql开发技术 在线电影推荐系统 电影网站推荐系统 基于用户、物品的协同过滤推荐算法 个性化推荐算法开发 机器学习、人工智能、大数据分布式开发

    在线电影推荐网 使用Python+Django+Mysql开发技术 在线电影推荐系统 电影网站推荐系统 基于用户.物品的协同过滤推荐算法 个性化推荐算法开发 机器学习.人工智能.大数据分布式开发 Mo ...

  6. mahout 推荐算法 java_Mahout推荐算法API详解

    前言 用Mahout来构建推荐系统,是一件既简单又困难的事情.简单是因为Mahout完整地封装了"协同过滤"算法,并实现了并行化,提供非常简单的API接口:困难是因为我们不了解算法 ...

  7. 基于Spark实现推荐算法-1:推荐算法简介

    个性化推荐系统简介 个性化推荐系统的定义在 1997 年由 Resnick 和 Varian 提出:利用互联网向用户提供信 息和建议,帮助用户选择产品,或模拟售货员帮助用户完成购买行为的系统 .通常推 ...

  8. Python+Django+Mysql开发在线美食推荐网 协同过滤推荐算法在美食网站中的运用 基于用户、物品的协同过滤推荐算法 个性化推荐算法、机器学习、分布式大数据、人工智能开发

    Python+Django+Mysql开发在线美食推荐网 协同过滤推荐算法在美食网站中的运用 基于用户.物品的协同过滤推荐算法 个性化推荐算法.机器学习.分布式大数据.人工智能开发 FoodRecom ...

  9. 【推荐系统】今日头条推荐算法原理全文详解

    如今,算法分发已经逐步成为信息平台.搜索引擎.浏览器.社交软件等几乎所有软件的标配,但同时也开始面临各种不同的质疑.挑战与误解. 2018年1月,今日头条资深算法架构师曹欢欢博士,首次公开今日头条的算 ...

最新文章

  1. 激光雷达:最新趋势之基于RangeView的3D物体检测算法
  2. Viber4android,Viber更新4.0 推出全新贴纸市场,并支持安卓平板
  3. 使用JNA解决自动化测试无法做密码输入操作的问题
  4. php控制器是啥,控制器的定义
  5. vivado 综合报错 “ incorrect freePtr. Call out of sequence? “
  6. MongoDB与阿里云达成战略合作,最新数据库独家上线阿里云!
  7. java seekbar_SeekBar的基本使用方法
  8. 华为荣耀 4x 刷机体验 直奔 Android 6.0
  9. 生命在此定格 路透记者遇难前拍下的最后画面
  10. Centos7 安装字体库中文字体
  11. Etag If-None-Match 专题
  12. Logback-日志文件按日期切分解决方案
  13. 智慧交通信号控制系统梗概
  14. wps序号打乱重新排序_wps表格序号自动排列
  15. 苏炳添博士论文研究自己,奥运学术两兼顾
  16. GF1_WFV(高分一号宽幅)GF6_WFV(高分六号宽幅)GF4(高分四号)CB04(中巴04星)免费下载方式简介
  17. “图形驱动程序无法找到兼容的图形硬件”的处理方式
  18. Rabbitmq交换机详解
  19. [转]800个有趣句子帮你记忆7000个单词
  20. 说极路由牛逼的人们,你们用过Tomato DualWAN吗?(一)

热门文章

  1. 开发脚本自动部署及监控
  2. Android深度探索--HAL与驱动开发----第一章读书笔记
  3. 微软算法100题11 求二叉树中两节点之间的最大距离
  4. Android studio 使用心得(三)—从Eclipse迁移到Android studio
  5. 《ASP.NET MVC4 WEB编程》学习笔记------Web API 续
  6. 通过 cygwin64 自己编译对应的 Tera Term cyglaunch.exe
  7. hdu 4311 Meeting point-1
  8. (转载)新年——顺民的牢骚
  9. stella forum v 2.0 的两款主题样式
  10. 【牛客】简单排序 (STL)