前言
最近几年刷手机、浏览电脑网页时总是收到各种各样的推送,这一切都归功于推荐系统。当然,有的很合我心意,有的却让我感觉自己深陷信息茧房。趁闲暇时间我也想对推荐系统一探究竟,并且尝试自己基于相关算法实现一个简易的版本。 这是该系列的第一篇文章,主要围绕推荐系统的起源和发展、相关专业术语、框架组成、算法分类等方面展开。
推荐系统的起源与发展
作为计算机应用领域的一大亮点,推荐系统最初在国外兴起。
起源阶段:
- 1992 年,Belkin 和 Croft 对信息过滤和信息检索进行研究,奠定推荐系统理论基础。同年,Goldberg 等人提出 Tapestry 系统,这是第一个通过人工评估进行协同过滤的信息过滤系统,为推荐系统发展奠定基础。
- 受 Tapestry 系统启发,麻省理工学院和明尼苏达大学的研究人员开发了 Grouplens 新闻推荐服务,核心组件是 “用户——用户”协同过滤 模型,明尼苏达大学的 John Riedl 教授成立 Grouplens 研究实验室。
商业化阶段:
- 1996 年,专注于营销推荐引擎的 Netperceptions 公司成立,其客户包括亚马逊等知名电商企业。同年,Schafer 等人解释推荐系统如何通过分析界面、推荐模型和用户输入等三个方面帮助电商网站增加销售额,标志着学术研究和实际应用在该领域的融合。
- 1997 年秋季,Grouplens 研究实验室启动 MovieLens 项目,并利用 EachMovie 数据集训练首个版本的推荐模型,此后 MovieLens 数据集在 1998 年至 2019 年期间不断更新发布,成为推荐系统研究中最受欢迎的数据集之一。
- 1998 年,亚马逊平台上线 基于物品 的协同过滤算法(ItemCF 算法),将推荐系统推向服务千万级用户和处理百万级商品的规模,亚马逊销售额提高了 35% 左右,这是推荐算法从实验室走向商业公司的一次成功应用。
蓬勃发展阶段
- 2006 年至 2009 年的 Netflix Prize 竞赛引发了人们对矩阵分解模型的广泛研究。同一时期,一些研究者开始认为推荐系统的评估应从传统准确性指标转向以用户为中心的评估。
- 2007 年,学术界在明尼苏达大学举办首届 ACM 推荐系统会议(ACM RecSys),该会议已成为专注于推荐系统研究的最重要的年度学术会议之一。同年,Richardson 及其同事提出一种逻辑回归(LR)模型,降低了 30% 的点击率估计误差,随后 LR 模型在优化方法、自动特征工程等方面得到持续改进。
- 2010 年,Rendle 引入因子分解机(FMs)概念,FMs 将支持向量机(SVM)和分解模型相结合取得重要进展,基于 FMs 研究人员提出领域感知因子分解机(FFMs),在考虑特征权重时充分考虑特征所属领域。
- 视频平台 YouTube 最早只通过点击和浏览量对内容进行排序,2012 年开始采用复杂的推荐算法,尝试加入观看时长、分享、喜欢等参数来向观众呈现视频流。
成熟应用阶段
- 2016 年 9 月,YouTube 将其技术文档整理成论文《Deep Neural Networks for YouTube Recommendations(深度神经网络在 YouTube 推荐系统中的应用)》发表,公布了从大规模可选内容中寻找最适合推荐结果的算法路径,探讨了深度学习带来的性能跨越式提升。
- 2016 年以来,基于深度神经网络的推荐模型在学术界和工业界都受到广泛关注。在工业界,wide&deep 和 deepfm 等模型已被应用于改善应用程序推荐,YouTubeDNN 和 Correct-sfx等模型用于提高视频推荐的准确性。为更好地建模用户兴趣等序列信息,研究者们提出 din 和 dien 等模型,利用注意力机制来处理这些信息。同时,Ruoxi Wang 等人提出的 DCN 和 DCNv2 模型能够自动高效地学习有界度的预测特征交互。在学术界,研究者们也提出了一系列重要的深度推荐模型,如 FNN、PNN、NeuralCF、NFM 和 CVAE 等。
- 2017 年以来,研究者们开始关注推荐系统的可解释性,提出一系列可解释深度推荐模型,不仅能提供准确推荐结果,还能解释推荐背后原因,增强用户对推荐系统的信任度。
- 随着图神经网络(GNN)的兴起,越来越多的研究开始探索如何利用图结构数据来改进推荐算法,特别是在社交网络推荐和内容推荐等领域。
- 近年来,随着隐私保护和数据安全问题日益突出,差分隐私、联邦学习等技术也开始被引入到推荐系统中,以保护用户隐私和数据安全。
而国内在推荐系统领域的起步较晚,而且多以应用实现为主。
- 早在二零零几年的时候,国内的淘宝等电商平台就已经开始探索和应用推荐技术,不过主要是基于规则的推荐和一些基本的协同过滤算法。
- 2016 年又被称为 “智媒元年”,国内的互联网公司纷纷加大在推荐系统领域的投入和研发力度,一大批代表性应用在这一浪潮中涌现出来。
信息超载与长尾效应这两个概念所描述的现象极大地推动了推荐系统的发展。
信息超载
含义
所谓的信息超载,指的就是在互联网时代,人们每天接收到的信息量远远超出了个人的处理能力,从而难以找到真正对自己有用的信息。
意义
从信息超载的角度,推荐系统可被定义为一种主动的信息过滤系统:通过挖掘用户的潜在需求,主动地将相关信息展示或推送给用户。
长尾效应
含义
主流的商品市场份额实际上和非主流的商品累积占有的市场份额是一致的,后者甚至更多。后者就像一条“长尾”,也是很重要的关注对象。
意义
从长尾效应的角度,推荐系统可被定义为一种个性化的双边匹配系统。
推荐系统的组成框架
如图所示,一个典型的推荐系统应该具有如下几个模块:
其中,在对用户进行建模时涉及到了用户画像的概念:
用户画像
简言之,就是给用户 贴标签 ,挖掘其性别、年龄、职业、购物偏好等等方面的信息。
标签应有以下特征:
- 标签有确定的语义,不能模棱两可,避免混淆
- 标签的粒度,即标签所描述的性质的范围不能过大或过小
从用途上看,标签可以分为以下几类:
- 第一类是事实标签,比如性别、年龄等可以直接获取到的信息。
- 第二类是模型标签,比如购物偏好等等,该类标签信息无法直接获取,需要通过一些数学模型推算总结得出,也就是需要“分析”得出的内容。
- 第三类是预测标签,比如用户在电商平台上未来一段时间是否有意愿购买某商品,这同样需要通过技术手段得到结论,但更偏向于对数据深层次的“挖掘”。
项目画像
如果说用户画像是通过标签来描述用户的属性,那么项目画像描述的就是项目的属性。其主要是挖掘某个项目的主题、适用范围、目标人群等等的信息。
算法分类
根据不同的参考维度,可以将推荐系统中的算法划分为不同的种类。以下仅从算法思想、目标函数以及数据表示三个维度讨论算法的分类。
- 算法思想:
- 基于人口统计学
- 基于内容
- 基于知识
- 协同过滤
- 目标函数
- 点级排序
- 对级排序
- 列表级排序
- 数据表示
- 矩阵表示
- 特征向量
- 图模型
其中,协同过滤算法将是本系列的后续文章中会重点讨论的内容;而在实际的应用场景中,通常不会只用一种算法,而是将多种算法结合使用,也就是混合推荐。
参考文献
- 《推荐系统》第二版 刘宏志 吴中海编著
- 《推荐系统实战》项亮编著
- 《互联网推荐系统比较研究》 软件学报文章