零基础科普:4种简单推荐算法背后的原理

大数据 算法
大数据平台只是提供了数据获取、存储、计算、应用的技术方案,真正挖掘这些数据之间的关系让数据发挥价值的是各种机器学习算法。在这些算法中,最常见的当属智能推荐算法了。

[[402797]]

本文转载自微信公众号「大数据DT」,作者李智慧。转载本文请联系大数据DT公众号。

大数据平台只是提供了数据获取、存储、计算、应用的技术方案,真正挖掘这些数据之间的关系让数据发挥价值的是各种机器学习算法。在这些算法中,最常见的当属智能推荐算法了。下面通过几种简单的推荐算法来了解一下推荐算法背后的原理。

我们在淘宝购物,在头条阅读新闻,在抖音刷短视频,背后其实都有智能推荐算法。这些算法不断分析、计算我们的购物偏好、浏览习惯,然后为我们推荐可能喜欢的商品、文章、视频。这些产品的推荐算法如此智能、高效,以至于我们常常一打开淘宝就买个不停,一打开抖音就停不下来。

01 基于人口统计的推荐

基于人口统计的推荐是相对简单的一种推荐算法,它会根据用户的基本信息进行分类,然后将商品推荐给同类用户,如图1所示。

▲图1 基于人口统计的推荐算法

用户A和用户C的年龄相近、性别相同,可以将他们划分为同类。用户A喜欢商品D,因此推测用户C可能也喜欢这个商品,系统就可以将这个商品推荐给用户C。

图1中的示例比较简单,在实践中,还应该根据用户收入、居住地区、学历、职业等各种因素对用户进行分类,以使推荐的商品更加准确。

02 基于商品属性的推荐

基于商品属性的推荐和基于人口统计的推荐相似,只是它是根据商品的属性进行分类,然后根据商品分类进行推荐的,如图2所示。

▲图2 基于商品属性的推荐

电影A和电影D都是科幻、战争类型的电影,如果用户A喜欢电影A,很有可能他也会喜欢电影D,因此就可以给用户A推荐电影D。

这和我们的生活常识也是相符合的。如果一个人连续看了几篇关于篮球的新闻,那么再给他推荐一篇篮球的新闻,他很大可能会有兴趣看。

03 基于用户的协同过滤推荐

基于用户的协同过滤推荐是根据用户的喜好进行用户分类,然后根据用户分类进行推荐,如图3所示。

▲图3 基于用户的协同过滤推荐

这个示例中,用户A和用户C都喜欢商品A和商品B,根据他们的喜好可以分为同类。用户A还喜欢商品D,那么将商品D推荐给用户C,他可能也会喜欢。

现实中,跟我们有相似喜好、品味的人也常常被我们当作同类,我们也愿意去尝试他们喜欢的其他东西。

04 基于商品的协同过滤推荐

基于商品的协同过滤推荐则是根据用户的喜好对商品进行分类,然后根据商品分类进行推荐,如图4所示。

▲图4 基于商品的协同过滤推荐

这个示例中,喜欢商品B的用户A和用户B都喜欢商品D,那么商品B和商品D就可以分为同类。对于同样喜欢商品B的用户C,很有可能也喜欢商品D,就可以将商品D推荐给用户C。

这里描述的推荐算法比较简单。事实上,要想做好推荐其实是非常难的,用户不要你觉得他喜欢,而要自己觉得喜欢。现实中,有很多智能推荐的效果并不好,被用户吐槽是“人工智障”。推荐算法的优化需要不断地收集用户的反馈,不断地迭代算法和升级数据。

关于作者:李智慧,资深架构专家,同程旅行交通首席架构师,曾在NEC、阿里巴巴、Intel等知名企业担任架构师,也曾在WiFi万能钥匙等企业担任CTO。长期从事大数据、大型网站的架构和研发工作,领导设计过多个日活用户在千万级以上的互联网系统架构,实战经验丰富。曾设计、开发过 Web 服务器防火墙、分布式NoSQL 系统、大数据仓库引擎、反应式编程框架等各种类型的软件系统。

本文摘编自《架构师的自我修炼:技术、架构和未来》,经出版方授权发布。

 

责任编辑:武晓燕 来源: 大数据DT
相关推荐

2022-03-15 09:31:17

ESLint工作原理前端

2014-08-06 09:08:03

大数据

2018-08-13 13:56:24

2014-10-08 10:42:08

萌码编程

2016-11-25 13:05:18

2017-09-21 15:31:49

2012-02-22 10:33:36

Wi-Fi

2022-02-17 18:11:53

PostCSS流程API

2015-08-07 14:48:26

移动开发企业APPiUAP Mobile

2020-11-27 14:40:32

安全云服务数据

2023-11-07 08:28:08

GPT模型环境

2021-03-23 17:21:48

Java编程开发

2020-04-09 14:02:33

NginxHttps前端

2020-11-20 09:36:43

Java对象

2021-01-13 14:55:54

JavaPython开发

2019-11-11 14:09:17

Swift数据科学语言

2021-03-31 11:21:36

Java语言编程

2017-03-02 10:49:37

推荐算法原理实现

2021-08-11 20:17:22

推荐算法系统

2019-09-19 14:50:15

区块链运行原理
点赞
收藏

51CTO技术栈公众号