一.什么是推荐系统:

通过算法分析用户喜欢什么,再把那些分析出来用户会喜欢的东西推荐给用户。

二.为什么要用推荐系统:

主要有以下三点好处:
1.用户:得到想要的物品
2.平台:获得更多的流量和收入
3.内容提供商:提高售卖效率

据了解,亚马逊有20%~30%的销售来自于推荐系统。
大拿语录:
——杰夫.贝佐斯

三.我们该如何推荐:

刚刚说到是通过算法分析用户喜欢什么,那么都有哪些算法呢?是如何分析的呢?

主要可分为以下几点:
1.基于流行度的推荐
2.基于好友推荐
3.基于人口统计学的推荐
4.基于内容的推荐算法(content based—简称CB)
5.基于协同过滤的推荐算法(collaborative filtering—简称CF)
6.混合推荐机制

别被吓到,原理很简单,下面依次介绍:

1.基于流行度的推荐:

根据PV、UV、日均PV或收藏数、分享率等数据来按某种热度排序来推荐给用户。

优点:
简单,适用于刚注册的新用户,无用户“冷启动”问题。
缺点:
无法针对用户提供个性化推荐。
举个栗子:

基于这种算法可做一些优化:
比如加入用户分群的流行度排序,把热榜上的摇滚歌曲分给爱听摇滚的用户,把民谣热歌推荐给爱听民谣的用户。。。。

2.基于好友推荐:

把你好朋友喜欢的东西推荐给你

据心理学上说,**你身边人推荐给你的东西甚至比一些权威人物的建议更容易让你接受!**我身边不少栗子确实是这样的,我就是栗子本栗了。
举个栗子:

3.基于人口统计学的推荐:

简单根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的物品推荐给当前用户。

优点
(1).不使用当前用户对物品的喜好历史,数据没有“冷启动”问题。
(2).不依赖于物品本身的数据。
缺点
只考虑用户本身的特征,计算用户相似度,虽有一定个性化,但还不够精准。

4.基于内容的推荐算法(content basedI:CB):

根据用户过去喜欢的产品,为用户推荐和他过去喜欢产品相似的物品。

CB过程一般包括三步:

(1).Item Presentation:为每个item抽取出一些特征(也就是item的content)来表示此item。
描述item的属性分为两种:
1.结构化属性:例如身高、学历、年龄。。。
2.非结构化属性:例如文章的内容等。。。

(2).profile learning:利用一个用户过去喜欢(及不喜欢)的item的特征数据,来学习出用户的喜好特征。
方法:通过用户过去的喜好,为他产生一个模型,根据这个模型判断用户是否会喜欢一个新的item。
首先找到用户已经评判过并与此新item最相似的k个item,然后根据用户对这k个item喜好程度判断对此新item的喜好程度。
相似度计算:

  1. 对于结构化数据:欧几里得距离。
  2. 对于向量空间模型(VSM)来表示item的话,使用cosine

(3). Recommendation Generation:通过比较上一步得到的用户profile与候选item的特征,为此用户推荐一组相关性最大的item。

基于内容推荐,有两类:非个性化、个性化,不同场景选择不同的推荐方式
非个性化
实现方案:

  1. 对元数据建立正排表:jieba分词,Tf-idf抽取每个item的特征及分数
    例: item1—>token1:score,token2:score, token3:score ,item2—>token2:score,token3:score, token6:score

  2. 建立倒排表入库:token1–>item1:score, token2–>item1:score,item2:score ,token3item1:score,item2:score ……

  3. 根据用户输入itemA,分词形成token:score,用token查询倒排表,进行相关性计算,乘倒排表中的item:score,再排序,最终形成itemA—>itemB:score1,itemC:score2

  4. 取topN推荐给用户

个性化
实现方案:
在上述基础上++用户画像
用户画像:
1、历史观看、收藏、购买记录
2、用户注册数据,年龄、性别等
3、社交信息:关系数据
解决马太效应—>多样性差问题的方法—试探:
例:5个推荐位,偶尔在一个推荐位随机选一个做试探(其他行业、频道)

3.基于协同过滤的推荐算法(collaborative filtering:CF)

协同算法可分为:
•User-Based CF(基于用户相似度的协同过滤)
•Item-Based CF(基于物品相似度的协同过滤)

(1).基于用户的协同过滤算法(User-Based CF)

当用户A需要个性化推荐时,可以找到和他兴趣相似的用户样本B,然后把B喜欢的且A没有听说过的物品推荐给A。

举个栗子:

步骤:

  1. 发现兴趣相似用户:通常用jaccard公式或者余弦相似度计算两个用户的相似度(具体算法后续会发文详细介绍)。
  2. 推荐物品:
    首先要从矩阵中找出与目标用户U最相似的K个用户,用集合S(K,U)表示,将S中用户喜欢的物品全部提取出来,并去除U已经喜欢的物品。对每个候选物品i,用户U对它的感兴趣程度进行计算,最终按得分排序,取前几个物品。
    特点:
    在用户的历史偏好的数据上计算用户的相似度。

    优点:
    1.充分利用群体智慧
    2.推荐精度高于CB
    3.利于挖掘隐含的相关性
    缺点:

    1. 推荐结果解释性较差
    2. 对时效性强的item不适用
    3. 冷启动问题

用户相似度计算(cosine):
例:张三和李四的相似度计算

分子:5x3+1x2+0x1+2x3 = 15 + 2 + 0 + 6 = 23
分母:
|张三|:根号(5x5 + 1x1 +0x0 + 2x2) = 5.47
|李四|: 根号(3x3 + 2x2+ 1x1 + 3x3)= 4.79
Cosine = 分子/分母 = 23/(5.47 x4.79) = 0.877
张三和李四的相似度为0.877

(2).基于物品的协同过滤(Item-Based CF)

使用所有用户对物品或信息的偏好,发现物品与物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户。

特点:
适用于物品个数远小于用户数量、物品的个数和相似度相对比较稳定的业务。
比基于用户的实时性更好一些。
与基于内容的推荐都是基于物品相似度的推荐,但是计算相似度的方法不一样。
基于物品的协同过滤式从用户历史的偏好判断。而基于内容的推荐是基于物品本身的属性特征信息。

物品相似度计算:
汉堡&薯条相似度:
分子:5x4+4x5+2x1+1x3=45
分母:Sqrt(5x5+4x4+2x2+1x1)xSqrt(4x4+5x5+1x1+3x3)=6.7x7.1=47.6
汉堡&薯条(cosine)=45/47.6=0.945

汉堡&香烟相似度:
分子:5x1+4x2+2x5+1x4=27
分母:Sqrt(5x5+4x4+2x2+1x1)xSqrt(1x1+2x2+5x5+4x4)=6.7x6.8=45.6
汉堡&香烟(cosine)=27/45.6=0.592

补充:工作中如果用户量远大于物品,则建议采用基于物品的协同过滤,反之亦然。如果用户和物品数据都非常庞大,采取随机采样的方式,再权衡好准确度的前提下尽量减少计算量。

(3).基于模型的协同过滤

基于样本的用户喜好信息,训练一个推荐模型,然后根据实时的用户喜好信息进行预测,计算推荐。

6.混合推荐机制

根据业务实际选择不同推荐策略的组合

以上介绍了几种最常用的推荐策略,后续会发文详细介绍基于Hadoop、Spark的CB、CF具体实现方法。
需强调的是,应结合自身业务灵活制定推荐策略和技术,推荐系统具有高度复杂性,需要持续地进行改进。可能在同一时间内,需要上线不同的推荐算法,做A/B test。根据用户对推荐结果的行为数据,不断对算法进行优化,改进。。
本文参考了一些前辈们的经验,在此表示万分感谢!
如有不足之处请多提宝贵意见!

大数据智能推荐系统原理介绍相关推荐

  1. 大数据-实时推荐系统最主流推荐系统itemCF和userCF视频教程下载

    大数据-实时推荐系统最主流推荐系统itemCF和userCF视频教程下载38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战 ...

  2. 送书福利 | 大数据智能:数据驱动的自然语言处理技术

    刘知远 崔安颀 等编著 电子工业出版社-博文视点 2020-01 ISBN: 9787121375385 定价: 89.00 元 新书推荐 ????今日福利 |关于本书| 本书前身<大数据智能- ...

  3. 电商大数据项目-推荐系统实战(一)

    电商大数据项目-推荐系统实战(一)环境搭建以及日志,人口,商品分析 https://blog.51cto.com/6989066/2325073 电商大数据项目-推荐系统实战之推荐算法 https:/ ...

  4. 电商大数据项目-推荐系统实战之推荐算法(三)

    电商大数据项目-推荐系统实战(一)环境搭建以及日志,人口,商品分析 https://blog.51cto.com/6989066/2325073 电商大数据项目-推荐系统实战之推荐算法 https:/ ...

  5. 【转载】推荐系统原理介绍

    猜你喜欢-–推荐系统原理介绍   最近在做推荐系统,在项目组内做了一个分享.今天有些时间,就将逻辑梳理一遍,将ppt内容用文字沉淀下来,便于接下来对推荐系统的进一步研究.推荐系统确实是极度复杂,要走的 ...

  6. 送100本书!涵盖Java 、大数据、推荐系统、机器学习、黑客、数据库、手游、少儿编程等!免费包邮!...

    「清华大学出版社」联系了包括架构师小秘圈在内的 10 家技术公众号,送出 100本技术书.内容涉及Java. 大数据.推荐系统.机器学习.黑客.数据库.手游.少儿编程等! 01 书怎么送 在下面的公众 ...

  7. 基于炼铁大数据智能互联平台推动传统工业转型升级

    基于炼铁大数据智能互联平台推动传统工业转型升级 赵宏博1,2,刘伟1,李永杰1,王强1,吴建1 1. 北京北科亿力科技有限公司,北京 100102 2. 北京东方国信科技股份有限公司,北京 10010 ...

  8. (1)大数据和应用场景介绍

    专栏目录 (1)大数据和应用场景介绍 (2)大数据技术综述总结 (3)HDFS原理与高可用技术原理介绍 (4)Yarn架构.资源管理原理和运维技术介绍 (5)Kafka原理和高可用介绍 1.大数据基本 ...

  9. 大数据智能交通未来会是怎样的交通状况?

    大数据智能交通未来会是怎样的交通状况?智能交通也是智慧城市的一个重要组成部分将会改变我们的交通,交通少不了大数据的处理,人工智能自动驾驶离不开大数据的支撑. 实现智能交通需要高效地从海量数据中分析.挖 ...

  10. 使用Guardium大数据智能解决方案释放Guardium数据的价值

    编辑的注解:本文反映了由于宣布JSonar的SonarG解决方案已作为IBM Guardium产品组合的一部分(名称为Guardium Big Data Intelligence)从IBM获得的结果, ...

最新文章

  1. 震旦ad208如何进入维修模式_今天才知道!华为手机维修时要开启这个功能,防止隐私被他人查看...
  2. Liferay研究-smilingleo
  3. aws lambda_适用于无服务器Java开发人员的AWS Lambda:它为您提供了什么?
  4. cloudflare 利用API将域名批量解析到cloudflare
  5. linux使用rename批量修改文件扩展名
  6. C++之指针探究(十一):函数名的本质和函数指针
  7. 【SSH网上商城项目实战11】查询和删除商品功能的实现
  8. Java中interface接口与abstract class抽象类的区别
  9. mysql高级学文章来源: [学习通](http://www.bdgxy.com/)http://www.bdgxy.com/<p>[普学网](http:/mysql高级习之索引的优劣势及规则使用
  10. VS2010中文版莫名的错误
  11. java定时器定时发短信_quartz-job实现实时或定时发送短信任务(示例代码)
  12. 洛谷【入门4】数组 P2141 [NOIP2014 普及组] 珠心算测验
  13. 机械键盘按键重复_如何修复机械键盘上的卡住或重复键
  14. 【JVM学习笔记】内存回收与内存回收算法 就哪些地方需要回收、什么时候回收、如何回收三个问题进行分析和说明
  15. 基于iproute命令集配置Linux网络(ip命令)
  16. 读作工业4.0,唱作工业互联网,写作中国制造2025
  17. 【服务器数据恢复】服务器硬盘黄灯的数据恢复案例分享
  18. mem_a.scf的那些事
  19. 哈希碰撞(hash collision)
  20. 红帽认证学习Day01:入门

热门文章

  1. 华为手机android是什么意思,华为手机里的文件夹表示什么意思?
  2. U盘拷贝时提示文件过大
  3. 当面试官说 “你还有什么问题想问的”,你该如何回答?
  4. 主题:讲解三层代码讲解(ActiveList的Action的工作方式)--第五课(*****) DATE:2004-06-03...
  5. 计算机研究计划怎么写,课题研究计划书范文
  6. excel工作表合并
  7. Android以太网框架情景分析之NetworkManagementService和netd交互深入分析二
  8. 波动率模型以及波动率的程式化特征实证
  9. ex10_14输出素数
  10. Navicat连接Oracle