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