Collaborative filtering, 即协同过滤,是一种新颖的技术。最早于1989年就提出来了,直到21世纪才得到产业性的应用。应用上的代表在国外有Amazon.com,Last.fm,Digg等等。

     最近由于毕业论文的原因,开始研究这个题目,看了一个多星期的论文与相关资料之后,决定写篇总结来总结一下最近这段时间资料收集的成果。
 在微软1998年的那篇关于协同过滤的论文[1]中,将协同过滤分成了两个流派,一个是Memory-Based,一个是Model-Based。关于Memory-Based的算法,就是利用用户在系统中的操作记录来生成相关的推荐结果的一种方法,主要也分成两种方法,一种是User-Based,即是利用用户与用户之间的相似性,生成最近的邻居,当需要推荐的时候,从最近的邻居中得到推荐得分最高的几篇文章,用作推荐;另外一种是Item-Based,即是基于item之间的关系,针对item来作推荐,Amazon.com即是使用这种方法,使用一种基本的方法来得到不俗的效果。而实验结果也表明,Item-Based的做法比User-Based更有效[2]。而对于Model-Based的算法,即是使用机器学习中的一些建模算法,在线下对于模型进行预计算,在线上能够快速得出结果。主要使用的算法有 Bayesian belief nets , clustering , latent semantic , 最近几年又出现了使用SVM 等的CF算法。最近几年又提出一种新的分类,content-based,即是对于item的内容进行分析,从而进行推荐。而现阶段,比较优秀的一些应用算法,则是将以上几种方法,混合使用。比较说Google News[3],在它的系统中,使用了一种将Memory-Based与Model-Based两种方法混合的算法来处理。在Google的那篇论文里面,它提到了如何构建一个大型的推荐系统,其中Google的一些高效的基础架构如:BigTable,MapReduce等得到很好的应用。
     在这篇总结中,主要论及最基本的Memory-Based算法。对于Memory-Based算法,主要有两个步骤,第一个是计算相似性,另外一个是进行推荐。
 
     对于第一步,主要是于线下计算item-item或者user-user之间的相似性,主要使用的算法有Correlation-Based,如Pearson correlation [4], Jaccard coefficient[5]等,与Vector Cosine-Based Similarity , 和在实验中被验证具有最好效果的Regression 。 第二步,则是生成相关的推荐项目的过程。主要是根据上一步得出的最近邻,从其中得出最相关的Top-N个推荐的项目作为结果。这种方法被沿用多年,大多数的推荐系统都是使用这种方法构建的。
 
而对于大多数的项目而言,推荐系统都不可避免地面临以下几个问题[6]:
 
1.数据过度松散,当应用变得庞大,数据集开始增大的时候,就会出现这个问题了。可能大量的用户只是评价了一小部分的项目,而大多数的项目是没有进行评分的。 这个时候就会出现数据过度松散的问题。
2.同义项目问题,对于同义的项目,在系统中可能具有不同的标识符,对于这些项目之间的相关性就会被忽略。
3.垃圾攻击,对于一些利用系统进行恶意传播的用户,可能会制造一些虚假的评价,造成系统推荐的不正确行为。
4.冷启动问题,对于新使用系统的用户,系统中并没有相关的操作记录,没法生成相关的推荐。
总体而言,现在的推荐系统还是面临不少的问题。而在产业界的成功也会促使这项技术会继续发展。
 
收集到一些相关资料:
书籍:
[1]《Programming Collaborative Intelligence》,中文译名为《集体智慧编程》。是一本理论与实践的好书,手把手教你如何写一个推荐系统,不过其中的算法比较简单,但是对于入门是一本好书。
[2]《AlgorithmsIntelligentWeb》,也是非常浅显,重于实践的书,其中第二单,讲解了一个简单的推荐系统的搭建,并提供了源码,供学习。
组织:
[1]Resys Group,国内一个关于推荐引擎的小组,其中不乏牛人,定期也会举办活动。
[2]GroupLens,老字号的推荐引擎研究小组,它们的主页上有很多的资讯,推荐。
博客:
[1]Beyond.Search, Resys Group的创始人之一,里面有不少不错的博文,可以获得大量关于推荐系统发展的资讯。
[2]Daniel Lemire's blog ,一个研究人员的博客,推荐。
开源软件库:
[1] Taste,已经整合到Apache里的Mahout里面了,一个非常经典的推荐系统库。
 
参考文献:
【1】John S. Breese ,David Heckerman , Carl Kadie.Empirical Analysis of Predictive Algorithms for Collabrative Filtering 
【2】 Badrul Sarwar , George Karypis , Joseph Konstan , John Riedi.Item-Based Collaborative Filtering Recommendation Algorithm
【3】Abhinandan Das , Mayur Datar , Ashutosh Garg.Google News Personalization : Scalable Online Collaborative Filtering ,  
【4】Paul Resnick , Neophytos lacovou , Mitesh Suchak , Peter Bergstrom , John Riedl .GroupLens: An Open Architecture For Collaborative Filtering of Netnews 
【5】A.Broder..On the resemblance and containment of documents 
【6】XiaoYuan Su , Taghi M.Khoshgoftaar.A Survey of Collaborative Filtering Techiniques , 
 

Collaborative filtering的更多相关文章

  1. 协同滤波 Collaborative filtering 《推荐系统实践》 第二章

    利用用户行为数据 简介: 用户在网站上最简单存在形式就是日志. 原始日志(raw log)------>会话日志(session log)-->展示日志或点击日志 用户行一般分为两种: 1 ...

  2. mahout算法源码分析之Collaborative Filtering with ALS-WR (四)评价和推荐

    Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. 首先来总结一下 mahout算法源码分析之Collaborative Filtering with AL ...

  3. mahout算法源码分析之Collaborative Filtering with ALS-WR拓展篇

    Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. 额,好吧,心头的一块石头总算是放下了.关于Collaborative Filtering with AL ...

  4. mahout算法源码分析之Collaborative Filtering with ALS-WR 并行思路

    Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. mahout算法源码分析之Collaborative Filtering with ALS-WR 这个算 ...

  5. 基于物品的协同过滤推荐算法——读“Item-Based Collaborative Filtering Recommendation Algorithms” .

    ligh@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.3 基于物品的协同过滤推荐算法--读"Item-Based ...

  6. 【RS】Sparse Probabilistic Matrix Factorization by Laplace Distribution for Collaborative Filtering - 基于拉普拉斯分布的稀疏概率矩阵分解协同过滤

    [论文标题]Sparse Probabilistic Matrix Factorization by Laplace Distribution for Collaborative Filtering  ...

  7. 【RS】Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model - 当因式分解遇上邻域:多层面协同过滤模型

    [论文标题]Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model   (35th-ICM ...

  8. 亚马逊 协同过滤算法 Collaborative filtering

    这节课时郭强的三维课.他讲的是MAYA和max .自己对这个也不怎么的感兴趣.而且这个课感觉属于数字媒体.自己对游戏,动画,这些东西一点都不兴趣,比如大一的时候刚开学的时候,张瑞的数字媒体的导论课.还 ...

  9. collaborative filtering协同过滤

    每次我想看电影的时候,都会去问我的朋友,小健.一般他推荐的电影,我都比较喜欢.显然不是所有人都有小健这样的能力.因为我碰巧和小健有类似的品味. 这个生活中的经验,实际上有着广泛的用途. 当系统需要为某 ...

随机推荐

  1. 目标检测--Rich feature hierarchies for accurate object detection and semantic segmentation(CVPR 2014)

    Rich feature hierarchies for accurate object detection and semantic segmentation 作者: Ross Girshick J ...

  2. iis 站点部署后 Microsof .Net Framework异常

    最近在部署站点到 iis 中时,遇到 iis 崩溃的问题,一打开部署好 的站点后,就出现 Microsoft .Net Framework 异常的消息提示,具体的 异常情况如下: 于是在网上查找了很多 ...

  3. Oracle:使用过程中的问题集锦

    导读:在使用Oracle的过程中,又频繁的出问题.突然间就连接不上,各种报错了.在此,将问题给记录下来,方便以后查看. 一.ora 12514监听程序当前无法识别 之前一直链接使用的好好的,突然就连接 ...

  4. Leetcode008. String to Integer (atoi)

    /* improvement on dealing with overflow accroding to this: * https://discuss.leetcode.com/topic/5745 ...

  5. Windbg 线程状态笔记

    1.ntdll!ZwWaitForSingleObject 线程被挂起,如果下面跟着是这样子: RetAddr : Args to Child : Call Site `7766e518 : `fff ...

  6. landsat8简介

    简介 2013年2月11号,NASA 成功发射了 Landsat 8 卫星,为走过了四十年辉煌岁月的 Landsat 计划重新注入新鲜血液.LandSat- 8上携带有两个主要载荷:OLI和TIRS. ...

  7. Oracle笔记 十四、查询XML操作、操作系统文件

    --1.随机数 select dbms_random.value from dual; select mod(dbms_random.random, 10) from dual; --0-9随机数 s ...

  8. solr5.5教程-tomcat布署

    tomcat和solr在各自官网下载,版本如下: tomcat版本:8.0.24 solr版本:5.5.0 1.solr解压后,目录结构如下: 2.tomcat的webapps里新建solr目录, 把 ...

  9. SQL server 性能调优

    转自: http://www.cnblogs.com/MR_ke/archive/2010/08/25/1807856.html sql 2005性能调优 SQL Server在运行一段时间,随着数据 ...

  10. js动态改变图片热区坐标,手机端图片热区自适应

    <img id='banner1' src="images/banner.jpg" usemap="#banner" border="0&quo ...