本节书摘来自华章出版社《推荐系统:技术、评估及高效算法》一书中的第1章,第1.1节,作者 [ 美]弗朗西斯科·里奇(Francesco Ricci)利奥·罗卡奇(Lior Rokach)布拉哈·夏皮拉(Bracha Shapira)保罗 B.坎特(Paul B.Kantor),更多章节内容可以访问云栖社区“华章计算机”公众号查看
1.1 简介
推荐系统(RS)是一种软件工具和技术方法,它可以向用户建议有用的物品[60,85,25],这种建议适用于多种决策过程,如购买什么物品、听什么音乐、在网上浏览什么新闻等。
“物品”是用来表示系统向用户推荐内容的总称。一个推荐系统通常专注于一个特定类型的物品(如CD或新闻),因此它的设计、图形用户界面以及用于生成建议的核心的推荐技术都是为特定类型的物品提供有用和有效的建议而定制的。
推荐系统主要针对的是那些缺乏足够的个人经验和能力的人,他们无法评估潜在的大量可供选择的物品,比如,某个网站提供的商品[85]。一个典型的例子是图书推荐系统,它帮助用户挑选一本书来读。在亚马逊,网站采用个性化推荐系统为每个客户进行推荐[47]。由于推荐通常是个性化的,不同的用户或用户组接收的建议是不同的。当然也存在非个性化推荐。它们都是非常简单的,通常出现在报纸或杂志上。典型的例子包括书籍和CD等的top 10推荐(最热销的前10名)。虽然在某些情况下它们可能是有用和有效的,但这些类型的非个性化推荐通常不是推荐系统研究要解决的问题。
个性化推荐最简单的形式是提供一个排好序的物品列表。通过这个排序列表,推荐系统试图根据用户的偏好和其他约束条件来预测最合适的产品或服务。为了完成这样的计算任务,推荐系统收集用户的喜好,这种喜好是显式的,如为产品打分,或通过解释用户的行为做出推断。例如,推荐系统可能会把访问某个特定商品详情页的行为作为该用户喜爱这个主页上的商品的隐式信号。
推荐系统的发展源于一个很简单的现象:人们在做日常工作和日常决策时总是依赖于其他人提供的建议[60,70]。例如,要选择一本书的时候,通常依靠朋友的推荐;雇主依靠推荐信做招聘的决定;当选择观看的影片时,人们倾向于阅读并且依赖影评家写在报纸上的影评。
为了模拟这种行为,第一个推荐系统通过算法将社区用户的建议推荐给一个活跃用户,也就是在寻找推荐的用户。推荐的物品是这些相似用户(那些品味相似的用户)喜欢的。这种方法称为协同过滤,它的理论依据是,如果这个活跃的用户以前与一些用户有相似爱好,那么来自这些相似用户的其他推荐应该是相关的,这些推荐也是此活跃用户感兴趣的。
随着电子商务网站的发展,迫切需要出现一种能过滤所有可用的替代品的推荐系统。让用户从这样纷繁复杂的物品(产品和服务)中作出最恰当的选择是非常困难的。
互联网信息的爆炸式增长和种类的纷繁复杂以及新兴电子商务服务(购买产品、产品比较、拍卖等)的出现经常压得用户喘不过气来,导致用户无所适从。这种选择多样性不但没有产生经济效益,反而降低了用户满意度。大家都明白可选择是好的,但是太多的选择就不是很好了。实际上,随着选择对自由、自治和自我决定带来的影响变得过度,我们就会因为选择而觉得自由是一件痛苦的事情[96]。
近年来,推荐系统被证明是一种解决信息过载问题的有效工具。从根本上来讲,推荐系统是通过为用户指引该用户不熟悉的新物品来解决信息过载现象的,这些新物品或许与该用户当前的需求相关。对于用户每一个清晰表达的请求,根据不同的推荐方法和用户所处的环境和需求,推荐系统利用存储在自定义数据库的关于用户、可用物品以及先前交易的数据和各种类型的其他知识产生推荐内容。然后用户可以浏览推荐的内容。用户可能接受也可能不接受推荐,也可能马上或者过一段时间提供隐式或者显式的反馈。所有这些用户的行为和反馈可以存储在推荐数据库,并且可用于在下一次用户和系统相互作用时产生新的推荐。
如上所述,相比于其他经典的信息系统的工具和技术(如数据库或搜索引擎),推荐系统的研究是相对较新的。在20世纪90年代中期,推荐系统成为一个独立的研究领域[35,60,70,7]。近年来,下面的事实说明人们对推荐系统的兴趣大大增加:
对于一些有很高评价的网站,如Amazon.com、YouTube、Netflix、Yahoo!、Tripadvisor、Last.fm和IMDb,推荐系统扮演了重要的角色。此外,许多媒体公司正在开发和部署推荐系统作为它们提供给用户的服务的一部分。例如,Netflix(一家提供在线电影租赁服务的网站)向第一个能够成功地显著提高推荐系统性能的团队奖励了100万美元[54]。
本领域有专门的正式会议和相关的专题研讨会。在这里专指ACM推荐系统会议(RecSys),该会议成立于2007年,现在是新的推荐技术的研究和应用的顶级年度盛会。此外,像数据库、信息系统和自适应系统领域等更传统的大会也经常会包括以推荐系统为主题的会议。在这些会议中,值得一提的是ACM SIGIR(Special Interest Group on Information Retrieval)、UMAP(User Modeling,Adaptation and Personalization)和ACM SIGMOD(Special Interest Group on Management Of Data)。
世界各地的高等教育机构在本科生和研究生的课程中已经提供专门研究推荐系统的课程;在计算机科学会议中关于推荐系统的专题报告也引起了人们的极大关注;最近一本介绍推荐系统技术的书也已经出版[48]。
在学术期刊中,已经有一些特刊专题涵盖推荐系统领域的研究和发展。期刊中包括推荐系统专刊的有:《AI Communications》(2008)、《IEEE Intelligent Systems》(2007)、《International Journal of Electronic Commerce》(2006)、《International Journal of Computer Science and Applications》(2006)、《ACM Transactions on Computer-Human Interaction》(2005)和《ACM Transactions on Information Systems》(2004)。
本章简要介绍了推荐系统的基本思想和概念。主要目标并不是对推荐系统给出包罗万象的综合介绍和概览,而是用一个连贯和结构化的方式描述这本手册的章节内容,以此帮助读者理解这本手册提供的极其丰富和详细的内容。
本书分成五部分:推荐相关技术、推荐系统的应用和评价、推荐系统的交互、推荐系统和社区、主流算法。
第一部分介绍当前构建推荐系统最普遍使用的技术,例如,协同过滤、基于内容的数据挖掘的方法和上下文相关的方法。
第二部分概述了已用于评价推荐质量的技术和方法。这一部分还涉及推荐系统设计与实践方面;描述设计和实施推荐系统的注意事项;为选择更合适的算法提供准则。这部分还考虑到可能影响推荐系统设计(域、设备、用户等)的方面。最后是评估开发的推荐系统所用的方法、挑战和评测指标。
第三部分包括一些涉及推荐系统如何呈现、浏览、解释和可视化等若干问题的论文。这里讨论的技术使推荐过程更加结构化以及具有可交互性。
第四部分讨论的是一个相当新颖的话题,利用各类用户生成内容(UGC,如标签、搜索查询、信任评价等)来产生类型新颖且更可信的推荐结果。尽管这个话题相对新颖,但它实质上根植于基于协同推荐的核心理念。
第五部分展示了关于几个高级课题的论文,例如,探索如何用主动学习的原则来指导新知识的获取;防止推荐系统受恶意用户攻击的合适技术;如何整合多种类型的用户反馈以及用户偏好信息来构造更可靠的推荐系统。