聊一聊推荐系统的召回
编辑导读:在推荐系统中,召回是从物料库中获取一小部分物料,这一小部分物料会在后续的环节被模型用来打分排序。本文作者围绕推荐系统的召回进行了策略和场景两个维度的分析,希望对你有帮助。
本文主要覆盖以下2个topic:
- 召回
- 召回策略与场景
如果你对本文有兴趣,就继续往下看吧~
一、召回
本模块主要回答以下几个问题:
- 召回是什么?
- 为什么需要召回?
- 工业界大家都是怎么做召回的?
1.1 召回是什么
在推荐系统中,召回是从物料库中,获取一小部分物料,这一小部分物料会在后续的环节被模型用来进行打分排序。
1.2 为什么需要召回
在真实的生产中,往往有数以亿计的item,如果直接用模型对这些item进行打分,完全不现实。所以需要召回环节。
召回环节主要数以亿计的数据中,检索出百级别的候选物品。
1.3 工业界大家都是怎么做召回的?
看几个行业case。
(微信看一看)
(爱奇艺段视频)
(蜻蜓FM)
总结一下:多路召回是当前推荐系统的主流架构。
KNOW-WHY环节,为什么大家都要用多路召回这种架构呢?
这样的设计主要有如下考虑:
- 考虑用户层面:用户兴趣的多元化,用户需求与场景的多元化。例如:新闻需求,重大要闻,相关内容沉浸阅读等等
- 考虑系统层面:增强系统的鲁棒性;部分召回失效,其余召回队列兜底不会导致整个召回层失效;排序层失效,召回队列兜底不会导致整个推荐系统失效。
- 系统多样性内容分发:图文、视频、小视频;精准、试探、时效一定比例;召回目标的多元化,例如:相关性,沉浸时长,时效性,特色内容等等
- 可解释性推荐一部分召回是有明确推荐理由的:很好的解决产品性数据的引入;
二、召回策略与场景
本模块主要回答如下几个问题:
- 策略与场景的关系?
- 如何设置场景的策略?
2.1 策略与场景的关系
先说结论:策略是强场景相关的~!
如何validate上述结论?
用户逛首页:这个时候,用户暂时没有明确的购物意图,就是想来看看,有什么什么物品能够吸引自己的兴趣。所以这个时候的召回策略,偏兴趣试探。
用户逛详情页:比如你这个时候就想买一只奶茶色的口红,你在某只口红的详情页研究了3分钟,并且下单了,这个时候给你推荐的,肯定还是奶茶色的口红。毕竟对女人来说,一只口红是买,两只口红也是买。
2.2 如何设置场景的策略?
是否有一些可以遵循的标准步骤/思考模式可以复用?
2.2.1 第一步:看数据
原则:任何策略都需要数据的支持。
use-case:
场景:
运营同学、算法同学、还有你,大家在一起讨论是否要增加一路召回,这路召回的具体逻辑是按照用户兴趣topic进行召回。
思考逻辑:
按照兴趣topic召回具体实现逻辑梳理:即用户画像有兴趣topic字段,比如我西蓝花,我的用户画像兴趣topic字段有健身,那么可以用这一路进行召回。
数据现状梳理:经过review用户画像数据,发现99%的用户,都没有兴趣topic字段。那这样的话,就算上了这一路召回,也没有多大价值。
如果思考到这里就结束了,那我觉得还是不够,我们还需要思考,如何获得用户的兴趣topic字段。这就需要从产品设计上进行考虑~比如小红书的引导
2.2.2 第二步:看场景
原则:
- 推荐策略最本质的功能是参与构建使得用户沉浸其中的场景
- 用户带着不同的动机进入不同的场景,在用户的浏览链路中,各个场景应该满足或者引导用户的需求。具体到召回与场景,不同的场景需要不同的召回通道,或者不同的场景对同一个召回通道有所偏重。举例,app推荐首页,更侧重用户兴趣试探,展示内容比较发散,使得用户能够找到自己感兴趣的主题。用户点击推荐页进入详情页,用户的兴趣进一步明确,在该页推荐的内容应该比较收敛。因此,结合业务需求,推荐页可能需要各种不同类型的召回通道,从召回上保证多样性。详情页可能不需要那么多召回通道,同时召回上保证相关性。
use-case:
场景:美团买菜,商品详情页,用户点击“加入购物车”,底部会弹出“买了又买”模块。
策略:在该场景,买了又买模块是当前场景,给用户推荐其加购商品同一类的商品。比如用户加购冰淇淋,则推荐冰淇淋;用户买零食,则推荐零食;用户买水果,则推荐水果。
一点延伸思考,美团买菜的这个产品设计,目标是什么?
先和大家分享一个群里的故事,群里有个朋友提问:”想请教下对于用户冷启动,这些方法怎么能比较靠靠谱滴落地呢?user、item的embedding没有行为数据情况还有什么方法可以得到吗?”
我的回答分为两层:
- 第一,建议你梳理并讲解一下你们的业务背景;
- 第二,你们做这个冷启动,业务目标是什么?是提升转化率还是点击率?
明白为什么我讲这个故事了吗?产品设计与目标永远都是结伴而行,不可分割。
如果看到一个推荐场景,我们不能条件反射地去思考,这个场景的目标是什么?背后站着的产品设计者(creator)是如何构建他所期望让用户沉浸其中的场景?也就是KNOW WHY 和KNOW HOW。那我们就应该强制自己这样思考。
回到美团买菜这个case本身。
- KNOW-WHY。该场景目标是什么?让用户购买更多的商品,提升的是GMV。
- KNOW-HOW。creator如何构建这个该场景?用户在详情页,加购某一商品,这个时候用户的兴趣意图是非常明确的。比如用户买钟薛高的冰淇淋,那么用户的意图可以分为:第一,用户希望买冰淇淋;第二,用户希望买钟薛高的冰淇淋。那么这个时候可以给用户推荐符合这两种条件的冰淇淋。
一点题外话:总会看到有人讨论推荐产品经理的价值,在推荐这整个系统中,主导的是算法,那策略产品的价值是什么。我的理解是,策略产品很大一部分价值就是在挖掘场景,构建场景。像用户加购商品后的买了又买模块,就是一个非常好的场景。
美团买菜这个场景的构建是蛮好的~既然有好的case,就必须说一个我觉得很差的case,没有对比哪能知道孰好孰坏
这是7fresh的一个加购页面,给我推荐了油麦菜和鲈鱼。我是7fresh的忠实用户,消费频率高,一周3-4次的购买行为。主要集中在:零食、饮料、化妆品、护肤品等模块。我从来不做饭不做菜,所以我真的没有理解为什么要推荐这个。
2.2.3 第三步:多路召回,冗余过滤
原则:审视多路召回,冗余过滤。同一个场景可能会筛选出多路召回,各路召回尽量不要冗余。如果两路召回拉取的帖子属性非常相近,那么这两路召回冗余性较大,其中一路召回可以去掉。
use-case:这个暂时没有use-case,主要考虑是如果两路召回,其分别召回的内容差不多,效用不大,还新增了需要去重,不划算。
最后,如果你觉得本篇文章对你有帮助~记得收藏并且关注我哦~
#专栏作家#
一颗西兰花,人人都是产品经理专栏作家。关注AI产业与写作工具,擅长数据分析,产品研发管理。
本文原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议
催更,求博主赶紧更呀,不更我司业务没法跑了
催更一下
写的很好,受益匪浅~我也是专栏作家,希望可以互相关注,相互学习交流~