提示:最近系统性地学习推荐系统的课程。我们以小红书的场景为例,讲工业界的推荐系统。
我只讲工业界实际有用的技术。说实话,工业界的技术远远领先学术界,在公开渠道看到的书、论文跟工业界的实践有很大的gap,
看书学不到推荐系统的关键技术。
看书学不到推荐系统的关键技术。
看书学不到推荐系统的关键技术。
王树森娓娓道来**《小红书的推荐系统》**
GitHub资料连接:http://wangshusen.github.io/
B站视频合集:https://space.bilibili.com/1369507485/channel/seriesdetail?sid=2249610
基础知识:
【1】一文看懂推荐系统:概要01:推荐系统的基本概念
【2】一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户
【3】一文看懂推荐系统:召回01:基于物品的协同过滤(ItemCF),item-based Collaboration Filter的核心思想与推荐过程
【4】一文看懂推荐系统:召回02:Swing 模型,和itemCF很相似,区别在于计算相似度的方法不一样
【5】一文看懂推荐系统:召回03:基于用户的协同过滤(UserCF),要计算用户之间的相似度
【6】一文看懂推荐系统:召回04:离散特征处理,one-hot编码和embedding特征嵌入
【7】一文看懂推荐系统:召回05:矩阵补充、最近邻查找,工业界基本不用了,但是有助于理解双塔模型
【8】一文看懂推荐系统:召回06:双塔模型——模型结构、训练方法,召回模型是后期融合特征,排序模型是前期融合特征
【9】一文看懂推荐系统:召回07:双塔模型——正负样本的选择,召回的目的是区分感兴趣和不感兴趣的,精排是区分感兴趣和非常感兴趣的
【10】一文看懂推荐系统:召回08:双塔模型——线上服务需要离线存物品向量、模型更新分为全量更新和增量更新
【11】一文看懂推荐系统:召回09:地理位置召回、作者召回、缓存召回
【12】一文看懂推荐系统:排序01:多目标模型
【13】一文看懂推荐系统:排序02:Multi-gate Mixture-of-Experts (MMoE)
【14】一文看懂推荐系统:排序03:预估分数融合
【15】一文看懂推荐系统:排序04:视频播放建模
【16】一文看懂推荐系统:排序05:排序模型的特征
【17】一文看懂推荐系统:排序06:粗排三塔模型,性能介于双塔模型和精排模型之间
【18】一文看懂推荐系统:特征交叉01:Factorized Machine (FM) 因式分解机
提示:文章目录
从这节开始,我研究物品冷启动问题,
如果冷启做的好,对整个推荐系统的帮助都很大,
但是冷启是推荐系统中最困难最复杂的一环,很难做好。
整个推荐系统都很容易达到天花板,但是很少有UGC品牌能让冷启达到天花板。
我举几个例子解释什么叫做物品冷启动,
小红书让用户发布新的笔记,
B站用户上传新的视频,
今日头条上作者发布新的文章,这都属于物品冷启动,
我们主要考虑UGC的冷启动问题
UGC全称是user generate content,内容都是**用户(user generate的)自己上传的小红书、B站油管,知乎都属于UGC,
跟UGC相对的是pgc:platform generate content,像Netflix Disney plus,腾讯视频这些都属于PGC,主要内容是平台(platform generate的)**采购的
UGC比PGC的问题更难。
这是因为用户自己上传的内容良莠不齐,而且量很大,很难用人工去评判,很难让运营人员做流量调控。
我只介绍UGC的问题该怎么做,因为我们小红书自己就是UGC平台。
在开始这节内容之前,大家思考一个问题,为什么要特殊对待新笔记?
能不能像对待老笔记一样,用完全相同的练习和评价体系?
当然是不能的,否则我也没有必要单独讲冷启动了。
特殊对待新笔记的原因是这样的。
新笔记刚刚发布,缺少与用户的交互,也就是说很难根据用户的行为做推荐,这会导致推荐的难度大,效果差。
如果用正常的推荐链路,新笔记很难得到曝光,即使得到曝光,效果也不好,消费指标会很差。
特殊对待新笔记的另一个原因是促进发布,大量的实验都表明,扶持新发布、低曝光的笔记可以增强作者的发布意愿。
出现首次曝光和交互的时间越快,越有利于作者的积极性,新笔记获得的曝光越多,也有利于作者的积极性。
你想想看,假如你在小红书上发了几篇笔记都没人看,你还愿意继续发布吗?
反过来,如果你的笔记刚发布一小时,就获得不少的点赞、评论,尤其是友好的评论,你会有更强的发布意愿。
出于这些原因,我们要特殊对待新发布的笔记,再对新笔记的推荐做特殊的优化。
我们优化冷启动想要达成什么样的目标?
其实工业界对此是有共识的,冷启首先要做到精准推荐,
尽管冷启不好做,召回和排序都有很多困难,但还是要尽量把推荐做准,把新物品推荐给合适的用户,至少不能引起用户的反感。
第二个目标是激励发布,做法就是把流量向新笔记倾斜,让新笔记获得更多的曝光机会。
这样会激励作者的发布积极性,丰富我们的内容池,
特别是扶持低曝光的新笔记,对激励作者发布最有用道理。
很显然,一篇笔记已有了1万次曝光,你给他更多流量,让他曝光涨到2万,但这几乎不会提升作者的发布意愿,
但如果是低曝光的笔记,把曝光从20增长到100,会对作者的发布积极性有很大的帮助。【人性就是喜欢增量,但不喜欢存量】
第三个目标是挖掘高潜,一直是从大量的新笔记中找到质量高的。
也就是有较大希望成为热门的,为了找到高质量的笔记,需要在发布的书籍给每天笔记一些曝光机会
做到雨露均沾,通过一两百次的试探曝光,挖掘出潜在受欢迎的笔记,给予更多的流量倾斜,让高质量的笔记成长为热门。
这节的主要内容是冷启动的评价指标,我先把评价指标列在这里。
稍后再逐一解释。
作者侧指标反映出用户的发布意愿,通常用发布渗透率、人均发布量来衡量。
对低曝光的笔记,扶持的越好,作者测指标就越高。
用户侧指标反映出推荐是否精准,是否会引起用户反感。
用户侧指标分为两类,
一类是新笔记自身的消费指标,包括新笔记的点击率、交互率,如果新笔记的推荐比较准,这些指标会比较好看,
另一类用户侧指标是大盘,包括用户的消费时长、日活月活。
做冷启动目标不是促进消费指标增长,但冷启的策略也不能显著伤害消费指标,应该尽量让消费指标持平
还有内容侧指标,比如高热笔记占比,
高热笔记可以定义为30天内点击超过1000的笔记,这种指标反映出冷启是否能挖掘出优质笔记,帮助优质笔记成长为热门。
下面我会挨个讲这三类评价指标,
作者侧和用户侧指标是工业界通用的技术比较好,大厂都会用的指标,
内容侧指标只有少数几家在用。
至于我们小红书用了没有,我不方便透露。
先来看作者侧指标,在小红书的场景下,所有的用户都能发笔记,
也就是说用户可以成为作者,作者的发布渗透率可以衡量作者的发布积极性。
渗透率等于当日发布人数除以日活人数,
也就是说在某一天,用户成为作者的比例就等于渗透率。
在某一天,一个用户只要发布一篇笔记,就算一个发布人数,
但不论他这一天是发一篇,还是发十篇,他都只算一个发布人数。
我举个例子,这里的数据都是我随便写的,不是小红书的真实数据。
假设今天的发布人数是100万,今天的日活人数是两千万,
也就是说今天有两千万用户使用了小红书,其中100万用户发布了新笔记,
那么今天的发布渗透率就等于100万除以两千万等于5%,
或者它的另一个指标是人均发布量,定义是当日发布的笔记数除以日活人数。
举个例子,假设今天发布的新笔记数是200万。今天的日活人数是两千万,
那么,人均发布量就是200万除以两千万等于0.1=10%
人均发布量这个数比渗透率要大一些。
这是因为一些作者一天会发好几篇笔记,一个作者今天发一篇或者是发十篇,不影响发布渗透率,
但是会影响人均发布量。
刚才讲了两个指标:发布渗透率和人均发布量
这两个指标反映出作者的发布积极性。
我们优化新笔记冷启动最重要的目标就是提高作者的积极性,促进发布,
这样可以增大内容时对小红书的健康发展非常有用。
根据我们的实验,我们发现新笔记获得的曝光越多,首次曝光和交互出现的越早,作者的发布积极性就越高。
所以我们要把流量向新笔记倾斜,让新笔记获得更多的曝光,同时也要优化新笔记的链路。
让新笔记出现曝光和交互尽量快,比如把首次曝光时间从五分钟降低到半分钟。
刚才讨论了两个作者侧指标,下面我们讨论用户侧指标,
一类用户测指标是新笔记的消费指标,也就是说只看新笔记的消费,不看老笔记。
如果新笔记的推荐做的精准,符合用户兴趣,那么新笔记的消费指标会比较好。
我们可以考察新笔记的点击率和交互率。
如果新笔记符合用户兴趣,那么消费指标会得到改善。
但你看全体新笔记的消费指标是不够的,不能反映出真实的推荐效果。
推荐系统往往存在严重的头部效应,曝光的基尼系数很大,
这说明少量的新笔记占据了绝大部分的曝光。
这导致新笔记的整体消费指标主要取决于少量头部的新笔记,
整体的消费指标不能反映出大部分新笔记的情况,
假如绝大部分新笔记都推不准,但是头部新笔记推的特别准,那么整体的消费指标也会很好,
所以,最好是把高曝光和低曝光新笔记分开,分别考察两者的消费指标,
比如可以设置1000次曝光作用时区分高曝光和低曝光,
高曝光的笔记有充足的用户交互记录,即使不用冷启动技术做特殊处理,推荐也能做的准。
我们更应该关注低曝光的新笔记,提升低曝光新笔记的点击率和成功率。
一方面是因为低曝光的新笔记占比很高,
绝大部分的新笔记都是低曝光,而高曝光的新笔记的占比是很低的,
另一方面是低曝光的新笔记的推荐不容易,做好低曝光笔记的用户交互信息很少,推荐不够准,
需要设计专门的技术处理低曝光新笔记。
刚才讲了新笔记的消费指标,另一类用户做指标是大盘的消费指标。
也就是说,不区分新笔记和老笔记,
做新笔记推荐的实验的时候,要看大盘的指标,包括消费时长、日活和月活的用户数量。
我们优化等级的时候,目标不是提升大盘的指标,
而是要确保新的策略不会显著伤害大盘的指标。
新笔记推荐有跷跷板效应,如果大力扶持低曝光的新笔记,给低曝光的新笔记更多的曝光。
那么可以激励作者发布,让作者册的发布指标变好,
但这样会损害用户体验,让大盘消费指标变差。
原因是这样的,低曝光笔记缺少用户交互推荐做的不准,
如果增加低曝光笔记的推荐,那么用户的体验会下降,造成消费时长、日活月活的降低。
所以我们做新笔记实验的时候,要考察大盘的消费指标,
希望大盘的消费指标能够基本持平,确保新笔记的策略不会伤害用户的体验。
刚才讲了作者测的发布指标和用户测的消费指标,
我们做实验的时候必须看这两类指标,
还有一类叫做内容侧指标,有的大厂会考察这类指标,
内容侧指标主要是高热笔记占比。
在小红书的场景下,高热笔记可以定义为30天内获得1000次点击的笔记。【尴尬,尴尬不是说了保密吗?其实小红书就是用了哈哈哈哈】
高热笔记通常是质量高、受用户欢迎的笔记,
高热笔记的占比越高越好,高热笔记占比高,说明冷启阶段挖掘优质笔记的能力强,让优质笔记能成长起来。
最后总结一下这节的内容,
我介绍冷启动的评价指标分为作者侧指标,用户侧指标和内容侧指标,
而普通笔记的推荐通常只考察用户侧指标,而不看其他两个指标。
很显然,冷启的评价体系比普通笔记要复杂很多,
这节介绍了物品冷启动的基础知识和评价指标,
具体的技术留到后面几节
讲冷启动主要有两方面的技术,一个是优化推荐全链路,包括召回和排序,
每一个环节都针对新笔记做优化,让新笔记有足够多的机会走完链路被曝光,
还要尽量让新笔记的推荐做的准,不要引起用户的反感,
做冷启动,另一方面的技术是流量调控,也就是流量怎么在新笔记和老笔记之间分配。
我们小红书跟工业界标准的做法是一样的,我们让流量向新笔记倾斜,帮助新笔记获得更多的曝光机会。
我自己做过冷启动,对这块很熟,后面几节,我给大家多讲讲冷启的技术,
当然我只能讲工业界半公开的技术,我不会讲我们小红书自己的核心技术,道理你懂的
提示:如何系统地学习推荐系统,本系列文章可以帮到你
(1)找工作投简历的话,你要将招聘单位的岗位需求和你的研究方向和工作内容对应起来,这样才能契合公司招聘需求,否则它直接把简历给你挂了
(2)你到底是要进公司做推荐系统方向?还是纯cv方向?还是NLP方向?还是语音方向?还是深度学习机器学习技术中台?还是硬件?还是前端开发?后端开发?测试开发?产品?人力?行政?这些你不可能啥都会,你需要找准一个方向,自己有积累,才能去投递,否则面试官跟你聊什么呢?
(3)今日推荐系统学习经验:我介绍冷启动的评价指标分为作者侧指标,用户侧指标和内容侧指标,