基于用户的协同过滤算法

本文介绍了基于用户的协同过滤算法(UserCF),该算法起源于邮件和新闻过滤系统,用于个性化推荐。主要思想是寻找与目标用户兴趣相似的用户群体,推荐他们喜欢而目标用户未接触的物品。算法关键步骤包括计算用户相似性和兴趣度,常见的相似性度量有Jaccard公式和余弦相似度。最后,根据相似度推荐最匹配的物品。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近正在读项亮博士的《推荐系统实践》人民邮电出版社,这本书应当是目前国内为数不多的介绍推荐算法的了。目前正在学习基于用户的协同过滤算法(UserCF :user-based collaborative filtering)。

 

该算法是推荐系统中最古老的算法,标志着推荐系统的诞生,该算法在1992年提出用于邮件过滤系统,1994年被GroupLens用于新闻过滤。

算法的主要思想是如果一个用户A需要一个个性化推荐列表,我们可以找到和用户A有着相似兴趣的其他用户,给A推荐其他用户喜欢的且A没听说过的物品集合。

 

基于用户的协同过滤算法主要包括包括两个步骤:

1. 找到和目标用户兴趣相似的用户集合

2. 找到集合中用户喜欢的且目标用户没有听说过的物品集合

UserCF的关键在于步骤 1如何利用用户行为计算用户之间的相似性,最简单的计算相似性有Jaccard公式和余弦相似度公式。

基于用户的协同过滤算法Jaccard 公式
基于用户的协同过滤算法余弦相似度

其中N(A) N(B)分别表示用户A,B有过正反馈的物品集合。

例如下图所示:

基于用户的协同过滤算法
利用Jaccard公式计算  w(AB) = 1/4

利用余弦公式计算 w(AB) = 1/sqrt(6)

 

利用上述公式得到用户兴趣相似度 w 之后, UserCF算法会给用户推荐和他兴趣最相似的 K 个用户喜欢的物品。

基于用户的协同过滤算法
 

其中 r(vi)表示用户 v 对物品 i 的兴趣, 通常是 有兴趣r(vi)=0, 反之 r(vi)=0. p(u,i) 则是最终用户 u 对物品 i 的感兴趣程度,就是所谓的用户 u 对物品 i 的打分。
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值