推荐系统是互联网时代极具商业价值的人工智能应用之一,30 年来持续受到学术界和工业界的广泛关注。本书作者以一线研发人员的视角和经验,对推荐系统进行总结,尝试从原理与实践两个角度为读者剖析推荐系统。本书首先从原理上介绍各类经典推荐算法及前沿的深度学习推荐算法,然后分析推荐系统领域发展的前沿话题和未来方向,最后结合微软的开源项目Microsoft Recommenders 介绍推荐系统的实践经验。读者可以基于本书提供的源代码,深入学习推荐算法的设计原理和实践方式,并可以基于本书从零开始快速搭建一个准确、高效的推荐系统。本书不仅适合互联网、大数据等相关领域技术人员阅读,也适合高等院校计算机、软件工程、人工智能等专业的本科生和研究生参考。
李东胜,博士,微软亚洲研究院(上海)高级研究经理,复旦大学计算机学院客座教授、兼职博导,中国计算机学会协同计算专业委员会委员。主要研究方向为机器学习理论及应用,尤其是推荐算法的准确性、泛化能力、可扩展性、安全与隐私等。近年来,在PNAS、Nature Cardiovascular Research、ICML、NIPS、ICLR、SIGIR、WWW、KDD等相关领域的会议和期刊上发表论文80余篇。长期担任ICML、NIPS、ICLR、KDD、AAAI、IJCAI、CIKM等学术会议的程序委员。曾任IBM中国研究院高级研究员,于2016—2019年连续4年获得IBM杰出技术成就奖,开发的认知推荐引擎在2018年获得IBM最高奖——IBM Corporate Award。练建勋,博士,毕业于中国科学技术大学,现任微软亚洲研究院主管研究员。研究方向主要包括推荐系统、用户建模与深度学习相关技术。在KDD、IJCAI、WWW、SIGIR等多个国际顶级会议上发表了多篇论文,相关的研究成果应用在必应广告、Xbox游戏和微软新闻等多个推荐场景上,获得了显著的提升效果。张 乐,博士,人工智能架构师/总监,主导面向金融应用的人工智能和机器学习平台开发。曾任微软高级数据科学家,负责开发应用于零售、媒体和娱乐行业的工业级推荐系统在Azure云平台上的产品和解决方案。在人工智能及数据科学在多个行业的应用项目中担任主要开发和技术负责人。开源项目Microsoft Recommenders的主要参与者之一。曾在KDD、ICDM、WWW等多个人工智能学术会议上发表论文及演讲。本科毕业于哈尔滨工业大学,在新加坡南洋理工大学获得博士学位,曾在美国普渡大学交流访问。任 侃,博士,现就职于微软亚洲研究院并担任高级研究员。主要研究领域包括数据挖掘与机器学习,特别是时空数据挖掘、序列建模与决策优化方法,及其在推荐系统、医疗健康与金融等领域的应用。在数据挖掘与机器学习领域顶级会议和期刊上发表了20余篇论文,包括TKDE、KDD、SIGIR、AAAI、ICLR、ICDM、WSDM、CIKM等。在浙江大学获得计算机科学与技术工学学士学位,在上海交通大学获得计算机科学与技术博士学位,并获得上海交通大学优秀博士学位论文提名。卢 暾,博士,复旦大学计算机科学技术学院教授,博士生导师,美国卡耐基梅隆大学(CMU)访问学者。现任中国计算机学会(CCF)协同计算专委秘书长、大数据专家委员会通讯委员、高级会员。长期从事CSCW与社会计算、协同计算、推荐系统与人机交互等方面的研究。作为项目负责人承担多项国家自然科学基金项目、科技部重点研发计划课题、863课题和上海市项目。研究成果发表在CSCW、CHI、UbiComp、NIPS、WWW、SIGIR、IEEE TKDE等领域权威会议和期刊上。多次担任CSCW、CHI等的AC,多个国内外学术会议的PC Co-Chair,以及多个国内外学术期刊的AE和GE。邬 涛,博士,微软Azure Gaming Services部门数据科学主管。其团队专注于人工智能技术在游戏开发、内容创作和运营中的应用。领导开发的Microsoft Recommenders开源项目是GitHub上最受欢迎的推荐系统项目。在微软、诺基亚研究中心和麻省理工学院计算机科学与人工智能实验室(CSAIL)长期负责研发和团队管理工作。谢 幸,博士,微软亚洲研究院首席研究员,中国科学技术大学兼职博士生导师,微软-中科大联合实验室主任,中国计算机学会普适计算专委会副主任。其团队在数据挖掘、社会计算和普适计算等领域展开研究,在国际会议和学术期刊上发表了300余篇学术论文,共被引用4万余次。他是中国计算机学会会士、IEEE会士、ACM杰出会员。
序
前言
第1 章推荐系统概述1
1.1 推荐系统发展历史/2
1.1.1 基于内容的推荐算法/2
1.1.2 基于协同过滤的推荐算法/3
1.1.3 基于深度学习的推荐算法/5
1.2 推荐系统原理/6
1.2.1 机器学习视角下的推荐系统/6
1.2.2 深度学习推荐系统新范式/12
1.2.3 推荐系统常见架构/15
1.3 推荐系统应用价值/17
1.3.1 推荐系统的业务价值/17
1.3.2 推荐、搜索与广告/19
1.3.3 推荐系统的行业应用/20
1.4 小结/22
第2 章经典推荐算法/25
2.1 基于内容的推荐算法/26
2.1.1 基于结构化内容的推荐/27
2.1.2 基于非结构化内容的推荐/33
2.1.3 基于内容推荐的优势与局限/41
2.2 基于协同过滤的推荐算法/42
2.2.1 基于记忆的协同过滤算法/42
2.2.2 矩阵分解方法与因子分解机方法/50
2.3 小结/58
第3 章深度学习基础/59
3.1 神经网络与前馈计算/60
3.2 反向传播算法/61
3.3 多种深度神经网络/64
3.3.1 卷积神经网络/64
3.3.2 循环神经网络/68
3.3.3 注意力机制/72
3.3.4 序列建模与预训练/75
3.4 小结/78
第4 章基于深度学习的推荐算法/79
4.1 深度学习与协同过滤/80
4.1.1 基于受限玻尔兹曼机的协同过滤/80
4.1.2 基于自编码器的协同过滤/82
4.1.3 深度学习与矩阵分解/84
4.1.4 基于邻域的深度协同过滤/87
4.2 深度学习与特征交互/88
4.2.1 AFM 模型/88
4.2.2 PNN 模型/89
4.2.3 Wide & Deep 模型/91
4.2.4 DeepFM 模型/93
4.2.5 DCN 模型/94
4.2.6 xDeepFM 模型/96
4.2.7 AutoInt 模型/99
4.2.8 特征交互的其他思路/100
4.3 图表示学习与推荐系统/100
4.3.1 图嵌入和图神经网络基础/101
4.3.2 图神经网络与协同过滤/106
4.3.3 图神经网络与社会化推荐/110
4.4 序列与基于会话的推荐/114
4.4.1 序列推荐的动机、定义与分类/114
4.4.2 序列推荐算法的分类/117
4.4.3 基于循环神经网络的序列推荐/122
4.4.4 基于非自回归神经网络的序列建模/125
4.4.5 基于自注意力机制的序列推荐/127
4.4.6 基于记忆神经网络的序列推荐/129
4.4.7 用户、物品双序列建模/133
4.5 结合知识图谱的推荐系统/134
4.5.1 加强用户--物品交互建模/135
4.5.2 图谱建模与物品推荐的联合学习/141
4.5.3 知识图谱增强物品的表示/146
4.5.4 可解释性/151
4.6 基于强化学习的推荐算法/158
4.6.1 基于多臂老虎机的推荐算法/160
4.6.2 强化学习基础/162
4.6.3 基于强化学习的推荐算法/ 164
4.6.4 深度强化学习的建模与优化/166
4.7 小结/170
第5 章推荐系统前沿话题/171
5.1 推荐算法研究热点/172
5.1.1 基于对话的推荐/172
5.1.2 因果推荐/173
5.1.3 常识推荐/174
5.2 推荐系统应用挑战/175
5.2.1 多源数据融合/175
5.2.2 可扩展性/176
5.2.3 功能性评估/178
5.2.4 冷启动问题/179
5.3 负责任的推荐/180
5.3.1 用户隐私/180
5.3.2 可解释性/183
5.3.3 算法偏见/187
5.4 小结/189
第6 章推荐系统实践/191
6.1 工业级推荐系统实现与架构/192
6.1.1 工业级推荐系统的基本特征/192
6.1.2 推荐系统的常见架构/193
6.1.3 推荐系统的工业实现/196
6.2 推荐系统典型应用实践/198
6.2.1 数据管理与预处理/201
6.2.2 算法选择与模型训练/208
6.2.3 评估指标与评估方式/230
6.3 基于云平台的推荐系统开发与运维/236
6.3.1 基于云平台的推荐系统的优点/236
6.3.2 基于云平台的推荐系统开发与运维/237
6.4 总结/241
第7 章总结与展望/243
参考文献247