关闭

使用协同过滤构建一个推荐引擎

标签: 协同引擎item数据
248人阅读 评论(0) 收藏 举报
分类:

基于物品的过滤(item-based filtering)

基本思路:
为每件物品预先计算好最为相近的其他物品。然后,当我们想为某位用户提供推荐时,就可以查看他曾经评过分的物品,从从中选出排位靠前者,再构造出一个加权列表,其中包含了与这些选中物品最为相近的其他物品。此处最为显著的区别在于,尽管第一步要求我们检查所有的数据,但是物品间的比较不会像用户间的比较那么频繁变化。这也意味着,无须不停地计算与每样物品最为相近的其他物品,因此,可以将这样的运算任务安排在啊网络流量不是很大的时候进行,或者在独立于主应用之外的另一台计算机上单独进行。

基于用户进行过滤还是基于物品进行过滤

在针对大数据集生成推荐列表时,基于物品进行过滤的方式明显快于基于用户的过滤,不过它的确有维护物品相似度表的额外开销。同时,这种方法根据数据集“稀疏”程度上的不同也存在精确度上的差异。在涉及电影的电影例子中,由于每个评论者几乎对每部影片都做过评价,所以数据时密集的(而非稀疏的)。另一方面,它又不同于查找两位有相近del.icio.us书签的用户——大多数用户是小众群体所收藏的,这就形成了一个稀疏数据集。对于稀疏数据集,基于物品的过滤方法通常优于基于用户的过滤方法,而对于密集数据而言,两者的效果几乎是一样的。
提示:想了解更多这些算法在执行效率上的差异情况,请下载论文《基于物品的协作型过滤推荐算法》(http://citeseer.ist.psu.edu/sarwar01itembased.html

尽管如此,基于用户的过滤方法更加易于实现,而且无需额外步骤,因此它通常更适用于较小的变化非常频繁的内存数据集。在一些应用中,告诉用户还有那些人与自己有着相近偏好是有一定价值的——也许对于一个购物网站而言,我们并不想这么做,但是对于一个连接共享类或音乐推荐类网站,这种潜在需求确实存在的。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:21714次
    • 积分:859
    • 等级:
    • 排名:千里之外
    • 原创:66篇
    • 转载:2篇
    • 译文:1篇
    • 评论:1条
    最新评论