聊一聊推荐系统的召回

2 评论 10057 浏览 68 收藏 11 分钟

编辑导读:在推荐系统中,召回是从物料库中获取一小部分物料,这一小部分物料会在后续的环节被模型用来打分排序。本文作者围绕推荐系统的召回进行了策略和场景两个维度的分析,希望对你有帮助。

本文主要覆盖以下2个topic:

  1. 召回
  2. 召回策略与场景

如果你对本文有兴趣,就继续往下看吧~

一、召回

本模块主要回答以下几个问题:

  1. 召回是什么?
  2. 为什么需要召回?
  3. 工业界大家都是怎么做召回的?

1.1 召回是什么

在推荐系统中,召回是从物料库中,获取一小部分物料,这一小部分物料会在后续的环节被模型用来进行打分排序。

1.2 为什么需要召回

在真实的生产中,往往有数以亿计的item,如果直接用模型对这些item进行打分,完全不现实。所以需要召回环节。

召回环节主要数以亿计的数据中,检索出百级别的候选物品。

1.3 工业界大家都是怎么做召回的?

看几个行业case。

(微信看一看)

(爱奇艺段视频)

蜻蜓FM

(蜻蜓FM)

总结一下:多路召回是当前推荐系统的主流架构。

KNOW-WHY环节,为什么大家都要用多路召回这种架构呢?

这样的设计主要有如下考虑:

  1. 考虑用户层面:用户兴趣的多元化,用户需求与场景的多元化。例如:新闻需求,重大要闻,相关内容沉浸阅读等等
  2. 考虑系统层面:增强系统的鲁棒性;部分召回失效,其余召回队列兜底不会导致整个召回层失效;排序层失效,召回队列兜底不会导致整个推荐系统失效。
  3. 系统多样性内容分发:图文、视频、小视频;精准、试探、时效一定比例;召回目标的多元化,例如:相关性,沉浸时长,时效性,特色内容等等
  4. 可解释性推荐一部分召回是有明确推荐理由的:很好的解决产品性数据的引入;

二、召回策略与场景

本模块主要回答如下几个问题:

  1. 策略与场景的关系?
  2. 如何设置场景的策略?

2.1 策略与场景的关系

先说结论:策略是强场景相关的~!

如何validate上述结论?

用户逛首页:这个时候,用户暂时没有明确的购物意图,就是想来看看,有什么什么物品能够吸引自己的兴趣。所以这个时候的召回策略,偏兴趣试探。

用户逛详情页:比如你这个时候就想买一只奶茶色的口红,你在某只口红的详情页研究了3分钟,并且下单了,这个时候给你推荐的,肯定还是奶茶色的口红。毕竟对女人来说,一只口红是买,两只口红也是买。

2.2 如何设置场景的策略?

是否有一些可以遵循的标准步骤/思考模式可以复用?

2.2.1 第一步:看数据

原则:任何策略都需要数据的支持。

use-case:

场景:

运营同学、算法同学、还有你,大家在一起讨论是否要增加一路召回,这路召回的具体逻辑是按照用户兴趣topic进行召回。

思考逻辑:

按照兴趣topic召回具体实现逻辑梳理:即用户画像有兴趣topic字段,比如我西蓝花,我的用户画像兴趣topic字段有健身,那么可以用这一路进行召回。

数据现状梳理:经过review用户画像数据,发现99%的用户,都没有兴趣topic字段。那这样的话,就算上了这一路召回,也没有多大价值。

如果思考到这里就结束了,那我觉得还是不够,我们还需要思考,如何获得用户的兴趣topic字段。这就需要从产品设计上进行考虑~比如小红书的引导

2.2.2 第二步:看场景

原则:

  1. 推荐策略最本质的功能是参与构建使得用户沉浸其中的场景
  2. 用户带着不同的动机进入不同的场景,在用户的浏览链路中,各个场景应该满足或者引导用户的需求。具体到召回与场景,不同的场景需要不同的召回通道,或者不同的场景对同一个召回通道有所偏重。举例,app推荐首页,更侧重用户兴趣试探,展示内容比较发散,使得用户能够找到自己感兴趣的主题。用户点击推荐页进入详情页,用户的兴趣进一步明确,在该页推荐的内容应该比较收敛。因此,结合业务需求,推荐页可能需要各种不同类型的召回通道,从召回上保证多样性。详情页可能不需要那么多召回通道,同时召回上保证相关性。

use-case:

场景:美团买菜,商品详情页,用户点击“加入购物车”,底部会弹出“买了又买”模块。

策略:在该场景,买了又买模块是当前场景,给用户推荐其加购商品同一类的商品。比如用户加购冰淇淋,则推荐冰淇淋;用户买零食,则推荐零食;用户买水果,则推荐水果。

一点延伸思考,美团买菜的这个产品设计,目标是什么?

先和大家分享一个群里的故事,群里有个朋友提问:”想请教下对于用户冷启动,这些方法怎么能比较靠靠谱滴落地呢?user、item的embedding没有行为数据情况还有什么方法可以得到吗?”

我的回答分为两层:

  1. 第一,建议你梳理并讲解一下你们的业务背景;
  2. 第二,你们做这个冷启动,业务目标是什么?是提升转化率还是点击率?

明白为什么我讲这个故事了吗?产品设计与目标永远都是结伴而行,不可分割。

如果看到一个推荐场景,我们不能条件反射地去思考,这个场景的目标是什么?背后站着的产品设计者(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协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 催更,求博主赶紧更呀,不更我司业务没法跑了

    来自上海 回复
  2. 催更一下

    来自上海 回复
  3. 写的很好,受益匪浅~我也是专栏作家,希望可以互相关注,相互学习交流~

    来自上海 回复