一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户

一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户

提示:最近系统性地学习推荐系统的课程。我们以小红书的场景为例,讲工业界的推荐系统。
我只讲工业界实际有用的技术。说实话,工业界的技术远远领先学术界,在公开渠道看到的书、论文跟工业界的实践有很大的gap,
看书学不到推荐系统的关键技术。
看书学不到推荐系统的关键技术。
看书学不到推荐系统的关键技术。

王树森娓娓道来**《小红书的推荐系统》**
GitHub资料连接:http://wangshusen.github.io/
B站视频合集:https://space.bilibili.com/1369507485/channel/seriesdetail?sid=2249610


提示:文章目录

文章目录

  • 一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户
  • 推荐系统的链路
  • 总结


推荐系统的链路

我们继续学习推荐系统的基本概念。

这节内容是推荐系统的链路。

推荐系统的链路分为召回、粗排、精排、重排
一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户_第1张图片

这节课只是简单介绍一下,后面的课程会详细讲解每个环节。

第一步是召回,从物品数据库中快速取回一些物品,
比如小红书有上亿篇笔记,当用户刷新小红书的时候,
系统会同时调用几十条召回通道,每条召回通道取回几十到几百篇笔记,一共取回几千篇笔记。

做完召回之后,接下来要从几千篇笔记中选出用户最感兴趣的。

下一步是粗排,用规模比较小的机器学习模型,给几千篇笔记逐一打分,
按照分数做排序和截断,保留分数最高的几百篇笔记,

再下一步是精排。这里要用大规模的深度神经网络给几百篇笔记逐一打分。
精排的分数反映出用户对笔记的兴趣,在精排之后可以做阶段,也可以不做其他的操作。

我们小红说的精排不做其他阶段,所有这几百篇笔记都带着精排,分数进入重排。

重排是最后一步。这里会根据精排分数和多样性分数做随机抽样,得到几十篇笔记,
然后把相似内容打散,并且插入广告和运营内容,展示给用户。

这就是推荐系统的大致情况,下面会具体讲解这几个环节。

推荐系统的目标是从物品的数据库中选出几十个物品展示给用户。
在我们小红书的场景下,物品就是笔记。

我们一共有几亿篇笔记推荐系统电路上的第一环是召回,就是从笔记数据库中快速取回一些笔记。
在实践中,推荐系统有很多条召回通道。
一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户_第2张图片

常见的包括系统过滤、双塔模型、关注的作者等等。
一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户_第3张图片

比如小红书的推荐系统有几十条召回通道,每条召回通道取回几十到几百篇笔记,这些召回通道一共会返回几千篇笔记,
然后推荐系统会融合这些笔记,并且做去重和过滤。
过滤的意思是排除掉用户不喜欢的,作者不喜欢的,笔记不喜欢的话题,找回几千篇笔记之后,下一步是做排序。

一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户_第4张图片
排序要用机器学习模型预估用户对笔记的兴趣,保留分数最高的笔记。
如果直接用一个大规模的神经网络逐一对千篇笔记打分,花费的代价会很大。

为了解决计算量的问题,通常把排序分为粗排和精排这两步。

粗排用比较简单的模型快速给几千篇笔记打分,保留分数最高的几百篇笔记。
精排用一个较大的神经网络给几百篇笔记打分,精排模型比粗牌模型大很多,用的特征也更多,

所以精排模型打的分数更可靠,但是精排的计算量很大。
这就是为什么我们先用粗排做筛选,然后才用精排,这样做可以比较好的平衡计算量和准确性。
一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户_第5张图片

做完粗排和精排得到几百篇笔记,每篇笔记有一个分数,表示用户对笔记的兴趣有多高,
可以直接把笔记按照模型打的分数做排序,然后展示给用户。
一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户_第6张图片

但此时的结果还存在一些不足,需要做一些调整。

一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户_第7张图片
这一步叫做重排,重排主要是考虑多样性
要根据多样性做随机抽样,从几百篇笔记中选出几十篇,
然后还要用规则把内容相似的笔记打散

稍后我会解释重排,重排的结果就是最终展示给用户的物品,
比如把前80的物品展示给用户,其中包括笔记和广告。
一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户_第8张图片

我说一下,这里的数字都是我随便说的,我不太方便讲小红书真实的数字,
下面我要简要介绍一下粗排和精排的模型,粗牌和精排非常相似,
唯一的区别就是精排模型更大,用的特征更多。

模型的输入包括用户特征、候选物品的特征,还有统计特征。

假如我们想要判断小王同学是否对某篇笔记感兴趣,我们就要把笔记的特征、小王的特征,还有很多统计特征输入神经网络。

神经网络的结构各种各样,这里就不展开讲了,留到后面的课程再说。
神经网络会输出很多数值,比如点击率、点赞率、收藏率、转发率,这些数值都是神经网络对用户行为的预估。
一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户_第9张图片
这些数值越大,说明用户对笔记越感兴趣,
最后把多个预估值做融合,得到最终的分数。
比如求加权和这个分数决定了笔记会不会被展示给用户,以及笔记展示的位置是靠前还是靠后。

请注意,这只是对一篇笔记的打分粗排,要对几千篇笔记打分,精排要对几百篇笔记打分。
每篇笔记都有多个预估分数,融合成一个分数,作为你这篇笔记排序的依据。

推荐系统链路上的最后一环是重排,重排最重要的功能是多样性抽样。
需要从几百篇笔记中选出几十篇笔记,常见的方法有MMR和DPP抽样的时候有两个依据,
一个依据是精排分数的大小,另一个依据是多样性。
一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户_第10张图片

做完抽样之后,会用规则打散相似内容。
我们不能把内容过于相似的笔记排在相邻的位置上。
举个例子,根据金牌得到的分数,排前五的笔记全都是NBA的内容,这样就不太合适。
即使用户是个篮球迷,他也未必希望看到同质化的内容。

如果排第一的是NBA的笔记,那么接下来几个位置就不能放NBA的内容,相似的笔记会往后挪。

重排的另一个目的是插入广告和运营,推广的内容还要根据生态的要求调整排序,比如不能连接出很多美女图片。


okay总结一下这节内容,这节课简要介绍推荐系统的链路:

链路上的第一环是召回,我们有很多条召回通道,从上亿篇笔记中快速取回几千篇笔记作为候选集,
然后让排序决定该把哪些笔记曝光给用户,以及展示的顺序是什么,排序分为几步。

首先是粗排,用小规模的神经网络给几千篇笔记打分,选出分数最高的几百篇送入精排。
当然,这里也会用一些规则保证进入精排的笔记具有多样性。

接下来是精排,用大规模神经网络给粗排选出的几百篇笔记打分,打完分之后,不需要做排序和阶段。

这几百篇笔记会带着精排,分数全都进入重排、重排会做多样性抽样,从几百篇笔记中选出几十篇。
然后用规则打散,并且插入广告和运营内容。
重排的规则非常复杂,有好几千行代码,
一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户_第11张图片

整条链路上召回的粗排是最大的漏斗。他们让候选笔记的数量从几亿变成几千,然后变成几百。
当候选笔记只有几百篇的时候,才能用大规模的神经网络做精排,才能用DPP这样的方法做多样性抽样。
如果笔记的数量太大,就不可能用大规模神经网络和DPP。


总结

提示:如何系统地学习推荐系统,本系列文章可以帮到你

(1)找工作投简历的话,你要将招聘单位的岗位需求和你的研究方向和工作内容对应起来,这样才能契合公司招聘需求,否则它直接把简历给你挂了
(2)你到底是要进公司做推荐系统方向?还是纯cv方向?还是NLP方向?还是语音方向?还是深度学习机器学习技术中台?还是硬件?还是前端开发?后端开发?测试开发?产品?人力?行政?这些你不可能啥都会,你需要找准一个方向,自己有积累,才能去投递,否则面试官跟你聊什么呢?
(3)今日推荐系统学习经验:推荐系统的目标是从物品的数据库中选出几十个物品展示给用户,推荐系统的链路分为召回、粗排、精排、重排,为了解决计算量的问题,通常把排序分为粗排和精排这两步。

你可能感兴趣的:(个性化推荐系统,大厂人工智能技术概览,推家系统,个性化推荐,个性化兴趣建模,召回粗排精排重排,推荐系统链路)