所谓推荐算法就是利用用户的一些行为,通过一些数学算法,猜測出用户可能喜欢的东西。
在推荐系统简单介绍中,我们给出了推荐系统的一般框架。非常明显,推荐方法是整个推荐系统中最核心、最关键的部分,非常大程度上决定了推荐系统性能的优劣。眼下,基本的推荐方法包含:基于内容推荐、协同过滤推荐、基于关联规则推荐、基于效用推荐、基于知识推荐和组合推荐。
一、基于内容推荐
基于内容的推荐(Content-based Recommendation)是信息过滤技术的延续与发展。它是建立在项目的内容信息上作出推荐的。而不须要根据用户对项目的评价意见,很多其它地须要用机 器学习的方法从关于内容的特征描写叙述的事例中得到用户的兴趣资料。在基于内容的推荐系统中,项目或对象是通过相关的特征的属性来定义。系统基于用户评价对象 的特征,学习用户的兴趣。考察用户资料与待预測项目的相匹配程度。用户的资料模型取决于所用学习方法,经常使用的有决策树、神经网络和基于向量的表示方法等。 基于内容的用户资料是须要实用户的历史数据,用户资料模型可能随着用户的偏好改变而发生变化。
基于内容推荐方法的长处是:
1)不须要其他用户的数据。没有冷開始问题和稀疏问题。 2)能为具有特殊兴趣爱好的用户进行推荐。 3)能推荐新的或不是非常流行的项目,没有新项目问题。 4)通过列出推荐项目的内容特征,能够解释为什么推荐那些项目。 5)已有比較好的技术。如关于分类学习方面的技术已相当成熟。缺点是要求内容能easy抽取成有意义的特征,要求特征内容有良好的结构性,而且用户的口味必须可以用内容特征形式来表达,不能显式地得到其他用户的推断情况。
二、协同过滤推荐
协同过滤推荐(Collaborative Filtering Recommendation)技术是推荐系统中应用最早和最为成功的技术之中的一个。它一般採用近期邻技术,利用用户的历史喜好信息计算用户之间的距离,然后 利用目标用户的近期邻居用户对商品评价的加权评价值来预測目标用户对特定商品的喜好程度,系统从而依据这一喜好程度来对目标用户进行推荐。协同过滤最大优 点是对推荐对象没有特殊的要求,能处理非结构化的复杂对象,如音乐、电影。
协同过滤是基于这种如果:为一用户找到他真正感兴趣的内容的好方法是首先找到与此用户有相似兴趣的其它用户。然后将他们感兴趣的内容推荐给此用户。其基 本思想很易于理解。在日常生活中。我们往往会利用好朋友的推荐来进行一些选择。协同过滤正是把这一思想运用到电子商务推荐系统中来,基于其它用户对某一 内容的评价来向目标用户进行推荐。
基于协同过滤的推荐系统能够说是从用户的角度来进行对应推荐的,并且是自己主动的,即用户获得的推荐是系统从购买模式或浏览行为等隐式获得的,不须要用户努力地找到适合自己兴趣的推荐信息,如填写一些调查表格等。
和基于内容的过滤方法相比,协同过滤具有例如以下的长处:
1) 可以过滤难以进行机器自己主动内容分析的信息,如艺术品,音乐等。 2)共享其它人的经验,避免了内容分析的不全然和不精确,而且可以基于一些复杂的,难以表述的概念(如信息质量、个人品味)进行过滤。 3)有推荐新信息的能力。能够发现内容上全然不相似的信息,用户对推荐信息的内容事先是预料不到的。这也是协同过滤和基于内容的过滤一个较大的区别,基于内容的过滤推荐非常多都是用户本来就熟悉的内容。而协同过滤能够发现用户潜在的但自己尚未发现的兴趣偏好。
4) 可以有效的使用其它相似用户的反馈信息,较少用户的反馈量,加快个性化学习的速度。尽管协同过滤作为一种典型的推荐技术有其相当的应用,但协同过滤仍有很多的问题须要解决。最典型的问题有稀疏问题(Sparsity)和可扩展问题(Scalability)。
三、基于关联规则推荐
基于关联规则的推荐(Association Rule-based Recommendation)是以关联规则为基础,把已购商品作为规则头,规则体为推荐对象。
关联规则挖掘能够发现不同商品在销售过程中的相关性,在零 售业中已经得到了成功的应用。
管理规则就是在一个交易数据库中统计购买了商品集X的交易中有多大比例的交易同一时候购买了商品集Y,其直观的意义就是用户在购 买某些商品的时候有多大倾向去购买另外一些商品。比方购买牛奶的同一时候非常多人会同一时候购买面包。
算法的第一步关联规则的发现最为关键且最耗时。是算法的瓶颈,但能够离线进行。
其次,商品名称的同义性问题也是关联规则的一个难点。
四、基于效用推荐
基于效用的推荐(Utility-based Recommendation)是建立在对用户使用项目的效用情况上计算的,其核心问题是怎么样为每个用户去创建一个效用函数。因此。用户资料模型非常大程度上是由系统所採用的效用函数决定的。基于效用推荐的优点是它能把非产品的属性,如提供商的可靠性(Vendor Reliability)和产品的可得性(Product Availability)等考虑到效用计算中。
五、基于知识推荐
基于知识的推荐(Knowledge-based Recommendation)在某种程度是能够看成是一种推理(Inference)技术,它不是建立在用户须要和偏好基础上推荐的。
基于知识的方法因它们所用的功能知识不同而有明显差别。效用知识(Functional Knowledge)是一种关于一个项目怎样满足某一特定用户的知识,因此能解释须要和推荐的关系。所以用户资料能够是不论什么能支持推理的知识结构,它能够是用户已经规范化的查询,也能够是一个更具体的用户须要的表示。
六、组合推荐
因为各种推荐方法都有优缺点,所以在实际中,组合推荐(Hybrid Recommendation)常常被採用。
研究和应用最多的是内容推荐和协同过滤推荐的组合。
最简单的做法就是分别用基于内容的方法和协同过滤推荐方法 去产生一个推荐预測结果。然后用某方法组合其结果。
虽然从理论上有非常多种推荐组合方法,但在某一详细问题中并不见得都有效,组合推荐一个最重要原则就是通 过组合后要能避免或弥补各自推荐技术的弱点。
在组合方式上,有研究人员提出了七种组合思路:
1)加权(Weight):加权多种推荐技术结果。 2)变换(Switch):依据问题背景和实际情况或要求决定变换採用不同的推荐技术。 3)混合(Mixed):同一时候採用多种推荐技术给出多种推荐结果为用户提供參考。 4)特征组合(Feature combination):组合来自不同推荐数据源的特征被还有一种推荐算法所採用。 5)层叠(Cascade):先用一种推荐技术产生一种粗糙的推荐结果,另外一种推荐技术在此推荐结果的基础上进一步作出更精确的推荐。 6)特征扩充(Feature augmentation):一种技术产生附加的特征信息嵌入到还有一种推荐技术的特征输入中。 7)元级别(Meta-level):用一种推荐方法产生的模型作为还有一种推荐方法的输入。 七、主要推荐方法的对照各种推荐方法都有其各自的长处和缺点,见表1。
表1 主要推荐方法对照 | ||
推荐方法 | 长处 | 缺点 |
基于内容推荐 | 推荐结果直观,easy解释; 不须要领域知识 | 新用户问题; 复杂属性不优点理; 要有足够数据构造分类器 |
协同过滤推荐 | 新异兴趣发现、不须要领域知识; 随着时间推移性能提高; 推荐个性化、自己主动化程度高; 能处理复杂的非结构化对象 | 稀疏问题。 可扩展性问题; 新用户问题; 质量取决于历史数据集。 系统開始时推荐质量差; |
基于规则推荐 | 能发现新兴趣点。 不要领域知识 | 规则抽取难、耗时。 产品名同义性问题; 个性化程度低; |
基于效用推荐 | 无冷開始和稀疏问题; 对用户偏好变化敏感; 能考虑非产品特性 | 用户必须输入效用函数; 推荐是静态的。灵活性差; 属性重叠问题; |
基于知识推荐 | 能把用户需求映射到产品上; 能考虑非产品属性 | 知识难获得; 推荐是静态的 |
版权声明:本文博主原创文章,博客,未经同意不得转载。