协同过滤的缺点是
热点相关内容 往往变成了 其他同期出现的热点内容 .
先划分类别(比如SVD),再计算相关,效果往往更好.
1. CF算法(Collaborative Filtering)
http://en.wikipedia.org/wiki/Collaborative_filtering
转载:
协同过滤技术可以分为三类:
基于用户(User-based)的协同过滤
基于项目(Item-based)的协同过滤
基于模型(Model- based)的协同过滤
User-based
http://www.guwendong.cn/post/2006/user_based_collaborative_filtering.html
转载:
步骤一,收集可以代表用户兴趣的信息。
步骤二,最近邻搜索
步骤三,生成推荐结果。
Item-based
http://www.guwendong.cn/post/2006/item_based_collaborative_filtering.html
转载:
Item-based 方法需要同样的三个步骤:
1)得到User-item的评分数据;
2)针对项的最近邻搜索,即对项进行相似度计算
3)产生推荐
相对于 User-based 方法,Item-based 方法最大的改进是提高了协同过滤方法的扩展性及性能。
从上一篇中可以看到,在 User-based 方法中,随着用户数量的不断增多,在大数量级的用户范围内进行“最近邻搜索”会成为整个算法的瓶颈。
Item-based 方法通过计算项之间的相似性来代替用户之间的相似性。对于项来讲,它们之间的相似性要稳定很多,因此可以离线完成工作量最大的相似性计算步骤,从而大大降低了在线计算量,提高推荐效率。
在 Item-based 方法中,要对 A 和 B 进行项相似性计算,通常分为两步:
1)找出同时对 A 和 B 打过分的组合;
2)对这些组合进行相似度计算,常用的算法包括:
皮尔森相关系数(Person Correlation Coefficient)
余弦相似性(Cosine-based Similarity)
调整余弦相似性(Adjusted Cosine Similarity)
http://www.cnblogs.com/kuber/archive/2008/06/10/1216846.html
Slope One :简单高效的协同过滤算法(Collaborative Filtering)
转载:
Slope One;和其它类似算法相比, 它的最大优点在于算法很简单, 易于实现, 执行效率高, 同时推荐的准确性相对很高;
基本概念
Slope One的基本概念很简单, 例子1, 用户X, Y和A都对Item1打了分. 同时用户X,Y还对Item2打了分, 用户A对Item2可能会打多少分呢?
User Rating to Item 1 Rating to Item 2
X 5 3
Y 4 3
A 4 ?
根据SlopeOne算法, 应该是:4 - ((5-3) + (4-2))/2 = 2.5.
解释一下. 用户X对Item1的rating是5, 对Item2的rating是3, 那么他可能认为Item2应该比Item1少两分. 同时用户Y认为Item2应该比Item1少1分. 据此我们知道所有对Item1和Item2都打了分的用户认为Item2会比Item1平均少1.5分. 所以我们有理由推荐用户A可能会对Item2打(4-1.5)=2.5分;
加权算法
接下来我们看看加权算法(Weighted Slope One). 如果有100个用户对Item1和Item2都打过分, 有1000个用户对Item3和Item2也打过分. 显然这两个rating差的权重是不一样的. 因此我们的计算方法是
(100*(Rating 1 to 2) + 1000(Rating 3 to 2)) / (100 + 1000)
上面讨论的是用户只对项目的喜好程度打分.还有一种情况下用户也可以对项目的厌恶程度打分. 这时可以使用双极SlopeOne算法(BI-Polar SlopeOne).
参考资料
论文 http://www.daniel-lemire.com/fr/abstracts/SDM2005.html
How to implement Slope One in Python
http://www.serpentine.com/blog/2006/12/12/collaborative-filtering-made-easy/
相关Python库
http://exogen.case.edu/projects/consensus
分享到:
相关推荐
### 基于协同过滤算法的商品推荐系统设计与实现 #### 一、绪论 - **选题动因**:随着互联网技术的发展和电子商务平台的兴起,如何在海量的商品信息中帮助用户找到他们真正感兴趣的商品成为了商家面临的一个重大...
基于协同过滤的推荐系统 本资源为基于协同过滤技术的推荐系统的研究与实现大纲论文,涉及到协同过滤技术、推荐算法、电子商务、用户行为数据、机器学习等多个知识点。 一、协同过滤技术 协同过滤技术是一种常用的...
电影推荐系统中运用的推荐算法是基于协同过滤算法(Collaborative Filtering Recommendation)。协同过滤是在信息过滤和信息系统中正迅速成为一项很受欢迎的技术。与传统的基于内容过滤直接分析内容进行推荐不同,...
Java协同过滤推荐算法是一种在Java环境下实现的个性化推荐系统的核心技术。它主要应用于大数据环境中的信息过滤,通过分析用户的历史行为和偏好,预测用户可能对哪些未知项目感兴趣,从而为用户提供个性化的推荐服务...
协同过滤算法(Collaborative Filtering)是一种经典的推荐算法,其基本原理是“协同大家的反馈、评价和意见,一起对海量的信息进行过滤,从中筛选出用户可能感兴趣的信息”。它主要依赖于用户和物品之间的行为关系...
python django javascript bootstrap jquery 协同过滤 推荐算法 机器学习 影片显示、影片分类显示、热门影片排序显示、收藏影片排序显示、时间排序显示、评分排序显示、算法推荐、影片搜索、影片信息管理 python基于...
### 基于项目评分预测的协同过滤推荐算法 #### 概述 本文介绍了一种在用户评分数据极端稀疏的情况下提高推荐系统性能的方法——基于项目评分预测的协同过滤推荐算法。随着电子商务的发展,用户数量和商品种类迅速...
基于协同过滤算法的商品推荐系统是一种常见的推荐系统,它利用用户行为数据来预测用户可能喜欢的商品。协同过滤算法主要基于两个原则:用户-用户协同过滤和物品-物品协同过滤。 在Spring Boot中构建基于协同过滤...
协同过滤是一种广泛应用于推荐系统中的机器学习方法,它基于用户的历史行为来预测他们可能对未评价物品的兴趣。在这个数据集中,我们重点探讨基于用户的协同过滤算法,这是一种利用用户之间的相似性来做出推荐的方法...
《MovieLens-100k数据集:协同过滤推荐算法的基石》 在现代的推荐系统领域,MovieLens-100k数据集是研究者和开发者常用的资源,它为协同过滤推荐算法提供了丰富的实证基础。这个数据集源于MovieLens网站,一个由...
基于协同过滤的音乐推荐系统的外文文献 本文档研究了基于协同过滤的音乐推荐系统,讨论了 Spark 架构下的 Collaborative Filtering 算法在音乐推荐系统中的应用。以下是从该文献中提取的相关知识点: 1.音乐推荐...
协同过滤算法主要分为两类:基于用户的协同过滤(User-Based Collaborative Filtering, UBCF)和基于物品的协同过滤(Item-Based Collaborative Filtering, IBCF)。在基于用户的协同过滤中,算法通过寻找相似用户,...
协同过滤推荐系统是一种广泛应用于个性化推荐的技术,它主要基于用户的行为和喜好来预测他们可能对哪些物品感兴趣。在这个“使用Java原生jdk实现的协同过滤推荐系统”中,我们将深入探讨该系统的实现细节以及相关...
协同过滤(Collaborative Filtering,简称CF)是一种广泛应用于推荐系统中的算法,它通过分析用户的历史行为,找出具有相似兴趣的用户,然后根据这些相似用户的喜好来为目标用户推荐商品或服务。在这个案例中,我们...
Java毕业设计基于用户的协同过滤算法实现的商品推荐系统源码+数据库(高分项目).zip该项目是个人高分毕业设计项目源码,已获导师指导认可通过,都经过严格调试,确保可以运行!放心下载使用。 Java毕业设计基于用户...
### 基于协同过滤算法的个性化推荐技术的研究 #### 一、研究背景与意义 在互联网信息爆炸的时代背景下,用户面临着海量的信息选择难题。如何从海量数据中筛选出最符合用户兴趣的内容成为了一个亟待解决的问题。...
《基于物品的协同过滤推荐系统实现》 协同过滤推荐系统是一种广泛应用在个性化推荐中的算法,其核心思想是利用用户的历史行为数据,找出具有相似兴趣或偏好的用户或物品,然后根据这些相似性进行预测,为用户推荐...