【推荐系统】{1} —— 基于用户的协同过滤算法

协同过滤(英语:Collaborative Filtering,简称CF),简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人透过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息,回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要。——维基百科基于用户的协同过滤算法在一个在线个性化推荐系统中,当一个用户A需要...
摘要由CSDN通过智能技术生成

协同过滤(英语:Collaborative Filtering,简称CF),简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人透过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息,回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要。——维基百科


基于用户的协同过滤算法(简称UserCF)

在一个在线个性化推荐系统中,当一个用户A需要个性化推荐时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A。这种方法称为基于用户的协同过滤算法。

举个例子:

用户/物品 物品A 物品B 物品C 物品D
用户A 推荐给用户A
用户B
用户C
要实现基于用户的协同过滤,需要的步骤:
  1. 收集用户偏好
  2. 通过计算相似度找到与目标用户相似的用户
  3. 将相似用户喜欢的、且目标用户没有听说过的物品推荐给目标用户

一、计算两个用户的兴趣相似度

其中关键的一步就是计算两个用户的兴趣相似度。

协同过滤算法主要利用行为的相似度计算兴趣的相似度。给定用户 u u u 和用户 v v v ,令 N ( u ) N(u) N(u) 表示用户 u u u 曾经有过正反馈的物品集合,令 N ( v ) N(v) N(v) 为用户 v v v 曾经有过正反馈的物品集合。则可以通过计算余弦相似度简单地计算 u u u v v v 的兴趣相似度: w u v = ∣ N ( u ) ∩ N ( v ) ∣ ∣ N ( u ) ∪ N ( v ) ∣ w_{uv} = \frac{|N(u)\cap{N(v)|}}{\sqrt{|N(u)\cup{N(v)|}}} wuv=N(u)N(v) N(u)N(v)


例子:

图片来源

如图, A A A B B B C C C D D D 为用户, a a a b b b c c c d d d e e e 为物品。

利用余弦相似度公式计算他们之间的兴趣相似度分别为: w A B = ∣ { a , b , d } ∩ { a , c } ∣ ∣ { a , b , d } ∣    ∣ { a , c } ∣ = 1 6 w_{AB} = \frac{|{\{ a,b,d\}}\cap\{ {a,c}\}|}{\sqrt{|\{a,b,d\}|\,\,|\{a,c\}}|}=\frac{1}{\sqrt{6}} wAB={ a,b,d}{ a,c} { a,b,d}{ a,c}=6 1

w A C = ∣ { a , b , d } ∩ { b , e } ∣ ∣ { a , b , d } ∣    ∣ { b , e } ∣ = 1 6 w_{AC} = \frac{|{\{ a,b,d\}}\cap\{ {b,e}\}|}{\sqrt{|\{a,b,d\}|\,\,|\{b,e\}}|}=\frac{1}{\sqrt{6}} wAC=

  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值