几种推荐算法的总结

转载 2015年07月07日 21:36:53

1基于内容的推荐

基于内容的信息推荐方法的理论依据主要来自于信息检索信息过滤,所谓的基于内容的推荐方法就是根据用户过去的浏览记录来向用户推荐用户没有接触过的推荐项。主要是从两个方法来描述基于内容的推荐方法:启发式的方法和基于模型的方法。启发式的方法就是用户凭借经验来定义相关的计算公式,然后再根据公式的计算结果和实际的结果进行验证,然后再不断修改公式以达到最终目的。而对于模型的方法就是根据以往的数据作为数据集,然后根据这个数据集来学习出一个模型。一般的推荐系统中运用到的启发式的方法就是使用tf-idf的方法来计算,跟还有tf-idf的方法计算出这个文档中出现权重比较高的关键字作为描述用户特征,并使用这些关键字作为描述用户特征的向量;然后再根据被推荐项中的权重高的关键字来作为推荐项的属性特征,然后再将这个两个向量最相近的(与用户特征的向量计算得分最高)的项推荐给用户。在计算用户特征向量和被推荐项的特征向量的相似性时,一般使用的是cosine方法,计算两个向量之间夹角的cosine值。

2基于协同过滤的推荐

基于协同过滤的推荐算法理论上可以推荐世界上的任何一种东西。图片、音乐、样样可以。 协同过滤算法主要是通过对未评分项进行评分 预测来实现的。不同的协同过滤之间也有很大的不同。

基于用户的协同过滤算法基于一个这样的假设跟你喜好相似的人喜欢的东西你也很有可能喜欢。所以基于用户的协同过滤主要的任务就是找出用户的最近邻居,从而根据最近邻 居的喜好做出未知项的评分预测。这种算法主要分为3个步骤:

一,用户评分。可以分为显性评分和隐形评分两种。显性评分就是直接给项目评分(例如给百度里的用户评分),隐形评分就是通过评价或是购买的行为给项目评分 (例如在有啊购买了什么东西)。

二,寻找最近邻居。这一步就是寻找与你距离最近的用户,测算距离一般采用以下三种算法: 1.皮尔森相关系数。 2.余弦相似性。 3调整余弦相似性。 调整余弦 相似性似乎效果会好一些。

三,推荐。产生了最近邻居集合后,就根据这个集合对未知项进行评分预测。把评分最高的N个项推荐给用户。 这种算法存在性能上的瓶颈,当用户数越来越多的时候,寻找最近邻居的复杂度也会大幅度的增长。

因而这种算法无法满足及时推荐的要求。基于项的协同过滤解决了这个问题。 基于项的协同过滤算法 根基于用户的算法相似,只不过第二步改为计算项之间的相似度。由于项之间的相似度比较稳定可以在线下进行,所以解决了基于用户的协同过滤算法存在的性能瓶颈。

3基于关联规则推荐

基于关联规则的推荐(Association Rule-based Recommendation)是以关联规则为基础,把已购商品作为规则头,规则体为推荐对象。关联规则挖掘可以发现不同商品在销售过程中的相关性,在零售业中已经得到了成功的应用。关联规则就是在一个交易数据库中统计购买了商品集X的交易中有多大比例的交易同时购买了商品集Y,其直观的意义就是用户在购买某些商品的时候有多大倾向去购买另外一些商品。比如购买牛奶的同时很多人会同时购买面包。

算法的第一步关联规则的发现最为关键且最耗时,是算法的瓶颈,但可以离线进行。其次,商品名称的同义性问题也是关联规则的一个难点。

4基于效用推荐

基于效用的推荐(Utility-based Recommendation)是建立在对用户使用项目的效用情况上计算的,其核心问题是怎么样为每一个用户去创建一个效用函数,因此,用户资料模型很大程度上是由系统所采用的效用函数决定的。基于效用推荐的好处是它能把非产品的属性,如提供商的可靠性(Vendor Reliability)和产品的可得性(Product Availability)等考虑到效用计算中。

5基于知识推荐

基于知识的推荐(Knowledge-based Recommendation)在某种程度是可以看成是一种推理(Inference)技术,它不是建立在用户需要和偏好基础上推荐的。基于知识的方法因它们所用的功能知识不同而有明显区别。效用知识(Functional Knowledge)是一种关于一个项目如何满足某一特定用户的知识,因此能解释需要和推荐的关系,所以用户资料可以是任何能支持推理的知识结构,它可以是用户已经规范化的查询,也可以是一个更详细的用户需要的表示。

6组合推荐

由于各种推荐方法都有优缺点,所以在实际中,组合推荐(Hybrid Recommendation)经常被采用。研究和应用最多的是内容推荐和协同过滤推荐的组合。最简单的做法就是分别用基于内容的方法和协同过滤推荐方法去产生一个推荐预测结果,然后用某方法组合其结果。尽管从理论上有很多种推荐组合方法,但在某一具体问题中并不见得都有效,组合推荐一个最重要原则就是通过组合后要能避免或弥补各自推荐技术的弱点。

在组合方式上,有研究人员提出了七种组合思路:
  l1)加权(Weight):加权多种推荐技术结果。
  l2)变换(Switch):根据问题背景和实际情况或要求决定变换采用不同的推荐技术。
  l3)混合(Mixed):同时采用多种推荐技术给出多种推荐结果为用户提供参考。
  l4)特征组合(Feature combination):组合来自不同推荐数据源的特征被另一种推荐算法所采用。
  l5)层叠(Cascade):先用一种推荐技术产生一种粗糙的推荐结果,第二种推荐技术在此推荐结果的基础上进一步作出更精确的推荐。
  l6)特征扩充(Feature augmentation):一种技术产生附加的特征信息嵌入到另一种推荐技术的特征输入中。
  l7)元级别(Meta-level):用一种推荐方法产生的模型作为另一种推荐方法的输入。

7主要推荐方法的对比

各种推荐方法都有其各自的优点和缺点,见表1

主要推荐方法对比

推荐方法

优点

缺点

基于内容推荐

推荐结果直观,容易解释;

不需要领域知识

新用户问题;

复杂属性不好处理;

要有足够数据构造分类器

协同过滤推荐

新异兴趣发现、不需要领域知识;

随着时间推移性能提高;

推荐个性化、自动化程度高;

能处理复杂的非结构化对象

稀疏问题;

可扩展性问题;

新用户问题;

质量取决于历史数据集;

系统开始时推荐质量差;

基于规则推荐

能发现新兴趣点;

不要领域知识

规则抽取难、耗时;

产品名同义性问题;

个性化程度低;

基于效用推荐

无冷开始和稀疏问题;

对用户偏好变化敏感;

能考虑非产品特性

用户必须输入效用函数;

推荐是静态的,灵活性差;

属性重叠问题;

基于知识推荐

能把用户需求映射到产品上;

能考虑非产品属性

知识难获得;

推荐是静态的

 

 

主流推荐算法的分类及介绍

推荐引擎的分类 依据不同的分类指标进行分类: 1.推荐引擎是不是为不同的用户推荐不同的数据 根据这个指标,推荐引擎可以分为基于大众行为的推荐引擎和个性化推荐引擎   l  根据大众行为的推荐...
  • sinat_27693393
  • sinat_27693393
  • 2015年09月16日 13:28
  • 4791

推荐算法分类:协同过滤、聚类、分类

引言     昨日看到几个关键词:语义分析,协同过滤,智能推荐,想着想着便兴奋了。于是昨天下午开始到今天凌晨3点,便研究了一下推荐引擎,做了初步了解。日后,自会慢慢深入仔细研究(日后的工作亦与此...
  • willduan1
  • willduan1
  • 2016年03月28日 19:48
  • 11553

Mahout之推荐算法基本实例

Mahout中主要核心的三大算法为推荐,聚类及分类算法,今天就最基本的推荐算法做总结,推荐中常用的两个推荐算法是”user_based”和”item_based”,前者主要通过和你兴趣相似的人来发现新...
  • sinat_29508201
  • sinat_29508201
  • 2015年08月24日 13:06
  • 2202

几种排序算法总结及比较

  • 2016年12月01日 16:35
  • 4.09MB
  • 下载

总结几种排序算法(一)---冒泡排序

本文主要对几种常用的排序算法进行总结,排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我主要介绍一下内...
  • PenyPeng
  • PenyPeng
  • 2017年07月24日 16:06
  • 157

几种排序算法的稳定性判断与总结

(1)冒泡排序 冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相...
  • next_page_lv
  • next_page_lv
  • 2015年10月06日 09:15
  • 1391

c++常见的几种排序算法总结

原文:c++常见的几种排序算法总结 源代码下载地址:http://www.zuidaima.com/share/1829391352843264.htm 常见的几种排序:冒泡排序、...
  • yaerfeng
  • yaerfeng
  • 2016年08月14日 13:11
  • 1426

一句话总结几种排序算法及其稳定性

排序的稳定性 稳定性: 两记录排序码相等,稳定的排序算法可以保证即使值相等,排序后顺序仍然不变。 因为原序列的顺序可能隐含一些信息,稳定排序算法维持这些信息。冒泡排序(相邻元素排序调):如若两个数...
  • qq_17121501
  • qq_17121501
  • 2016年03月19日 15:47
  • 290

几种常见模式识别算法整理和总结

这学期选了门模式识别的课。发现最常见的一种情况就是,书上写的老师ppt上写的都看不懂,然后绕了一大圈去自己查资料理解,回头看看发现,Ah-ha,原来本质的原理那么简单,自己一开始只不过被那些看似for...
  • mathe_sunshine
  • mathe_sunshine
  • 2014年09月26日 20:24
  • 349

几种常见模式识别算法整理和总结

此博文为转载,尊重博主在此放上原文链接:http://blog.csdn.net/scyscyao/article/details/5987581 文中有部分链接存在问题,无法打开,但并不影响模式识别...
  • zlcnup
  • zlcnup
  • 2015年10月06日 17:23
  • 493
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:几种推荐算法的总结
举报原因:
原因补充:

(最多只允许输入30个字)