协同过滤(cf)——usr-item和item-item介绍

一、概述:

       协同过滤(Collaborative Filtering)是利用集体智慧的一个典型方法。要理解什么是协同过滤 ,首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最近有什么好看的电影推荐,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。

协同过滤作为推荐算法中最经典的类型,其模型一般为m个物品,m个用户的数据,只有部分用户和部分数据之间是有评分数据的,其它部分评分是空白,此时我们要用已有的部分稀疏数据来预测那些空白的物品和数据之间的评分关系,找到最高评分的物品推荐给用户。 一般来说,协同过滤推荐分为两种类型:

  • 第一种是基于用户(user-based)的协同过滤;
  • 第二种是基于项目(item-based)的协同过滤;

1、user-based:

基于用户的 CF 的基本思想相当简单,基于用户对物品的偏好找到相邻邻居用户,然后将邻居用户喜欢的推荐给当前用户。计算上,就是将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度(每个用户对物品的偏好都是一个向量),找到 K 邻居后,根据邻居的相似度权重以及他们对物品的偏好,预测当前用户没有偏好的未涉及物品,计算得到一个排序的物品列表作为推荐。(根据user-item行为数据,计算user相似

下面 给出了一个例子,对于用户 A,根据用户的历史偏好,这里只计算得到一个邻居 - 用户 C,然后将用户 C 喜欢的物品 D 推荐给用户 A。

1)计算相似度方法:

欧几里德距离评价、皮尔逊相关度评价、余弦夹角...

2)user-base说明:

以上是基于用户的协同过滤算法。通常,user-base需要计算用户和用户之间的相似度关系,计算复杂度肯定会比基于基于项目的协同过滤高,但是可以帮助用户找到新类别的有惊喜的物品。但是也有一定的弊端,会造成“头部”问题严重,甚至马太效应

 User-based算法存在两个重大问题:

        1. 数据稀疏性。一个大型的电子商务推荐系统一般有非常多的物品,用户可能买的其中不到1%的物品,不同用户之间买的物品重叠性较低,导致算法无法找到一个用户的邻居,即偏好相似的用户。

        2. 算法扩展性。最近邻居算法的计算量随着用户和物品数量的增加而增加,不适合数据量大的情况使用。
 

参考:https://blog.csdn.net/yimingsilence/article/details/54934302

2、item-based:

基于物品的协同也是类似,只是将商品和用户互换(也是基于user-item的行为数据,转置成item-user,然后计算item的相似)。通过计算不同用户对不同物品的评分获得物品间的关系。基于物品间的关系对用户进行相似物品的推荐。这里的评分代表用户对商品的态度和偏好。简单来说就是如果用户A同时购买了商品1和商品2,那么说明商品1和商品2的相关度较高。当用户B也购买了商品1时,可以推断他也有购买商品2的需求。

同样,可以使用余弦夹角、欧式距离公式计算。

Iterm-based的基本思想是预先根据所有用户的历史偏好数据计算物品之间的相似性,然后把与用户喜欢的物品相类似的物品推荐给用户。在实际场景中,用户的数量往往大大超过物品的数量,同时物品的数据相对稳定,因此计算物品的相似度不但计算量较小,同时也不必频繁更新,此时item-based更优。但是对于新闻,博客或者微内容的推荐系统,情况往往是相反的,物品的数量是海量的,同时也是更新频繁的。所以单从复杂度的角度,这两个算法在不同的场景中各有优势,推荐引擎的设计者需要根据自己应用的特点选择更加合适的算法。

当然,还有一种是离线通过其他方式获取item的相似度(比如:feed流推荐中,可以根据feed的标题,离线算出feed的相似矩阵),然后通过用户喜欢的item来推荐相似的item。这种方式严格上来说不是严格定义的cf,但从广义上来将也是一种item-base的cf,即:通过uf(用户点击的feed序列)+ff(相似的feed)的方式推荐

 

总体上来看,关于推荐的多样性,有两种度量方法:

第一种度量方法是从单个用户的角度度量,查看系统给出的推荐列表是否多样,也就是要比较推荐列表中的物品之间两两的相似度。不难想到,Item CF 的多样性显然不如 User CF 的好,因为 Item CF 的推荐就是和以前看的东西最相似的。

第二种度量方法是考虑系统的多样性,也被称为覆盖率 (Coverage),它是指一个推荐系统是否能够提供给所有用户丰富的选择。在这种指标下,Item CF 的多样性要远远好于 User CF, 因为 User CF 总是倾向于推荐热门的(头部问题严重,从另一个侧面看,也就是说,Item CF 的推荐有很好的新颖性,很擅长推荐冷门的物品。所以,尽管大多数情况,Item CF 的精度略小于 User CF, 但如果考虑多样性,Item CF 却比 User CF 好很多。

无论哪种cf,他们都依靠用户的历史行为数据来计算相关度,也就是说必须要有一定的数据积累,所以都会有冷启动问题,当数据很小的时候,无法计算出结果

参考:https://blog.csdn.net/yimingsilence/article/details/54934302

https://blog.csdn.net/evillist/article/details/76269733

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赶路人儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值