那些熟悉的互联网产品背后推荐系统的技术演进

原创
开发
推荐系统是迄今为止商业化最为成功的技术之一。推荐系统的基本原理是基于算法和大数据猜测用户喜好,为用户推荐他们感兴趣的物品。推荐系统的应用场景非常广泛,从新闻推荐,音乐推荐,电影推荐到相亲对象推荐无所不包。

[[207577]]

【51CTO.com原创稿件】推荐系统是迄今为止商业化最为成功的技术之一。推荐系统的基本原理是基于算法和大数据猜测用户喜好,为用户推荐他们感兴趣的物品。推荐系统的应用场景非常广泛,从新闻推荐,音乐推荐,电影推荐到相亲对象推荐无所不包。

许多国内外的公司已经将推荐系统作为其商业化产品必不可少的一部分。许多互联网公司,例如今日头条和 Netflix,都把推荐系统作为最重要的技术支撑业务。本文将按照推荐系统发展的脉络,为大家介绍技术的演进。

图 1. Netflix 推荐系统架构

1.协同过滤

推荐系统发展至今已有相当长的历史,形成了一个庞大的算法和研发体系。推荐系统领域最早的算法是协同过滤,现在基本不被各大互联网公司作为线上系统使用,仅作为算法迭代的初始比较标准。

协同过滤包括基于用户的协同过滤(user-based collaborative filtering)和基于物品的协同过滤(item-based collaborative filtering)两种。

  • 基于用户的协同过滤:算法思想是计算用户和用户之间的相似性,然后将与某个用户最相近的物品通过用户相似性加权计算,得分排序后推荐给用户。
  • 基于物品的协同过滤:算法思想与此类似,只是首先计算物品和物品的相似性,然后再通过加权排序的方式计算用户的评分,并将得分高的物品推荐给用户。

为了提高推荐系统的效率,在推荐系统发展早年,亚马逊设计了 Slope-One 算法来进行商品推荐。

2.矩阵分解模型

如果说协同过滤是推荐系统发展的***阶段,那么矩阵分解模型就是推荐系统发展的第二阶段。研究者和工程师们开始利用 SVD 分解,LDA 和 ALS 等其他的矩阵分解模型将用户对物品的评分矩阵分解为用户-隐变量矩阵和物品-隐变量矩阵,然后通过计算向量乘积完成用户评分矩阵的填充。

因为矩阵分解模型需要计算完整的用户-物品评分矩阵,所以时间复杂度比较高。Google 在 2010 年发表了论文介绍了 Google News 的新闻推荐系统,结合了协同过滤,矩阵分解以及统计兴趣趋势的方法。在这一阶段,出现了专门针对非评分矩阵的隐反馈的算法,其中比较著名的有 SVD++ 和 one-class collaborative filtering。

图2. SVD++ 评分计算公式

3.基于逻辑回归的点击率预估

2010 年之后,推荐系统进入到发展的鼎盛时期,这一时期国内的互联网公司纷纷意识到推荐系统的重要性,开始重点投入相关研发。例如百度专门成立了推荐与个性化部门,阿里巴巴也将商品推荐作为业务重点。

与国内早年开展推荐系统业务的豆瓣不同,因为这些公司的数据体量庞大,它们采用较多的是基于逻辑回归的点击率预估的方式。百度曾在2012 年和 2014 年分别在国际会议上发表论文介绍过百度知道推荐系统,网易也在同一时期在***会议 VLDB 上发表过论文介绍自己的相亲推荐系统。

图3. 百度知道推荐系统架构

图4. 网易花田相亲推荐系统架构

随着推荐系统的发展,研究人员和工程师逐渐意识到混合模型与单一模型相比更加具有优势。我国大型互联网公司普遍采用的点击率预估方式主要是通过线形模型与非线性模型的叠加来完成的。

国外采用同样思路进行推荐系统设计的有 Facebook 的 feed 流广告推荐系统,Yahoo 的问答推荐系统等。美国普林斯顿大学和微软研究院在这一时期提出了 collaborative topic regression 等算法,考虑了将基于内容的推荐,使用协同过滤和矩阵分解模型两两结合的算法,***成就了纽约时报的新闻推荐系统。

图5. Collaborative Topic Regression 算法的图模型

4.排序学习

2010 年以后,推荐系统的研究领域出现了一股新的思潮。许多研究者开始考虑利用排序学习的方法进行推荐。在2010年初期,推荐系统的国际会议 ACM RecSys 上集中出现了一批利用排序学习进行推荐的论文。

排序学习优化的目标包括 MRR,NDCG,AUC 等信息检索指标,代表性的算法有 Bayesian Personalized Ranking,Collaborative Less is More Filtering 等。排序学习本身可以作为独立的推荐算法,也可以作为一个更为完整的推荐系统***进行排序的部分。新浪微博等公司都曾采用排序学习作为自己推荐系统的一部分。

图6. Bayesian Personalized Ranking 伪代码

5.深度学习

近年来,随着深度学习的兴起,推荐系统也受到了人工智能大潮的洗礼。百度,Google,京东和阿里巴巴等公司都逐步采用深度学习或者深度增强学习来替换原有的推荐系统。KDD 和 RecSys 上出现了一批相关的企业论文。深度学习正在逐步成为推荐系统未来发展的主流趋势。

图 7. YouTube 深度学习推荐系统架构

图 8. 基于 GRU 的深度文本推荐系统,Ask the GRU: Multi-Task Learning for Deep Text Recommendations,ACM RecSys 2016

同时,推荐系统催生了一批创业公司,2013年和2014年国外出现了一股推荐系统创业热潮。中国的企业也在苦苦的寻觅推荐系统商业模式之后,诞生了一家以推荐系统作为***卖点的互联网公司 —— 今日头条。

总之,推荐系统作为一个技术领域,无数的技术人员投入了大量的心血,我们期待在不远的未来,推荐系统领域能够迎来一个又一个新的创新高峰并催生出一批新的商业公司。

[[207580]]

汪昊,恒昌利通大数据部负责人,美国犹他大学硕士,在百度,新浪,网易,豆瓣等公司有多年的研发和技术管理经验,擅长机器学习,大数据,推荐系统,社交网络分析等技术。在 TVCG 和 ASONAM 等国际会议和期刊发表论文 5 篇。本科毕业论文获国际会议 IEEE SMI 2008 ***论文奖。

【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】

 

责任编辑:庞桂玉 来源: 51CTO.com
相关推荐

2013-01-18 09:26:58

2013-03-08 09:41:06

宜搜移动互联网洗脑

2010-12-30 09:17:57

PHP程序

2013-08-08 10:19:22

2012-12-28 11:11:49

互联网产品移动终端网络软件

2013-11-21 13:45:35

产品经理产品

2021-09-02 18:36:13

工业互联网安全

2022-06-09 08:01:43

秒杀系统互联网架构

2021-11-29 08:18:22

架构互联网分布式

2020-02-06 16:08:46

互联网剧变企业的待见

2015-11-16 11:13:58

Netflix云计算互联网公司

2013-01-04 10:20:27

互联网产品

2013-08-01 10:49:59

开源

2018-09-29 14:59:06

互联网数据BAT

2023-09-28 21:46:10

2015-03-24 10:38:03

2015-05-28 16:11:07

互联网+

2023-12-05 10:33:15

工业互联网互联网平台

2021-07-26 14:54:56

互联网小米京东

2019-11-06 14:52:23

工业互联网开源平台工业
点赞
收藏

51CTO技术栈公众号