首先回想一下,协同过滤算法主要有两种,一种是基于用户的协同过滤算法(UserCF)。还有一种是基于物品的协同过滤算法(ItemCF)。
基于用户的协同过滤算法主要有两步:
1)找到和目标用户兴趣类似的用户集合
2)找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。
基于物品的协同过滤算法主要有两步:
1)计算物品之间的类似度。
2)依据物品的类似度和用户的历史行为给用户生成推荐列表。
由此能够看出UserCF是推荐用户所在兴趣小组中的热点。更注重社会化。而ItemCF则是依据用户历史行为推荐类似物品,更注重个性化。所以UserCF一般用在新闻类站点中。如Digg,而ItemCF则用在其它非新闻类站点中。如Amazon,hulu等等。
由于在新闻类站点中,用户的兴趣爱好往往比較粗粒度,非常少会实用户说仅仅看某个话题的新闻,往往某个话题也不是天天会有新闻的。个性化新闻推荐更强盗新闻热点。热门程度和时效性是个性化新闻推荐的重点,个性化是补充,所以UserCF给用户推荐和他有同样兴趣爱好的人关注的新闻,这样在保证了热点和时效性的同一时候,兼顾了个性化。
另外一个原因是从技术上考虑的,作为一种物品,新闻的更新非常快。并且实时会有新的新闻出现。而假设使用ItemCF的话,须要维护一张物品之间类似度的表,实际工业界这表通常是一天一更新的,这在新闻领域是万万不能接受的。
可是,在图书,电子商务和电影站点等方面,ItemCF则能更好的发挥作用。由于在这些站点中。用户的兴趣爱好通常是比較固定的,并且相比于新闻站点更细腻。在这些站点中,个性化推荐通常是给用户推荐他自己领域的相关物品。
另外。这些站点的物品数量更新速度不快,一天一次更新能够接受。
并且在这些站点中,用户数量往往远远大于物品数量,从存储的角度来讲,UserCF须要消耗更大的空间复杂度。另外,ItemCF能够方便的提供推荐理由,添加用户对推荐系统的信任度,所以更适合这些站点。