推荐系统三十六式
刑无刀
“贝壳找房”资深算法专家,8年推荐系统工程师
立即订阅
11390 人已学习
课程目录
已完结 39 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 用知识去对抗技术不平等
免费
第1章 概念篇 (3讲)
【概念篇】你真的需要个性化推荐系统吗?
【概念篇】个性化推荐系统那些绕不开的经典问题
【概念篇】这些你必须应该具备的思维模式
第2章 原理篇 (20讲)
【内容推荐】画鬼容易画人难:用户画像的“能”和“不能”
【内容推荐】从文本到用户画像有多远
【内容推荐】超越标签的内容推荐系统
【近邻推荐】人以群分,你是什么人就看到什么世界
【近邻推荐】解密“看了又看”和“买了又买”
【近邻推荐】协同过滤中的相似度计算方法有哪些
【矩阵分解】那些在Netflix Prize中大放异彩的推荐算法
【矩阵分解】Facebook是怎么为十亿人互相推荐好友的
【矩阵分解】如果关注排序效果,那么这个模型可以帮到你
【模型融合】经典模型融合办法:线性模型和树模型的组合拳
【模型融合】一网打尽协同过滤、矩阵分解和线性模型
【模型融合】深度和宽度兼具的融合模型 Wide and Deep
【MAB问题】简单却有效的Bandit算法
【MAB问题】结合上下文信息的Bandit算法
【MAB问题】如何将Bandit算法与协同过滤结合使用
【深度学习】深度学习在推荐系统中的应用有哪些?
【深度学习】用RNN构建个性化音乐播单
【其他应用算法】构建一个科学的排行榜体系
【其他应用算法】实用的加权采样算法
【其他应用算法】推荐候选池的去重策略
第3章 工程篇 (10讲)
【常见架构】典型的信息流架构是什么样的
【常见架构】Netflix个性化推荐架构
【常见架构】总览推荐架构和搜索、广告的关系
【关键模块】巧妇难为无米之炊:数据采集关键要素
【关键模块】让你的推荐系统反应更快:实时推荐
【关键模块】让数据驱动落地,你需要一个实验平台
【关键模块】 推荐系统服务化、存储选型及API设计
【效果保证】推荐系统的测试方法及常用指标介绍
【效果保证】道高一尺魔高一丈:推荐系统的攻防
【开源工具】和推荐系统有关的开源工具及框架介绍
第4章 产品篇 (3讲)
【产品篇】推荐系统在互联网产品商业链条中的地位
【产品篇】说说信息流的前世今生
【团队篇】组建推荐团队及工程师的学习路径
尾声与参考阅读 (2讲)
推荐系统的参考阅读
【尾声】遇“荐”之后,江湖再见
推荐系统三十六式
登录|注册

【常见架构】总览推荐架构和搜索、广告的关系

刑无刀 2018-05-02
在数字世界中,信息过载是必然的,应对信息过载重担先后交给了两种主要形式,包括以搜索为代表的各种主动寻找信息的形式,以及以推荐为代表的各种被动接受信息的形式。

三种信息获取方式

当用户想要从浩如烟海的网页中,找到对自己有用的信息,首选当然是搜索引擎,这是属于“已知的未知”需求,剩下的“未知的已知”和“未知的未知”则需要推荐系统去满足,只是推荐系统常常会出现画蛇添足去满足“已知的已知”这样的伪需求。
另外介于两者之间,还有一种商业化解决信息触达问题,就是广告系统。在线广告从条幅广告,到搜索广告再到社交精准广告,也逐渐形成了一个理念就是:把广告当成一种有用的信息去找到最需要它的人。
三者都是解决信息过滤问题的,那么它们有没有一些共同之处呢?答案是肯定的,这三者的确有共同之处,但是也有不同之处。

三者对比

搜索,推荐和广告本质上都在解决信息过载的问题,各自解决的手段、目标不相同,各自诞生在产品生命周期不同阶段,以至于系统实现也不尽相同。
我们从几个维度对比一下,看看它们不同和相同在哪。
搜索更关注内容消费者,搜索要解决的是精确快速找到想要的结果,最重要的目标是降低延迟和提高相关性。搜索引擎是一个效率工具,希望用户找到信息越快越好,而不是希望用户沉迷在搜索引擎中。
所以搜索一般不会像信息流产品那样变成时间杀手,不过现在有些搜索引擎会主推信息流,这个另当别论。
人们需要依赖搜索而不沉迷搜索,这就与搜索引擎的目标有关。在搜索解决用户的信息获取需求时,惊喜并不在考虑范围内,因此就不会随随便便地利用集体智慧去扩充一些不那么直接相关的结果。
推荐系统则不同,首先传统的推荐系统大都是起一个“锦上添花”的作用,一般很少会将其作为核心功能来承载产品。
由于推荐系统通常的目标不是帮用户找到相关内容,而是希望用户消费内容,消费越多越好,于是业界逐渐演变出一个比较畸形的认识,“好的推荐系统应该变成一个时间杀手,让用户走进去就不想出来”才是最好的。
推荐系统不同于搜索引擎,用户使用搜索时目标明确,而使用推荐系统往往总会漫无目的,这样一来,在推荐结果中就有很多发挥的余地,可以给用户制造一些惊喜,或者让推荐结果呈现多样性,这一点和搜索很不一样。
另外,搜索是针对个人用户的,一个用户发起一个请求,而推荐系统既可能针对单个用户进行推荐,也可能针对用户群进行推荐。
推荐和搜索除了这些不同,还有更多的是相同点。基于内容的推荐,本质上就是一个小的搜索引擎。
实际上很多推荐引擎底层的技术实现,尤其是数据存储上大量借鉴了搜索相关技术,比如使用用户的兴趣标签召回推荐结果,就需要先对推荐候选池按照兴趣标签建立倒排索引,从而检索出候选集。
最后,广告是一个很特殊的存在,前面也说了,搜索和推荐都是为人找信息,而广告是为信息找人。但它在形式上又像推荐,总是“不请自来”,在技术实现上又兼有推荐和搜索两者特点。
而且它背后包含的是纯粹的商业目标,说白了就是和广告的计费方式有关,如果按照展现次数计费,系统就是要多做展现。
如果按照点击付费,那么就是想办法消耗光广告主的充值,所以广告系统关注的是商业利益最大化,精准和相关都不是终极目的,只是其中的一个手段。

架构抽象

我们抽象一下三者的需求共性:本质上都是在匹配,匹配用户的兴趣和需求(看成 context),但匹配的目标,条件和策略不尽相同。示意图如下:
我们再进一步抽象下去,又可以分为三步:过滤候选、排序候选、个性化输出。

1. 过滤候选

过滤候选这一步在搜索里天经地义,从查询关键字中解析得到查询意图,以及结构化的搜索条件,再用结构化的查询条件从倒排索引中检索出排序候选。
与之相似的是广告系统,搜索广告也是查询关键字去检索候选广告,而联盟广告则是拿着用户标签去需求方获取广告候选。
在推荐系统中,我之前一再强调有挖掘、召回和排序三个阶段,其中的召回阶段就是过滤候选阶段,基于内容的就和搜索一样,用标签检索候选,协同过滤则检索出相似物品来,等等。
一种离线阶段的推荐算法对应一种召回策略,为了保证高效地召回,都要建立相应的索引,这样一来,是不是搜索、广告和推荐都离不开过滤候选这一步,而过滤候选就离不开建立索引。
事实上,如果你的产品已有搜索,要增加推荐功能,最快的实现方式的确就是在已有搜索的基础上开发。
比如,你已经有了 ElasticSearch 搭建的搜索引擎,那么在后面开发推荐系统时,完全可以把 ElasticSearch 作为管理各种推荐结果的数据库来使用。在 ElasticSearch 中按照不同方式建立索引,再于在线阶段根据条件检索出来,重新融合排序输出。

2. 排序候选

候选排序这一步,对于三者来说,主要区别在于排序的目标和约束。搜索的排序目标是高相关性,无论 BM25 为代表的传统排序模型,还是以 Learn to Rank 为代表的机器学习排序皆是如此,把用户每次在搜索上花费的时间是不是更少(而不是更多)来衡量搜索的效果。
推荐系统的排序则比较复杂,根据推荐系统不同的产品形式、产品目标,排序策略也不同。
前面讲过,通常推荐系统用 CTR 预估来融合召回策略得到的候选集,如果做得深入,还需要考虑探索利用问题。附加的约束则是千变万化。电商中,当天买过的当天就不能再推了,新闻推荐里,重复的新闻不能再推了。
某些场景需要推荐搭配,某些场景需要推荐相似,TopN 推荐还需要考虑多样性,序列推荐要考虑前序和后续等等。
广告系统的排序更多是从经济学角度去看,CPC 广告的排序方式是结合预估 CTR、出价、广告质量三者一起考虑。同时还要考虑很多别的因素,尤其是商业因素,平台方的要求,广告主的要求等等,是一个纯动态的博弈。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《推荐系统三十六式》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(11)

  • 颛顼
    这个通过什么手段可以避免用户搜什么就出什么的尴尬呢?这个长短意图如何识别?求推荐点资料
    2018-05-05
    4
  • 宝宝疯
    Youtube允许用户在广告播放几秒后主动关闭广告是不是就算是用户为广告设置过滤条件?

    作者回复: 主动关闭,等于为不感兴趣的用户节省带宽,收集了负样本,倒闭广告创意提升质量,是对平台长期价值有好处的。

    2019-02-14
    3
  • 林彦
    如果让用户自己检索选择展现的广告,有些广告主得到展示的机会会低很多,平台方和广告方的利益损失会比较大吧 😄
    2018-05-02
    3
  • 吴锴
    广告与搜索、推荐不一样之处在于,广告是用户、广告内容方和平台,三方利益的平衡。广告排序除了CTR,还要考虑广告出价,也就是ECPM的排序。

    作者回复: 是的。实际情况会复杂很多。

    2018-12-16
    2
  • walter
    未知的已知是哪种推荐场景?
    2018-05-02
    2
  • 伍黎佳
    从业务的角度说下一种可能性:
    平台如何告知商家,每次点击是受广告效果,还是其他非广告因素最终选择该商家?
    以搜索为例:
    1)在美团搜索“烤鸭”,会出现“xx烤鸭”的广告,带广告标识。(xx是店铺名)在默认排序的情况下(应该是考虑了评分,距离等各类因素)
    2)第二步用“xx”关键字搜索,结果列表并没有“xx烤鸭”选项,反而是通过提醒的方式说明,“xx烤鸭”距离当前位置较远。(说明距离是排序的一个重要因素)
    3)用“xx烤鸭”精准搜索,能直接显示“xx烤鸭”结果,并且没有广告标签。

    综合,可以推测,美团可以用,我把非你附近,之前不知道你店铺名,喜欢吃烤鸭,几乎不可能主动到你店铺消费的客户通过广告的方式,引流给你。
    这样一个较为清晰的定义,商户才肯为广告买单。

    与上面给商户一个清晰有说服力买单理由相反的是很早之前的美团代金券,代金券最早的逻辑,是通过让利引来更多的流量,一旦这类方式达到引流瓶颈,商户的买单意愿会很低,因为带来的新流量很少,同时还得付出代金券与平台费的成泵。
    2019-01-17
    1
  • zc
    一般人对广告应该是没兴趣,甚至是反感的吧,所以搜索广告没有市场
    2018-05-02
    1
  • 爱谁谁
    有用户会主动搜索广告吗?所以广告才要用推的形似吧

    作者回复: 和query匹配程度高,广告和信息之间的差别很小。

    2018-12-04
  • 🐱您的好友William🐱
    要是能设置的话,我就把广告关了,或者把广告只设置成一个非常狭窄的分类。。。
    2018-10-15
  • Dan
    請問一下集體智慧是什麼?
    2018-05-23
    1
  • Dan
    請問一下集體智慧是什麼意思?
    2018-05-23
收起评论
11
返回
顶部