协同过滤推荐算法简介

协同过滤通过用户和产品及用户的偏好信息产生推荐的策略,最基本的策略有两种:一种是找到具有类似品味的人所喜欢的物品;另一种是从一个人喜欢的物品中找出类似的物品。这对应着两个最知名的类别推荐技术:基于用户的推荐技术和基于物品的推荐技术,它们被称为协同过滤。

算法简介

协同过滤推荐(Collaborative Filtering Recommendation)是在信息过滤和信息系统中正迅速成为一项很受欢迎的技术。与传统的基于内容过滤直接分析内容进行推荐不同,协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预测。

优点:
1)能够过滤难以进行机器自动基于内容分析的信息;
2)能够基于一些复杂的,难以表达的概念(信息质量,品味)进行过滤;
3)推荐的新颖性。

缺点:
1)用户对商品的评价非常稀疏,这样基于用户的评价所得到的用户间的相似性可能不准确(稀疏性问题);
2)随着用户和商品的增多,系统的性能会越来越低;
3)如果从来没有用户对某一商品加以评价,则这个商品就不可能被推荐(冷启动问题)。

基本模型

1)数据预处理与UI矩阵
2)推荐模型:item-based CF和user-based CF
item-based CF:基于item的协同过滤,通过用户对不同item的评分来评测item之间的相似性,基于item之间的相似性做出推荐;
user-based CF:基于user的协同过滤,通过不同用户对item的评分来评测之间的相似性,基于用户之间的相似性做出推荐。
3)Kmeans计算相似性
4)SVD计算相似性
数据预处理
多数情况下,大型电子商务网站都提供多种跟踪用户行为的方法,关于如何组合这些不同的用户行为,基本上可以参考以下两种方式:
1)将不同的行为分组:一般可以分为“查看”和“购买”等,然后基于不同的行为计算不同的用户/物品相似度。
2)根据不同行为反应用户的偏好的程度将它们进行加权,得到用户对于物品的总体偏好。一般来说,显示的用户反馈要比隐式的权值大,但比较稀疏,毕竟进行显示反馈的用户是少数。
3)收集了用户行为数据,我们还要对数据进行一定的预处理,降噪和归一化是最常用的方法,其目的是为了下一步的聚类。
降噪:用户行为数据是用户在使用应用过程中产生的,它可能存在大量的噪声和用户的误操作,我们可以通过一些降噪算法过滤掉数据中的噪声,一般是离群点,这样可以使分析更精确;
归一化:在计算用户对物品的偏好程度时,不同行为的数据取值量纲不同,甚至可能相差很大。归一化的目标就是统一量纲,使数据都集中在一个相同的取值范围中,从而使用户的总体偏好更加精确;

推荐模型
user-based CF:基于用户的CF的基本思想相当简单:基于用户对物品的偏好划分用户类型(聚类),找到最近邻用户(KNN近邻算法),然后将同类用户和相邻用户所喜欢的推荐给当前用户。计算上,就是将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,找到K邻居后,根据邻居的相似度权重及他们对物品的偏好,预测当前用户没有偏好的未涉及物品,计算得到一个排序的物品列表作为推荐。
item-based CF:基于物品的CF的基本思想和基于用户的CF类似,只是在计算时采用物品之间的相似度,而不是从用户的角度,即基于用户对物品的偏好划分物品类型找到最近邻物品,然后将同类物品或相邻物品推荐给当前用户。从计算的角度看,就是将所有的用户对某个物品的偏好作为一个向量来计算物品之间的相似度,得到物品的相似物品后,根据用户历史的偏好预测当前用户还没有表示偏好的物品,计算得到一个排序的物品列表作为推荐。

1