美文网首页数据乐园@IT·互联网
协同过滤-相似物品推荐

协同过滤-相似物品推荐

作者: 凌红 | 来源:发表于2017-05-25 16:09 被阅读0次

问题背景

当用户在浏览商品详情页的时候,从行为上分析,意味着用户对这个款式和类型的商品感有兴趣,如何准确推荐这些用户感兴趣的商品成了一大问题,在其他电商平台中,经常会有“浏览此商品的顾客也同时浏览”或者“看了又看”的推荐商品场景,如下图Amazon的Customers who bought this item also bought,给顾客推荐“浏览过这个商品的顾客们所买的商品”。那么是怎么进行的呢?

浏览过这个商品的顾客们所买的商品.png

问题分析

根据网上找到的相关资料,这个方式为基于物品的协同过滤算法,通过分析的用户行为数据,计算物品之间的相似度,预测用户喜欢的商品,推荐给用户。

原理-基于物品的协同过滤

协同过滤算法分为以下两类

  • 基于用户的协同过滤算法(user-based collaboratIve filtering)

  • 基于物品的协同过滤算法(item-based collaborative filtering)

简单的说就是:人以类聚,物以群分。这里主要介绍基于物品的协同过滤算法。

基于物品的协同过滤算法,用于计算商品之间的相似度,即对商品 aa 有过行为的用户还对哪些商品有过行为。这里的行为可以是CLICK、FAV、CART和ORDER,代表用户对商品的态度和偏好。如果对商品 aa 有过行为的用户中大部分还对商品 bb 有过行为,则认为商品 aa 和商品 bb 比较相似。

基于物品的协同过滤.png

算法

以商品 aa 和商品 bb 为例,如何计算商品之间的相似度呢:

我们使用下面的公式定义物品的相似度:

其中,|N(i)|是喜欢物品i的用户数,|N(j)|是喜欢物品j的用户数,|N(i)&N(j)|是同时喜欢物品i和物品j的用户数。

从上面的定义看出,在协同过滤中两个物品产生相似度是因为它们共同被很多用户喜欢,两个物品相似度越高,说明这两个物品共同被很多人喜欢。

这里面蕴含着一个假设:就是假设每个用户的兴趣都局限在某几个方面,因此如果两个物品属于一个用户的兴趣列表,那么这两个物品可能就属于有限的几个领域,而如果两个物品属于很多用户的兴趣列表,那么它们就可能属于同一个领域,因而有很大的相似度。

举例,用户A对物品a、b、d有过行为,用户B对物品b、c、e有过行为,等等;

依此构建用户——物品倒排表:物品a被用户A、E有过行为,等等;

建立物品相似度矩阵C:

image.png

其中,C[i][j]记录了同时喜欢物品i和物品j的用户数,这样我们就可以得到物品之间的相似度矩阵W。

那个上面得出来公式应该是

也许到这里会有疑问,怎么跟第一条的公式不一样?

之所会这样,是因为考虑到下面几种情况,加入了相关的优化:

1.如果物品J很热门,很多人喜欢,那么第二条公式中的Wij就会无限接近于1。因此,为了避免推荐出热门的物品,需要对物品J的权重进行惩罚:

第一次公式优化

2.如果一个用户,他是做代理商的,在网站上浏览了很多商品,也进行了加入购物车行为,那么这个用户在系统中就产生了很多的相似度,但是实际上这个用户并不是真的感兴趣,真正的贡献度并不如一个普通用户。因此应该增加IUF参数来修正物品相似度的计算公式:

第二次公式优化

3.特殊用户的行为不纳入计算商品相似度的数据集范围中;

4.对于用户行为稀少的新商品,在上述基于物品的协同过滤算法中被过滤掉了,因此,在最终的推荐结果中不会出现这些商品。

5.行为的权重,不同的行为在计算相似度的时候,权重分配应该不一样;

相关文章

  • 协同过滤-相似物品推荐

    问题背景 当用户在浏览商品详情页的时候,从行为上分析,意味着用户对这个款式和类型的商品感有兴趣,如何准确推荐这些用...

  • 基于物品的协同过滤算法的Python实现!

    目录 一. 基于物品的协同过滤 二. 物品相似度计算与实现 三. ICF 的推荐实现 四. 总结一下 五. 练习 ...

  • 基于物品的协同过滤算法的Python实现

    作者:冯向博微信:supermvn介绍:推荐系统学习整理 目录 一. 基于物品的协同过滤二. 物品相似度计算与实现...

  • 两种基于邻域的推荐算法

    推荐系统的基本算法:基于邻域的推荐(基于用户的协同过滤、基于物品的协同过滤) http://www.jianshu...

  • 两小时搭建一个推荐系统

    目前的推荐系统大都有基于物品相似度的推荐策略、基于协同过滤的推荐策略,大多数大型的推荐系统会有若干种推荐策略,最后...

  • 推荐系统

    主流的推荐算法协同过滤、隐语义模型、关联规则;基于人口统计学的推荐、基于物品内容的推荐 一、协同过滤二、隐语义模型...

  • Mahout | 协同过滤算法

    协同过滤 基于用户的协同过滤,和基于物品的协同过滤Item CF适用于电子商务网站的推荐系统User CF适用于新...

  • 2018-09-25——基于物品的协同过滤算法

    基于物品的协同过滤算法主要分为两步。 (1) 计算物品之间的相似度。 (2) 根据物品的相似度和用户的历史行为给用...

  • 协同过滤算法(UserCF + ItemCF)

    最近在看《推荐系统实践》这本书,对于其中 2.4.1 基于用户的协同过滤算法和 2.4.2 基于物品的协同过滤算法...

  • 基于用户的协同过滤和皮尔逊相关系数

    基于用户的协同过滤和皮尔逊相关系数 概念: 基于用户的协同过滤算法:就是把和你相似的用户喜欢的东西推荐给你。 协同...

网友评论

    本文标题:协同过滤-相似物品推荐

    本文链接:https://www.haomeiwen.com/subject/zuedxxtx.html