基于协同过滤的推荐得益于Web2.0的出现,协同过滤推荐需要用户参与。基于协同过滤推荐机制的原理比较简单。首先,它需要存储用户对物品或者信息的历史偏好信息,然后通过历史偏好数据发现物品或者是用户间的相关性,最后基于关联性,推荐系统推荐相似物品。在基于协同过滤的推荐中,基于用户的推荐(User-based Recommendation)和基于项目的推荐(Itembased Recommendation)是最为常用的两种推荐方法。下面我们详细地介绍这两种协同过滤的推荐机制。
(1)基于用户的协同过滤推荐
基于用户的协同过滤推荐主要是根据用户对物品的偏好信息发现相似用户,但是如何发现相似用户呢?一般的做法是采用“K-邻居”的算法算出最近的K个邻居,即根据用户的历史偏好信息,发现与指定用户最相近的K个邻居,发现了K个邻居后,就可以将这K个邻居的历史偏好信息推荐给指定的用户。
图2-3 基于用户的协同过滤推荐机制的基本原理
图2-3给出了基于用户的协同过滤推荐机制的基本原理:假设学习者A喜欢学习资源A和学习资源B,学习者B喜欢学习资源C,学习者C喜欢学习资源A、学习资源B和学习资源D;从这些用户的历史喜好信息中,我们可以发现学习者A和学习者C的口味和偏好是比较类似的,因为学习者C还喜欢学习资源D,那么我们可以推断学习者A可能也喜欢学习资源D,因此可以将学习资源D推荐给学习者A。
通过对比基于用户的协同过滤推荐机制和基于人口统计学的推荐机制,我们发现,其实两者的原理是一样的,都是根据历史信息计算用户间的相似度,找到邻居用户,然后基于“邻居”用户进行推荐。但是两者也有不同点,那就是计算用户的相似度时所选取的数据不同:基于人口统计学的机制在计算用户间相似度时所选取的数据是用户属性信息,这种数据一般是静态的;基于用户的协同过滤机制所选取的数据是用户的历史偏好数据,即用户对物品的操作数据或者评价数据,这种数据是动态的。
(2)基于项目的协同过滤推荐
基于项目的协同过滤推荐的原理和基于用户的协同过滤推荐的原理非常相似,两者都需要用户对资源的历史偏好信息。但是,前者是根据历史数据,发现资源与资源之间的相似度,将类似的学习资源推荐给用户。图2-4给出了基本原理。
图2-4 基于项目的协同过滤推荐机制的基本原理(www.xing528.com)
图2-4给出的是基于项目的协同过滤推荐机制的基本原理:假设学习者A喜欢学习资源A和C,学习者B喜欢学习资源A、B和C,学习者C喜欢学习资源A,从这些用户的历史喜好可以分析出,喜欢学习资源A的人都喜欢学习资源C,学习资源A和C是比较类似的,基于这个数据可以推断学习者C很有可能也喜欢学习资源C,所以系统会将学习资源C推荐给学习者C。
通过对比基于项目的协同过滤推荐机制和基于内容的推荐机制,我们发现,其实两者的原理是一样的:两者都是基于物品间的相似程度进行推荐,只是相似度计算时所选取的历史数据不一样。基于项目的协同过滤推荐机制计算用户间的相似度时所选取的是用户的历史偏好推断,这种数据是动态的;而基于内容的推荐机制是基于物品本身的属性特征信息,这种数据一般是静态的。
(3)基于协同过滤推荐的优缺点
在现在的电子商务领域,基于协同过滤的推荐机制的应用是最为广泛的,因为它有显著的优点,当然它还有其自身的缺点。具体来说,它最主要的优点如下所述。
基于协同过滤的推荐机制比较简单,它需要的只是用户的评分数据或者是类似于评分数据,一般来说它不需要专业领域的知识,也不需要严格的建模。只要有相关的数据即可直接使用此推荐算法;并且,基于协同过滤的推荐的结果比基于人口统计学、基于内容的推荐的结果更准确一些。
当然,基于协同过滤的推荐机制也有其固有的缺点。
首先,基于协同过滤的推荐方法会出现“冷启动”的问题,因为该推荐算法需要历史偏好数据,因此,当新物品和新用户出现在系统内时,没有历史数据,算法将无法运算,导致新物品永远不会推荐给用户,而新用户也不会有最近的邻居用户;其次,也是因为基于协同过滤的推荐方法对于历史数据的依赖性,使得如果历史数据很少时,该推荐算法的准确性就会不够高;还有,在现实中,确实存在一部分特殊的用户,他们对于物品的喜好和其他任何人都是不同的,因此推荐算法是无法根据其偏好信息发现相似用户的;最后,当用户兴趣发生改变时,基于协同过滤的推荐方法依然依据历史偏好数据产生推荐结果,这样的推荐是不能随用户兴趣的改变而随之变化的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。