User-CF
思想是根据用户相似度推荐商品,计算步骤如下:
步骤1. 得到用户矩阵
得到n表示用户,m为商品的评分大矩阵,矩阵的值可以是用户对物品的评价,是否收藏等数据
步骤2. 得到计算预估评分的参考用户
每个用户的购买数据相当于用户的向量,用皮尔逊相关系数计算待推荐用户与其他所有用户之间的相似度,找出topN的相似用户或所有相关系数>0的用户,作为预估未购买的商品评分的参考用户。
步骤3. 计算未购买的商品的预估评分
根据相似用户的评分计算出推荐用户没有购买过的商品的预估评分,一般会用相关系数作为权重,计算 相似用户当前商品的相关系数加权评分/相似用户相关系数之和
但是,这种计算思路存在的问题:
- 由于商品规模较大,因此user很难存在相似性
- 用户数量太大,维护用户相似度表是平方级的空间
- 人是善变的,不同阶段的需求是不同的
Item-CF
计算思路与User-CF类似,只是这里根据物品相似度推荐商品:
- 步骤1:认为每个用户对商品的评分就是这个商品的向量
比如下面的movies1的向量就是:[1,0,3,0,0,5,0,0,5,0,4,0]
- 步骤2: 得到计算预估评分的参考商品
- 步骤3: 计算未购买的商品的预估评分