前言

[推荐系统 - 基础教程]可能是穆晨的所有博文里,最有趣最好玩的一个系列了^ ^。

作为该系列的[入门篇],本文将轻松愉快地向读者介绍推荐系统这项大数据领域中的热门技术。

为什么要有推荐系统?

从字面意义来看,推荐系统,就是向各位读者们推荐物品的系统。于是大家自然会想到推销......

显然,这并不好玩,因为谁也不想被人打扰,而这个"推销系统"也不是本系列教程要讲解的推荐系统。

该问题的根本原因在于:传统推荐方式太low了;而一个可能让读者们感到诧异的事实是:你们已经开始频繁使用推荐系统了,而且还用得很爽。

不相信?那么我们来一一列举吧!

1. 你用过听歌软件吧?类似网易云音乐、QQ音乐、虾米音乐:

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

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

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

5. 其他应用:推荐社交网络好友、推荐新闻文章、推荐美食......太多太多,这里就不一一例举了。

真的不需要推荐系统?

即使笔者举了上述例子,相信仍有读者不服,表示他们不需要推荐系统。

这群读者应该主要分为三类:

1. A类读者:我就需要那些热门物品;   --- 排行榜是个好东西,但啥都和别人一样,岂非太无趣了?

2. B类读者:我喜欢自己去搜索我需要的物品;   --- 难道没试过突然想看本书,但纠结买哪本好?

3. C类读者:我觉得推荐系统侵犯了我的隐私;   --- 那您放弃的可能不只是推荐系统,而是整个互联网了。

不论这三类读者有没被说服,不可否认的是,对于大部分人来说,已经开始拥抱这个新生事物。

另小道消息称,亚马逊20%以上的营业额就是通过推荐系统实现的。这不单单是说明推荐系统对物品购买行为有影响,更说明对物品销售行为有影响:你也许不但能用推荐系统买东西,还能用推荐系统卖东西。

推荐系统的本质

推荐系统其本质,是为了帮助人们解决信息过载(Information Overload)问题的一项工具。

所谓信息过载,是指你所真正需要、真正感兴趣的东西,被淹没在其同类物品的海洋里。因此,为了找到它,你需要耗费巨大的时间和精力。为了解决信息过载问题,截至至今,人们经历了分类目录、搜索引擎、推荐系统三个阶段。

下文将以信息检索为例,说明人们检索方式(或者可以理解为解决信息过载方式)的演化:

在N年前,笔者热衷于使用类似5566这样的导航网站检索信息:

该网站将其他网站分门别类地整理好,我对哪个类标签感兴趣就可点进去浏览相关网站信息。这就是所谓"分类目录"的检索方式。

● 后来,有了百度。笔者直接往里面输入关键字,它就能提供我想要的网页,这让我觉得信息检索的效率更高了:

这就是所谓“搜索引擎”的检索方式。直至今天,它依然是信息检索的最主流方法。

● 再后来,笔者发现QQ经常给我弹出类似这样的信息:

这就是所谓“推荐系统”的方式了:我们不需要主动告诉系统我们对哪类数据感兴趣,也不需要提供关键字,系统根据我们的历史行为、偏好数据,将我们需要的信息提供给我们。

仔细一想,这不就是从海量的数据中挖掘知识,这不正是数据挖掘的定义么?等等,那推荐系统和数据挖掘有什么关系?好吧,再发散一下,大数据、数据挖掘、机器学习、人工智能、推荐系统等等这些概念又有什么关系?

哈哈,是不是有点晕了?这几个问题就留给读者自行思考吧,思考的过程,也是我们提升对大数据,或者说对数据本身理解的过程。

小结

阅读完本文,读者已经体会到了推荐系统的重要意义了吧。

那么,推荐系统的"后台"是如何通过建立"高大上"的算法模型,从海量数据中精准地为用户筛选出其感兴趣的物品,并将之推荐给用户呢?

这就是本系列博文后面将要涉及到的重点内容了。欢迎读者关注,和穆晨一起探讨研究当今火热的推荐系统技术~!

第一篇:你不一定了解的"推荐系统"的更多相关文章

  1. 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)

    从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...

  2. Python爬虫小白入门(四)PhatomJS+Selenium第一篇

    一.前言 在上一篇博文中,我们的爬虫面临着一个问题,在爬取Unsplash网站的时候,由于网站是下拉刷新,并没有分页.所以不能够通过页码获取页面的url来分别发送网络请求.我也尝试了其他方式,比如下拉 ...

  3. Three.js 第一篇:绘制一个静态的3D球体

    第一篇就画一个球体吧 首先我们知道Three.js其实是一个3D的JS引擎,其中的强大之处就在于这个JS框架并不是依托于JQUERY来写的.那么,我们在写这一篇绘制3D球体的文章的时候,应该注意哪些地 ...

  4. 深入学习jQuery选择器系列第一篇——基础选择器和层级选择器

    × 目录 [1]id选择器 [2]元素选择器 [3]类选择器[4]通配选择器[5]群组选择器[6]后代选择器[7]兄弟选择器 前面的话 选择器是jQuery的根基,在jQuery中,对事件处理.遍历D ...

  5. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  6. Android基础学习第一篇—Project目录结构

    写在前面的话: 1. 最近在自学Android,也是边看书边写一些Demo,由于知识点越来越多,脑子越来越记不清楚,所以打算写成读书笔记,供以后查看,也算是把自己学到所理解的东西写出来,献丑,如有不对 ...

  7. 深入理解ajax系列第一篇——XHR对象

    × 目录 [1]创建对象 [2]发送请求 [3]接收响应[4]异步处理[5]实例演示 前面的话 ajax是asynchronous javascript and XML的简写,中文翻译是异步的java ...

  8. 深入理解javascript对象系列第一篇——初识对象

    × 目录 [1]定义 [2]创建 [3]组成[4]引用[5]方法 前面的话 javascript中的难点是函数.对象和继承,前面已经介绍过函数系列.从本系列开始介绍对象部分,本文是该系列的第一篇——初 ...

  9. 深入理解this机制系列第一篇——this的4种绑定规则

    × 目录 [1]默认绑定 [2]隐式绑定 [3]隐式丢失[4]显式绑定[5]new绑定[6]严格模式 前面的话 如果要问javascript中哪两个知识点容易混淆,作用域查询和this机制绝对名列前茅 ...

  10. 前端工程师技能之photoshop巧用系列第一篇——准备篇

    × 目录 [1]作用 [2]初始化 [3]常用工具[4]快捷键 前面的话 photoshop是前端工程师无法回避的一个软件,这个软件本身很强大,但我们仅仅需要通过这个工具来完成基本的切图工作即可.本文 ...

随机推荐

  1. 3ds max学习笔记(十五)-- 二维图形的操作

    (二维图形的创建) 1,在命令面板的[新建],单击第二个按钮: 从中选择对象名称,在视图种单击拖动进行创建,特殊:线:摁[shift]限制水平,垂直方向: 2,二维对象参数: 在渲染中启用:显示二维线 ...

  2. 页面嵌套iframe后,点击里面的链接,然后父窗口跳转(子窗口控制父窗口的链接跳转)

    做app的时候遇到一个问题,一个页面,然后里面嵌套了一个另一个页面,想实现点击里面的链接,然后外面进行跳转,不然的话,里面的页面永远出不来, 后面想了个办法,app的页面都是打开打开,不关闭的,然后由 ...

  3. Hibernate(12)_基于主键的双向1对1

    一.基于主键的双向1对1 1.介绍: 基于主键的映射策略:指一端的主键生成器使用 foreign 策略,表明根据"对方"的主键来生成自己的主键,自己并不能独立生成主键. <p ...

  4. poj1852 Ants(思维)

    https://vjudge.net/problem/POJ-1852 最短时间显然是各自往靠近端点的地方走. 最长时间关键是要想到,折返和擦肩其实是一样的,可以当成两只蚂蚁换了个位子,最终求max是 ...

  5. hdu3466 Proud Merchants(01背包)

    https://vjudge.net/problem/HDU-3466 一开始想到了是个排序后的背包,但是排序的策略一直没对. 两个物品1和2,当p1+q2>p2+q1 => q1-p1& ...

  6. VUE温习:nextTick、$refs、嵌套路由、keep-alive缓存、is特性、路由属性用法、路由钩子函数

    一.$nextTick 1.vue的dom执行异步更新,只要观察到数据变化,vue将开启一个队列,并缓冲在同一事件循环中发生的所有数据改变. 2.vue.$nextTick(cb),数据发生变化,更新 ...

  7. SSE图像算法优化系列二十六:和时间赛跑之优化高斯金字塔建立的计算过程。

    图像金字塔技术在很多层面上都有着广泛的应用,很多开源的工具也都有对他们的建立写了专门的函数,比如IPP,比如OpenCV等等,这方面的理论文章特别多,我不需要赘述,但是我发现大部多分开源的代码的实现都 ...

  8. [Java] Windows/Linux路径不同时,统一war的最简办法

    作者: zyl910 一.缘由 在项目开发时,因为运行环境的不同,导致有时得分别为不同的环境,切换配置参数打不同war包.但手工切换配置文件的话,不仅费时费力,而且容易出错. 有些打包工具支持配置切换 ...

  9. jquery核心

    1.找到所有 p 元素,并且这些元素都必须是 div 元素的子元素 $("div > p"); 2.设置页面背景色 $(document.body).css("ba ...

  10. 汉字编码 (GB2312 GBK GB18030)

    GB2312 收录简化汉字及符号.字母.日文假名等共7445个图形字符,其中汉字占6763个 每个符号都用两个字节表示,每个字节均采用七位编码表示,习惯上 第一个字节是高字节,第二个字节是低字节 GB ...