`
SunnyYoona
  • 浏览: 368052 次
社区版块
存档分类
最新评论

[推荐系统]推荐系统的常用算法概述

 
阅读更多

前一阵子准备毕业论文的开题,一直在看推荐系统相关的论文。对推荐系统有了一个更加清晰和理性的认识,也对推荐算法有了深入了解。借此机会总结分享一下,大家多多拍砖。

推荐系统的出现

  随着互联网的发展,人们正处于一个信息爆炸的时代。相比于过去的信息匮乏,面对现阶段海量的信息数据,对信息的筛选和过滤成为了衡量一个系统好坏的重要指标。一个具有良好用户体验的系统,会将海量信息进行筛选、过滤,将用户最关注最感兴趣的信息展现在用户面前。这大大增加了系统工作的效率,也节省了用户筛选信息的时间。

  搜索引擎的出现在一定程度上解决了信息筛选问题,但还远远不够。搜索引擎需要用户主动提供关键词来对海量信息进行筛选。当用户无法准确描述自己的需求时,搜索引擎的筛选效果将大打折扣,而用户将自己的需求和意图转化成关键词的过程本身就是一个并不轻松的过程。

  在此背景下,推荐系统出现了,推荐系统的任务就是解决上述的问题,联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对他感兴趣的人群中,从而实现信息提供商与用户的双赢。

推荐算法介绍

  1 基于人口统计学的推荐

  这是最为简单的一种推荐算法,它只是简单的根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的其他物品推荐给当前用户。

  

  系统首先会根据用户的属性建模,比如用户的年龄,性别,兴趣等信息。根据这些特征计算用户间的相似度。比如系统通过计算发现用户A和C比较相似。就会把A喜欢的物品推荐给C。

  优势:

  a 不需要历史数据,没有冷启动问题

  b 不依赖于物品的属性,因此其他领域的问题都可无缝接入。

  不足:

  算法比较粗糙,效果很难令人满意,只适合简单的推荐

 

  2 基于内容的推荐

  与上面的方法相类似,只不过这次的中心转到了物品本身。使用物品本身的相似度而不是用户的相似度。

  

  系统首先对物品(图中举电影的例子)的属性进行建模,图中用类型作为属性。在实际应用中,只根据类型显然过于粗糙,还需要考虑演员,导演等更多信息。通过相似度计算,发现电影A和C相似度较高,因为他们都属于爱情类。系统还会发现用户A喜欢电影A,由此得出结论,用户A很可能对电影C也感兴趣。于是将电影C推荐给A。

  优势:

  对用户兴趣可以很好的建模,并通过对物品属性维度的增加,获得更好的推荐精度

  不足:

  a 物品的属性有限,很难有效的得到更多数据

  b 物品相似度的衡量标准只考虑到了物品本身,有一定的片面性

  c 需要用户的物品的历史数据,有冷启动的问题

  3 协同过滤

  协同过滤是推荐算法中最经典最常用的,具体的思路我已经在之前的一篇文章中提到过,大家可以去看一下。

  这里只想介绍一下协同过滤中的方法和刚才提到方法的区别。

  大家都知道协同过滤分为基于用户的协同过滤和基于物品的协同过滤。那么他们和基于人口学统计的推荐和基于内容的推荐有什么区别和联系呢?下面简单介绍一下。

  基于用户的协同过滤——基于人口统计学的推荐

  基于用户的协同过滤推荐机制和基于人口统计学的推荐机制都是计算用户的相似度,并基于“邻居”用户群计算推荐,但它们所不同的是如何计算用户的相似度,基 于人口统计学的机制只考虑用户本身的特征,而基于用户的协同过滤机制可是在用户的历史偏好的数据上计算用户的相似度,它的基本假设是,喜欢类似物品的用户 可能有相同或者相似的口味和偏好。

  基于物品的协同过滤——基于内容的推荐

  基于项目的协同过滤推荐和基于内容的推荐其实都是基于物品相似度预测推荐,只是相似度计算的方法不一样,前者是从用户历史的偏好推断,而后者是基于物品本身的属性特征信息。

  协同过滤的优势:

  a 它不需要对物品或者用户进行严格的建模,而且不要求物品的描述是机器可理解的,所以这种方法也是领域无关的。

  b 这种方法计算出来的推荐是开放的,可以共用他人的经验,很好的支持用户发现潜在的兴趣偏好

  不足:

  a 方法的核心是基于历史数据,所以对新物品和新用户都有“冷启动”的问题。

  b 推荐的效果依赖于用户历史偏好数据的多少和准确性。

  c 在大部分的实现中,用户历史偏好是用稀疏矩阵进行存储的,而稀疏矩阵上的计算有些明显的问题,包括可能少部分人的错误偏好会对推荐的准确度有很大的影响等等。

  d 对于一些特殊品味的用户不能给予很好的推荐。

  e 由于以历史数据为基础,抓取和建模用户的偏好后,很难修改或者根据用户的使用演变,从而导致这个方法不够灵活。

  4 混合推荐算法

  以上介绍的方法是推荐领域最常见的几种方法。但是可以看出,每个方法都不是完美的。因此实际应用中,向Amazon这样的系统都是混合使用各种推荐算法,各取所长。因此我们在使用时,也可以多考虑一下什么情况下更适合使用哪种算法,来提高我们系统的效率。

推荐系统的发展方向

  1 需要考虑在保证推荐准确性的同时增加推荐的多样性,使特殊喜好的用户得到推荐

  2 需要考虑用户对系统的实时反馈,更好的利用反馈数据强化推荐算法

  3 考虑时间,空间,任务等因素,来更好的完成推荐

分享到:
评论

相关推荐

    推荐系统的常用算法概述.

    推荐系统的常用算法概述.

    基于Python开发带差分隐私采用协同过滤的推荐系统 毕业设计.gz

    介绍推荐系统的主要分类方法和对于协同过滤推荐算法的研究;介绍了协同过滤算法的主要步骤:收集用户偏好、找到相似的用户或者物品、计算并推荐。 • 差分隐私概述。分析了差分隐私的概念和该模型相对于传统安全模型...

    毕业设计:基于差分隐私保护技术的协同过滤推荐系统设计与实现.zip

    介绍推荐系统的主要分类方法和对于协同过滤推荐算法的研究;介绍了协同过滤算法的主要步骤:收集用户偏好、找到相似的用户或者物品、计算并推荐。 (3)差分隐私概述。分析了差分隐私的概念和该模型相对于传统安全...

    MATLAB电力系统经济调度程序经典算法与实践应用(文档加Matlab源码)

    文章首先概述了电力系统经济调度的基本概念,然后深入探讨了几种常用的经济调度算法,包括线性规划、动态规划和混合整数线性规划等。接着,通过实例演示了如何在MATLAB环境中实现这些算法,并对算法的效率和实用性...

    推荐系统入门

    2.常用推荐算法 2.1协同过滤: 2.2基于人口统计学的过滤 2.3内容过滤 2.4社会化过滤 2.5地理位置过滤 3评价推荐结果 3.1准确度 3.2覆盖度 3.3多样性 3.4新颖性和惊喜度

    Recommender-System:推荐系统概述

    排序两个阶段的常用算法之外,随后涉及到内容理解的部分的相关算法。除了算法之外,还涉及到大数据相关的处理技术以及工程实践,下面总结和整理以工业界的推荐系统通常,包含如下的几个部分:推荐系统的概述及其技术...

    智能优化算法及其MATLAB实例(第2版)-书中例子的Matlab代码

    第1章 概述 1  1.1 进化类算法 2  1.2 群智能算法 3  1.3 模拟退火算法 5  1.4 禁忌搜索算法 5  1.5 神经网络算法 6  参考文献 6 第2章 遗传算法 9  2.1 引言 9  2.2 遗传算法理论 10  2.2.1 遗传算法的...

    基于Flask和MySQL的协同过滤图书推荐系统源码

    项目概述:本项目是一个基于Flask框架和MySQL数据库构建的协同过滤图书推荐系统。该系统采用HTML、JavaScript、CSS、Python、Ruby和Shell等多种编程语言开发,共包含666个文件,其中HTML文件149个,LESS文件133个,...

    基于python设计的宾馆管理系统 在保证用到一些常用算法的前提下设计并开发出满足对宾馆管理系统的需求的程序

    本系统设计实现的目标是对宾馆管理信息,客户的信息进行管理,既要满足客户选购不同类型房间的需求,又需要方便管理员查询入住情况,同时满足管理员对顾客姓名,身份证号,入住天数,以及预计住房费用等信息的录入,...

    《计算机操作系统》期末复习指导

    第一章 计算机操作系统概述 1、操作系统的概念 操作系统(Operating System,OS),是一种软件,属于系统软件; 1、科普的观点 操作系统是计算机系统的管理和控制中心,它依照设计者制定的各种调度策略组织...

    陈运文:智能推荐系统的开发与应用

    他先对智能推荐系统进行了概述,给出了常用推荐算法及其适用场景,然后结合实践讲述了Latent Factor Model推荐算法,指出该算法的优点:将用户和物品用隐特征(latent feature)连接在一起;Matrix Factorization有...

    计算机图形学原理及算法教程(cd).rar

    10.1 计算机动画概述 322 10.2 计算机动画的应用领域 322 10.3 计算机动画的分类和原理 322 10.4 目前计算机动画面临的问题 325 10.5 计算机动画程序设计案例 325 10.5.1 帧动画 325 10.5.2 实时动画 328 练习题 335...

    算法导论(part2)

    本书收集了现代计算机常用的数据结构和算法,并作了系统而深入的介绍。对涉及的概念和背景知识都作了清晰的阐述,有关的定理给出了完整的证明。 2.“五个一”的描述方法。 本书以相当的深度介绍了许多常用的数据...

    操作系统重点

    第1章 操作系统概述  【掌握】  1. 操作系统的概念  操作系统是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。  记忆要点:操作系统...

    高校图书管理系统

    论文参考将数据挖掘技术应用于图书馆的个性化信息、服务系统,挖掘隐藏在数据...的相关理论以及数据挖掘技术的常用算法和常用工具,最后对个性化信息服务系统 进行了整体设计,并对系统实现时一的关键技术进行了详细介绍。

    算法导论(part1)

    本书收集了现代计算机常用的数据结构和算法,并作了系统而深入的介绍。对涉及的概念和背景知识都作了清晰的阐述,有关的定理给出了完整的证明。 2.“五个一”的描述方法。 本书以相当的深度介绍了许多常用的数据...

    FreeBSD操作系统设计与实现

    第三部分第6章到第10章,详细介绍了i/o系统,包括概述、设备、本地文件系统、网络文件系统、终端系统等。第四部分是第11章到第13章,分别介绍了进程间通信、网络通信和网络协议。第五部分是第14章,介绍了启动和...

    2022年精选数学建模算法教程文档合集第13期:蒙特卡罗算法(100份).zip

    1.蒙特卡罗方法概述.ppt 2.随机数.ppt 3.由巳知分布的随机抽样.ppt 4.蒙特卡罗方法解粒子输运问题.ppt 5.蒙特卡罗方法在计算机上的实现.ppt 6.蒙特卡罗方法在通量计算中的应用.ppt 7.蒙特卡罗方法在积分计算中的应用...

    现代直流伺服控制技术及其系统设计

    现代直流伺服控制技术及其系统设计 目 录 代序言 前 言 第1章 绪论 ... 附录D PWM系统常用大功率晶体管、模块 及驱动电路技术性能参数 附录E LEM电流电压传感器模块的 技术性能参数及应用 参考文献

    UNIX操作系统教程 张红光

    第1章绪论.1 1.1操作系统概述1 1.1.1建立操作系统的目标1 1.1.2操作系统是用户与计算机的接口1 1.1.3操作系统是资源管理器2 1.2UNIX系统的主要特性3 1.3UNIX系统的发展史4 1.4开源软件与UNIX的推广发展6 1.4.1开源...

Global site tag (gtag.js) - Google Analytics