协同过滤就是是协同大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出用户感兴趣的物品。基于用户的协同过滤算法简而言之就是找到与目标用户兴趣相似的用户集合,再从用户集合中过滤掉目标用户不感兴趣的物品(比如已经买过的物品),推荐目标用户最可能感兴趣且没有买过的物品。
以电商平台为例
1、商品库中有小说、游戏机、杂志、电视机。
2、目标用户浏览电商网站,推荐系统根据全体用户对其他商品(小说、杂志、电视机)的历史评价数据、“点赞”、“踩”等信息来预测用户是否喜欢游戏机。
3、将有向图转为矩阵,用户作为行坐标,物品作为列坐标,“点赞”和“踩”的用户数据转换为矩阵中的值,其中“点赞”为1,“踩”为-1,没有数据置为0。
计算用户相似度
(1)余弦相似度
(2)皮尔逊相关系数
其中,表示用户i对物品p的评分,
表示用户i对所有物品的平均评分,
表示所有物品的集合。
可以通过引入物品的平均分的方式,减少物品评分偏置对结果的影响:
其中,表示物品p得到所有评分的平均值。
获得相似用户集合之后,利用用户相似度和相似用户的评价的加权平均获得目标用户的评价预测: