协同过滤算法在推荐算法领域应用十分广泛,主要有基于用户(UserCF)和基于物品(ItemCF)两种不同的类型:
- 基于用户的推荐算法:它是一种发现兴趣相似的用户的算法,假如你正在建设的是一个学习资源共享平台,你的用户群体有着大致稳定的专业与相对固定的阅读、学习爱好。当用户A(即登录用户)需要个性化推荐的时候,可以先找到和他兴趣相似的用户群体G,然后把G中所包含的且A中没有的东西进行预测评估,最后根据预测评估值对用户A进行推荐。
- 基于物品的推荐算法:当一个用户需要个性化推荐时,例如由于他之前购买花朵,所以会给他推荐花盆,因为其他用户很多都同时购买花朵和花盆。基于物品的推荐算法需要先计算物品之间的相似度,再根据物品的相似度和用户的历史行为给用户生成推荐列表。
本文笔者将介绍第一种算法,基于用户的协同过滤算法(UserCF)的实现,正如上文所说,我们将步骤分为三步:
1、找到与用户A兴趣相似的用户群体
- 首先,我们需要计算用户之间的相似度,本文我们采用余弦相似度来计算,公式为
(其中,N(u)表示用户u所购买的物品集合,|N(u