推荐系统 Recommendation

推荐系统是信息过载所采用的措施,面对海量的数据信息,从中快速推荐出符合用户特点的物品。解决一些人的“选择恐惧症”;面向没有明确需求的人。
解决如何从大量信息中找到自己感兴趣的信息
解决如何让自己生产的信息脱颖而出,受到大众的喜爱
总得来说:让用户更好更快获取到自己喜欢的内容,让内容更好更快地推送到喜欢它的用户手中,让网站(平台)更有效的保留用户资源。

信息超载(information overload)问题:互联网的出现和普及给用户带来了大量的信息,满足了用户在信息时代对信息的需求,但随着网络的迅速发展而带来的网上信息量的大幅增长,使得用户在面对大量信息时无法从中获得对自己真正有用的那部分信息,对信息的使用效率反而降低
目前,针对信息超载问题的解决办法之一是以搜索引擎为代表信息检索系统,比如Google、Baidu等,它们在帮助用户获取网络信息方面发挥着极其重要的作用。但使用搜索擎
的用户在使用同一个关键字搜索信息时,得到的结果是相同的。另一方面来看,信息及其传播是多样化的,而用户对信息的需求是多元化和个性化的,那么通过以搜索引擎为代表的信息检索系统获得的结果不能满足用户的个性化需求,仍然无法很好地解决信息超载问题。
解决信息超载问题另外一个非常有潜力的办法是个性化推荐系统,它是根据用户的信息需求、兴趣等,将用户感兴趣的信息、产品等推荐给用户的个性化信息推荐系统。和搜索
引擎相比推荐系统通过研究用户的兴趣偏好,进行个性化计算,由系统发现用户的兴趣点,从而引导用户发现自己的信息需求。一个好的推荐系统不仅能为用户提供个性化的服务,还能和用户之间建立密切关系,让用户对推荐产生依赖。

推荐系统定义

推荐系统的定义有不少,但被广泛接受的推荐系统的概念和定义是Resnick和Varian在1997年给出的:“它是利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程”。推荐系统有3个重要的模块:用户建模模块、推荐对象建模模块、推荐算法模块
推荐系统把用户模型中兴趣需求信息和推荐对象模型中的特征信息匹配,同时使用相应的推荐算法进行计算筛选,找到用户可能感兴趣的推荐对象,然后推荐给用户。

用户建模模块

一个好的推荐系统要给用户提供个性化的、高效的、准确的推荐,那么推荐系统应能够获取反映用户多方面的、动态变化的兴趣偏好,推荐系统有必要为用户建立一个用户模型,该模型能获取、表示、存储和修改用户兴趣偏好,能进行推理,对用户进行分类和识别,帮助系统更好地理解用户特征和类别,理解用户的需求和任务,从而更好地实现用户所需要的功能。推荐系统根据用户的模型进行推荐,所以用户描述文件对推荐系统的质量有至关重要的影响。建立用户模型之前,需要考虑下面几个问题:
(1)模型的输入数据有哪些,如何获取模型的输入数据
(2)如何考虑用户的兴趣及需求的变化
(3)建模的对象是谁
(4)清楚了上述内容后,怎么建模
(5)模型的输出是什么

获取用户信息就是解决模型输入数据的问题,模型的输入数据主要有以下几种:
(1)用户属性:这是用户最基本的信息,包括社会属性和自然属性,比如用户的姓名、年龄、职业、收入、学历等。用用户注册时的自然属性和社会属性进行初始建模。
(2)用户手工输入的信息:这部分是用户主动提供给系统的信息,包括用户在搜索引擎中输入的关键词,用户输入的感兴趣的主题、频道。还有一类重要的信息就是用户反馈的信息,包括用户自己对推荐对象的喜好程度;用户标注的浏览页面的感兴趣、不感兴趣或感兴趣的程度等。
(3)用户的浏览行为和浏览内容:用户浏览的行为和内容体现了用户的兴趣和需求,它们包括浏览次数、频率、停留时间等,浏览页面时的操作(收藏、保存、复制等)、浏览时用户表情的变化等。服务器端保存的日志也能较好地记录用户的浏览行为和内容。
(4)推荐对象的属性特征:不同的推荐对象,用户建模的输入数据也不同。网页等推荐对象通常考虑对象的内容和用户之间的相似性,而产品等推荐对象通常考虑用户对产品的评价。为提高推荐质量,推荐对象的相关的属性也要考虑进去,比如除网页内容以外,还要考虑网页的发布人、时间等。产品类的对象还要考虑产品的品牌、价格、出售时间等。扩展了二维的评价矩阵,综合考虑了影响用户兴趣的各种因素。考虑了Web服务的Qos来对户的兴趣建模。

获取模型输入数据的方式有显式获取、隐式获取和启发式获取三种方式。显式的获取方式用户主动告之。例如MyYahoo和WebWatcher都要户自己给出感兴趣的栏目和关键。另外一类显式的方式要求用户提供与其兴趣相关的示例及类别属性来建立用户模型,LIRA、Syskill&Webert、WebMate等是该方法的代表。

显式获取兴趣偏好的方法是简单而直接的做法,能相对准确地反映用户的需求,同时所得的信息比较具体、全面、客观,结果往往比较可靠。缺点就是很难收到实效,主要原因就是很少用户愿意花时间或不愿向系统表达自己的喜好。而且这一方法灵活性差,存在答案异质性,用户兴趣主题改变时要手动更改系统中用户兴趣等诸多问题,使得该方法的实时性、可操作性很难得到保证。同时该方法对用户不是很友好,具有很大的侵袭性。解决侵袭性问题是推荐系统未来的一个研究方向,来研究用户能够接受的评价方式是什么,比如能够有耐心进行几次评分。文献[16]利用固定负担模型来计量用户评价的负担,将侵袭性问题转化为最优化问题来研究。

隐式获取法是指系统通过跟踪用户行为,通过推理获取用户的兴趣偏好,因为用户的很多动作都能暗示用户的喜好,比如查询、浏览页面和文章、标记书签、反馈信息、点击鼠标、拖动滚动条,Web 日志挖掘等。典型的系统有 ELFI、Letizia等。隐式的跟踪可以减少用户很多不必要的负担,不会打扰用户的正常生活。这种方法的缺点就是跟踪的结果未必能正确反映用户的兴趣偏好 ,但是利用日志跟踪用户兴趣偏好存在兴趣偏好走样的问题。同时系统若过度跟踪用户的历史记录,有时会引起用户反感,而放弃对当前推荐系统的使。

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

用户的兴趣和需求会随着时间和情景发生变化,用户建模时要考虑到用户长期兴趣偏好和短期兴趣偏好,还要考虑兴趣的变化,目前很多研究关注了用户的长期兴趣,建立了静态模型,用户兴趣更新的动态模型也受到了很多关注,短期兴趣的关注还比较少。结合长期和短期兴趣的建模将是未来的一个研究方向,文献对此进行了研究。而且采用时间窗方法和遗忘机制来反映用户兴趣的变化。目前的更新机制无法及时跟踪用户兴趣的变化,just-in-time型有更强学习效率和动态变化适应能力的建模也是未来的重要研究方向。建模的对象有单用户建模和群组建模之分,单用户建模针对单个用户进行建模,比如基于内容的推荐,群组建模是针对群体用户进行建模,比如协同推荐。

用户模型的建模方法主要有遗传算法、基于机器学习的方法,例如TF-IDF、自动聚类、贝叶斯分类器、决策树归纳和神经网络方法等。遗传算法采用遗传结合、遗传交叉变异以及自然选择等操作实现建模,通过遗传进化满足用户兴趣变化时完成模型的更新

TF-IDF将用户感兴趣的文档表示成关键词向量,并计算出每个关键词权重来建立用户模型;使用贝叶斯分类器的系统计算用户浏览或访问过的推荐对象属于某个给定类的概率,然后依据概率将资源项目分类来建立用户对这些资源项目的偏好模型;使用决策树归纳作为用户模型学习技术的系统将用户偏好的获取过程表达成一棵决策树,用户从根节点开始,被引导来回答一系列问题。树的每个节点表示了决策点,所采取的方向取决于对问题的回答或者对可用数据的计算。一旦叶节点被达到,则可得到对用户偏好的完整描述;运用神经网络建模的算法,对系统对用户偏好的输入假设进行学习并调整网络连接权重,直到网络中的所有节点达到稳定激活状态。此时输出层中被激活的节点所对应的模式类,如感兴趣/不感兴趣类,即表示了系统识别的用户偏好;聚类将具有相似特征的项目或用户分组,使用这类技术的系统一般建立用户群组的综合模型

推荐对象的建模

推荐系统应用于不同的领域,它推荐的对象也就各不相同,如何对推荐对象进行描述对推荐系统也有很重要的影响。和用户描述文件一样,要对推荐对象进行描述之前也要考虑以下几个问题:
(1)提取推荐对象的什么特征,如何提取,提取的特征用于什么目的。
(2)对象的特征描述和用户文件描述之间有关联。
(3)提取到的每个对象特征对推荐结果会有什么影响。
(4)对象的特征描述文件能否自动更新。
推荐对象的描述文件中的对象特征和用户的描述文件中的兴趣偏好进行推荐计算,获得推荐对象的推荐度,所以推荐对象的描述文件与用户的描述文件密切相关,通常的做法是用同样的方法来表达用户的兴趣偏好和推荐对象。推荐系统推荐对象包括众多的领域,比如报纸、Usenet新闻、科技文档、Email,还有诸如音乐、电影等多媒体资源等等。不同的对象,特征也不相同,目前并没有一个统一的标准来进行统一描述,主要有基于内容的方法和基于分类的方法两大类方法。针对文档类对象的这两个表示方法给以分析。

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

在完成文档特征的选取后,还得计算每个特征的权值,权值大的对推荐结果的影响就大。目前使用最广泛的是TFIDF方法。基于分类的方法是把推荐对象放入不同类别中,这样可以把同类文档推荐给对该类文档感兴趣的用户了。文本分类的方法有多种,比如朴素贝叶斯(Naive-Bayes),k最近邻方法(KNN)和支持向量机(SVM)等。对象的类别可以预先定义,也可以利用聚类技术自动产生。许多研究表明:聚类的精度非常依赖于文档的数量,而且由自动聚类产生的类型可能对用户来说是毫无意义的,因此可以先使用手工选定的类型来分类文档,在没有对应的候选类型或需要进一步划分某类型时,才使用聚类产生的类型。

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

推荐系统推荐给用户的对象首先首先不能与用户看过的对象重复,其次也不能与用户刚刚看过的对象不是太形似或者太不相关,这就是所谓的模型过拟合问题(可扩展性问题)。出现这一问题的本质上来自数据的不完备性,解决的主要的方法是引入随机性,使算法收敛到全局最优或者逼近全局最优,比如遗传算法等。针对这一问题考察了被推荐的对象的相关性(relevant)和冗余性(redundancy),认为既要保证推荐的多样性,又不能与用户看过的对象重复或毫不相关。关于这一问题的研究是推荐系统研究的一个难点和重点。推荐系统中出现新的对象时,推荐系统尤其是协同过滤系统中,新对象出现后必须等待一段时间才会有用户查看并进行评价,在此之前推荐系统无法对此对象进行分析和推荐,这就是推荐系统研究的另一个难点和重点——冷启动问题。目前,解决这一问题的方法就是从推荐方法上考虑,比如使用组合推荐方法来应付。对推荐对象的描述能动态更新会成为研究一个方向

推荐算法模块

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

基于内容的推荐

基于内容的推荐(content-based recommendation)方法源于信息获取领域,是信息检索领域的重要研究内容。该方法是根据用户已经选择的对象,从推荐对象中选择其他特征相似的对象作为推荐结果。这一推荐策略首先提取推荐对象的内容特征,和用户模型中的用户兴趣偏好匹配,匹配度较高的推荐对象就可作为推荐结果推荐给用户。例如在进行音乐推荐时,系统分析用户以前选择的音乐的共性,找到用户的兴趣点。然后从其他音乐中选择和用户兴趣点相似的音乐推荐给用户。计算推荐对象的内容特征和用户模型中兴趣特征二者之间的相似性是该推荐策略中一个关键部分 u(c,s) = score(userprofile,content)

计算所得的值按其大小排序,将最靠前的若干个对象作为推荐结果呈现给用户。基于内容的推荐策略中的关键就是用户模型描述和推荐对象内容特征描述。其中对推荐对象内容进行特征提取,目前对文本内容进行特征提取方法比较成熟,如浏览页面的推荐、新闻推荐等。但网上的多媒体信息大量涌现,而对这些多媒体数据进行特征提取还有待技术支持,所以多媒体信息还没有大量用于基于内容的推荐。
基于内容的推荐的优点如下:
(1)简单、有效,推荐结果直观,容易理解,不需要领域知识。
(2)不需要用户的历史数据,如对对象的评价等。
(3)没有关于新推荐对象出现的冷启动问题。
(4)没有稀疏问题。
(5)比较成熟的分类学习方法能够为该方法提供支持,如数据挖掘、聚类分析等。

基于内容的推荐的缺点如下:
(1)该方法的广泛应用受到了推荐对象特征提取能力的限制较为严重。因为多媒体资源 没有有效的特征提取方法,比如图像、视频、音乐等。既使文本资源,其特征提取方法也只能反映资源的一部分内容,例如,难以提取网页内容的质量,这些特征可能影响到用户的满意度。
(2)很难出现新的推荐结果。推荐对象的内容特征和用户的兴趣偏好匹配才能获得推荐,用户将仅限于获得跟以前类似的推荐结果,很难为用户发现新的感兴趣的信息。
(3)存在新用户出现时的冷启动问题。当新用户出现时,系统较难获得该用户的兴趣偏好,就不能和推荐对象的内容特征进行匹配,该用户将较难获得满意的推荐结果。
(4)对推荐对象内容分类方法需要的数据量较大。目前,尽管分类方法很多,但构造分类器时需要的数据量巨大,给分类带来一定困难。
(5)不同语言的描述的用户模型和推荐对象模型无法兼容也是基于内容推荐系统面临的又一个大的问题。

协同过滤推荐

协同过滤推荐(collaborative filtering recommendation)是推荐策略中最成功的策略,它于20世纪90年代开始研究并促进了整个推荐系统研究的繁荣。大量论文和研究都属于该类别。比如Grundy书籍推荐系统、Tapestry邮件处理系统,Grouplens、Ringo等推荐系统都属于该类推荐。协同过滤推荐的基本思想借鉴了日常在选购商品、选择用餐饭店、选择看哪部电影等等的方法。如果自己身边的很多朋友都选购某种商品,那么自己就会很大概率的选择该商品。或者用户喜欢某类商品,当看到和这类商品相似商品并且其他用户对此类商品评价很高时,则购买的概率就会很大。协同推荐的用户模型为用户-项目评价矩阵
协同过滤推荐一般分为三类:基于用户的协同推荐(Userbased Collaborative Filtering)(或基于内存的协同推荐(Memory-Based Collaborative Filtering)、基于项目的协同推荐(Item-Based Collaborative Filtering)和基于模型的协同推荐(Model-Based Collaborative Filtering)。

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

该推荐策略又叫基于内存的推荐(MB-CF),它的基本思想是用户选择某个推荐对象是基于朋友的推荐。也就是说如果一些用户对某些推荐对象的评分比较相似,则说明这些用户的兴趣偏好相似,那么他们对其他推荐对象的评分应该也是相似的。所以协同过滤推荐首先找到和目标用户兴趣偏好相似的最近邻居,然后根据他的最近邻居对推荐对象的评分来预测目标用户对未评分的推荐对象的评分,选择预测评分最高的若干个推荐对象作为推荐结果反馈给用户

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

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

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

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

基于模型的协同推荐(MB-CF)

这类方法是利用用户c对众多对象的评分来得到一个用户c的模型,进而对某对象预测打分。和上述两种协同推荐的不同在于对已有数据应用统计和机器学习的方法得到模型进行预测的建立用户模型是核心,常用的方法有机器学习方法、统计模型、贝叶斯模型、概率相关模型、线性回归模型和最大熵模型。另外还有一些其他的模型,例如Shanideng基于 Markov 链的模型、潜层语义分析模型、语义生成模型,Yu等还提出了输入选择技术,解决给予模型的算法需要对大规模数据进行学习的问题。

协同过滤的优点:
(1)复杂的非结构化的对象可以应用协同过滤,比如电影、音乐、图像等推荐对象。
(2)善于发现用户新的兴趣点。协同过滤可以发现内容上完全不相似的资源,用户对推荐信息的内容事先是预料不到的。
(3)不需要专业知识即可进行推荐。
(4)随着用户的增多,其推荐性能会不断提升。
(5)以用户为中心自动进行推荐。
协同过滤的缺点:
(1)存在冷启动问题。新进入的用户由于得不到他们的兴趣偏好而无法获得推荐,新的推荐项目由于没有用户评价它就得不到推荐,这就是冷启动问题。冷启动问题是推荐系统研究的难点和重点。
(2)存在稀疏性问题。由于用户数目的大量增长,而且用户之间选择存在差异性,使得用户的评分差别非常大。同时推荐对象的数量也大量增长,使得大量的推荐对象没有经过用户的评价。这些会导致部分用户无法获得推荐,部分推荐对象得不到推荐,这就是稀疏性问题。
(3)系统开始时推荐质量差及推荐质量取决于历史数据集

基于社会网络分析方法的推荐

基于社会网络分析方法(Social Network Analysis,SNA)的推荐把社会网络分析理论应用于推荐系统的一类方法,目前该方法研究是协同过滤推荐的延伸。社会网络(social network)是为达到特定的目的,人与人之间、组织之间等进行信息交流时形成的关系网。该网由结点和结点间的连线组成,结点可以人、组织、计算机等实体,连线表示这些实体之间的信息交互。社会网络分析(SNA)是对社会网络进行研究的一个重要工具,它为多结点之间的关系进行描述,并对其价值进行估量的一个工具。目前该方法被广发应用于其他很多跨学科领域,例如信息推荐、Web超链分析等。

用户在购买或浏览网页信息时,形成用户和产品之间的链接关系,从而形成社会网络关系,通过社会网络分析方法可以考察结点之间(用户和用户之间或产品之间)的相关性,并依此进行进行推荐。利用结点之间的关系计算结点之间信任度,利用它们之间的信任度进行推荐可以比一般的协同推荐获得更高推荐效果。

基于网络结构的推荐策略

基于网络结构的推荐策略是一种较新的推荐策略,该策略中不用考虑用户和推荐对象的内容,而是把用户和推荐对象抽象为节点,而用户选择了某一推荐对象就会在用户和对象之间存在选择关系,该策略认为信息就隐藏在该选择关系中。该策略由周涛、Huang、刘建国等人提出。

周涛、Huang等认为在一个由m个用户和n个对象构成的推荐系统中,如果用户i选择过对象j,则在用户i和对象 j 之间存在一条边 aij = 1 ,否则不存在该边,其中 i=1,2,…,m;j=1,2,…,n,所以系统可以表示为一个m+n个节点组成的二部分图(bipartite network),而推荐算法的目的就是对任意的用户,能把他没有选择的对象按照其喜好程度排序,并把排序靠前的对象推荐给该用户。周涛、Huang等在用户—产品二部分图的基础上把物理学理论和复杂网络的理论应用于推荐算法中,分别给出了不同的推荐策略。

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2024 HELLO WORLD All Rights Reserved.

UV : | PV :