您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 推荐系统调研报告及综述
推荐系统调研报告及综述张永锋清华大学计算机系人工智能研究所zhangyf07@gmail.com一、推荐系统概述1.1什么是推荐系统推荐系统(RecommenderSystem)的发展已经经历了近20年的时间,但是迄今为止仍没有人试图对推荐系统给出一个精确的定义。广义上的推荐系统可以理解为是主动向用户推荐物品(Item)的系统,所推荐的物品可以是音乐、书籍、餐厅、活动、股票、数码产品、新闻条目等等,这依赖于具体的应用领域,推荐系统所推荐的物品或者对用户有帮助,或者用户可能感兴趣[1]。随着电子商务规模的不断扩大,商品数量和种类不断增长,用户对于检索和推荐提出了更高的要求。由于不同用户在兴趣爱好、关注领域、个人经历等方面的不同,以满足不同用户的不同推荐需求为目的、不同人可以获得不同推荐为重要特征的个性化推荐系统(PersonalizedRecommenderSystem)应运而生[1]。目前所说的推荐系统一般指个性化推荐系统。1.2推荐系统的发展历史如果追根溯源,推荐系统的初端可以追溯到函数逼近理论、信息检索、预测理论等诸多学科中的一些延伸研究。推荐系统成为一个相对独立的研究方向一般被认为始自1994年明尼苏达大学GroupLens研究组推出的GroupLens系统[2]。该系统有两大重要贡献:一是首次提出了基于协同过滤(CollaborativeFiltering)来完成推荐任务的思想,二是为推荐问题建立了一个形式化的模型(见1.4)。基于该模型的协同过滤推荐引领了之后推荐系统在今后十几年的发展方向。GroupLens所提出的推荐算法实际上就是目前人们时常提及的基于用户的协同过滤推荐算法(User-basedCollaborativeFilteringAlgorithms),虽然论文本身并没有使用这样一个名字。在之后的十几年中,其它一些著名的协同过滤算法逐渐被提出,主要的有基于物品的协同过滤算法(Item-basedCollaborativeFilteringAlgorithms)[3],基于矩阵分解的协同过滤算法(SVD-based/NMF-based,etc.)等等。当然,基于其它方法而非协同过滤的推荐算法也在不断地发展,这些方法之间的互补、融合也成为一个重要的研究方向,这些会在本文第二部分(推荐方法的分类)和第三部分(典型推荐算法概述及优缺点)中详细阐述。目前,推荐算法已经已经被广泛集成到了很多商业应用系统中,比较著名的有Netflix在线视频推荐系统、Amazon网络购物商城等。实际上,大多数的电子商务平台尤其是网络购物平台,都不同程度地集成了推荐算法,如淘宝、京东商城等。Amazon发布的数据显示,亚马逊网络书城的推荐算法为亚马逊每年贡献近三十个百分点的创收。1.3推荐系统的输入输出1.3.1推荐系统的输入数据推荐系统可能的输入数据多种多样,但是归纳起来可以分为用户(User)、物品(Item)和评价(Review)三个层面,它们分别对应于一个矩阵中的行、列、值。1.3.1.1物品(Item)用来描述一个Item的性质,也经常被称为ItemProfile。根据item的不同,ItemProfile也是不尽相同的。比如对于图书推荐,ItemProfile有可能包括图书所属类别、作者、页数、出版时间、出版商等;对于新闻推荐,ItemProfile则有可能是新闻的文本内容、关键词、时间等;而对于电影,可以是片名、时长、上映时间、主演、剧情描述等。1.3.1.2用户(User)用来描述一个用户的“个性”,也就是UserProfile。根据不同的应用场景以及不同的具体算法,UserProfile可能有不同的表示方式。一种直观且容易理解的表示方式与ItemProfile类似,比如该用户的性别、年龄、年收入、活跃时间、所在城市等等。但是在推荐系统中,这样的profile很难集成到常见的算法中,也很难与具体的item之间建立联系(比如我们很难断定某商品一定不会被某年龄段的人喜欢,这样的判断过于粗糙),因此这种UserProfile在推荐系统中虽然也经常会被使用,但是很少直接用在推荐算法中,而是用于对推荐结果进行过滤和排序。由于在很多推荐算法中,计算UserProfile和ItemProfile之间的相似度是一个经常会用到的操作,另一种使用更为广泛也更有实际意义的UserProfile应运而生[4]。它的结构与该系统中的ItemProfile的结构一样,为了更清楚地说明其结构,我们以一种典型的构建UserProfile的方法为例来进行说明:考虑该User打过分的所有Item,将这些Item的ItemProfile的每一项分别进行加权平均,得到一个综合的Profile,作为该用户的UserProfile。这种UserProfile的优点是非常容易计算其与Item之间的相似度,同时比较准确地描述了该用户在Item上的偏好,巧妙地避开了用户私人信息这一很难获得的数据,具有保护隐私的能力,进一步,如果加入时间因素,还可以研究用户在Item上偏好的变化等等,因此受到广泛应用。1.3.1.3评价(Review)评价是联系一个User与一个Item的纽带,昀简单的Review是User对某一Item的打分(Rate),表示了该User对该Item的喜好程度。在常见的推荐算法中,这是一个1~5的整数。当然,用户对物品或信息的偏好,根据应用本身的不同,还可能包含很多不同的信息,比如用户对商品的评论文本、用户的查看历史记录、用户的购买记录等,这些信息总体上可以分为两类:一是显式的用户反馈,这是用户对商品或信息给出的显式反馈信息,评分、评论属于该类;另一类是隐式的用户反馈,这类一般是用户在使用网站的过程中产生的数据,它们也反映了用户对物品的喜好,比如用户查看了某物品的信息,用户在某一页面上的停留时间等等。虽然目前大多数的推荐算法往往都是基于用户评分矩阵(theRatingMatrix)的,但是基于用户评论、用户隐式反馈数据的方法来完成推荐越来越受到人们的关注,这些方面的研究长期以来受到文本挖掘、用户数据收集等方面的难点的制约,没有得到充分的研究,但是它们在解决推荐系统的可解释性、冷启动问题等方面确实具有重要的潜力[5][6][7]。1.3.2推荐系统的输出数据对于一个特定的用户,推荐系统给他的输出是一个“推荐列表”,该推荐列表按照优先级的顺序给出了对该用户可能感兴趣的物品。对于一个实用的推荐系统而言,仅仅给出推荐列表往往是不够的,因为用户不知道为什么系统给出的推荐是合理的,进而也就不太会采纳系统给出的推荐。为了解决这个问题,推荐系统另一个重要的输出是“推荐理由”,它表述了系统为什么认为推荐该物品是合理的,如“购买了某商品的用户有90%也购买了该商品”等等。为了解决推荐合理性的问题,推荐理由在产业界被作为一个重要的吸引用户接受推荐物品的方法,在学术届也受到越来越多的关注[9]。1.4.推荐问题的形式化这里给出推荐问题一个昀典型的形式化,如上所述,该形式化方法来昀早自于GroupLens[2],并在[12]中做了进一步的阐述。首先我们拥有一个大型稀疏矩阵,该矩阵的每一行表示一个User,每一列表示一个Item,每一个数值表示该User对该Item的打分,这是一个0~5的分值,0表示该User未曾对该Item打分,1表示该User对该Item昀不满意,5表示该User对该Item昀满意。视具体情况,对于每一个User,可能有其对应的UserProfile,对于每一个Item,可能有其对应的ItemProfile,如上所述。我们现在解决这样一个问题:给定该矩阵之后,对于某一个User,向其推荐哪些他没有打过分的Item昀容易被他接受,这里的“接受”根据具体的应用环境有所不同,有可能是查看该新闻、购买该商品、收藏该网页等等。对于推荐算法,还需要一系列的评价指标来评价推荐的效果,这些评价方法和评价指标将在第四部分具体说明。1.5.推荐系统的两大核心问题有了如上的形式化描述之后,推荐系统所要解决的具体问题总体有两个,分别是预测(Prediction)和推荐(Recommendation)“预测”所要解决的主要问题是推断每一个User对每一个Item的喜好程度,其主要手段是根据已有的信息来计算User在他没打分的Item上可能的打分,计算结果当然是越准确越好,至于如何来描述和评价预测的准确度,将会在后面的第四部分说明。“推荐”所要解决的主要问题是根据预测环节所计算的结果向用户推荐他没有打过分的Item。由于Item数量众多,用户不可能全部浏览一遍,因此“推荐”的核心步骤是对推荐结果的排序(Ranking)。当然,按照预测分值的高低直接排序确实是一种比较合理的方法,但是在实际系统中,Ranking要考虑的因素很多,比如用户的年龄段、用户在昀近一段时间内的购买记录等,第一类UserProfile往往在这个环节派上用场。虽然人们早就意识到“预测”和“推荐”作为推荐系统的两大核心问题都具有重要的作用,但是目前绝大多数的推荐算法都把精力集中在“预测”环节上,多数论文在给出对预测效果的评估后就结束了。“推荐”作为重要的后续环节需要更多的研究,这与搜索引擎的发展非常类似。目前,推荐多样性[8]、推荐界面等很多方面的研究也在受到越来越多的关注。二、推荐方法的分类按照不同的分类指标,推荐系统具有很多不同的分类方法,常见的分类方法有依据推荐结果是否因人而异、依据推荐方法的不同、依据推荐模型构建方式的不同等。2.1依据推荐结果是否因人而异主要分为大众化推荐和个性化推荐。大众化推荐往往与用户本身及其历史信息无关,在同样的外部条件下,不同用户获得的推荐是一样的。大众化推荐一个典型的例子是查询推荐,它往往只与当前的query有关,而很少与该用户直接相关。个性化推荐的特点则是不同的人在同样的外部条件下,也可以获得与其本身兴趣爱好、历史记录等相匹配的推荐,前面已经有所介绍,这里不再详细阐释。2.2依据推荐方法的不同也就是考虑如何发现数据的相关性:大部分的推荐系统其工作原理还是基于物品或用户的相似性进行推荐,大致上可以分为如下几种:基于人口统计学的推荐(Demographic-basedRecommendation)[10],基于内容的推荐(Content-BasedRecommendation)[11],以及基于协同过滤的推荐(CollaborativeFiltering-BasedRecommendation),以及混合型推荐系统(HybridRecommendation)[16]。其中基于协同过滤的推荐被研究人员研究的昀多也昀为深入,它又可以被分为多个子类别,分别是基于用户的推荐(User-BasedRecommendation)[2],基于物品的推荐(Item-BasedRecommendation)[3],基于社交网络关系的推荐(Social-BasedRecommendation)[13],基于模型的推荐(Model-basedRecommendation)等。基于模型的推荐是指利用系统已有的数据,学习构建一个模型,进而利用该模型进行推荐,这里的模型可以是SVD,NMF等矩阵分解的结果[14],也可以是利用贝叶斯分类器、决策树、人工神经网络等模型转化为分类问题,或者基于Co-Clustering等聚类技术对数据进行预处理的结果[15]等等。这些方法会在后面的第三部分加以介绍和讨论。2.3依据推荐模型构建方式的不同可以分为基于用户或物品本身的启发式推荐(Heuristic-Based,又称为Memory-BasedRecommendation)、基于关联规则的推荐(AssociationRuleMiningforRecommendation)[17],基于模型的推荐(Model-basedRecommendation),以及混合型推荐系统(HybridRecommendation)。三、典型推荐算法概述及优缺点3.1基于人口统计学的推荐(Demographic-BasedRec
本文标题:推荐系统调研报告及综述
链接地址:https://www.777doc.com/doc-6527590 .html