`
liyonghui160com
  • 浏览: 775566 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

常用推荐算法

阅读更多

 

       在推荐系统简介中,我们给出了推荐系统的一般框架。很明显,推荐方法是整个推荐系统中最核心、最关键的部分,很大程度上决定了推荐系统性能的优劣。目前,主要的推荐方法包括:基于内容推荐、协同过滤推荐、基于关联规则推荐、基于效用推荐、基于知识推荐和组合推荐。

一、基于内容推荐

       基 于内容的推荐(Content-based Recommendation)是信息过滤技术的延续与发展,它是建立在项目的内容信息上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用机 器学习的方法从关于内容的特征描述的事例中得到用户的兴趣资料。在基于内容的推荐系统中,项目或对象是通过相关的特征的属性来定义,系统基于用户评价对象 的特征,学习用户的兴趣,考察用户资料与待预测项目的相匹配程度。用户的资料模型取决于所用学习方法,常用的有决策树、神经网络和基于向量的表示方法等。 基于内容的用户资料是需要有用户的历史数据,用户资料模型可能随着用户的偏好改变而发生变化。

基于内容推荐方法的优点是:
(1)不需要其它用户的数据,没有冷开始问题和稀疏问题。
(2)能为具有特殊兴趣爱好的用户进行推荐。
(3)能推荐新的或不是很流行的项目,没有新项目问题。
(4)通过列出推荐项目的内容特征,可以解释为什么推荐那些项目。
(5)已有比较好的技术,如关于分类学习方面的技术已相当成熟。

       缺点是要求内容能容易抽取成有意义的特征,要求特征内容有良好的结构性,并且用户的口味必须能够用内容特征形式来表达,不能显式地得到其它用户的判断情况。

二、协同过滤推荐

       协 同过滤推荐(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 主要推荐方法对比
推荐方法
优点
缺点
基于内容推荐
推荐结果直观,容易解释;
不需要领域知识
稀疏问题;新用户问题;
复杂属性不好处理;
要有足够数据构造分类器
协同过滤推荐
新异兴趣发现、不需要领域知识;
随着时间推移性能提高;
推荐个性化、自动化程度高;
能处理复杂的非结构化对象
稀疏问题;
可扩展性问题;
新用户问题;
质量取决于历史数据集;
系统开始时推荐质量差;
基于规则推荐
能发现新兴趣点;
不要领域知识
规则抽取难、耗时;
产品名同义性问题;
个性化程度低;
基于效用推荐
无冷开始和稀疏问题;
对用户偏好变化敏感;
能考虑非产品特性
用户必须输入效用函数;
推荐是静态的,灵活性差;
属性重叠问题;
基于知识推荐
能把用户需求映射到产品上;
能考虑非产品属性
知识难获得;
推荐是静态的
分享到:
评论
2 楼 liyonghui160com 2014-10-31  
blackproof 写道
“基于关联规则推荐”跟基于项目的协同过滤推荐有什么区别??都是计算出物品与物品的相似度,在将人从已知物推荐到未知物



关联规则计算一般用于订单数据item与item的关系,
如果没有用户打分或者打分一致的情况下,关联规则本质就是item的协同过滤。

不知道理解的对不对
1 楼 blackproof 2014-10-28  
“基于关联规则推荐”跟基于项目的协同过滤推荐有什么区别??都是计算出物品与物品的相似度,在将人从已知物推荐到未知物

相关推荐

    常用推荐算法 50页

    常用推荐算法 干货

    常用推荐算法(50页干货)

    这份50页的干货文档涵盖了多个常用的推荐算法,旨在帮助读者深入理解和掌握这些算法的原理与应用。以下是对这些算法的详细介绍: 1. **协同过滤**:协同过滤是最为常见的推荐系统方法,分为用户-用户协同过滤和物品...

    常用推荐算法简介.pdf

    常用推荐算法简介 本文将对常用推荐算法进行简介,涵盖基于人口统计学、基于内容、基于关联规则和基于协同过滤的推荐算法。这些算法都是为了实现个性化推荐,帮助用户在海量信息中快速发现真正所需的信息或商品。 ...

    2024年常用推荐算法-非常详细(保姆级)

    本文详细介绍了推荐算法的基本概念和常用算法,包括协同过滤、内容推荐、深度学习推荐和混合推荐。文章还讨论了个性化推荐、实时推荐、跨平台推荐、冷启动问题、算法优化、算法解释性、长期与短期目标、持续学习和...

    常见算法 常见算法 常见算法

    本文将深入探讨“常见算法”,包括它们的基本概念、类型以及在实际应用中的作用。 一、算法基本概念 算法是一系列精确的指令,用于解决特定问题或执行特定任务。它由一组有限的步骤组成,这些步骤必须是明确的、可...

    基于社交网络推荐算法

    综上所述,基于社交网络的推荐算法不仅能够有效利用社交网络的数据来提升推荐质量,还能够在一定程度上解决个性化推荐中常见的冷启动问题。通过持续的技术创新和优化,这类算法在未来有望发挥更大的作用。

    模型算法大全(20+种常用算法模型+代码实现)

    模型算法大全(20+种常用算法模型+代码实现)模型算法大全(20+种常用算法模型+代码实现)模型算法大全(20+种常用算法模型+代码实现)模型算法大全(20+种常用算法模型+代码实现)模型算法大全(20+种常用算法模型+...

    基于协同过滤算法的旅游推荐系统+eclipse+mysql+系统说明.rar

    《基于协同过滤算法的旅游推荐系统开发详解》 在当今信息爆炸的时代,个性化推荐系统已成为提升用户体验、提高用户满意度的重要工具。本项目“基于协同过滤算法的旅游推荐系统”正是以此为目标,结合Java、JSP和...

    数学建模30个常用算法(Python)

    数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法...

    基于用户/项目的混合协同过滤推荐算法的推荐原理、推荐过程、代码实现 混合推荐算法 聚类、属性、评分混合推荐项目代码实现

    一、基于用户/项目的混合协同过滤推荐算法推荐原理 混合推荐可使用的数据包括: 1、用户属性:用户位置、用户性别、用户年龄等属性信息; 2、项目属性:项目类别、项目添加时间、项目内容等属性信息; 3、用户操作...

    详解个性化推荐五大最常用算法,算法数据结构

    详解个性化推荐五大最常用算法,算法数据结构 个性化推荐系统是当今互联网背后的无名英雄。为了简化推荐算法的选择,Statsbot团队写了一个现有的主要推荐系统算法的概述。今天,我们将详解五大最常用的个性化推荐...

    常用算法 常用算法 常用算法

    Dijkstra算法和A*搜索是求解最短路径问题的典型方法,尤其在路由和网络规划中十分常见。 动态规划是解决具有重叠子问题和最优子结构特征的问题的有效方法。例如,斐波那契数列、背包问题和最长公共子序列都可以通过...

    基于hbase + spark 实现常用推荐算法(主要用于精准广告投放和推荐系统).zip

    毕业设计 课程设计 项目开发 系统开发 Spark 机器学习 大数据 算法 源码 毕业设计 课程设计 项目开发 系统开发 Spark 机器学习 大数据 算法 源码 毕业设计 课程设计 项目开发 系统开发 Spark 机器学习 大数据 算法 ...

    建模常用算法

    常用算法程序包常用算法程序包常用算法程序包常用算法程序包常用算法程序包常用算法程序包常用算法程序包

    电商推荐系统 推荐算法应用 推荐系统在电子商务中应用 共27页.pdf

    常见的推荐算法有基于协同过滤的算法、基于内容的算法、基于hybrid的算法等。协同过滤算法是基于用户之间的相似性来推荐商品的,内容-based算法是基于商品的特征来推荐的,hybrid算法则是将多种算法结合起来。 在...

    推荐算法开源代码库java版

    协同过滤是最常见的推荐方法,它分为用户-用户协同过滤和物品-物品协同过滤,通过分析用户的历史行为,预测其他用户可能的兴趣,或者比较物品之间的相似性来生成推荐。 基于内容的推荐则依赖于对物品属性的理解,...

    算法.rar,常见算法

    算法.rar,常见算法算法.rar,常见算法算法.rar,常见算法算法.rar,常见算法算法.rar,常见算法算法.rar,常见算法算法.rar,常见算法算法.rar,常见算法算法.rar,常见算法算法.rar,常见算法算法.rar,常见算法...

    300常用加解密算法

    本文将深入探讨300种常见的加解密算法,涵盖其基本原理、分类、应用及安全性。 首先,加解密算法可以大致分为两大类:对称加密和非对称加密。对称加密算法使用同一密钥进行加密和解密,如DES(Data Encryption ...

    C常用算法程序集,各种经典算法

    本压缩包文件“C常用算法程序集”显然是一份包含了多种常见算法的代码集合,旨在帮助程序员理解和实践这些算法。 首先,我们来探讨一些基础的C语言算法。C语言中的基本算法包括排序算法、查找算法、递归算法、字符...

Global site tag (gtag.js) - Google Analytics