【推荐系统(一)】协同过滤之基于领域的方法(UserCF,ItemCF)

本文深入探讨了协同过滤中的两种方法:基于用户的协同过滤(UserCF)和基于物品的协同过滤(ItemCF)。UserCF通过寻找兴趣相似的用户进行推荐,而ItemCF则基于用户历史行为推荐相似物品。文章详细介绍了两种方法的计算过程、改进方法及应用场景,并对比了它们的优缺点。UserCF常用于新闻推荐,ItemCF适用于商品和视频推荐。

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


基于用户行为分析的推荐算法一般称为协同过滤算法。所谓协同过滤,就是指众多的用户可以齐心协力,通过不断地和网站互动,使 自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求。常见实现方法的包括:

  1. 基于邻域的方法
  2. 隐语义模型
  3. 基于图的随机游走算法

本文主要讲解基于邻域的方法,又可以细分为基于用户的协同过滤算法(UserCF)和基于物品的协同过滤算法(ItemCF)。

一、基于用户的协同过滤算法(UserCF)

基于用户是指通过分析用户对商品的行为(如浏览、收藏、加入购物车、购买……)计算出哪些用户是兴趣相似的,然后把兴趣相似的用户所关注的商品相互推荐。

基于用户的协同过滤算法(UserCF)的基本思想:当给用户A推荐时,可以先找到和他有相似兴趣的其他用户,然后把相似用户喜欢的、而用户A没有接触过的物品推荐给A。

UserCF算法分为两个步骤:

  1. 找到和目标用户有相似兴趣的用户集合
  2. 从集合中找到用户可能喜欢的、但是没有接触过的物品推荐给目标用户

1,找到相似用户

假设有6个用户AF,对编号为16的物品有不同的行为。不同的行为代表对商品喜爱程度的不同,假设:浏览1分、收藏3分、加入购物车5分、购买10分。

于是可以把不同用户对不同商品的喜爱程度转换为评分矩阵

用户/商品 1 2 3 4 5 6
A 1 5 3
B 3 3
C 5 10
D 10 5
E 5 1
F 5 3 1

可以看到用户A和B感兴趣的商品完全不同,但是A和E可能有相似的兴趣。为了计算用户之间的相似度,设N(u)为用户 u 有过正反馈的物品集合,N(v) 为用户 v 有过正反馈的物品集合,用户 u 和 v 的兴趣相似度可以用余弦相似度表示:
c o s < u , v > = N ( u ) ⋅ N ( v ) ∣ N ( u ) ∣ × ∣ N ( v ) ∣ cos<u, v> = \frac{N(u) \cdot N(v)}{\sqrt{|N(u)|\times|N(v)|}} cos<u,v>=N(u)×N(v) N(u)N(v)
当然还有别的计算方法,例如:切比雪夫距离、欧里几得距离、曼哈顿距离、杰卡德距离、皮尔森系数等。

以余弦相似度的计算为例子:
c o s < A , C > = 1 × 5 + 5 × 0 + 3 × 0 1 2 + 5 2 + 3 2 × 5 2 + 1 0 2 = 0.08 cos <A, C> = \frac{1 \times5 + 5 \times 0 + 3 \times 0}{\sqrt{1^2 + 5^2 + 3^2} \times \sqrt{5^2 + 10^2}} = 0.08 cos<A,C>=12+52+32 ×52+102 1×5+5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值