大家好,今天我们要讨论的主题是,基于用户的协同过滤,UserCF算法。
希望这篇文章,能帮助大家,理解协同过滤、相似度计算、推荐算法的工作原理等知识点。
基于用户的协同过滤算法
UserCF的全称是User-Based Collaborative Filter,使用了朴素的“人以群分”的思想。
该算法的原理是先“找到相似同户”,再“找到他们喜欢的物品”。例如,用户A和用户B是相似的,我们现在要给用户A推荐一些他之前没有关注的商品。那么这时就可以将B关注了,但A没有关注的物品,也就是可乐,推荐给A。
简单来说,基于用户的协同过滤,就是给用户推荐“和他兴趣相似的其他用户”喜欢的物品。
下面来看一个具体的案例。设有A、B、C三个用户,葡萄、草莓、西瓜、橘子四种水果。如果某个用户喜欢某个水果,就将用户向水果连一条实线箭头。如果要给某个用户推荐某个水果,就从水果向用户引一条虚线箭头。
这里会发现,用户A和用户C同时喜欢草莓和西瓜,可以认为A和C的喜好是相似的。另外,由于用户A单独喜欢葡萄和橘子,而如果C又没有吃过这两种水果,那么就可以将葡萄和橘子推荐给用户C。
从上面这个例子中可以看出,UserCF算法主要包含了两个重要的步骤: