本页使用了标题或全文手工转换

协同过滤

维基百科,自由的百科全书
跳到导航 跳到搜索

协同过滤(英语:Collaborative Filtering),简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人透过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息,回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要。协同过滤又可分为评比(rating)或者群体过滤(social filtering)。其后成为电子商务当中很重要的一环,即根据某顾客以往的购买行为以及从具有相似购买行为的顾客群的购买行为去推荐这个顾客其“可能喜欢的品项”,也就是借由社群的喜好提供个人化的信息、商品等的推荐服务。除了推荐之外,近年来也发展出数学运算让系统自动计算喜好的强弱进而去芜存菁使得过滤的内容更有依据,也许不是百分之百完全准确,但由于加入了强弱的评比让这个概念的应用更为广泛,除了电子商务之外尚有信息检索领域、网络个人影音柜、个人书架等的应用等。

发展简史[编辑]

以下就“协同过滤”发展历史上几个重要的里程碑做相关阐述:

Tapestry(1992)[编辑]

这是最早应用协同过滤系统的设计,主要是解决Xerox公司在Palo Alto的研究中心信息重载的问题。这个研究中心的员工每天会收到非常多的电邮却无从筛选分类,于是研究中心便发展这项实验性的邮件系统来帮助员工解决这项问题。 其运作机制大致如下:

  • 个人决定自己的感兴趣的邮件类型;
  • 个人随机发出一项信息需求,可预测的结果是会收到非常多相关的文件;
  • 从这些文件中个人选出至少三笔数据是其认为有用、会想要看的;
  • 系统便将之记录起来成为个人邮件系统内的过滤器,从此以后经过过滤的文件会最先送达信箱;

以上是协同过滤最早的应用,接下来的里程碑为GroupLens。

GroupLens(1994)[编辑]

这个系统主要是应用在新闻的筛选上,帮助新闻的阅听者过滤其感兴趣的新闻内容,阅听者看过内容后给一个评比的分数,系统会将分数记录起来以备未来参考之用,假设前提是阅听者以前感兴趣的东西在未来也会有兴趣阅听,若阅听者不愿揭露自己的身份也可以匿名进行评分。 和Tapestry不同之处有两点,首先,Tapestry专指一个点(如一个网站内、一个系统内)的过滤机制;GroupLens则是跨点跨系统的新闻过滤机制。再来,Tapestry不会将同一笔数据的评比总和起来;GroupLens会将同一笔数据从不同用户得到的评比加总。 GroupLens具有以下特点:

  • 开放性:所有的新闻阅听者皆可使用,虽然系统委托Better Bit Bureau设计给分的系统,但若有不同的评分机制也适用于GroupLens。
  • 方便性:给分并不是一件困难的事情且沟通上非常方便,评分结果容易诠释。
  • 规模性:有可能发展成大规模的系统,一旦发展成大规模,存储空间与计算成本问题显得相当棘手。
  • 隐密性:如果用户不想让别人知道他是谁,别人就不会知道。

由此可以看出,现今网络各个推荐系统的雏形已然形成,在GroupLens之后还有性质相近的MovieLens,电影推荐系统;Ringo,音乐推荐系统;Video Recommender,影音推荐系统;以及Jster,笑话推荐系统等等。乃至于今日的YouTube、aNobii皆是相似性质的网络推荐平台,较不同的是经过时间推移,网络越来越发达,用户越来越多,系统也发展得越来越严密。

电子商务的推荐系统[编辑]

最著名的电子商务推荐系统应属亚马逊网络书店,顾客选择一本自己感兴趣的书籍,马上会在底下看到一行“Customer Who Bought This Item Also Bought”,亚马逊是在“对同样一本书有兴趣的读者们兴趣在某种程度上相近”的假设前提下提供这样的推荐,此举也成为亚马逊网络书店为人所津津乐道的一项服务,各网络书店也跟进做这样的推荐服务如台湾的博客来网络书店。 另外一个例子是Facebook的广告,系统根据个人数据、周遭朋友感兴趣的广告等等对个人提供广告推销,也是一项协同过滤重要的里程碑,和前二者Tapestry、GroupLens不同的是在这里虽然商业气息浓厚同时还是带给用户很大的方便。 以上为三项协同过滤发展上重要的里程碑,从早期单一系统内的邮件、文件过滤,到跨系统的新闻、电影、音乐过滤,乃至于今日横行互联网的电子商务,虽然目的不太相同,但带给用户的方便是大家都不能否定的。

优缺点[编辑]

优点[编辑]

以用户的角度来推荐的协同过滤系统有下列优点:

  • 能够过滤机器难以自动内容分析的信息,如艺术品,音乐等。
  • 共享其他人的经验,避免了内容分析的不完全或不精确,并且能够基于一些复杂的,难以表述的概念(如信息质量、个人品味)进行过滤。
  • 有推荐新信息的能力。可以发现内容上完全不相似的信息,用户对推荐信息的内容事先是预料不到的。可以发现用户潜在的但自己尚未发现的兴趣偏好。
  • 推荐个性化、自动化程度高。能够有效的利用其他相似用户的反馈信息。加快个性化学习的速度。

缺点[编辑]

虽然协同过滤作为一推荐机制有其相当的应用,但协同过滤仍有许多的问题需要解决。整体而言,最典型的问题有

  • 新用户问题(New User Problem) 系统开始时推荐质量较差
  • 新项目问题(New Item Problem) 质量取决于历史数据集
  • 稀疏性问题(Sparsity)
  • 系统延伸性问题(Scalability)。

分类应用[编辑]

以用户为基础(User-based)的协同过滤[编辑]

相似统计的方法得到具有相似爱好或者兴趣的相邻用户,所以称之为以用户为基础(User-based)的协同过滤或基于邻居的协同过滤(Neighbor-based Collaborative Filtering)。 方法步骤:

  1. 收集用户信息:收集可以代表用户兴趣的信息。一般的网站系统使用评分的方式或是给予评价,这种方式被称为“主动评分”。另外一种是“被动评分”,是根据用户的行为模式由系统代替用户完成评价,不需要用户直接打分或输入评价数据。电子商务网站在被动评分的数据获取上有其优势,用户购买的商品记录是相当有用的数据。
  2. 最近邻搜索(Nearest neighbor search, NNS):以用户为基础(User-based)的协同过滤的出发点是与用户兴趣爱好相同的另一组用户,就是计算两个用户的相似度。例如:查找n个和A有相似兴趣用户,把他们对M的评分作为A对M的评分预测。一般会根据数据的不同选择不同的算法,当前较多使用的相似度算法有Pearson Correlation CoefficientCosine-based SimilarityAdjusted Cosine Similarity
  3. 产生推荐结果:有了最近邻集合,就可以对目标用户的兴趣进行预测,产生推荐结果。依据推荐目的的不同进行不同形式的推荐,较常见的推荐结果有Top-N 推荐和关联推荐。Top-N 推荐是针对个体用户产生,对每个人产生不一样的结果,例如:透过对A用户的最近邻用户进行统计,选择出现频率高且在A用户的评分项目中不存在的,作为推荐结果。关联推荐是对最近邻用户的记录进行关联规则(association rules)挖掘。

以项目为基础(Item-based)的协同过滤[编辑]

以用户为基础的协同推荐算法随着用户数量的增多,计算的时间就会变长,所以在2001年Sarwar提出了基于项目的协同过滤推荐算法(Item-based Collaborative Filtering Algorithms)。以项目为基础的协同过滤方法有一个基本的假设“能够引起用户兴趣的项目,必定与其之前评分高的项目相似”,透过计算项目之间的相似性来代替用户之间的相似性。 方法步骤:

  1. 收集用户信息:同以用户为基础(User-based)的协同过滤。
  2. 针对项目的最近邻搜索:先计算已评价项目和待预测项目的相似度,并以相似度作为权重,加权各已评价项目的分数,得到待预测项目的预测值。例如:要对项目 A 和项目 B 进行相似性计算,要先找出同时对 A 和 B 打过分的组合,对这些组合进行相似度计算,常用的算法同以用户为基础(User-based)的协同过滤。
  3. 产生推荐结果:以项目为基础的协同过滤不用考虑用户间的差别,所以精度比较差。但是却不需要用户的历史数据,或是进行用户识别。对于项目来讲,它们之间的相似性要稳定很多,因此可以离线完成工作量最大的相似性计算步骤,从而降低了在线计算量,提高推荐效率,尤其是在用户多于项目的情形下尤为显著。

以模型为基础(Model- based)的协同过滤[编辑]

以用户为基础(User-based)的协同过滤和以项目为基础(Item-based)的协同过滤系统称为以记忆为基础(Memory based)的协同过滤技术,他们共有的缺点是数据稀疏,难以处理大数据量影响即时结果,因此发展出以模型为基础的协同过滤技术。 以模型为基础的协同过滤(Model-based Collaborative Filtering)是先用历史数据得到一个模型,再用此模型进行预测。以模型为基础的协同过滤广泛使用的技术包括Latent Semantic IndexingBayesian Networks…等,根据对一个样本的分析得到模型。

未来发展[编辑]

Item-based的推荐算法能解决User-based协同过滤的一些问题,但其仍有许多问题需要解决,最典型的有稀疏问题(Sparsity)和冷引导问题(Cold-start),冷引导时效果较差。此外还有新用户问题和算法健壮性等问题。协同过滤作为一种典型的推荐技术有相当的应用,当前很多技术都是围绕协同过滤而展开研究的。在信息种类、表达方式越来越多的时代,旧式的信息分类过滤系统无法满足的地方,期许未来能用协同过滤的方法来解决。

参考文献[编辑]

  • Paul Resnick, Neophytos Iacovou, Mitesh Suchak, Peter Bergstrom, John Riedl, GroupLens: an open architecture for collaborative filtering of netnews, Computer Supported Cooperative Work, pp175-186, Chapel Hill, North Carolina, 1994.
  • Balabanovic & Shoham, 1997; Mobasher et al., 2000; Yang et al., 2004
  • F. Heylighen, Collaborative Filtering, http:/pespmc1.vub.ac.be/COLLFILT.html
  • Breese, J.S., Heckerman, D., Kadie, C.: Empirical analysis of predictive algorithms for collaborative filtering. In: Fourteenth Conference on Uncertainty in Artificial Intelligence,Madison, WI (1998)
  • 郑秀华、廖婉菁、吴肇铭,在线商品推荐系统之研究 -协同过滤机制之应用A Study for On-line Commodity Recommendation System:A Case of Collaborative Filtering,中原资管所
  • Jung, Seikyung, Designing and understanding information retrieval systems using collaborative filtering in an academic library environment, Oregon State University, 2007.
  • David Goldberg, David Nichols, Brian M. Oki, and Douglas Terry, Using collaborative filtering to weave an information tapestry, Communications of the ACM, Volume 35, Issue 12, pp61-70, 1992.
  • 韩双福,应用协同过滤机制于商机撮合电子报之研究 - 以食品业电子市集为例,中原大学信息管理学系硕士论文,民国92年7月。
  • 彭恺翔,以语音为基础之情境认知虚拟行动设群,天主教辅仁大学信息管理学系硕士论文,民国91年6月。
  • 冯文正,合作式网站推荐系统,国立交通大学信息学研究所,民国89年。
  • 蔡登、卢增祥、李衍达,信息协同过滤,电脑科学,第29期,页1~页4,2002年。
  • 推荐系统:主要推荐方法 https://web.archive.org/web/20081228232456/http://www.guwendong.cn/post/2006/methods_for_recommender_system.html (此链接导向不良网站)