基于物品的协同过滤
基于物品的协同过滤算法的核心思想就是:给用户推荐那些和他们之前喜欢的物品相似的物品。
ItemCF算法并不是直接根据物品本身的属性来计算相似度,而是通过分析用户的行为来计算物品之间的相似度。
对于推荐阶段,可分为以下几步:
- 寻找与被推荐用户喜爱物品集最相似的N个物品
- 计算用户对这N个物品的感兴趣程度列表并逆序排列
考虑以下情形:
用户 | 购买商品 |
---|---|
A | {a,b,d} |
B | {c,d,e} |
C | {a,b,c} |
D | {b,e} |
如何计算商品之间的相似度?
我们想知道当购买商品a时,如果有很多用户购买了商品b,那是不是可以就此认为商品a与b是相似的呢?(比如说甲新购买了手机,乙买了手机还买了手机壳,我们是否可以推荐手机壳给用户甲呢?)
先写出每个用户的共现矩阵C
如 用户A:
C[i][j]代表的含义是同时喜欢物品i和物品j的用户数量。
易知这是一个对称矩阵
我们将每个用户的共现矩阵叠加,能够得到全部用户的完整的共现矩阵。
相似度的计算
同现相似度
ω i , j = ∣ N ( i ) ∩ N ( j ) ∣ ∣ N ( i ) ∣ \omega_{i,j}= \frac{|N(i)\cap N(j)|}{|N(i)|} ωi,j=∣N(i)∣∣N(i)∩N(j)∣