作为推荐系统的经典算法,协同过滤可以说是广泛地被学术界和工业界认可,其实协同过滤的原始算法非常简单,并且易于实现。现在很多论文提出的非常复杂的算法,从实验结果看也很漂亮,但在工业界看来根本不能用,这可能就是学术界和工业界的脱节。反观协同过滤算法,虽然简单,但是易于使用,而且确实非常有效。所以,simple but practical is the best

协同过滤主要分为两种,一种是基于用户的协同过滤也就是user-based collaborative filtering,一种是基于物品的协同过滤也就是item-based collaborative filtering。

User-based Collaborative Filtering

基于用户的协同过滤的基本思想是,如果两个用户对于某几项物品有相同的喜好,那么我们就认为这两个的人的相似度比较高。如果这两个人其中一个喜欢一个新物品,那么我们就认为,另一个人会有很大的几率也喜欢这项物品,所以基于用户的协同过滤的方法最关键的地方就在于计算用户之间相似度。

Item-based Collaborative Filtering

基于物品的协同过滤的基本思想是,使用用户对于两个物品的评价确定其相似度[注意而不是通过人们已经认定的常识,例如物品的分类],例如有两个物品,这两个物品同时被相同的n个用户喜欢,被越多的相同用户喜欢,物品之间的相似度越高。如果再来一个新的用户,如果他喜欢其中一个物品,那么我们就认为他有可能会喜欢另一个物品。所以基于物品的协同过滤方法关键就在于计算物品之间的相似度。