第一篇:你不一定了解的"推荐系统"
前言
[推荐系统 - 基础教程]可能是穆晨的所有博文里,最有趣最好玩的一个系列了^ ^。
作为该系列的[入门篇],本文将轻松愉快地向读者介绍推荐系统这项大数据领域中的热门技术。
为什么要有推荐系统?
从字面意义来看,推荐系统,就是向各位读者们推荐物品的系统。于是大家自然会想到推销......

显然,这并不好玩,因为谁也不想被人打扰,而这个"推销系统"也不是本系列教程要讲解的推荐系统。
该问题的根本原因在于:传统推荐方式太low了;而一个可能让读者们感到诧异的事实是:你们已经开始频繁使用推荐系统了,而且还用得很爽。
不相信?那么我们来一一列举吧!
1. 你用过听歌软件吧?类似网易云音乐、QQ音乐、虾米音乐:

2. 你上过网上书店买书吧?类似当当、京东书城、卓越书城:

3. 来个新颖点的...你玩过王者荣耀吧?下面截图你懂的:

4. 再来个新颖点的...你还是单身吗?听说世纪佳缘、珍爱网这些婚恋网站的对象推荐系统也做得很不错:

5. 其他应用:推荐社交网络好友、推荐新闻文章、推荐美食......太多太多,这里就不一一例举了。
真的不需要推荐系统?
即使笔者举了上述例子,相信仍有读者不服,表示他们不需要推荐系统。
这群读者应该主要分为三类:
1. A类读者:我就需要那些热门物品; --- 排行榜是个好东西,但啥都和别人一样,岂非太无趣了?
2. B类读者:我喜欢自己去搜索我需要的物品; --- 难道没试过突然想看本书,但纠结买哪本好?
3. C类读者:我觉得推荐系统侵犯了我的隐私; --- 那您放弃的可能不只是推荐系统,而是整个互联网了。
不论这三类读者有没被说服,不可否认的是,对于大部分人来说,已经开始拥抱这个新生事物。
另小道消息称,亚马逊20%以上的营业额就是通过推荐系统实现的。这不单单是说明推荐系统对物品购买行为有影响,更说明对物品销售行为有影响:你也许不但能用推荐系统买东西,还能用推荐系统卖东西。
推荐系统的本质
推荐系统其本质,是为了帮助人们解决信息过载(Information Overload)问题的一项工具。
所谓信息过载,是指你所真正需要、真正感兴趣的东西,被淹没在其同类物品的海洋里。因此,为了找到它,你需要耗费巨大的时间和精力。为了解决信息过载问题,截至至今,人们经历了分类目录、搜索引擎、推荐系统三个阶段。
下文将以信息检索为例,说明人们检索方式(或者可以理解为解决信息过载方式)的演化:
● 在N年前,笔者热衷于使用类似5566这样的导航网站检索信息:

该网站将其他网站分门别类地整理好,我对哪个类标签感兴趣就可点进去浏览相关网站信息。这就是所谓"分类目录"的检索方式。
● 后来,有了百度。笔者直接往里面输入关键字,它就能提供我想要的网页,这让我觉得信息检索的效率更高了:

这就是所谓“搜索引擎”的检索方式。直至今天,它依然是信息检索的最主流方法。
● 再后来,笔者发现QQ经常给我弹出类似这样的信息:

这就是所谓“推荐系统”的方式了:我们不需要主动告诉系统我们对哪类数据感兴趣,也不需要提供关键字,系统根据我们的历史行为、偏好数据,将我们需要的信息提供给我们。
仔细一想,这不就是从海量的数据中挖掘知识,这不正是数据挖掘的定义么?等等,那推荐系统和数据挖掘有什么关系?好吧,再发散一下,大数据、数据挖掘、机器学习、人工智能、推荐系统等等这些概念又有什么关系?
哈哈,是不是有点晕了?这几个问题就留给读者自行思考吧,思考的过程,也是我们提升对大数据,或者说对数据本身理解的过程。
小结
阅读完本文,读者已经体会到了推荐系统的重要意义了吧。
那么,推荐系统的"后台"是如何通过建立"高大上"的算法模型,从海量数据中精准地为用户筛选出其感兴趣的物品,并将之推荐给用户呢?
这就是本系列博文后面将要涉及到的重点内容了。欢迎读者关注,和穆晨一起探讨研究当今火热的推荐系统技术~!
第一篇:你不一定了解的"推荐系统"的更多相关文章
- 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)
从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...
- Python爬虫小白入门(四)PhatomJS+Selenium第一篇
一.前言 在上一篇博文中,我们的爬虫面临着一个问题,在爬取Unsplash网站的时候,由于网站是下拉刷新,并没有分页.所以不能够通过页码获取页面的url来分别发送网络请求.我也尝试了其他方式,比如下拉 ...
- Three.js 第一篇:绘制一个静态的3D球体
第一篇就画一个球体吧 首先我们知道Three.js其实是一个3D的JS引擎,其中的强大之处就在于这个JS框架并不是依托于JQUERY来写的.那么,我们在写这一篇绘制3D球体的文章的时候,应该注意哪些地 ...
- 深入学习jQuery选择器系列第一篇——基础选择器和层级选择器
× 目录 [1]id选择器 [2]元素选择器 [3]类选择器[4]通配选择器[5]群组选择器[6]后代选择器[7]兄弟选择器 前面的话 选择器是jQuery的根基,在jQuery中,对事件处理.遍历D ...
- 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- Android基础学习第一篇—Project目录结构
写在前面的话: 1. 最近在自学Android,也是边看书边写一些Demo,由于知识点越来越多,脑子越来越记不清楚,所以打算写成读书笔记,供以后查看,也算是把自己学到所理解的东西写出来,献丑,如有不对 ...
- 深入理解ajax系列第一篇——XHR对象
× 目录 [1]创建对象 [2]发送请求 [3]接收响应[4]异步处理[5]实例演示 前面的话 ajax是asynchronous javascript and XML的简写,中文翻译是异步的java ...
- 深入理解javascript对象系列第一篇——初识对象
× 目录 [1]定义 [2]创建 [3]组成[4]引用[5]方法 前面的话 javascript中的难点是函数.对象和继承,前面已经介绍过函数系列.从本系列开始介绍对象部分,本文是该系列的第一篇——初 ...
- 深入理解this机制系列第一篇——this的4种绑定规则
× 目录 [1]默认绑定 [2]隐式绑定 [3]隐式丢失[4]显式绑定[5]new绑定[6]严格模式 前面的话 如果要问javascript中哪两个知识点容易混淆,作用域查询和this机制绝对名列前茅 ...
- 前端工程师技能之photoshop巧用系列第一篇——准备篇
× 目录 [1]作用 [2]初始化 [3]常用工具[4]快捷键 前面的话 photoshop是前端工程师无法回避的一个软件,这个软件本身很强大,但我们仅仅需要通过这个工具来完成基本的切图工作即可.本文 ...
随机推荐
- Java基础知识总结--多态
面向对象编程的三大特性:封装.继承.多态 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据,而外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承是 ...
- 【不做标题党,只做纯干货】HashMap在jdk1.7和1.8中的实现
同步首发:http://www.yuanrengu.com/index.php/20181106.html Java集合类的源码是深入学习Java非常好的素材,源码里很多优雅的写法和思路,会让人叹为 ...
- 集群安装Java环境
需要安装一个集群环境,发现全部要手动安装java.记录下安装Java环境的过程.虽然,依旧是挨个安装,但总算是有体系了. java 找到下载地址: https://www.oracle.com/tec ...
- 【JavaScript从入门到精通】第二课 初探JavaScript魅力-02
第二课 初探JavaScript魅力-02 变量 说起变量,我们不得不提起我们有一部比较古老的电视剧叫<包青天>.包青天有一把非常厉害的宝剑叫“尚方宝剑”,见到尚方宝剑有如见到皇帝.某种程 ...
- 机械臂运动学逆解(Analytical solution)
计算机器人运动学逆解首先要考虑可解性(solvability),即考虑无解.多解等情况.在机器人工作空间外的目标点显然是无解的.对于多解的情况从下面的例子可以看出平面二杆机械臂(两个关节可以360°旋 ...
- fiddle扩展
扩展地址:http://www.telerik.com/fiddler/add-ons 证书选择 ios设置证书生成 (CertMaker for iOS and Android) 证书查看 (Fid ...
- Unix环境高级编程-阻塞访问原理——等待队列
有些时候,一个系统调用可能无法马上取到或者送出数据:一个温度采集器如果没有采用中断或者轮询的策略,而是在用户发出请求时才进行采集,并在一定的时间后返回结果.如果用户程序希望调用read或write并且 ...
- Mysql中的定时任务
一.说明 后台周期定时任务可以有多种解决方案,我所知道的大概有以下几种: 后台框架自带定时任务.比如php中的Laravel框架里有提供定时任务操作接口,其他的框架大家可以单独针对了解. 服务器操作系 ...
- 使用 Docker 镜像构建 GO 语言环境
1. 安装 Docker 我当前使用的系统环境是 CentOS7 ,安装 Docker 使用的命令是 yum install docker*.至于其它系统,可以到百度查找其对应的安装方式. 2. 配置 ...
- CDC在sql server 2017中无法使用的问题
Symptom === sp_MScdc_capture_job in the CDC job raised error message Msg 217, Level 16, State 1, Pro ...