1.对于协同过滤算法的认识:
同过滤的原理是首先给目标用户找出其相似用户,通过相似用户的喜好进而挖掘出目标用户的喜好,这个过程可以称为推荐过程。
可以用日常生活中的例子来阐述:我们去看电影的时候,会经常遇到看什么电影的问题,当看到电影传单上所有的电影时,我们又很难确定看哪个电影,而这个时候我们通常会问朋友或同学,通过去询问或者打听看哪部电影,而通常问的这个朋友或者同学是兴趣爱好相似比较信任的。这个过程可以很生动的描述推荐系统的核心思想;
主要有两种算法:
- 基于用户的协同过滤算法(UserCF): 给用户推荐和他兴趣相似的其他用户 喜欢的产品
- 基于物品的协同过滤算法(ItemCF): 给用户推荐和他之前喜欢的物品相似的物品
2.相似度量方法
2.1 余弦相似度:
余弦相似度衡量了两个向量的夹角
,夹角越小越相似
。首先从集合的角度描述余弦相似度,相比于Jaccard公式来说就是分母有差异,不是两个用户交互商品的并集的数量,而是两个用户分别交互的商品数量的乘积,公式如下:(越靠近1表示用户A和用户B越一致)
矩阵的每一行表示一个用户
对所有商品
的交互情况
,有交互的商品值为1没有交互的商品值为0,矩阵的列表示所有商品。若用户和商品数量分别为m,n的话,交互矩阵A就是一个m行n列的矩阵。此时用户的相似度可以表示为(其中RA· RB指的是向量点积):
2.2 pearsonr皮尔逊相关系数
相比余弦相似度,皮尔逊相关系数通过使用用户的平均分对各独立评分进行修正,减小了**用户评分偏置(一个评分很大,一个评分很小)**的影响。
ru,xi:表示用户对第i件商品的评分
rxi的均值表示用户对所有商品的评价的均分
举个例子:
3.基于用户的协同过滤User CF
1.首先是根据目标用户对物品的偏好找到兴趣相近的用户作为相邻用户,2.然后将相邻用户的喜爱的作品推荐给目标用户;即当一个用户A需要个性化推荐的时候,我们可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的,而用户A没有听说过的物品推荐给A。
3.1利用相似用户的评价加权平均获得用户的评价预测
简而言之就是:通过你的亲朋好友对A商品的评价,得到你对A商品的评价预测
1.优点:
考虑了用户评分的偏差
,可以更准确地反映用户的个性化偏好
。
2.举个例子:
物品1 物品2 物品3
用户A 5 3 4
用户B 4 2 3
用户C 2 3 1
用户D 3 2 4
用户E 1 5 4
我们来计算用户A对物品2的喜好度,假设我们选择与用户A最相似的用户是B、C、D。
ABCD四个用户之间的相似度矩阵:
A B C D E
A 1 0.8 0.6 -0.5 -0.7
B 0.8 1 -0.3 0.2 -0.4
C 0.6 -0.3 1 0.7 0.5
D -0.5 0.2 0.7 1 0.3
E -0.7 -0.4 0.5 0.3 1
公式:
计算过程:
3.2使用其他用户对物品的评分与该用户对所有物品的评分的差值进行加权平均来计算用户对某个物品的预测评分
因为有的用户喜欢打高分, 有的用户喜欢打低分
1.区别:
2.让我们用符号来重新表达这个方法:
4.User CF的缺点:
- **数据稀疏性:**一个大型的电子商务推荐系统一般有非常多的物品,用户可能买的其中不到1%的物品,
不同用户
之间买的物品重叠性较低
,导致算法无法找到一个用户的邻居,即偏好相似的用户。这导致UserCF不适用于那些正反馈获取较困难的应用场景(如酒店预订,大件商品购买等低频应用) - **算法扩展性: **基于用户的协同过滤需要维护用户相似度矩阵以便快速的找出Topn相似用户,该矩阵的存储开销非常大,存储空间随着用户数量的增加而增加,不适合用户数据量大的情况使用。
5.基于物品的协同过滤 Item CF
基于物品的协同过滤, 简称 Item CF,基本思想是预先根据所有用户的历史偏好数据
计算物品之间的相似性
,然后把与用户喜欢的物品相类似的物品推荐给用户。比如物品a和c非常相似
,因为喜欢a的用户
同时也喜欢c
,而用户A喜欢a
,所以把c推荐给用户A
。Item CF算法并不利用物品的内容属性计算物品之间的相似度,主要通过分析用户的行为记录计算物品之间的相似度,该算法认为,物品a和物品c具有很大的相似度是因为喜欢物品a的用户大都喜欢物品c。