继上一次发原创到现在已经有相当一段时间了,刚进入新公司不久,主要在熟悉业务和整理规划,加上目前负责搜索和推荐两块业务,较之前稍微忙些,所以属于比较低产的状态,当然马云大大说了:“优秀的人大多都是从自己身上找问题”,为了赶上优秀人群的脚步,我也好好反省自己,重要的事情心中默念三遍:是我太懒了!是我太懒了!是我太懒了!
好了,言归正传~
今天主要跟大家聊聊推荐系统,可能有部分同学不是很了解推荐系统到底是如何推荐的,不用担心,先给大家介绍几个推荐系统的应用场景
(1)购物类app:首页底部“为您推荐/猜您喜欢”
场景:用户打开首页浏览时,用户在没有具体目的逛(有具体目的一般通过搜索分发了),这时给用户进行推荐,用户在逛的过程中发现和自己兴趣可能相关的物品,可以直接进行查看;从展示层面来看,推荐的是商品,用户看到喜欢的商品可以直接点击进入到详情页,极大缩短用户购买路径(相对于卖场入口来说)
(2)购物类app:购物车底部“为您推荐/猜您喜欢”
场景:用户进入到购物车后,准备下单或只是查看购物车(先看到想买的先收入到购物车,然后最后结账之间的这段时间中会偶尔进来看看),这时底部的推荐则是推荐和购物车里商品相关的商品或者用户有较大可能购买的商品
此处敲黑板(重点):
首页的推荐和购物车里的推荐商品看似形式一样,但是这两处的场景细分后会发现很不一样
首页需要对用户行为进行更大范围的推荐,用户在首页的目的可能是多种多样,所以用户的浏览、收藏、搜索查看等都可以作为用户的行为特征,进而进行推荐
购物车页,用户在查看时,目的会更清晰些,带有下单或者查看购物车物品等目的,这时推荐如果范围过粗则可能增加用户的浏览成本,效率过低,故这里可以针对一些用户类似购买或下单的行为进行推荐,如购买、复购次数高(当然复购是有些条件和细分,这个在以后的文章再进行详细描述),同时也可以从另一个角度进行推荐,如和购物车相关的商品
(3)内容类app:知乎首页推荐
场景:用户在首页浏览内容,需要更符合用户兴趣点的内容,减少无关内容的曝光
知乎app首页默认打开现实“推荐”,而不是“关注”等其他tab,说明从平台角度来说,认为推荐要比关注等其他tab更加重要,那么如何衡量重要这个角度呢,可能有以下几点:
触达:平台可以在“推荐”中非常自然的发表平台想让用户看到的内容(如图中第一条内容(没有特别明显特征):《2018,年度盘点》),而其他tab中平台触达则不是这么自然
自信:平台有自信,相信推荐的内容要比用户关注的内容更符合用户的兴趣点,“关注”下的内容不像“推荐”下具有多重维度的商品召回、筛选、过滤以及排序,而“推荐”下的内容则是基于对用户数据的分析,做到比你更懂你
多样:推荐的角度更加多样,在保证内容相关性的基础上,可以做到更加多样,更加新颖
(4)内容类app:推荐关注人
场景:人类是具有社会社交属性的生物,人类之间的彼此的关联关系是社会中最重要的关系之一,你关注的一个话题或者内容,和你关注同一个话题或内容的人和有可能和你最近关注的领域具有一定的重合,或者你朋友认识的人很有可能是你认识的人等等
(5)视频类app:抖音推荐
场景:用户打开应用户,直接看到推荐内容,同时提供非常简单的操作,降低用户对视频反馈成本,同时降低用户注意力分散,让用户打开后不用选择,直接看到内容,提升沉浸式体验,这里推荐也从多个角度进行推荐,地理位置(可能通过地理标签形式实现,如喜欢过的一个视频具有典型的地区特征,那么会推送和该地区相关的其他内容),兴趣点(如点赞,分享等),热点内容(火爆)等等
说完了场景,是不是感觉到其实我们和推荐系统并不遥远,甚至天天接触,那么我们再来讲讲推荐引擎的架构,来看看推荐系统是如何给用户进行推荐的(如下图)
推荐引擎构成主要由四部分构成(书上是三部分,自己扩充了一些),如图所示(左侧为召回&打分,右侧为排序&Rerank):
召回:从所有物品集中选择出符合要求的物品集,明确物品界限
打分:对召回的物品集从各角度(多维度)进行评判打分,多维度赋予不同的权重,给物品打上不同的分数
排序:对打分了的物品进行排序,根据分数高低进行排序,输出初始的推荐结果
Rerank:根据用户的反馈(如收藏、喜欢等)以及物品的属性(如新品等)对物品再进行一轮分数加成,最后得到新的得分,根据新的得分进行排序,输出最终的推荐结果
图中对应了四部分(ABCD)
A:用户特征提取
对用户行为进行分析提取,选取用户行为中最能代表用户意图的行为,搭建特征工程,用户的特征不是一尘不变的,需要定期更新和维护,用户行为具有
(1)行为重复性(如多次购买,多次分享等)
(2)时间递减性(近期浏览比早期浏览更能代表用户近期关注点)
(3)行为程度性(购买比浏览要更重要)
(4)行为多样性(用户行为非常多,如何选择是决定推荐效果的关键因素)
B:特征-物品关联构造
用户对应的特征提取后,形成特征向量,接下来就是构造特征相关的物品列表
用户对应的不同行为,产生了一系列行为物品集(一个行为对应的物品,如浏览这个行为,对应的物品集就是浏览了哪些商品),这就是相关表
图中的“候选物品集”即一开始确定的物品边界(如推荐商品必须是可购买的,不能是下架或者无货状态的)
在候选物品集基础上,结合用户特征向量和相关表数据,确定好特征物品-相关推荐物品集,同时给物品按照特征对物品影响的重要程度来对物品打分
C:排序
针对打分好的物品按照得分高低进行排序,得到初始的推荐结果
D:Rerank
根据用户对物品的反馈(如收藏、喜欢、不感兴趣、退货等)和物品的属性(物品所在地区、物品上线时间、是否是耐用品等)给初始的推荐结果进行再一轮的分数加成(如用户评价五星的商品,给该物品的分数提权加分),最后得到最新得分结果,按照得分高低,得到最终的推荐结果
随着用户需求更加多样化,更加个性化,传统推荐(千人一面/千人十面)逐步转型成个性化推荐(千人千面),凭借对数据的分析,用户行为特征提取,特征-物品的关联,再根据用户反馈等来确定最后的推荐结果