推荐系统学习笔记——七、怎样实现协同过滤推荐系统

七、怎样实现协同过滤推荐系统

推荐系统分类:

  • 基于协同过滤的推荐系统(Collaborative Filtering):使用用户和物品的行为
    • 基于数据统计(记忆)的CF,使用方法:Neighborhood-Based,近邻搜索
    • 基于模型(参数学习)的CF,是参数学习最优化的,使用方法:Model-based
  • 基于内容的推荐系统(Content-Based):使用用户和物品的信息
  • 混合推荐系统(CF + Content-based):在线上一般使用混合推荐系统
协同过滤

协同过滤,使用行为数据,利用集体智慧推荐

  • 基于用户的协同过滤,U2U2I,和你兴趣相投的人也喜欢的物品,进行推荐
  • 基于物品的协同过滤,U2I2I,你喜欢的物品,相似的物品进行推荐
实例:基于用户的协同过滤
  • 步骤一:搜索相似的用户
  • 步骤二:计算u和新item的相似度
I1 I2 I3 I4 I5 I6 I7
A 4 5 1
B 5 5 4
C 2 4 5
D 3 3

步骤一:相似度计算方法:

  • Jaccard相似度:

    • 计算方法:标签交集的个数 / 标签并集的个数
    • 缺点是没有考虑评分
    • eg:sim(A,B) = ∣ r A ∩ r B ∣ / ∣ r A ∪ r B ∣ |r_A ∩ r_B| \quad / \quad |r_A∪r_B| rArB/rArB
    • sim(A,B)=1/5, sim(A,C)=2/4
      • sim(A,B) < sim(A,C)
  • 余弦相似度:缺点认为缺失值是0

    • 计算方法: c o s θ = ∑ i = 1 n ( A i × B i ) ∑ i = 1 n ( A i ) 2 × ∑ i = 1 n ( B i ) 2 cos\theta =\frac{ \sum_{i=1}^n(A_i \times B_i)}{\sqrt{ \sum_{i=1}^n(A_i) ^2} \quad \times \quad \sqrt{ \sum_{i=1}^n(B_i)^2}} cosθ=i=1n(Ai)2 ×i=1n(Bi)2 i=1n(Ai×Bi)
    • sim(A,B) = c o s ( r A , r B ) cos(r_A,r_B) cos(rA,rB)
    • sim(A,B)=0.38, sim(A,C)=0.32
      • sim(A,B) > sim(A,C)
  • 皮尔逊相关系数:缺失值是平均值

    • 计算方法:以每个用户的平均值填充自己的缺失值,然后进行余弦相似度计算

    • r = ∑ i = 1 n ( ( A i − A ) × ( B i − B ) ) ∑ i = 1 n ( A i − A ) 2 × ∑ i = 1 n ( B i − B ) 2 r =\frac{ \sum_{i=1}^n((A_i - {A}) \times (B_i-B))}{\sqrt{ \sum_{i=1}^n(A_i -A) ^2} \quad \times \quad \sqrt{ \sum_{i=1}^n(B_i-B)^2}} r=i=1n(AiA)2 ×i=1n(BiB)2 i=1n((AiA)×(BiB))

    • sim(A,B)= c o s ( r A , r B ) cos(r_A,r_B) cos(rA,rB) = 0.09, sim(A,C) = -0.56

      • sim(A,B) > sim(A,C)

大部分情况下,用余弦相似度就可以了

步骤二:计算u和新item的相似度
  • 直接求平均
    • r x i = 1 / k ∑ y ∈ N r y i r_{xi} = 1/k\sum_{y\in N}r_{yi} rxi=1/kyNryi
    • sim(A,I5) = (3+5)/2
  • 加权平均
    • r x i = ∑ y ∈ N s x y r y i / ∑ y ∈ N s x y r_{xi} = \sum_{y\in N}s_{xy}r_{yi} / \sum_{y\in N}s_{xy} rxi=yNsxyryi/yNsxy
      where s x y = s i m ( x , y ) s_{xy} = sim(x,y) sxy=sim(x,y)
    • sim(A,I5) = (30.38 + 50.32) / (0.38+0.32)

同样方法,可以计算出A用户没有评分过的其他电影的预测评分,对评分结果进行排序,取TOPN就得到推荐列表

你可能感兴趣的:(推荐系统,推荐系统,机器学习,人工智能,协同过滤)