猜你喜欢
精通推荐算法:核心模块+经典模型+代码详解

精通推荐算法:核心模块+经典模型+代码详解

书籍作者:谢杨易 ISBN:9787121474514
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:8673
创建日期:2024-06-25 发布日期:2024-06-25
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书系统介绍了推荐算法的知识框架和技术细节,包括召回、粗排、精排和重排等模块。第1章从用户体验、内容生产和平台发展角度介绍为什么需要推荐系统,并阐述推荐系统的分类及整体技术架构。第2章介绍推荐算法模型的基础——数据样本和特征工程。第3章介绍传统推荐算法。第4~7章介绍推荐系统中最复杂的部分——精排模块,包括特征交叉、用户行为序列建模、Embedding表征学习和多任务学习。第8章介绍召回模块,并详细讲解非个性化召回和个性化召回算法。第9章介绍粗排模块,重点讲解特征蒸馏和轻量级特征交叉等方法。第10章介绍重排模块,包括打散和多样性、上下文感知和端上重排等技术细节。

本书适用于推荐算法初学者、有一定工作经验的推荐算法工程师,以及搜索、广告和营销等领域的从业者,也可作为高等院校计算机等相关专业师生的参考资料。


作者简介

谢杨易,本科毕业于华中科技大学,硕士毕业于中国科学院大学。主要研究方向为推荐算法、个性化搜索和自然语言处理,历任阿里巴巴算法专家、腾讯应用算法研究员等职位,在搜索和推荐算法领域积累了丰富的经验。CSDN博客专家,原创文章100余篇。发表专利15个,已授权6个。


编辑推荐

体系化、全链路,覆盖推荐算法核心模块。

有前沿、有经典,详解常用的模型和技术。

搜广推、适用广,轻松搞定入门面试进阶。


前言

当前互联网高速发展,用户规模和内容规模均迅猛提升。身处信息严重过载的时代,如何让用户从海量信息中发现自己感兴趣的内容,成了很多公司的核心问题。在此背景下,搜索系统和推荐系统应运而生。前者主要解决用户主动寻找内容的问题,后者则将合适的内容分发给合适的用户,偏被动型消费。它们是连接用户和内容的桥梁,重要性不言而喻。

自从2012年AlexNet在ImageNet大规模视觉识别比赛中一举夺魁后,深度学习就深入各大业务领域,推荐系统也不例外。基于深度学习的推荐系统,大幅提升了内容分发的准确性和用户体验,已被应用在各大推荐场景中。推荐算法工程师也由此步入了新的时代。

当前深度学习技术仍然在快速更新中,推荐算法也在飞速发展,因此,从业者必须持续学习新知识。同时,推荐系统链路很长,包括召回、粗排、精排和重排等诸多模块,如何掌握整体架构,并深入每个模块理解其细节,就成为一件困难且重要的事。

本书主要介绍推荐算法技术,覆盖召回、粗排、精排和重排等模块,目的是让读者熟悉推荐算法的全部链路,加深体系化理解,并掌握关键技术细节。另外,本书介绍的很多技术也可应用在搜索和广告等领域。

本书既适合搜索、推荐和广告算法领域的初学者,也适合有一定经验的工程师进阶学习。它能帮助你掌握推荐算法的整体架构、每个核心模块的知识框架,以及一些工作必备的经典模型,同时,能帮助你深入理解它们的出发点和具体实现方案,在实际工作中融会贯通。

身处信息爆炸时代的推荐算法工程师是幸运的,但仍然需要不断学习新知识,接受更多挑战。希望本书分享的知识和经验能够助广大读者一臂之力!

本书特色

本书主要介绍推荐算法技术,特点如下。

(1)内容全面,结构合理。书中囊括推荐算法的所有核心模块,涵盖召回、粗排、精排和重排等内容,帮助读者掌握完整链路,加深对推荐算法的整体理解。先介绍算法模块的知识框架,使读者对其有整体认知,再展开讲解每个细节技术点,帮助读者加深对该模块的理解。

(2)由浅入深,深入本质。针对每个算法模块的讲解,都按照从基础实现到复杂优化的思路,从简到难,由浅入深。通过讲解这些优化手段的出发点和具体实现,以及不同优化手段的关键点,让读者抓住算法本质。

(3)模型经典,代表性强。针对每个模块都选取一些有代表性的经典模型进行重点讲解,这些经典模型都是推荐算法工程师必须掌握的。

(4)贴近工作,实战性强。本书不会利用大量篇幅讲解理论,也不会只介绍一些入门知识。书中介绍的模型和技术细节大多已被应用在实际工作场景中,实战性很强。

(5)代码详细,操作性强。本书为关键的算法模型和模块配备了具体实现代码,并附有详细的注释和运行流程讲解,帮助读者深入理解其运行机理和实现方法。

本书内容

本书包括10章,各章的具体内容如下。

第1章介绍为什么需要推荐系统、推荐系统的分类及其主要技术架构。

第2章介绍如何构建数据样本和特征工程,从而训练模型。这是推荐算法的基础。

第3章介绍深度学习之前的主流推荐算法,包括协同过滤、矩阵分解、逻辑回归和因子分解机等算法。

第4~7章讲解精排模型算法。

第4章讲解特征交叉,并介绍Wide&Deep和DeepFM等经典模型。

第5章讲解用户行为序列建模,包括短序列建模和长序列建模方法,重点讲解DIN、DIEN和SIM等模型。

第6章讲解Embedding表征学习,并介绍Node2vec和GraphSAGE等模型。

第7章讲解多任务学习,包括多任务建模和多任务融合,重点讲解ESSM、MMOE和PLE等模型。

第8章介绍召回算法,包括非个性化召回和个性化召回,重点讲解YouTubeDNN、ESAM和TDM等模型。

第9章介绍粗排算法,包括特征蒸馏和轻量级特征交叉等方法,重点讲解PFD、COLD和FSCD等模型。

第10章介绍重排算法,包括打散和多样性、上下文感知和端上重排等,重点讲解PRM和EdgeRec等模型。

此外,本书会根据推荐算法的发展情况,在后续版本中增加一些新内容,欢迎读者持续关注。


目录

第1章 推荐系统概述 1

1.1 为什么需要推荐系统 1

1.1.1 推荐系统与用户体验 2

1.1.2 推荐系统与内容生产 3

1.1.3 推荐系统与平台发展 4

1.2 推荐系统分类 5

1.2.1 业务领域分类 5

1.2.2 内容介质分类 5

1.2.3 交互形态分类 6

1.2.4 应用场景分类 6

1.3 推荐系统技术架构 7

1.4 本章小结 9

第2章 数据样本和特征工程 10

2.1 数据样本 10

2.1.1 样本不均衡问题 11

2.1.2 样本不置信问题 14

2.1.3 离/在线样本不一致问题 16

2.2 特征工程 17

2.2.1 特征类目体系 18

2.2.2 特征处理范式 21

2.2.3 特征重要性评估 22

2.3 本章小结 23

第3章 传统推荐算法 25

3.1 协同过滤 25

3.1.1 基于用户的协同过滤 26

3.1.2 基于物品的协同过滤 27

3.1.3 协同过滤的优点和局限性 28

3.2 矩阵分解 29

3.2.1 矩阵分解实现方法 30

3.2.2 矩阵分解的优点和局限性 31

3.3 逻辑回归 31

3.3.1 逻辑回归求解过程 33

3.3.2 逻辑回归的优点和局限性 34

3.4 因子分解机 35

3.4.1 因子分解机模型简化 35

3.4.2 因子分解机的优点和局限性 36

3.5 组合模型 37

3.5.1 GBDT + LR组合模型结构 38

3.5.2 GBDT特征转换过程 39

3.5.3 组合模型的思考和总结 40

3.6 本章小结 40

第4章 特征交叉 42

4.1 特征交叉概述 43

4.1.1 特征交叉的意义 43

4.1.2 特征交叉基本范式 44

4.1.3 特征交叉的难点 45

4.2 Deep Crossing:经典DNN框架模型 46

4.2.1 业务背景和特征体系 46

4.2.2 模型结构 48

4.2.3 实现方法 52

4.3 FNN 54

4.3.1 为什么Embedding收敛慢 55

4.3.2 模型结构 55

4.4 PNN 58

4.4.1 模型结构 58

4.4.2 特征交叉实现方法 59

4.5 Wide&Deep:异构模型奠基者 61

4.5.1 “记忆”和“泛化” 61

4.5.2 模型结构 62

4.5.3 系统实现 64

4.5.4 代码解析 66

4.6 DeepFM:异构模型Wide侧引入FM 68

4.6.1 模型结构 68

4.6.2 代码解析 70

4.7 DCN:异构模型Wide侧引入高阶交叉 74

4.8 NFM:异构模型Deep侧引入显式交叉 77

4.9 xDeepFM:异构模型引入子分支 79

4.10 本章小结 83

第5章 用户行为序列建模 85

5.1 用户行为序列建模概述 86

5.1.1 行为序列建模的意义 87

5.1.2 行为序列建模的基本范式 87

5.1.3 行为序列建模的主要难点 88

5.1.4 行为序列特征工程 89

5.2 DIN:基于注意力机制建模用户行为序列 90

5.2.1 背景 90

5.2.2 模型结构 92

5.2.3 模型训练方法 95

5.2.4 代码解析 98

5.3 DIEN:GRU建模用户行为序列 100

5.3.1 模型结构:兴趣抽取层 100

5.3.2 模型结构:兴趣进化层 103

5.4 BST:Transformer建模用户行为序列 105

5.4.1 模型结构 105

5.4.2 代码解析 109

5.5 DSIN:基于Session建模用户行为序列 114

5.6 MIMN:基于神经图灵机建模长周期行为序列 117

5.6.1 工程设计:UIC模块 118

5.6.2 MIMN模型结构 119

5.7 SIM:基于检索建模长周期行为序列 123

5.8 ETA:基于SimHash实现检索索引在线化 126

5.8.1 ETA模型结构 127

5.8.2 SimHash原理 128

5.9 本章小结 129

第6章 Embedding表征学习 131

6.1 Embedding表征学习概述 132

6.1.1 Embedding概述 133

6.1.2 Embedding表征学习的意义 134

6.1.3 Embedding表征学习的基本范式 134

6.1.4 Embedding表征学习的主要难点 135

6.2 基于序列的Embedding建模方法 135

6.2.1 Word2vec任务定义:CBOW和Skip-gram 136

6.2.2 Word2vec模型结构 137

6.2.3 Word2vec训练方法 138

6.2.4 Item2vec:推荐系统引入序列Embedding 139

6.2.5 序列建模总结和思考 139

6.3 基于同构图游走的Graph Embedding 139

6.3.1 DeepWalk:同构图游走算法开山之作 140

6.3.2 LINE:一阶相似度和二阶相似度探索 141

6.3.3 Node2vec:同质性和结构等价性探索 142

6.3.4 同构图游走的优缺点 144

6.4 基于异构图游走的Graph Embedding 145

6.4.1 Metapath2vec 145

6.4.2 EGES 146

6.4.3 异构图游走的优缺点 149

6.5 图神经网络 149

6.5.1 GCN:图神经网络开山之作 149

6.5.2 GraphSAGE:图神经网络工业应用的高潮 152

6.5.3 图神经网络总结 153

6.6 向量检索技术 153

6.6.1 向量距离计算方法 154

6.6.2 向量检索算法 156

6.6.3 向量检索常用工具:Faiss 161

6.7 本章小结 162

第7章 多任务学习 165

7.1 多任务学习发展历程 166

7.1.1 为什么需要多任务学习 166

7.1.2 多任务学习的基本框架 167

7.1.3 多任务学习的难点和挑战 168

7.2 ESMM模型:解决SSB和DS问题的利器 169

7.2.1 样本选择偏差和数据稀疏问题 169

7.2.2 ESMM模型结构 170

7.2.3 ESMM核心代码 172

7.3 MMOE模型:多专家多门控网络 174

7.3.1 MMOE模型结构 174

7.3.2 MMOE核心代码 177

7.4 PLE模型:解决负迁移和跷跷板现象的利器 179

7.4.1 负迁移和跷跷板现象 180

7.4.2 单层CGC模型结构 180

7.4.3 PLE模型结构 183

7.4.4 PLE核心代码 184

7.5 多任务融合 188

7.5.1 网格搜索 189

7.5.2 排序模型 190

7.5.3 强化学习 190

7.6 本章小结 192

第8章 召回算法 194

8.1 召回概述 196

8.1.1 推荐底池 196

8.1.2 多路召回 197

8.1.3 召回的难点 198

8.1.4 召回评价体系 199

8.2 个性化召回 200

8.2.1 基于内容的个性化召回 200

8.2.2 基于协同过滤的个性化召回 201

8.2.3 基于社交关系的个性化召回 203

8.3 向量召回 203

8.3.1 实现方法 204

8.3.2 YouTube DNN 204

8.3.3 Facebook EBR 206

8.3.4 百度MOBIUS 208

8.4 用户行为序列类向量召回 209

8.4.1 多峰兴趣建模的意义 210

8.4.2 MIND的模型结构 210

8.4.3 胶囊网络 212

8.5 样本选择偏差问题 213

8.5.1 召回样本构建方法 213

8.5.2 ESAM和迁移学习 215

8.6 召回检索优化和TDM 218

8.6.1 TDM在线检索过程 218

8.6.2 TDM索引构建和模型训练过程 220

8.6.3 JTM 221

8.6.4 OTM 222

8.7 本章小结 223

第9章 粗排算法 226

9.1 粗排概述 228

9.1.1 粗排样本和特征 228

9.1.2 粗排发展历程 228

9.1.3 粗排的难点 230

9.1.4 粗排评价体系 230

9.2 PFD模型:知识蒸馏学习交叉特征 231

9.2.1 PFD模型结构 231

9.2.2 PFD模型原理 232

9.2.3 PFD与传统蒸馏相结合 233

9.2.4 PFD在精排中的应用 234

9.3 COLD模型:显式特征交叉 235

9.3.1 双塔内积模型 235

9.3.2 COLD模型 237

9.4 FSCD模型:效果和效率联合优化 238

9.4.1 FSCD特征选择原理 239

9.4.2 FSCD训练步骤 241

9.5 本章小结 242

第10章 重排算法 243

10.1 重排概述 245

10.1.1 为什么需要重排 245

10.1.2 重排的难点和挑战 245

10.1.3 流量调控 246

10.2 打散和多样性 246

10.2.1 打散 247

10.2.2 多样性 248

10.2.3 多样性发展历程 248

10.3 上下文感知和PRM模型 249

10.3.1 什么是上下文感知 250

10.3.2 PRM模型结构 250

10.3.3 其他上下文感知实现方案 253

10.4 实时性和延迟反馈问题 254

10.4.1 推荐系统实时性的意义 254

10.4.2 推荐系统实时性分类 255

10.4.3 延迟反馈问题 256

10.4.4 延迟反馈优化方案 257

10.5 端上重排和EdgeRec 257

10.5.1 为什么需要端上模型 258

10.5.2 端上推理引擎 259

10.5.3 EdgeRec系统架构 259

10.5.4 EdgeRec模型结构 260

10.6 本章小结 262

产品特色