广告策略产品(4):推荐系统召回策略那些事儿

5 评论 7769 浏览 53 收藏 16 分钟

推荐系统中的召回,需要从整个信息集合中挑选出尽可能多的相关结果,剔除相关性较弱的结果,降低排序阶段的工作量。本文作者对推荐系统的召回策略展开分析,希望对你有帮助。

哈喽大家好,我是策略产品经理Arthur,目前在某头部互联网公司任职广告策略产品专家。分享完推荐系统排序那些事儿,今天我们继续介绍召回的那些事儿。那篇文章发表之后有很多朋友在评论区,希望我详细拆讲一下各个模块的策略,话不多说我们直接上肝货。

那么应大家的需求过来抛砖引玉给大家讲讲推荐系统的召回,帮助各位对推荐策略产品感兴趣的同学建立一下基础认知;我将分为三个部分来介绍:

  1. 什么是召回,召回在做一件具体什么样的事情;
  2. 目前工业界有哪几种主流的召回方式;
  3. 各种召回方优缺点及其应用场景;

一、什么是召回,召回具体在做一件什么样的事儿

召回Matching从整体思路与作用上是完全与排序对立区分开的存在,指的是从全量的信息item集合中出发尽可能多的正确结果通过对大而全的输入集合输入到排序模块进行顺序排序,为排序提供候选集合。

  • 召回特点:保证相关集合的量大、处理的速度要够快,并且模型使用比较简单,特征选取比较少。
  • 排序特点:物料集合精炼、那么特征就会要求复杂,模型也会复杂,最终呈现的结果需要准,抓住用户兴趣点;

推荐系统中的召回面对的是全量信息池,需要从整个信息集合中挑选出尽可能多的相关结果,剔除相关性较弱的结果,降低排序阶段的工作量。

二、目前工业界有哪几种主流召回方式

目前工业界推荐系统的主流召回方式包含三种分类:基于规则标签类召回、协同过滤召回方式、模型向量召回的方式。

在介绍每一种召回方式之前,大家要厘清一个概念,一般推荐系统的搭建不会是单一维度的召回,因为所面临的业务场景复杂(需要考虑无数据冷启动状态、考虑用户与物料之间的状态、物料与物料的状态),一般是多类型的召回方式协同,最终进行多路归一化进行并存,这个就叫做多路召回,核心是为了避免召回结果单一规则束缚,使得与推荐系统内容丰富性效果相违背。

2.1 基于规则、标签类的召回

与其说是一种常规的召回方式,不如说是一种运营规则配置规则,可解读性最好的召回方式,一般逻辑清晰明了,基于推荐系统的业务目标进行简单的规则召回,这里拿抖音举例子。

热门规则召回:

比如近 7 天完整播放率比较高的短视频,可以结合互动点击率CTR 和时间戳衰减,例如30天、7天做平滑的视频物料,这部分主要基于数据统计规则实现并进行展现即可,例如垫底辣孩的国风少年系列、超模系列。

但是由于热门 item召回和推荐过多其实容易导致视频马太效应,这其实不利于其他用户的视频召回展现,从而破坏了抖音短视频的丰富多态。如果热门召回占整体通路比例过大,可以考虑做一定打压,也就是在前面的权重当中降低权重系数(例如从0.5降低到0.3)。

运营标签、召回:

例如运营构建的各个类目的PCG时效榜单,例如国风美少年、光剑变装榜单召回,还有就是时下热点新闻,例如冬奥会谷爱凌视频等,这种大家喜闻乐见的视频,但是一定要注意对于时间戳的控制。

比如已经到了夏天还召回大量冬奥会谷爱凌夺冠的视频,这样就不合适了,毕竟新闻注重的就是时效性。

2.2 协同过滤召回

协同过滤(collaborative filtering)是一种在推荐系统中广泛使用的技术,最早诞生与1992年,该技术通过分析用户和用户之间或者用户和是事物之间的相似性(“协同”),通过互斥相差异的性质排除掉相斥的物料和用户(“过滤”),来预测用户可能感兴趣的物料内容并将此内容推荐给用户,核心分成两大类,一大类基于用户相似性召回的方式叫做User-CF即用户协同过滤,一种基于物料item相似性召回的方式即Item-CF物料协同过滤;

2.2.1 基于用户的协同过滤User-CF ;

给大家举个例子,用户A、B、C、D在电商平台对商品书本、计算器、显示器和衣服表达了自己的评价爱好,喜欢用1,无感用0,不喜欢用-1,纵左边为用户编号,横坐标为商品类型,基于上述用户反馈表现,我们构建出共现矩阵如下:

计算用户E和其他的用户之间相似度,可以发现用户E对商品兴趣的行向量为:

我就可以通过K邻近的方式选出相速度TopN的用户数,可以看出用户E对四个商品的偏好和B最相似,其次是C,那么接下来我将会把B、C感兴趣且没有对E进行曝光过的商品对E进行曝光,以上的逻辑其实就是User-CF的大体思路;对于User-CF计算用户之间相似度的方法有很多,有Jaccard距离、余弦相似度、欧式距离等多种。

在得到最终的TopN个用户之后,还需要对用户的评分做加权平均,计算用户用户之间相似度,以及用户i对p的评分,最终算出用户E对B、C关联的商品兴趣度,得到的排序靠前的结果即可进行召回。

2.2.2 基于物料的协同过滤Item-CF

最早是Amazon在2001年提出的理念,核心思想是基于物料之间的相似度,来构建两两物品之间的相似度矩阵,这个地方的相似度不是指代的分类与标签这种类型(如何是简单的标签就是变成前文提到的规则类召回了),而是通过多个用户对商品之间行为的相似性,来构建物料Item相似性的关系,这是Item-CF的核心思想。

这里再拿上面的内容举个例子,书本和手机被A、B、C、D都连续评价了喜欢,而手机和显示器只被A、C、D 三位用户评价了喜欢,那么通过构建物品的相似度矩阵,通过用户的正向反馈行为,就可以得到书本和手机最为相似、其次手机和显示器也比较相似,通过这样的计算思路和理念,我们也可以构建一个相似的共现矩阵。

如果用户E来到了电商平台对手机给出了好评的话,那么我们认为E对于书本、显示器也会比较感兴趣,因为书本和手机、手机和显示器比较相似度高,Item-CF核心就是构建Item物料的相似度。

构建完成TopN个相似的物品,然后通过计算物品和用户历史浏览评分的加权和得到最终的结果,对TopN个用户E可能感兴趣的商品召回回来。

总体来看,协同过滤就是通过物体与用户之间相似度关系来构建共现矩阵,然后通过距离、相似度计算的方法来构建出用户可能的兴趣点再来进行召回,详细的应用场景可以见文章结尾。

2.3 向量Embedding召回方式

向量embedding其实就是用一个低维稠密的有方向有长度的线性表示一个对象,也就是通过数学的方式来代表一个对象,这里的对象可以是一个词、一个商品,也可以是一篇新闻、一部电影,等等。

如果一本英语词典有10万个单词,那么表示十万个维度,我们转化成为低维度的稠密向量,这样就可以计算词之间的相似度了,这个模型就是embedding产生的过程,这就是word2 Vec的基本思路。经过向量化之后发现man 和 woman 这两个单词通过欧式距离计算是距离最近的,我们就可以理解为四个单词是最相近的。

同样的道理放在召回上也是一样,我们把物料和用户构建向量相似性拆分开就可以得到,在推荐系统中比较典型的几种召回方式像是i2i(item2item)召回(有Graph Embedding的i2i召回、内容语义的i2i召回)、对于u2i召回(即user2item召回方式)有经典的DSSM双塔召回、还有Youtube深度学习召回方法,在这里给大家举例DSSM双塔召回,这个是2013年微软研究发表的一篇论文。

DSSM双塔结构,两遍分别输入user特征(各种复杂特征画像:消费能力、标签喜好、在线行为等等)和广告ad特征(新闻广告投放的item词特征、图片特征以及词特征等等),经过DNN变化之后分别产出user和ad向量Embedding。

DSSM的user和ad侧是两个独立的自网络,离线产出user embedding和ad embedding 后存储在redis数据库中,在召回的时候去计算两者的余弦相似度相似度/Jaccard系数或者是欧式距离选取K邻近的TopN个广告单元id,为访问用户选择兴趣度最高的广告类型,降低用户对广告的排斥心理,这样就完成了广告推荐任务。

这里给大家推荐一下Airbnb在18年8月在KDD发表的基于用户短期兴趣和长期兴趣的Embedding召回方式,基于实际业务和数据的特点,Airbnb搭建了基于短期兴趣房源Embedding和基于长期兴趣的房源Embedding,效果非常好,大家感兴趣可以去了解一下。

三、关于对召回的总结

最后和大家做一下总结,其实上述多种召回方式都会在一个推荐系统并存,每种召回方式都有其特点和使用场景,最终在召回汇的时候多路召回权重归一化;每种召回都有特定的场景来使用。

规则类召回:更多的使用在用户在未产生数据冷启动阶段(无标签、无行为数据,模型巧妇难为无米之炊),通过规则选出TopN来让用产生一些列的平台,积累用户行为数据,这种召回方式的特点是可解释性强,但是个性化能力不足,马太效应聚集明显。

协同过滤类型:

  • 基于用户协同过滤User-CF:在新闻等流媒体平台使用较多,通过用户之间的的相似性,来推荐未看过的新闻内容,这种社交网络显示用户推荐来源,可以增加推荐内容的信服度;
  • 基于物料的协同过滤Item-CF:在电商平台使用较多,因为在电商平台上物品的数据稳定性更强不会随时更换,计算物品相似度相对来说计算复杂度更低一点;

双塔模型DSSM向量Embedding召回:相对来说应用场景就非常广了,无论是广告、自然推荐系统当中都广泛应用,读取和计算速度很,个性化能力较强推荐效果较好,缺点就是可解释性较差,交叉特征缺失,整体交叉特征发挥的效果优势比较少。

本文由 @策略产品Arthur 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 产品经理需要知道具体算法吗

    来自北京 回复
    1. 产品经理需要知道业务场景的建模由来,具体的算法建议还是作为了解,背后选择的模型类型有什么特性,入参出参为什么,实验结果如何调整,业务效果如何做实验都是策略产品需要知道的。

      来自北京 回复
  2. 这些算法的学习都可以在哪里找到渠道呀?

    来自广东 回复
    1. 可以关注作者主页联系方式交流

      来自北京 回复
  3. 策略产品交流与学习欢迎关注作者主页

    来自北京 回复