数据中台(二):两种经典的推荐算法

所谓“物以类聚,人以群分”,基于用户的协同过滤算法就是基于这个原理来实现的。你可能听过“啤酒与尿不湿”的故事:通过对一家超市的销售数据分析发现,有很多人在购买啤酒的同时又购买了尿不湿,这就是基于物品的协同过滤算法的案例。读完本文你可以了解这两种算法的原理,并学会如何实现这两种算法。

数据中台(二):两种经典的推荐算法

1、基于用户的协同过滤算法

我们在生活中如何找到自己喜欢的商品呢?比如你想买一件衬衫,可能会看一下或者问一下周围的朋友都穿什么样的衬衫,在朋友的影响下,你有很大概率会到线上网店或者线下实体店中看一下这件衬衫。在推荐系统中,这就是一种向用户推荐感兴趣商品的方法,叫基于用户的协同过滤算法。

根据这个思路,我们可以看出基于用户的协同过滤算法主要分为2个步骤。

(1)找到和目标用户兴趣相似的用户。

这一步的关键是找到和目标用户相似的用户。我们看一下,在电商产品中如何通过用户的数据找到和目标用户相似的用户。

比如用户的下单数据为:①用户A下单购买了商品a、b、c;②用户B下单购买了商品a;③用户C下单购买了商品a、b。

通过这个简单的例子,我们可以看出,A和C的相似度显然高于A和B的相似度,因为A和C同时购买了商品a、b,而A和B仅仅同时购买了商品a。

那么如何通过算法计算用户A、B、C之间的相似度呢?这里可以引入余弦相似度公式。

数据中台(二):两种经典的推荐算法

通过计算公式也可以算出来,相比A和B来说,A和C是更加相似的。

(2)找相似用户喜欢的商品且目标用户没有买过的商品,将之推荐给目标用户。

这一步主要解决用户喜欢哪些商品的问题。如何确定用户喜欢哪些商品呢?可以通过给用户行为打分的方式来解决,比如用户浏览了某个商品就加1分,用户收藏了某个商品就加3分,用户加购了某个商品就加5分,用户下单了某个商品就加7分,这样给所有产生过用户行为的商品都打分,获得最高分的商品就是该用户最喜欢的,而对于得分低的商品来说,该用户大概率不怎么喜欢。

基于用户的协同过滤算法需要注意以下几个问题。

(1)用户数量如果比较多,则计算起来非常吃力,有可能成为计算任务的瓶颈。

(2)用户兴趣的变化还是很快的,但是算法很难反映出用户兴趣的变化。

2、基于物品的协同过滤算法

接下来我们介绍一下基于物品的协同过滤算法。如图1-8所示,假设有3个用户和4种水果商品(分别是橘子、草莓、苹果和香蕉)。从图中,我们可以看到,用户3购买过苹果,那么请分析下,在其他3种水果——橘子、草莓和香蕉之中,用户3可能最喜欢哪个?

数据中台(二):两种经典的推荐算法

图11-8 基于物品的协同过滤算法案例

我们希望向用户3推荐的物品应该是跟他已经购买的苹果相似的物品,那么什么物品和苹果相似呢?我们可以这样思考,什么物品,在用户购买苹果的同时,被用户购买的次数是最多的呢?

先看香蕉。香蕉是否曾和苹果一起被购买?从图中可以看到,用户1同时购买了橘子、苹果和香蕉,苹果和香蕉被同时购买,所以香蕉可以得1分,即它和苹果的相似度为1。

再看草莓。从图中可以看到,没有任何用户同时购买草莓和苹果,所以草莓得0分,即它和苹果的相似度为0。

再看橘子。用户1同时购买橘子、苹果和香蕉,苹果和橘子被同时购买;用户2也同时购买了苹果和橘子。所以橘子得2分,即它和苹果的相似度为2。

比较这三种水果与苹果的相似度得分,我们可以得出结论,橘子是跟苹果最相似的,那么根据协同过滤算法的原理,我们就可以向用户3推荐橘子。

根据这个思路,可以总结基于物品的协同过滤算法主要分为以下3个步骤。

(1)找到目标用户曾经可能喜欢的商品。

(2)计算物品的相似度。

(3)将相似度最高的商品推荐给用户。

和基于用户的协同过滤算法不同,基于物品的协同过滤算法首先计算相似的物品,然后再根据用户购买过、或者正在购买的物品为用户推荐相似的物品。

对比基于用户的协同过滤算法,基于物品的协同过滤算法的优势有如下几点。

(1)可以推荐的物品数量往往少于用户数量,所以计算物品之间的相似度一般不会成为计算瓶颈。

(2)物品之间的相似度变化比较缓慢,它们变化的速度没有用户兴趣变化的速度快。

(3)物品对应的消费者数量较大,对于计算物品之间的相似度的稀疏度好过计算用户之间相似度。

业界动态

快手做二手:“老铁”成打开二手电商的财富密码?

2021-4-2 13:34:10

业界动态

美团如何利用智能设计帮助商家运营?

2021-4-2 13:56:40

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索