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


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

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

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


    提示:文章目录


    推荐系统的链路

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

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

    推荐系统的链路分为召回、粗排、精排、重排
    在这里插入图片描述

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

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

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

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

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

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

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

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

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

    我们一共有几亿篇笔记推荐系统电路上的第一环是召回,就是从笔记数据库中快速取回一些笔记。
    在实践中,推荐系统有很多条召回通道。
    在这里插入图片描述

    常见的包括系统过滤、双塔模型、关注的作者等等。
    在这里插入图片描述

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

    在这里插入图片描述
    排序要用机器学习模型预估用户对笔记的兴趣,保留分数最高的笔记。
    如果直接用一个大规模的神经网络逐一对千篇笔记打分,花费的代价会很大。

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

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

    所以精排模型打的分数更可靠,但是精排的计算量很大。
    这就是为什么我们先用粗排做筛选,然后才用精排,这样做可以比较好的平衡计算量和准确性。
    在这里插入图片描述

    做完粗排和精排得到几百篇笔记,每篇笔记有一个分数,表示用户对笔记的兴趣有多高,
    可以直接把笔记按照模型打的分数做排序,然后展示给用户。
    在这里插入图片描述

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

    在这里插入图片描述
    这一步叫做重排,重排主要是考虑多样性
    要根据多样性做随机抽样,从几百篇笔记中选出几十篇,
    然后还要用规则把内容相似的笔记打散

    稍后我会解释重排,重排的结果就是最终展示给用户的物品,
    比如把前80的物品展示给用户,其中包括笔记和广告。
    在这里插入图片描述

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

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

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

    神经网络的结构各种各样,这里就不展开讲了,留到后面的课程再说。
    神经网络会输出很多数值,比如点击率、点赞率、收藏率、转发率,这些数值都是神经网络对用户行为的预估。
    在这里插入图片描述
    这些数值越大,说明用户对笔记越感兴趣,
    最后把多个预估值做融合,得到最终的分数。
    比如求加权和这个分数决定了笔记会不会被展示给用户,以及笔记展示的位置是靠前还是靠后。

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

    推荐系统链路上的最后一环是重排,重排最重要的功能是多样性抽样。
    需要从几百篇笔记中选出几十篇笔记,常见的方法有MMR和DPP抽样的时候有两个依据,
    一个依据是精排分数的大小,另一个依据是多样性。
    在这里插入图片描述

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

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

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


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

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

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

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

    这几百篇笔记会带着精排,分数全都进入重排、重排会做多样性抽样,从几百篇笔记中选出几十篇。
    然后用规则打散,并且插入广告和运营内容。
    重排的规则非常复杂,有好几千行代码,
    在这里插入图片描述

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


    总结

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

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

  • 相关阅读:
    富格林:掌握鉴别阻挠虚假套路
    多测师肖sir_高级讲师_python安装和pycharm(002)
    动力小帆船制作方法简单,电动小帆船制作方法
    C++11
    《springboot那些事》
    用Postman发送xml数据
    matplotlib图表的常用设置(一)
    使用ollama,MacOS也能轻松玩转大语言模型
    SpringSecurity(二十一)--OAuth2:实现资源服务器(中)实现带有JdbcTokenStore的黑板模式
    hashmap 的重新散列和装载因子
  • 原文地址:https://blog.csdn.net/weixin_46838716/article/details/126135837