前言:

上个月公司的同事提议组内做几次关于数据挖掘的技术串讲交流下学习和工作经验,本着提携新人的考虑,建议博主也讲点什么。开始时博主想简单讲一讲推荐算法的协同过滤算法。后来考虑到其实串讲不仅仅是和其他人交流分享,也是对自己已有知识的巩固。想一想还是加点挑战,谈谈推荐系统吧^_^。为什么选推荐系统呢,原因有三个:

1.人们在网络中经常接触推荐,讲起来例子多,人们不陌生;

2.原理比较简单,不需要学习者有高超的数学基础;

3.这个领域是博主最先接触的数据挖掘领域^_^。

博主第一次接触推荐系统的学习是在林老师的《文本挖掘与搜索引擎》的课上,课上他向我们推荐项亮编著的《推荐系统实践》,虽然期末的大作业博主被分到了QA组(注:这里的QA不是质量保证而是问答系统),但博主拜读了这本书,感觉受益颇多,之后和直博北大的学霸大白弄了个简陋的基于社交网络的好友推荐系统,当时也不会什么Hadoop、Spark什么的,我们俩全程手撕代码,虽然效果和效率都不好但加深了对推荐系统的了解,这样看来手撕代码或许对学习帮助比较好吧(写到这里博主想起了一天下午和大白敲完码,大白兴致勃勃拉着博主去爬学校后面的牛角山,博主爬一半没了力气,上不去也下不来的可怕回忆)。

一、什么是推荐系统

设想一下这个情景:

中国男足在世界杯预选赛上一路高歌猛进,有杀入世界杯之势。过几天晚上有场关键的比赛,你考虑到要尽情享受足球之夜,看球时嘴不能闲着,还需要买点零食边看球边吃。这里你有三个选择:

  1. 到楼下的小超市或便利店买零食。你飞快的走到零食货架,从十几种零食中选了一种你爱吃的。

  2. 去离你最近的大超市家乐福买零食。家乐福有三层,有上千种商品在出售,你蒙了,还好漂亮的店员小姐告诉你,你需要的零食在二楼的零食区的非膨化食品货架有卖。

  3. 作为一个宅男,你怎么可能下楼去买东西,你机智的拿出手机,打开淘宝,淘宝上有无数的商品出售,即使在分类的零食区也有数不尽的网页,还好你很机智,在搜索栏输入了你想要的零食,马上你找到你想要的零食,江浙沪包邮,你所在的地区不包邮,预计下周日到达,你怒了。

上面三个例子对应着信息量的发展,随着互联网时代的到来,信息从匮乏的状态变成了过载的状态。当信息很少时(小卖铺),我们只凭经验浏览就可以得到我们想要的信息;当信息增加时(大超市),我们无法一一浏览信息找出我们想要的,这时就出现了门户分类网站(雅虎等);到了信息过载时(电子商务网站),分类已经无法让我们快捷的获取信息了,这时就出现了搜索引擎(谷歌等)。

但仅仅有搜索引擎就够了吗?上诉例子是在用户有明确的目标的条件(买某个品牌的零食)下完成的。但在用户没有明确目标时(比如晚上没啥事想随便找部电影看看),搜索引擎就显得捉襟见肘了。

在这个数据过载的时代,信息的消费者需要从海量的信息中找到自己所需要的信息,信息的生产者要让自己生产的信息在海量的信息中脱颖而出,这时推荐系统就应运而生了。对用户而言,推荐系统不需要用户提供明确的目标;对物品而言,推荐系统解决了2/8现象的问题(也叫长尾效应),让小众的物品可以展示到需要它们的用户面前。

在我们生活中,推荐系统应用十分广泛,比如:电子商务,视频与音乐网站、社交网络、广告等等。同时推荐系统中的各种预测算法还能应用到其它不同的领域。

二、什么是好的推荐系统

回答什么是好的推荐系统之前先抛出一个问题:好的推荐系统是不是等于作出准确预测的推荐系统?

我们回到买零食的情景,假如你没有去淘宝购买零食而是去了另一个网站,这个网站用了一套高超的推荐算法算出了此时此刻的你想要买某个品牌的零食(比算命的都厉害),当你打开应用的一刹那,就把这个品牌的零食呈现在你眼前,你在惊讶的同时,欣然的下单。那么这个网站的推荐系统是不是一个好的推荐系统呢?答案可能会让你惊讶。不是!原因是用户在之前已经有了明确的目标要买某种零食,这套推荐系统可能会增加用户的体验,但除此之外并没有给网站带来多大的利益,因为即使没有这套推荐系统,用户也会通过网站的搜索引擎来找到这种零食并购买,,有没有这套推荐系统网站的收入都是一样的(当然这套系统提高了用户体验可能会让用户更倾向使用这个网站,收入还是有所提升的)。而另一套推荐系统在你买零食时向你推荐了一款啤酒,你突然想到“看球不喝啤酒咋行”,你欣然买下了这款啤酒。这个推荐就好于上一个。因为用户本来没有买啤酒的计划,但看了推荐后购买了啤酒,网站通过这个推荐多赚了一单。

推荐系统的评价指标有很多,项亮的《推荐系统实践》给出了以下指标:

  1. 用户满意度

    也就是加完这套推荐系统后用户的的满意度,这个指标可以通过用户调查问卷等形式得到,但值得注意的一点是获得指标的方式方法也有可能降低用户的满意度。

  2. 预测准确率:

    就是我们预测结果的准确度。一般情况下在TopN预测时我们计算召回率和准确率;在评分等预测时用MAE或RMSE

  3. 覆盖率:

    代表推荐的事物对全部事物的覆盖情况,可以用来判断推荐系统是否有马太效应。马太效应是出自《圣经 马太福音》的一个典故,社会学中的一种强者越强弱者越弱的现象,也就是说推荐系统是否会使被关注的事物更加被关注,被忽视的事物更加被忽视。常用的协同过滤就有马太效应。比较简单的测试指标就是信息熵。

  4. 多样性:

    判断推荐结果是否覆盖用户各个兴趣点

  5. 新颖性:

    例如不应该推荐用户已经看过的电影等,应该多推荐给用户用户不知道的商品。记得当时林教授举了一个例子,一个朋友买了5L的洗衣液,应该几个月都不需要洗衣液了,但那个电子商务平台(不说是哪个了)还是想推荐洗衣液,这就是一个新颖性不够的推荐。假如用户买了一台电脑,新颖性高的推荐是向他推荐一些外设,而不是另一台电脑。

  6. 惊喜性:

    用户对推荐的商品之前没有兴趣,但用过之后很满意。

  7. 信任性:

    这个是网站运营方面的,推荐是不是受用户信任,例如用户相比百度搜索的推广推荐更信任淘宝网的商品推荐

  8. 健壮性:

    是否能承受住攻击和刷分(就是使用一些手段使自己的商品优先被推荐)等现象

  9. 商业目标:

    该推荐系统上线后商业目标完成情况,如业绩提升、销量增加等等

​这篇文章向大家介绍了什么是推荐系统,推荐系统的产生原因和推荐系统的一系列评价指标也可以说是推荐系统的目标。接下来的几篇文章,可能会介绍用户行为数据和协同过滤。

转载于:https://www.cnblogs.com/matianchi/p/7029111.html

谈谈推荐系统(一)什么是推荐系统相关推荐

  1. python推荐系统-基于Python的推荐系统的设计与实现

    张玉叶 摘  要: 大数据时代的推荐系统可以帮助用户从海量信息中高效地获取自己的潜在需求,是大数据在互联网领域的典型应用.文章介绍了利用Python语言实现的一个基于物品的协同过滤算法推荐系统,给出了 ...

  2. 读书笔记 |《推荐系统实践》- 个性化推荐系统总结

    -- 原创,未经授权,禁止转载 2017.11.15 -- 推荐系统实践 对于推荐系统,本文总结内容,如下图所示: 推荐系统.png 文章很长,你可以跳着看你感兴趣的部分. 一.什么是推荐系统 1. ...

  3. 【推荐系统】深入理解推荐系统:排序

    写在前面 [推荐系统]专栏历史文章: 深入理解推荐系统:召回 深入理解YouTube推荐系统算法 作为[推荐系统]系列文章的第三篇,将以"排序"作为今天的主角,会从四个方面来介绍推 ...

  4. 推荐系统(一)推荐系统整体概览

    推荐系统(一)推荐系统整体概览 前记: 自工作后,由于工作日的搬砖劳累,每每周末就在做饭.吃饭.在公司内部度课堂上学习各位前辈高人留下的优秀资料(但我还是很菜,哈哈哈),睡觉.加班(大多数周末)中度过 ...

  5. 毕业设计 - 题目:推荐系统构建和应用 推荐系统

    文章目录 0 前言 1 什么是推荐系统 2 毕业设计 - 能做哪些推荐系统? 2.1 电商推荐系统 2.3 电影推荐系统 2.4 音乐推荐系统 2.5 就业推荐系统 2.6 图书推荐系统 2.7 小说 ...

  6. 混合推荐系统就是多个推荐系统“大杂烩”吗?

    作者丨gongyouliu 编辑丨zandy [导读]在本篇文章中,我们会介绍混合推荐系统(Hybrid Recommender Systems),就是利用多种推荐算法配合起来做推荐,期望避免单个推荐 ...

  7. 【推荐系统】深入理解推荐系统:无需人工特征工程的xDeepFM

    [推荐系统]专栏历史部分文章: 深入理解推荐系统:召回 深入理解推荐系统:排序 深入理解推荐系统:Fairness.Bias和Debias 深入理解推荐系统:推荐系统中的attention机制 深入理 ...

  8. 推荐系统炼丹笔记:推荐系统Bias/Debias大全

    作者:一元 公众号:炼丹笔记 背景 在实践中,做推荐系统的很多朋友思考的问题是如何对数据进行挖掘,大多数论文致力于开发机器学习模型来更好地拟合用户行为数据.然而,用户行为数据是观察性的,而不是实验性的 ...

  9. movielens推荐系统_浅谈推荐系统+3个小时上手python实现(完整代码)

    已经9012年了应该也不需要我解释什么是推荐系统,大致就像头图一样,挖掘用户的喜好,精准的推送给用户ta想要的东西!推荐系统可以说是无处不在了,电商的猜你喜欢,浏览器右侧的推送消息,包括搜索结果的排序 ...

  10. 推荐系统读书笔记(推荐系统实战)

    随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载的时代.在这个时代,无论是信息消费者还是信息生产者都遇到很大的挑战:对于消费者,从大量信息中找到自己感兴趣的信息是一件非常困难的事情: ...

最新文章

  1. SpringCloud Alibaba微服务实战(一) - 基础环境搭建
  2. winfrom里面使用类似于table的合并的控件_Flink集成iceberg数据湖之合并小文件
  3. html高德地图api使用教程,高德地图API如何使用?
  4. POJ 3723 - Conscription ( 最大权森林 / 最小生成树 )
  5. 算法中分类与聚类的区别?
  6. 几个SpringCloud常见面试题及答案
  7. 硬件基础:理解串口通信以及232,485,422常见问题
  8. 2021“MINIEYE杯”中国大学生算法设计超级联赛(8)(1002,1004,1006,1009)
  9. 对JavaFX Mobile应用程序进行性能分析
  10. PHP文件加到WordPress页面,WordPress-所有页面链接到index.php文件
  11. css清除浮动的几种方法_CSS 分享几种传统布局方法[上]
  12. Java架构-高并发的解决实战总结方案
  13. Spring内建可查找的依赖
  14. 2.从Paxos到Zookeeper分布式一致性原理与实践---一致性协议
  15. linux驱动调试方法
  16. Xcode8 官方下载地址
  17. 华为HCNA乱学Round 9:VRRP
  18. VirtualBox AndroidX86 网络设置
  19. IDEA 新UI使用
  20. 电视电信显示服务器连接错误,中国电信宽带怎样连接老电视连接好后电视怎么显示没...

热门文章

  1. 超详细C语言联合体union详解
  2. git 新建分支并推送(push)到远程仓库
  3. vue 获取安卓原生方法_VUE H5调用原生APP方法实践笔记
  4. 东北林业大学计算机考研怎么样,东北林业大学考研难吗?一般要什么水平才可以进入?...
  5. 论述常见轻量级数据库
  6. JavaScript中的IIFE
  7. idea 一行js_IntelliJ IDEA使用之JavaScript
  8. 转战微博—从Twitter上市谈起
  9. Python 科技研究之 04 使用 Python 简化二维三体问题模拟
  10. containerd导入本地镜像