基于用户的协同过滤算法
下面讲解的链接
https://blog.csdn.net/shf1730797676/article/details/97100815
基本思路:当用户A需要个性化推荐的时候,可以先找到和他兴趣相似的用户群体G,然后把G中所包含的且A中没有的东西进行预测评估,最后根据预测评估值对用户A进行推荐。
方法:
1、找到与用户A兴趣相似的用户群体
2、对G中所包含的且A没有听说过或没有见过的进行预测分析。
3、根据预测分析值对A进行推荐
过程:
1发现兴趣相似的用户
通常用 Jaccard (杰卡德相似度)公式或者余弦相似度计算两个用户之间的相似度。设 N(u) 为用户 u 喜欢的物品集合,N(v) 为用户 v 喜欢的物品集合,那么 u 和 v 的相似度是多少呢?
如何一下子计算所有用户之间的相似度呢?为计算方便,通常首先需要建立“物品—用户”的倒排表,如下图所示:
然后对于每个物品,喜欢他的用户,两两之间相同物品加1。例如喜欢物品 a 的用户有 A 和 B,那么在矩阵中他们两两加1。如下图所示:
计算用户两两之间的相似度,上面的矩阵仅仅代表的是公式的分子部分。以余弦相似度为例,对上图进行进一步计算: