文章目录
1.0 传统的推荐系统模型
1.1 传统模型演化关系
2.0 协同过滤
2.1 基本思想
人以类聚,物以群分
2.2 目标场景
- 存在共现矩阵的情况下,进行点击率预估、评分预测等等
基于人的协同过滤:
假若,Alice和用户2比较相似,而用户2对物品5打了5分,所以Alice也对物品打了5分
基于物的协同过滤:
倘若,物品2和物品5比较相似,Alice对物品2打了3分,所以Alice对物品5也应该打3分
2.3 相似度计算方式
- 杰卡德(Jaccard)相似系数
- 余弦相似度
补充:
(1)比较常用,效果也不会太差
(2)局限性:对于【评分数据不规范】的时候,也就是说,存在有的用户喜欢打高分,有的用户喜欢打低分情况的时候,有的用户喜欢乱打分的情况,这时候consine相似度算出来的结果可能就不是那么准确了
- 皮尔逊相关系数
相比较于余弦相似度,这个有点类似于归一化的操作,
解决了这样的一个问题——》一些用户喜欢打低分,一些用户喜欢打高分
-
其它的相似度的计算方式
- 欧式距离
- 曼哈顿距离
- 马氏距离
-
余弦相似度VS欧式距离
-
为什么在一些场景中要使用余弦相似度而不是欧式距离呢?
-
总体的来说,欧式距离体现数值上的绝对差异,而余弦距离体现方向上的相对差异余弦相似度强调夹角,欧氏距离强调绝对数值,举例
-
举例
- 如果要统计两部剧的用户观看行为,用户A的观看向量(0,1),用户B为(1,0),此时二者的余弦距离很大,而欧式距离很小。我们分析两个用户对于不同视频的偏好,更关注相对差异,显然应当用余弦距离。
- 而当我们分析用户活跃度,以登录次数和平均观看时长作为特征时,余弦距离会认为(1,10)和(10,100)两个用户距离很近,但显然这两个用户活跃度是有着极大差异的。此时我们关注的是数值绝对差异,应当使用欧式距离。
-
2.4 基于User的协同过滤(UserCF)
当一个用户A需要个性化推荐的时候, 我们可以先找到和他有相似兴趣的其他用户, 然后把那些用户喜欢的, 而用户A没有听说过的物品推荐给A。
2.4.1 举一个例子:
步骤
-
计算Alice与其他用户的相似度
-
根据相似度用户计算Alice对物品5的最终得分
1)方式一
利用【用户相似度】和【相似用户的评价】加权平均获得用户的评价预测
2)方式二
采用方式二进行评分预测得出的结果如下:
-
根据用户评分对用户进行推荐
定一个阈值,预测评分超过阈值,即可推荐给用户
2.4.2 缺点
-
1、数据稀疏性
- 一个大型的电子商务推荐系统一般有非常多的物品,用户可能买的其中不到1%的物品,不同用户之间买的物品重叠性较低,导致算法无法找到一个用户的邻居,即偏好相似的用户,即使找到了,准确性也可能不会太高。这导致UserCF不适用于那些正反馈获取较
-
2、用户相似度矩阵维护难度大
-
每来一个,矩阵就得重新更新一次——复杂度为n^2
-
在互联网应用场景中,绝大多数产品的用户数都要远大于物品数,因此维护用户相似度矩阵的难度要大很多
-
基于用户的协同过滤需要维护用户相似度矩阵以便快速的找出Topn相似用户,该矩阵的存储开销非常大,存储空间随着用户数量的增加而增加,不适合用户数据量大的情况使用。
-
2.4.3 适用场景
-
常适用于用户少,物品多,时效性较强的场合
-
例如新闻推荐领域
2.5 基于Item的协同过滤(ItemCF)
ItemCF算法并不利用物品的内容属性计算物品之间的相似度, 主要通过分析用户的行为记录计算物品之间的相似度, 该算法认为, 物品a和物品c具有很大的相似度是因为喜欢物品a的用户大都喜欢物品c。
- 由于UserCF技术上的两点缺陷,导致很多电商平台并没有采用这种算法,而是采用了ItemCF算法实现最初的推荐系统。
2.5.1 举一个例子
2.5.2 优缺点
优点:
- 1、Item-based算法的预测结果比User-based算法的质量要高一点。
- 2、由于Item-based算法可以预先计算好物品的相似度,所以在线的预测性能要比User-based算法的高。
-缺点
-
1、数据稀疏性
-
至少有一行有两个1才能计算。即使有,如果行数过少,得出来的就不可靠
-
适用于电商平台等User数量远远大于Item数量的应用场景
-
-
2、物品相似度矩阵维护难度大
- m个User n个Item m>>n
- User相似度矩阵:mm
Item相似度矩阵:nn
2.5.3 适用场景
-
适用于兴趣变化较为稳定的应用,更接近于个性化的推荐,适合物品少,用户多,用户兴趣固定持久,物品更新速度不是太快的场合
-
比如音乐推荐、电影推荐
2.6 UserCF和ItemCF的优缺点比较
-
区别
-
共同的缺点
-
不能彻底解决数据稀疏性的问题(一个评分矩阵中很多空的)
-
泛化能力弱——> 为了解决这一问题,矩阵分解技术被提出来
-
无法利用更多的信息
- 一般仅仅基于用户的行为信息(评价、购买、下载等),而不是依赖于项的任何附加信息或者用户的任何附加信息,比如不依赖物品自身特征、用户年龄、性别等
-