UserCF推荐的是与用户兴趣相同的用户们喜欢的物品——哪怕用户根本不认识这些人。
ItemCF推荐的是与用户之前感兴趣的物品相似的物品。
UserCF更横向,更社会化。
ItemCF更纵向,更个性化。
UserCF要维护一个用户相似度矩阵,适合用户较少的场合。
ItemCF要维护一个物品相似度矩阵,适合物品较少的场合。
例如,TB、JD这样的商城,商品数再多,也比用户数少,适用ItemCF。
如网易、头条这样的新闻网站,用户数固然多,但相比几乎是无限增长的新闻,还是适用UserCF。
虽然用户、物品相似度矩阵都需要一定频率的离线计算,但从实时性来讲,用户对新物品产生了行为,在UserCF中,不一定能造成推荐结果的实时变化,因为要等用户相似度重新计算。但在ItemCF中,大概率会导致推荐结果的实时变化,因为新物品的相似度已经计算完毕。
当然,如果物品刚上线,还没有用户对其产生行为,也就没什么相似度了。必须是上线一段时间,且有一定用户对其产生了行为之后,方可产生推荐。
哈利波特问题
其实就是如何减少热门商品对推荐结果影响的问题。
所有的厨师都会买油盐酱醋,但不能总给用户推荐油盐酱醋吧。或者说,因为川菜厨师和粤菜厨师都买了油盐酱醋,就给粤菜厨师推荐火锅底料吧。
在UserCF中