协同过滤和关联规则比较
协同过滤
简介
协同过滤一般是指在海量的用户中发掘出一小部分与你品味比较相似的用户,然后根据他们喜欢的其他物品组成一个排序的目录推荐给你。一般包括一下三个步骤:
1.收集用户偏好
2.找到相似的用户或者物品
3.计算推荐
user-based的协同过滤和item-based的协同过滤是两个常用的技术,统称为memory based 的协同过滤
基于用户的协同过滤
user-based CF 基于用户对物品的偏好找到相邻的邻居用户,然后将邻居用户喜欢的物品而当前用户没有的物品进行推荐。计算上就是将用户对所有物品的偏好表示成一个向量来计算用户之间的相似度,找到K个近邻后,根据相似度的权重以及他们对物品的喜好,计算得到一个物品的排序表作为推荐。
基于物品的协同过滤
基本思想与上面相似,只是在计算邻居时采用的是物品本身,根据用户对物品的偏好找到相似的物品,然后根据用户对物品的历史偏好找到相似物品进行推荐。在计算上,将所有用户对某个物品的偏好作为一个向量,然后去寻找相似的物品,根据当前用户的历史偏好预测还有没有表示偏好的物品。
适用场景
针对于用户数量远大于物品数量,且物品数量相对稳定不会频繁更新,如电子商务等在线网站,item-based 更优;对于新闻,博客等信息类推荐系统,情况往往相反。然而,这两种算法在数据稀疏的情形下表现较差,也就是说“冷启动”问题。另一方面,对于user-based,假设了用户会喜欢和他具有相同喜好所喜欢的东西,这种方法依赖于有多少相同喜好的人;item-based方法假设用户会喜欢和他喜欢物品相似的东西;这样的假设使得在推荐时,内容过于重复,容易引起“审美疲劳”。
关联规则
使用数据挖掘技术从大量的过往交易数据中获取规则。它可以是会同时被购买的商品之间的关联规则,也可以是按时间依次被购买商品的序列模型。通过已浏览过或购买了A,B,C的人,有多少用户也购买了D这种形式来做推荐
关联规则和协同过滤的比较(敲黑板)
相同点及联系
两种方式都是集体智慧编程(collective intelligence)的运用,可以说关联分析是协同过滤的理论基础,都是基于大众的行为数据做出决策,
不同点
两者的面对对象不同:协同过滤面向事务数据库,而协同过滤面向用户对物品的评分;
协同过滤的过程是先协同,找到相似的人,在过滤,使用户注重个性化的场景,如音乐电影之类,而关联规则直接从数据中挖掘潜在的关联,与个人的偏好无关,忽略了个性化的场景,适用于超市购物,汽车导航和交通规划等