推荐系统简介

        随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载(information overload)的时代。在这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战。

        对于信息消费者,从大量信息中找到自己感兴趣的信息是一件非常困难的事情;对于信息生产者,让自己生产的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。推荐系统就是解决这一矛盾的重要工具。

        推荐系统的任务就是联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。(注:信息也统称为“物品”)。

图1  推荐系统的基本任务是联系用户和物品

1、推荐系统VS搜索引擎

        解决信息过载的两种方法:

        1.1 搜索引擎

        优点:可以让用户通过搜索关键词找到自己需要的信息。

        缺点:(1)需要用户主动提供准确的关键词来寻找信息,当用户无法找到准确描述自己需求的关键词时,搜索引擎就无能为力了;(2)用户在使用同一个关键字搜索信息时,得到的结果是相同的;(3)信息及其传播是多样化的,而用户对信息的需求是多元化和个性化的,那么通过以搜索引擎为代表的信息检索系统获得的结果不能满足用户的个性化需求,仍然无法很好地解决信息超载问题。

        1.2 个性化推荐系统

        优点:(1)不需要用户提供明确的需求,它是根据用户的信息需求、兴趣等,将用户感兴趣的信息、产品等推荐给用户;(2)从物品的角度出发,推荐系统可以更好地发掘物品的长尾(long tail)。

2、推荐系统的概念和定义

        推荐系统的定义有不少,但被广泛接受的推荐系统的概念和定义是Resnick和Varian在1997年给出的:“它是利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程”。

        推荐系统有3个重要的模块:用户建模模块、推荐对象建模模块、推荐算法模块。通用的推荐系统模型流程如图2所示。推荐系统把用户模型中兴趣需求信息和推荐对象模型中的特征信息匹配,同时使用相应的推荐算法进行计算筛选,找到用户可能感兴趣的推荐对象,然后推荐给用户。

图2  推荐系统通用模型

3、推荐系统的发展历程

        1995年3月,卡耐基.梅隆大学的RobertArmstrong等人在美国人工智能协会上提出了个性化导航系统Web Watcher;斯坦福大学的MarkoBalabanovic等人在同一会议上推出了个性化推荐系统LIRA;

        1995年8月,麻省理工学院的Henry Lieberman在国际人工智能联合大会(IJCAI)上提出了个性化导航智能体Letizia;

        1996年, Yahoo 推出了个性化入口My Yahoo;

        1997年,AT&T实验室提出了基于协作过滤的个性化推荐系统PHOAKS和Referral Web;

        1999年,德国Dresden技术大学的Tanja Joerding实现了个性化电子商务原型系统TELLIM;

        2000年,NEC研究院的Kurt等人为搜索引擎CiteSeer增加了个性化推荐功能;

        2001年,纽约大学的GediminasAdoavicius和Alexander Tuzhilin实现了个性化电子商务网站的用户建模系统1:1Pro;

        2001年,IBM公司在其电子商务平台Websphere中增加了个性化功能,以便商家开发个性化电子商务网站。

        2003年,Google开创了AdWards盈利模式,通过用户搜索的关键词来提供相关的广告。AdWords的点击率很高,是Google广告收入的主要来源。2007年3月开始,Google为AdWords添加了个性化元素。不仅仅关注单次搜索的关键词,而是对用户一段时间内的搜索历史进行记录和分析,据此了解用户的喜好和需求,更为精确地呈现相关的广告内容。

        2007年,雅虎推出了SmartAds广告方案。雅虎掌握了海量的用户信息,如用户的性别、年龄、收入水平、地理位置以及生活方式等,再加上对用户搜索、浏览行为的记录,使得雅虎可以为用户呈现个性化的横幅广告。

        2009年,Overstock(美国著名的网上零售商)开始运用ChoiceStream公司制作的个性化横幅广告方案,在一些高流量的网站上投放产品广告。 Overstock在运行这项个性化横幅广告的初期就取得了惊人的成果,公司称:“广告的点击率是以前的两倍,伴随而来的销售增长也高达20%至30%。”

        2009年7月,国内首个推荐系统科研团队北京百分点信息科技有限公司成立,该团队专注于推荐引擎技术与解决方案,在其推荐引擎技术与数据平台上汇集了国内外百余家知名电子商务网站与资讯类网站,并通过这些B2C网站每天为数以千万计的消费者提供实时智能的商品推荐。

        2011年9月,百度世界大会2011上,李彦宏将推荐引擎与云计算、搜索引擎并列为未来互联网重要战略规划以及发展方向。百度新首页将逐步实现个性化,智能地推荐出用户喜欢的网站和经常使用的APP。

4、推荐系统的3个重要模块

4.1、用户建模模块

        一个好的推荐系统要给用户提供个性化的、高效的、准确的推荐,那么推荐系统应能够获取反映用户多方面的、动态变化的兴趣偏好,推荐系统有必要为用户建立一个用户模型,该模型能获取、表示、存储和修改用户兴趣偏好,能进行推理,对用户进行分类和识别,帮助系统更好地理解用户特征和类别,理解用户的需求和任务,从而更好地实现用户所需要的功能。推荐系统根据用户的模型进行推荐,所以用户描述文件对推荐系统的质量有至关重要的影响。

        建立用户模型之前,需要考虑下面几个问题:

      (1)模型的输入数据有哪些,如何获取模型的输入数据。

      (2)如何考虑用户的兴趣及需求的变化。

      (3)建模的对象是谁。

      (4)清楚了上述内容后,怎么建模呢。

      (5)模型的输出是什么。

        用户建模的大致过程如图3所示。


图3  用户建模的过程

        获取用户信息就是解决模型输入数据的问题,模型的输入数据主要有以下几种:

      (1)用户属性:这是用户最基本的信息,包括社会属性和自然属性,比如用户的姓名、年龄、职业、收入、学历等。

      (2)用户手工输入的信息:这部分是用户主动提供给系统的信息,包括用户在搜索引擎中输入的关键词,用户输入的感兴趣的主题、频道。还有一类重要的信息就是用户反馈的信息,包括用户自己对推荐对象的喜好程度;用户标注的浏览页面的感兴趣、不感兴趣或感兴趣的程度等。

      (3)用户的浏览行为和浏览内容:用户浏览的行为和内容体现了用户的兴趣和需求,它们包括浏览次数、频率、停留时间等,浏览页面时的操作(收藏、保存、复制等)、浏览时用户表情的变化等。服务器端保存的日志也能较好地记录用户的浏览行为和内容。

      (4)推荐对象的属性特征:不同的推荐对象,用户建模的输入数据也不同。网页等推荐对象通常考虑对象的内容和用户之间的相似性,而产品等推荐对象通常考虑用户对产品的评价。为提高推荐质量,推荐对象的相关的属性也要考虑进去,比如除网页内容以外,还要考虑网页的发布人、时间等。产品类的对象还要考虑产品的品牌、价格、出售时间等。

        获取模型输入数据的方式有显式获取、隐式获取和启发式获取三种方式。

        显式的获取方式用户主动告之。

        优点:,能相对准确地反映用户的需求,同时所得的信息比较具体、全面、客观,结果往往比较可靠。

        缺点:(1)很难收到实效,主要原因就是很少用户愿意花时间或不愿向系统表达自己的喜好;(2)灵活性差,存在答案异质性,用户兴趣主题改变时要手动更改系统中用户兴趣等诸多问题,使得该方法的实时性、可操作性很难得到保证;(3)对用户不是很友好,具有很大的侵袭性

        隐式获取法是指系统通过跟踪用户行为,通过推理获取用户的兴趣偏好,因为用户的很多动作都能暗示用户的喜好,比如查询、浏览页面和文章、标记书签、反馈信息、点击鼠标、拖动滚动条,Web 日志挖掘等 。

        优点:可以减少用户很多不必要的负担,不会打扰用户的正常生活。

        缺点:(1)跟踪的结果未必能正确反映用户的兴趣偏好;(2)系统若过度跟踪用户的历史记录,有时会引起用户反感,而放弃对当前推荐系统的使用。

        上述获取兴趣偏好的方法有时受用户知识背景、资源和经验等方面因素的限制,用户有时意识不到自己的兴趣主题,因此,为用户提供启发式信息,如专家意见、领域术语抽取,可以实现领域知识的复用,为用户间的协同提供支持,提高用户兴趣获取质量。

        用户的兴趣和需求会随着时间和情景发生变化,用户建模时要考虑到用户长期兴趣偏好和短期兴趣偏好,还要考虑兴趣的变化,目前很多研究关注了用户的长期兴趣,建立了静态模型,用户兴趣更新的动态模型也受到了很多关注,短期兴趣的关注还比较少。

        建模的对象单用户建模和群组建模之分,单用户建模针对单个用户进行建模,比如基于内容的推荐,群组建模是针对群体用户进行建模,比如协同推荐。

用户模型的建模方法主要有遗传算法、基于机器学习的方法,例如TF-IDF、自动聚类、贝叶斯分类器、决策树归纳和神经网络方法等。

        用户建模的输出即用户模型的表示方法有很多种,使用用户感兴趣的信息主题表示用户模型的主题表示法,比如Google、Microsoft AOL。多用于协同推荐的用户-项目评价矩阵表示法。利用用户检索过的案例或者与案例相关的一组属性值来表示用户兴趣偏好的案例表示法,如CA SPER系统、WebWatcher、TAGUS 系统、BGP-MS 系统、LIRA、Syskill&We-bert 等。基于本体论的表示法用一个本体来表示用户感兴趣的领域,例如Quickstep系统和aceMedia系统。

4.2、推荐对象建模模块

        推荐系统应用于不同的领域,它推荐的对象也就各不相同,如何对推荐对象进行描述对推荐系统也有很重要的影响。和用户描述文件一样,要对推荐对象进行描述之前也要考虑以下几个问题:

      (1)提取推荐对象的什么特征,如何提取,提取的特征用于什么目的。

      (2)对象的特征描述和用户文件描述之间有关联。

      (3)提取到的每个对象特征对推荐结果会有什么影响。

      (4)对象的特征描述文件能否自动更新。

        推荐对象的描述文件中的对象特征和用户的描述文件中的兴趣偏好进行推荐计算,获得推荐对象的推荐度,所以推荐对象的描述文件与用户的描述文件密切相关,通常的做法是用同样的方法来表达用户的兴趣偏好和推荐对象。

        推荐系统推荐对象包括众多的领域,比如报纸、Usenet新闻、科技文档、Email,还有诸如音乐、电影等多媒体资源等等。不同的对象,特征也不相同,目前并没有一个统一的标准来进行统一描述,主要有基于内容的方法和基于分类的方法两大类方法。

        下面针对文档类对象的这两个表示方法给以分析。

        基于内容的方法是从对象本身抽取信息来表示对象,使用最广泛的方法是用加权关键词矢量,该方法通过对一组文档的统计分析得出文档的特征向量。方法很多,比较简单的做法就是计算每个特征的熵,选取具有最大熵值的若干个特征;也可以计算每个特征的信息增量(Information gain),也就是计算每个特征在文档中出现前后的信息熵之差;还可以计算每个特征的互信息(mutual information),也就是计算每个特征和文档的相关性;还可使用 X2统计方法。

        在完成文档特征的选取后,还得计算每个特征的权值,权值大的对推荐结果的影响就大。目前使用最广泛的是TFI-DF方法。

        基于分类的方法是把推荐对象放入不同类别中,这样可以把同类文档推荐给对该类文档感兴趣的用户了。文本分类的方法有多种,比如朴素贝叶斯(Naive-Bayes),k最近邻方法(KNN)和支持向量机(SVM)等。

        文本等对象特征提取技术相对比较成熟,但推荐系统的对象不一定具有文本特征或文本不足以作为描述,尤其是网络上广泛存在的多媒体数据,自动化的特征提取方法需要结合多媒体内容分析领域的相关技术。

        推荐系统推荐给用户的对象首先不能与用户看过的对象重复,其次也不能与用户刚刚看过的对象不是太形似或者太不相关,这就是所谓的模型过拟合问题(可扩展性问题)。出现这一问题的本质上来自数据的不完备性,解决的主要的方法是引入随机性,使算法收敛到全局最优或者逼近全局最优,比如遗传算法等。关于这一问题的研究是推荐系统研究的一个难点和重点。

        推荐系统中出现新的对象时,推荐系统尤其是协同过滤系统中,新对象出现后必须等待一段时间才会有用户查看并进行评价,在此之前推荐系统无法对此对象进行分析和推荐,这就是推荐系统研究的另一个难点和重点——冷启动问题。目前,解决这一问题的方法就是从推荐方法上考虑,比如使用组合推荐方法来应付。对推荐对象的描述能动态更新会成为研究一个方向。

4.3、推荐算法模块

        推荐算法(或叫推荐策略)是整个推荐系统中最核心和关键的部分,在很大程度上决定了推荐系统类型和性能的优劣,推荐算法的研究是推荐系统最为繁荣的部分,大量的论文著作都关注了这个方面。目前,出现的推荐算法有很多,对其分类的标准也没有一个统一的标准,但受到大家公认的推荐算法基本包括以下几种:基于内容的推荐协同过滤推荐基于关联规则的推荐基于知识的推荐组合(混合)推荐其他推荐。以下来介绍各种推荐策略及其优缺点。

4.3.1 基于内容的推荐

        基于内容的推荐(content-based recommendation)方法源于信息获取领域,是信息检索领域的重要研究内容。该方法是根据用户已经选择的对象,从推荐对象中选择其他特征相似的对象作为推荐结果。

       (1)这一推荐算法首先提取推荐对象的内容特征,和用户模型中的用户兴趣偏好匹配,匹配度较高的推荐对象就可作为推荐结果推荐给用户。例如在进行音乐推荐时,系统分析用户以前选择的音乐的共性,找到用户的兴趣点。然后从其他音乐中选择和用户兴趣点相似的音乐推荐给用户;

       (2)计算推荐对象的内容特征和用户模型中兴趣特征二者之间的相似性是该推荐策略中一个关键部分;

       (3)计算所得的值按其大小排序,将最靠前的若干个对象作为推荐结果呈现给用户。

        基于内容的推荐算法中的关键就是用户模型描述和推荐对象内容特征描述。其中对推荐对象内容进行特征提取,目前对文本内容进行特征提取方法比较成熟,如浏览页面的推荐、新闻推荐等。但网上的多媒体信息大量涌现,而对这些多媒体数据进行特征提取还有待技术支持,所以多媒体信息还没有大量用于基于内容的推荐。

        基于内容的推荐的优点如下:

       (1)简单、有效,推荐结果直观,容易理解,不需要领域知识。

       (2)不需要用户的历史数据,如对对象的评价等。

       (3)没有关于新推荐对象出现的冷启动问题。

       (4)没有稀疏问题。

       (5)比较成熟的分类学习方法能够为该方法提供支持,如数据挖掘、聚类分析等。

         基于内容的推荐的缺点如下:

       (1)该方法的广泛应用受到了推荐对象特征提取能力的限制较为严重。因为多媒体资源 没有有效的特征提取方法,比如图像、视频、音乐等。既使文本资源,其特征提取方法也只能反映资源的一部分内容,例如,难以提取网页内容的质量,这些特征可能影响到用户的满意度。

       (2)很难出现新的推荐结果。推荐对象的内容特征和用户的兴趣偏好匹配才能获得推荐,用户将仅限于获得跟以前类似的推荐结果,很难为用户发现新的感兴趣的信息。

       (3)存在新用户出现时的冷启动问题。当新用户出现时,系统较难获得该用户的兴趣偏好,就不能和推荐对象的内容特征进行匹配,该用户将较难获得满意的推荐结果。

       (4)对推荐对象内容分类方法需要的数据量较大。目前,尽管分类方法很多,但构造分类器时需要的数据量巨大,给分类带来一定困难。

       (5)不同语言的描述的用户模型和推荐对象模型无法兼容也是基于内容推荐系统面临的又一个大的问题。

4.3.2 协同过滤推荐

        协同过滤推荐(collaborative filtering recommendation)是推荐算法中最成功的算法,它于20世纪90年代开始研究并促进了整个推荐系统研究的繁荣。大量论文和研究都属于该类别。比如Grundy书籍推荐系统、Tapestry邮件处理系统,Grou-plens、Ringo等推荐系统都属于该类推荐。

        协同过滤推荐的基本思想借鉴了日常在选购商品、选择用餐饭店、选择看哪部电影等等的方法。如果自己身边的很多朋友都选购某种商品,那么自己就会很大概率的选择该商品。或者用户喜欢某类商品,当看到和这类商品相似商品并且其他用户对此类商品评价很高时,则购买的概率就会很大。协同推荐的用户模型为用户-项目评价矩阵。

        协同过滤推荐一般分为两类:基于用户的协同推荐(User-based Collaborative Filtering)(或基于内存的协同推荐(Mem-ory-Based Collaborative Filtering))、基于项目的协同推荐(Item-Based Collaborative Filtering)。

4.3.2.1 基于用户的协同推荐(UB-CF

        该推荐策略又叫基于内存的推荐(MB-CF),它的基本思想是用户选择某个推荐对象是基于朋友的推荐。也就是说如果一些用户对某些推荐对象的评分比较相似,则说明这些用户的兴趣偏好相似,那么他们对其他推荐对象的评分应该也是相似的。

        所以协同过滤推荐首先找到和目标用户兴趣偏好相似的最近邻居,然后根据他的最近邻居对推荐对象的评分来预测目标用户对未评分的推荐对象的评分,选择预测评分最高的若干个推荐对象作为推荐结果反馈给用户。该推荐过程如图3所示。

        基于用户的协同推荐主要工作有两个,首先是查询最近邻居,然后就是产生推荐。其核心就是最近邻居查询。要找到最近邻居就要度量用户之间的相似性,相似度越高,用户就越相近。把用户i和用户j之间的相似性记为sim(i,j)。每个用户对推荐对象的评分可看作是一个m维向量,度量用户间的相似度就可以用不同的m维向量间的相似度进行度量,如图4所示。

 

4.3.2.2 基于项目的协同过滤推荐(IB-CF

        如果基于用户的协同推荐的依据是基于朋友的推荐的话,基于项目的协同推荐是基于用户对推荐对象品牌的信任而进行的推荐。基于项目的协同推荐是基于这样一个假设:如果大部分用户对一些推荐对象的评分比较相似,则当前用户对这些项的评分也比较相似。就好像很多用户对某个品牌比较信任,则其他用户就比较容易选择该品牌的产品。

        基于项目的协同推荐的基本思路就是首先找到目标对象的最近邻居,由于当前用户对最近邻居的评分与对目标推荐对象的评分比较类似,所以可以根据当前用户对最近邻居的评分预测当前用户对目标推荐对象的评分,然后选择预测评分最高的若干个目标对象作为推荐结果呈现给当前用户。

        基于项目的协同推荐的主要工作有两个,首先是查询目标推荐对象的最近邻居,然后产生推荐。其核心是推荐对象的最近邻居查询。推荐过程如图3所示。

        推荐对象最近邻居的查询就是计算推荐对象之间的相似性。度量推荐对象的相似性就是就是计算如图4中所示的向量之间的相似性,而计算对象之间的相似性的方法和计算用户间的相似相似。

        协同过滤的优点

      (1)复杂的非结构化的对象可以应用协同过滤,比如电影、音乐、图像等推荐对象。

      (2)善于发现用户新的兴趣点。协同过滤可以发现内容上完全不相似的资源,用户对推荐信息的内容事先是预料不到的。

      (3)不需要专业知识即可进行推荐。

      (4)随着用户的增多,其推荐性能会不断提升。

      (5)以用户为中心自动进行推荐。

        协同过滤的缺点

      (1)存在冷启动问题。新进入的用户由于得不到他们的兴趣偏好而无法获得推荐,新的推荐项目由于没有用户评价它就得不到推荐,这就是冷启动问题。冷启动问题是推荐系统研究的难点和重点。

      (2)存在稀疏性问题。由于用户数目的大量增长,而且用户之间选择存在差异性,使得用户的评分差别非常大。同时推荐对象的数量也大量增长,使得大量的推荐对象没有经过用户的评价。这些会导致部分用户无法获得推荐,部分推荐对象得不到推荐,这就是稀疏性问题。

      (3)系统开始时推荐质量差及推荐质量取决于历史数据集。

4.3.3 基于关联规则的推荐

        基于关联规则的推荐系统(AssociationRule一basedReeommender)是以关联规则挖掘算法为基础,把用户已购买(或者喜好)的项目作为规则头,把规则体作为待选推荐对象。

4.3.4 基于知识的推荐

        基于内容的过滤和协同过滤技术若没有经过足够数据的训练则其推荐质量非常低。基于知识的推荐技术不依赖客户对商品的评分数据量,而是通过推断用户的需要和偏好来作出推荐。总结查阅的文献,可将基于知识的推荐技术分为三类:数据库知识发现KDD(Knowledge Dis-covery in Database)、基于案例推理CBR(Case Based Reasoning)和知识推理KR(Knowledge Reasoning)。

4.3.5 组合(混合)推荐

        各种推荐方法都有各自的优缺点,在实际应用中可以针对具体问题采用推荐算法的组合进行推荐,即所谓的组合推荐。组合推荐的目的是通过组合不同的推荐算法,达到扬长避短的目的,从而产生更符合用户需求的推荐。理论上讲可以有很多种的推荐组合方法,但目前研究和应用最多的组合推荐是把基于内容的推荐和系统过滤推荐的组合。把它们组合方法根据应用场景不同而不同,主要混合思路有两种:

       (1)推荐结果混合:这是一种最简单的混合方法,就是分别是用两种或多种推荐方法产生推荐结果,然后采用某种算法把推荐结果进行混合而得到最终推荐。如何从众多推荐结果中选择用户需要的推荐结果成为该算法的一个重要研究点。比如采用投票机制来组合推荐结果,采用一定的标准对两者产生的推荐结果判断,从而选择其中之一,利用预测打分的线性组合进行推荐。

       (2)推荐算法的混合:以某种推荐算法为框架,混合另外的推荐算法,例如协同推荐的框架内混合基于内容的推荐(或相反)、基于协同推荐的框架内混合基于网络结构的推荐,社会网络分析法的推荐框架内混合基于内容的推荐,基于网络结构的推荐和基于社会网络分析法的推荐的混合等。

5、推荐系统的体系结构

        推荐系统的体系结构研究的重要问题就是用户信息收集和用户描述文件放在什么地方,服务器还是客户机上,或者是处于二者之间的代理服务器上。

        最初的推荐系统都是基于服务器端的推荐系统,基本结构如图5。在这类推荐系统中,推荐系统与Web服务器一般共享一台硬件设备。在逻辑上,推荐系统要的用户信息收集和建模都依赖于Web服务器。

         由此可知,基于服务器端的推荐系统存在的问题主要包括:

       (1)个性化信息的收集完全由Web服务器来完成,受到了Web 服务器功能的限制。

       (2)增加了Web服务器的系统开销。

       (3)对用户的隐私有极大威胁。无论是推荐系统的管理者还是入侵推荐系统的人员都能方便地获取存放在服务器上的用户数据。由于用户的个人数据是有很高价值的,接触到用户数据的部分人会出卖用户数据或把用户数据用于非法用途。

        基于上述问题,提出基于客户端的推荐系统,基于客户端的推荐系统中,用户信息的收集和建模都在客户端完成。客户端推荐系统的体系结构如图6所示。

        典型的客户端个性化服务系统有斯坦福大学的LIRA、麻省理工学院的Letizia、加州大学的Syskill&Webert、卡内基·梅隆大学的PersonalWeb-Watcher等。

基于客户端的推荐系统有如下优点

      (1)由于用户的信息就在本地收集和处理,因而不但能够获取丰富准确的用户信息以构建高质量的用户模型。

      (2)少量甚至没有用户数据存放在服务器上,Web服务器不能访问和控制用户的数据,能比较好地保护用户的隐私。

      (3)用户更愿意向推荐系统提供个人信息,从而提高推荐系统的推荐性能。因为基于客户端的推荐系统中的用户数据存储在用户本地客户机上,用户对数据能够进行自行控制。

        基于客户端的推荐系统有一定缺点

      (1)用户描述文件的形成、推荐算法的应用都依赖于所有用户数据分析的基础上进行的,而基于客户端的推荐系统较难获取其他用户的数据,用户描述文件较难得到,协同推荐算法实施也较难,所以推荐系统要重新设计,尤其是推荐算法必须进行修改。

      (2)个性化推荐处理过程中用户的数据资料还需要部分的传给服务器,存在隐私泄露的危险,需要开发安全传输平台进行数据传输。

        推荐系统另一种体系结构就是基于代理的推荐系统。其结构如图7所示。在这一结构中,用户信息的收集、用户建模和推荐服务都在代理端实现。典型的代理端个性化服务系统有明尼苏达大学的GroupLens、斯坦福大学的Fab等。

        基于代理的推荐系统中用户信息都传给了代理,代理能获得所有用户的资料而形成用户描述文件。但由于用户信息都要传给代理端,所以存在用户的信息泄露等隐私问题。

        无论是基于客户端的推荐系统还是基于服务器的推荐系统,都是把用户描述文件集中存在某一个地方,都存在用户数据被侵害的危险。

6、推荐系统的评测指标

        本节将介绍各种推荐系统的评测指标。这些评测指标可用于评价推荐系统各方面的性能。这些指标有些可以定量计算,有些只能定性描述,有些可以通过离线实验计算,有些需要通过用户调查获得,还有些只能在线评测。

6.1  用户满意度

        用户作为推荐系统的参与者,其满意度是评测推荐系统的最重要指标。但是,用户满意度没有办法离线计算,只能通过用户调查或者在线实验获得。

        用户调查获得用户满意度主要是通过调查问卷的形式。用户对推荐系统的满意度分为不同的层次。

        在线系统中,用户满意度主要通过一些对用户行为的统计得到。(1)电子商务网站中,用户如果购买了推荐的商品,就表示他们在一定程度上满意,可以利用购买率度量用户的满意度(2)有些网站会通过设计一些用户反馈界面收集用户满意度,有对推荐结果满意或者不满意的反馈按钮,统计两种按钮的单击情况(3)更一般的情况下,我们可以用点击率、用户停留时间和转化率等指标度量用户的满意度

6.2  预测准确度

         预测准确度度量一个推荐系统或者推荐算法预测用户行为的能力。这个指标是最重要的推荐系统离线评测指标。

       (1)需要一个包含用户的历史行为记录的离线数据集

       (2)将该训练集通过时间分成训练集和测试集

       (3)通过在训练集上建立用户的行为和兴趣模型预测用户在测试集上的行为

       (4)计算预测行为和测试集上实际行为的重合度作为预测准确度

         由于离线的推荐算法有不同的研究方向,因此下面将针对不同的研究方向介绍它们的预测准确度指标。

        评分预测

        预测用户对物品评分的行为称为评分预测。

        评分预测的预测准确度一般通过均方根误差和平均绝对误差计算。

        TopN推荐

        主要计算召回率和准确率。准确率就是指我推荐的n个物品中有多少个是对的,其所占的比重。召回率则是指正确结果中有多少比率的物品出现在了推荐结果中。两者的不同就是前者已推荐结果个数当除数,后者已正确结果个数当除数。

6.3  覆盖率

        覆盖率最简单的定义:推荐系统能够推荐出来的物品占总物品集合的比例

        用来描述一个推荐系统对物品长尾的发掘能力。

        就是指推荐出来的结果能不能很好的覆盖所有的商品,是不是所有的商品都有被推荐的机会。最简单的方法就是计算所有被推荐的商品占物品总数的比重,当然这个比较粗糙,更精确一点的可以用信息熵和基尼系数来度量。

        一个好的推荐系统不仅需要有比较高的用户满意度,也要有较高的覆盖率。

        研究表明现在主流的推荐算法都具有马太效应(强者更强,弱者更弱)。

6.4  多样性

        为了满足用户广泛的兴趣,推荐列表需要能够覆盖用户不同的兴趣领域,即推荐结果具有多样性。

        多样性推荐列表的好处用一句俗话表述就是“不在一棵树上吊死”。

       多样性描述了推荐列表中物品两两之间的不相似性,因此多样性和相似性是对应的。可以根据物品间的相似度来计算,一个推荐列表中如果所有物品间的相似度都比较高,那么往往说明都是同一类物品,缺乏多样性。

       比如我看电影,我既喜欢看格斗类的电影,同时又喜欢爱装文艺,那么给我的推荐列表中就应该这两个类型的电影都有,而且得根据我爱好比例来推荐,比如我平时80%是看格斗类的,20%是看文艺类的,那么推荐结果中最好也是这个比例。

6.5  新颖性

        新颖的推荐是指给用户推荐那些他们以前没有听说过的物品

        在一个网站中实现新颖性的最简单方法:把那些用户之前在网站中对其有过行为的物品从推荐列表中过滤掉。

        不能说系统推荐的物品其实我都知道,那这样推荐系统就完全失去了存在的意义,一般都希望推荐一些用户不知道的商品或者没看过没买过的商品。方法一是取出已经看到过买过的商品,但这还不够,一般会计算推荐商品的平均流行度,因为通常越不热门的物品越会让用户觉得新颖。比如我爱周星驰,那么推荐《临岐》就很有新颖性,因为大家都不知道这是周星驰出演的。

6.6  惊喜度

        惊喜度是最近这几年推荐系统领域最热门的话题。

        惊喜度和新颖性是有区别的:(1)如果推荐结果和用户的历史兴趣不相似,但却让用户觉得满意,那么就可以说推荐结果的惊喜度很高;(2)推荐的新颖性仅仅取决于用户是否听说过这个推荐结果。

        提高推荐惊喜度需要提高推荐结果的用户满意度,同时降低推荐结果和用户历史兴趣度的相似度。

6.7  信任度

        度量推荐系统的信任度只能通过问卷调查的方式,询问用户是否信任推荐系统的推荐结果。如果用户信任推荐系统,那么往往会增加与推荐系统的互动,从而获得更好的个性化推荐。

        提高推荐系统的信任度的两种方法:(1)增加推荐系统的透明度(如,提供推荐解释);2)考虑用户的社交网络信息,利用用户的好友信息给用户做推荐,并且用好友进行推荐解释

6.8  实时性

        物品(新闻、微博等)具有很强的时效性,需要在物品还具有时效性时就将它们推荐给用户。

        推荐系统的实时性包括两个方面:

      1)推荐系统需要实时地更新推荐列表来满足用户新的行为变化。

      2)推荐系统需要能够将新加入系统的物品推荐给用户。这主要考验了推荐系统处理物品冷启动的能力。

6.9  健壮性

        任何一个能带来利益的算法系统都会被人攻击,这方面最典型的例子就是搜索引擎(作弊和反作弊斗争)。

        推荐系统目前也遇到了同样的作弊问题,而健壮性指标衡量了一个推荐系统抗击作弊的能力。

        最著名的作弊方法:行为注入攻击

        算法健壮性的评测主要利用模拟攻击

        在实际系统中,提高系统的健壮性,除了选择健壮性高的算法,还有以下方法:(1)设计推荐推荐系统时尽量使用代价比较高的用户行为,比如有用户购买行为和用户浏览行为,那么主要应该使用用户购买行为,因为购买需要付费;(2)在使用数据前,进行攻击检测,从而对数据进行清理。

6.10 商业目标

        很多时候,评价推荐系统更加注重网站的商业目标是否达成,商业目标和网站的盈利是息息相关的。

        最本质的商业目标是平均一个用户给公司带来的盈利。

        不同的网站具有不同的商业目标:(1)电子商务网站,商业目标可能是销售额(2)基于展示广告盈利的网站,商业目标可能是广告展示总数(3)基于点击广告盈利的网站,商业目标可能是广告点击量。

        网站使用推荐系统的目的除了满足用户发现内容的需求,也需要利用推荐系统加快实现商业上的指标。

 

参考文献:

1、项亮——推荐系统实践(书籍)

2、蒋凡译——推荐系统

3、王国霞、刘贺平——个性化推荐系统综述(论文)

4、邓先箴——基于关联规则的推荐算法研究与应用

5、刘平峰——电子商务推荐系统研究综述

6、百度百科—推荐系统

7、推荐系统之详细介绍(博客)

8、推荐系统的评测方法及指标

9、推荐系统简介ppt


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值