协同过滤是推荐算法中最基本的算法,主要分为基于用户的协同过滤算法和基于物品的协同过滤算法。
这篇文章主要介绍基于用户的协同过滤算法,简单来说,要给用户u作推荐,那么只要找出那些和u之前的行为类似的用户,即和u比较像的用户,把他们的行为推荐给用户u即可。所以基于用户的系统过滤算法包括两个步骤:1)找到和目标用户兴趣相似的用户集合 2)找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。
第一步的关键点在于计算用户之间的相似度,相似度一般通过Jaccard公式或者余弦相似度即可求得,及计算共有行为所占的比重(具体式子google就行,csdn插入公式不方便。。。),所以目前而言,计算用户相似度的复杂度是O(N*N), N为用户数量,在用户数比较大的网站中不实用,比如亚马逊用户数量肯定N>100000,那么这样的复杂度是不可接受的。