大规模推荐系统实战

大规模推荐系统实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
2022-08
版次: 1
ISBN: 9787115593856
定价: 99.80
装帧: 其他
开本: 其他
纸张: 胶版纸
页数: 368页
字数: 530千字
1人买过
  • 作为机器学习领域应用比较成熟、广泛的业务,个性化推荐在电商、短视频等平台发挥着重要作用,其背后的推荐系统已成为当今越来越多应用程序的标配。关于推荐算法的论述有很多,而要将其很好地应用到实际场景中,则需要大量的实践经验。本书从实战的角度介绍推荐系统,主要包含三部分 :召回算法、排序算法和工程实践。书中细致剖析了如何在工业中对海量数据应用算法,涵盖了从算法原理,到模型搭建、优化以及最佳实践等诸多内容。 阿星 曾在字节跳动、苏宁易购等企业负责推荐/广告算法的设计、开发和优化工作,在应对海量数据下的算法建模以及点击率/转化率预估等任务中积累了大量实战经验。目前就职于跨境电商巨头SHEIN,负责提升全球核心业务场景的流量分发效率。 前言 iii

    第 1章 推荐系统 1

    1.1 推荐系统是什么 1

    1.1.1 京东商城 3

    1.1.2 亚马逊 4

    1.1.3 YouTube 6

    1.2 推荐系统整体架构 8

    1.3 推荐系统算法概述 9

    1.3.1 召回算法 10

    1.3.2 排序算法 14

    1.4 周边配套系统 16

    1.4.1 机器学习平台 18

    1.4.2 特征平台 18

    1.4.3 模型服务平台 19

    1.4.4 A/B测试平台 19

    1.5 总结 20

    第 一部分 召回算法

    第 2章 协同过滤 22

    2.1 算法应用 24

    2.2 算法原理 25

    2.2.1 打分机制 26

    2.2.2 物品相似度 31

    2.3 算法实现 33

    2.3.1 步骤1:数据源读取 34

    2.3.2 步骤2:聚合用户行为 34

    2.3.3 步骤3:局部物品相似度 35

    2.3.4 步骤4和步骤5:全局物品相似度 36

    2.3.5 步骤6:Top N 37

    2.4 算法优化 37

    2.4.1 无效用户过滤 38

    2.4.2 热门惩罚 38

    2.5 完整代码 39

    2.6 准实时更新 42

    2.6.1 数据准备 43

    2.6.2 实时数据取数逻辑 44

    2.6.3 准实时更新相似度 44

    2.7 总结 45

    第3章 关联规则 47

    3.1 关联规则 48

    3.1.1 定义 49

    3.1.2 频繁项集 50

    3.2 Apriori算法 51

    3.2.1 频繁项集生成 51

    3.2.2 关联规则生成 53

    3.3 FPGrowth 54

    3.3.1 FP树 54

    3.3.2 逻辑 54

    3.3.3 举例 55

    3.3.4 运行 66

    3.3.5 完整代码 68

    3.3.6 数据集 69

    3.3.7 源码分析 70

    3.3.8 算法优化 76

    3.4 总结 77

    第4章 Word2Vec 78

    4.1 词向量示例 80

    4.2 数据准备 81

    4.2.1 词汇表 82

    4.2.2 训练数据 82

    4.3 算法原理 83

    4.3.1 模型结构 85

    4.3.2 前向传播 86

    4.3.3 反向传播 88

    4.3.4 算法优化 89

    4.4 源码分析 91

    4.4.1 负采样概率表 91

    4.4.2 sigmoid函数优化 93

    4.5 算法实战 93

    4.5.1 数据源 94

    4.5.2 运行 94

    4.5.3 相似度计算 95

    4.6 LSH 算法 96

    4.6.1 散列 96

    4.6.2 算法逻辑 98

    4.6.3 时间复杂度分析 102

    4.6.4 错误率分析 102

    4.6.5 召回率分析 104

    4.7 Word2Vec与LSH 106

    4.8 总结 107

    第5章 深度学习双塔召回 108

    5.1 向量化 109

    5.2 双塔模型 110

    5.2.1 数据准备 112

    5.2.2 模型训练 112

    5.2.3 模型对外服务 113

    5.3 HNSW算法 115

    5.3.1 二分查找 115

    5.3.2 有序链表 117

    5.3.3 跳表 118

    5.3.4 HNSW算法 121

    5.4 双塔模型与HNSW算法 129

    5.5 负样本策略 131

    5.6 总结 132

    第6章 召回模型的离线评估 133

    6.1 推荐任务类型 133

    6.2 混淆矩阵 134

    6.2.1 准确率 135

    6.2.2 精确率 136

    6.2.3 召回率 136

    6.2.4 F1分数 137

    6.2.5 @k 138

    6.3 nDCG 139

    6.3.1 CG 139

    6.3.2 DCG 140

    6.3.3 nDCG 140

    6.3.4 @k 141

    6.4 其他指标 142

    6.4.1 MRR 142

    6.4.2 MAP 142

    6.4.3 多样性 143

    6.4.4 覆盖度 144

    6.4.5 信息熵 144

    6.5 代码实现 144

    6.5.1 实现逻辑 145

    6.5.2 完整代码 146

    6.6 总结 149

    第二部分 排序算法

    第7章 特征工程和特征选择 153

    7.1 特征类型 155

    7.1.1 类别特征 155

    7.1.2 数值特征 155

    7.1.3 序列特征 156

    7.2 特征工程 156

    7.2.1 特征样例 156

    7.2.2 特征工程 159

    7.2.3 TensorFlow特征列 164

    7.3 特征选择 165

    7.4 总结 167

    第8章 传统机器学习排序算法 168

    8.1 数据和模型 168

    8.1.1 极大似然估计 169

    8.1.2 最大后验概率估计 169

    8.2 模型训练流程 170

    8.3 手写逻辑回归 171

    8.3.1 数据准备 172

    8.3.2 数据读取 173

    8.3.3 模型训练 173

    8.3.4 完整代码 174

    8.3.5 算法优缺点 177

    8.4 手写因式分解机 178

    8.4.1 完整代码 180

    8.4.2 算法优缺点 183

    8.5 其他经典排序算法 184

    8.6 Q & A 185

    8.7 总结 186

    第9章 深度学习从训练到对外服务 188

    9.1 深度学习简介 188

    9.2 经典模型结构 191

    9.2.1 Wide & Deep 191

    9.2.2 Deep Interest Network 192

    9.2.3 Behavior Sequence Transformer 194

    9.3 建模流程 195

    9.3.1 数据准备 197

    9.3.2 特征工程 202

    9.3.3 模型搭建 209

    9.3.4 模型训练 213

    9.3.5 模型导出 215

    9.3.6 模型服务 216

    9.4 再谈双塔模型 219

    9.5 总结 220

    第 10章 Listwise Learning To Rank从原理到实现 221

    10.1 Listwise基本概念 222

    10.1.1 page view 222

    10.1.2 relevance 223

    10.1.3 Listwise 223

    10.2 损失函数 224

    10.2.1 permutation probability 224

    10.2.2 top one probability 226

    10.2.3 交叉熵损失函数 227

    10.3 ListNet 228

    10.3.1 数据准备 229

    10.3.2 模型搭建 236

    10.3.3 模型训练、导出和服务 243

    10.3.4 优化方向 244

    10.4 总结 244

    第 11章 排序算法的离线评估和在线评估 246

    11.1 离线评估 246

    11.1.1 ROC 曲线 247

    11.1.2 ROC 曲线下的面积 249

    11.1.3 PR 曲线 254

    11.1.4 GAUC 256

    11.2 在线评估 257

    11.2.1 A/B测试简介 257

    11.2.2 朴素分流方案 258

    11.2.3 分层分流方案 260

    11.2.4 可信度评估 262

    11.3 在线离线不一致 267

    11.3.1 特征不一致 267

    11.3.2 数据分布不一致 268

    11.3.3 模型与业务目标不一致 268

    11.3.4 验证集设计不合理 268

    11.4 总结 270

    第 12章 推荐算法建模最佳实践 271

    12.1 深度学习调参 272

    12.1.1 学习率 272

    12.1.2 batch size 279

    12.1.3 epoch 279

    12.1.4 隐藏层数 280

    12.1.5 隐藏节点数 280

    12.1.6 激活函数 280

    12.1.7 权重初始化 280

    12.1.8 优化器 281

    12.1.9 其他实践 281

    12.2 现实数据问题 281

    12.2.1 类别失衡 282

    12.2.2 位置偏差 286

    12.2.3 海量数据下的调参 287

    12.2.4 其他实践 288

    12.3 总结 288

    第三部分 工程实践

    第 13章 冷启动问题 290

    13.1 冷启动概述 291

    13.2 用户冷启动 292

    13.2.1 热门排行榜 292

    13.2.2 上下文信息 294

    13.2.3 其他策略 295

    13.3 物品冷启动 296

    13.3.1 基于内容的过滤 296

    13.3.2 推荐策略 299

    13.4 系统冷启动 301

    13.5 总结 306

    第 14章 增量更新和迁移学习 307

    14.1 离线训练 307

    14.1.1 数据流向 307

    14.1.2 更新方式 308

    14.2 在线训练 310

    14.2.1 数据流向 310

    14.2.2 样本生成 312

    14.2.3 延迟反馈 314

    14.3 迁移学习 317

    14.4 总结 320

    第 15章 分布式TensorFlow 321

    15.1 分布式的理由 321

    15.2 并行方式 322

    15.2.1 模型并行 323

    15.2.2 数据并行 324

    15.3 参数共享与更新 325

    15.3.1 同步更新 326

    15.3.2 异步更新 327

    15.4 分布式训练架构 329

    15.4.1 Parameter Server架构 329

    15.4.2 Ring All Reduce架构 331

    15.5 单机代码移植 334

    15.5.1 数据准备 334

    15.5.2 模型搭建 337

    15.5.3 模型训练 337

    15.5.4 模型导出 340

    15.6 分布式训练框架 340

    15.6.1 基于Kubernetes的分布式训练框架 340

    15.6.2 基于Flink的分布式训练框架 344

    15.7 总结 345

    第 16章 示例:推荐算法训练代码框架设计 346

    16.1 问题 347

    16.2 解题思路 348

    16.2.1 数据问题 348

    16.2.2 训练问题 349

    16.3 详细设计 350

    16.3.1 配置解析 351

    16.3.2 数据读取 352

    16.3.3 模型搭建 352

    16.3.4 完整流程 353

    16.4 代码实现 353

    16.4.1 配置解析 354

    16.4.2 特征处理 359

    16.5 总结 362

    第 17章 回顾和探索 363

    17.1 回顾 363

    17.2 探索 364

    17.2.1 数据 364

    17.2.2 算法 366

    17.2.3 平台 367

    17.2.4 安全 367

    17.3 总结 368
  • 内容简介:
    作为机器学习领域应用比较成熟、广泛的业务,个性化推荐在电商、短视频等平台发挥着重要作用,其背后的推荐系统已成为当今越来越多应用程序的标配。关于推荐算法的论述有很多,而要将其很好地应用到实际场景中,则需要大量的实践经验。本书从实战的角度介绍推荐系统,主要包含三部分 :召回算法、排序算法和工程实践。书中细致剖析了如何在工业中对海量数据应用算法,涵盖了从算法原理,到模型搭建、优化以及最佳实践等诸多内容。
  • 作者简介:
    阿星 曾在字节跳动、苏宁易购等企业负责推荐/广告算法的设计、开发和优化工作,在应对海量数据下的算法建模以及点击率/转化率预估等任务中积累了大量实战经验。目前就职于跨境电商巨头SHEIN,负责提升全球核心业务场景的流量分发效率。
  • 目录:
    前言 iii

    第 1章 推荐系统 1

    1.1 推荐系统是什么 1

    1.1.1 京东商城 3

    1.1.2 亚马逊 4

    1.1.3 YouTube 6

    1.2 推荐系统整体架构 8

    1.3 推荐系统算法概述 9

    1.3.1 召回算法 10

    1.3.2 排序算法 14

    1.4 周边配套系统 16

    1.4.1 机器学习平台 18

    1.4.2 特征平台 18

    1.4.3 模型服务平台 19

    1.4.4 A/B测试平台 19

    1.5 总结 20

    第 一部分 召回算法

    第 2章 协同过滤 22

    2.1 算法应用 24

    2.2 算法原理 25

    2.2.1 打分机制 26

    2.2.2 物品相似度 31

    2.3 算法实现 33

    2.3.1 步骤1:数据源读取 34

    2.3.2 步骤2:聚合用户行为 34

    2.3.3 步骤3:局部物品相似度 35

    2.3.4 步骤4和步骤5:全局物品相似度 36

    2.3.5 步骤6:Top N 37

    2.4 算法优化 37

    2.4.1 无效用户过滤 38

    2.4.2 热门惩罚 38

    2.5 完整代码 39

    2.6 准实时更新 42

    2.6.1 数据准备 43

    2.6.2 实时数据取数逻辑 44

    2.6.3 准实时更新相似度 44

    2.7 总结 45

    第3章 关联规则 47

    3.1 关联规则 48

    3.1.1 定义 49

    3.1.2 频繁项集 50

    3.2 Apriori算法 51

    3.2.1 频繁项集生成 51

    3.2.2 关联规则生成 53

    3.3 FPGrowth 54

    3.3.1 FP树 54

    3.3.2 逻辑 54

    3.3.3 举例 55

    3.3.4 运行 66

    3.3.5 完整代码 68

    3.3.6 数据集 69

    3.3.7 源码分析 70

    3.3.8 算法优化 76

    3.4 总结 77

    第4章 Word2Vec 78

    4.1 词向量示例 80

    4.2 数据准备 81

    4.2.1 词汇表 82

    4.2.2 训练数据 82

    4.3 算法原理 83

    4.3.1 模型结构 85

    4.3.2 前向传播 86

    4.3.3 反向传播 88

    4.3.4 算法优化 89

    4.4 源码分析 91

    4.4.1 负采样概率表 91

    4.4.2 sigmoid函数优化 93

    4.5 算法实战 93

    4.5.1 数据源 94

    4.5.2 运行 94

    4.5.3 相似度计算 95

    4.6 LSH 算法 96

    4.6.1 散列 96

    4.6.2 算法逻辑 98

    4.6.3 时间复杂度分析 102

    4.6.4 错误率分析 102

    4.6.5 召回率分析 104

    4.7 Word2Vec与LSH 106

    4.8 总结 107

    第5章 深度学习双塔召回 108

    5.1 向量化 109

    5.2 双塔模型 110

    5.2.1 数据准备 112

    5.2.2 模型训练 112

    5.2.3 模型对外服务 113

    5.3 HNSW算法 115

    5.3.1 二分查找 115

    5.3.2 有序链表 117

    5.3.3 跳表 118

    5.3.4 HNSW算法 121

    5.4 双塔模型与HNSW算法 129

    5.5 负样本策略 131

    5.6 总结 132

    第6章 召回模型的离线评估 133

    6.1 推荐任务类型 133

    6.2 混淆矩阵 134

    6.2.1 准确率 135

    6.2.2 精确率 136

    6.2.3 召回率 136

    6.2.4 F1分数 137

    6.2.5 @k 138

    6.3 nDCG 139

    6.3.1 CG 139

    6.3.2 DCG 140

    6.3.3 nDCG 140

    6.3.4 @k 141

    6.4 其他指标 142

    6.4.1 MRR 142

    6.4.2 MAP 142

    6.4.3 多样性 143

    6.4.4 覆盖度 144

    6.4.5 信息熵 144

    6.5 代码实现 144

    6.5.1 实现逻辑 145

    6.5.2 完整代码 146

    6.6 总结 149

    第二部分 排序算法

    第7章 特征工程和特征选择 153

    7.1 特征类型 155

    7.1.1 类别特征 155

    7.1.2 数值特征 155

    7.1.3 序列特征 156

    7.2 特征工程 156

    7.2.1 特征样例 156

    7.2.2 特征工程 159

    7.2.3 TensorFlow特征列 164

    7.3 特征选择 165

    7.4 总结 167

    第8章 传统机器学习排序算法 168

    8.1 数据和模型 168

    8.1.1 极大似然估计 169

    8.1.2 最大后验概率估计 169

    8.2 模型训练流程 170

    8.3 手写逻辑回归 171

    8.3.1 数据准备 172

    8.3.2 数据读取 173

    8.3.3 模型训练 173

    8.3.4 完整代码 174

    8.3.5 算法优缺点 177

    8.4 手写因式分解机 178

    8.4.1 完整代码 180

    8.4.2 算法优缺点 183

    8.5 其他经典排序算法 184

    8.6 Q & A 185

    8.7 总结 186

    第9章 深度学习从训练到对外服务 188

    9.1 深度学习简介 188

    9.2 经典模型结构 191

    9.2.1 Wide & Deep 191

    9.2.2 Deep Interest Network 192

    9.2.3 Behavior Sequence Transformer 194

    9.3 建模流程 195

    9.3.1 数据准备 197

    9.3.2 特征工程 202

    9.3.3 模型搭建 209

    9.3.4 模型训练 213

    9.3.5 模型导出 215

    9.3.6 模型服务 216

    9.4 再谈双塔模型 219

    9.5 总结 220

    第 10章 Listwise Learning To Rank从原理到实现 221

    10.1 Listwise基本概念 222

    10.1.1 page view 222

    10.1.2 relevance 223

    10.1.3 Listwise 223

    10.2 损失函数 224

    10.2.1 permutation probability 224

    10.2.2 top one probability 226

    10.2.3 交叉熵损失函数 227

    10.3 ListNet 228

    10.3.1 数据准备 229

    10.3.2 模型搭建 236

    10.3.3 模型训练、导出和服务 243

    10.3.4 优化方向 244

    10.4 总结 244

    第 11章 排序算法的离线评估和在线评估 246

    11.1 离线评估 246

    11.1.1 ROC 曲线 247

    11.1.2 ROC 曲线下的面积 249

    11.1.3 PR 曲线 254

    11.1.4 GAUC 256

    11.2 在线评估 257

    11.2.1 A/B测试简介 257

    11.2.2 朴素分流方案 258

    11.2.3 分层分流方案 260

    11.2.4 可信度评估 262

    11.3 在线离线不一致 267

    11.3.1 特征不一致 267

    11.3.2 数据分布不一致 268

    11.3.3 模型与业务目标不一致 268

    11.3.4 验证集设计不合理 268

    11.4 总结 270

    第 12章 推荐算法建模最佳实践 271

    12.1 深度学习调参 272

    12.1.1 学习率 272

    12.1.2 batch size 279

    12.1.3 epoch 279

    12.1.4 隐藏层数 280

    12.1.5 隐藏节点数 280

    12.1.6 激活函数 280

    12.1.7 权重初始化 280

    12.1.8 优化器 281

    12.1.9 其他实践 281

    12.2 现实数据问题 281

    12.2.1 类别失衡 282

    12.2.2 位置偏差 286

    12.2.3 海量数据下的调参 287

    12.2.4 其他实践 288

    12.3 总结 288

    第三部分 工程实践

    第 13章 冷启动问题 290

    13.1 冷启动概述 291

    13.2 用户冷启动 292

    13.2.1 热门排行榜 292

    13.2.2 上下文信息 294

    13.2.3 其他策略 295

    13.3 物品冷启动 296

    13.3.1 基于内容的过滤 296

    13.3.2 推荐策略 299

    13.4 系统冷启动 301

    13.5 总结 306

    第 14章 增量更新和迁移学习 307

    14.1 离线训练 307

    14.1.1 数据流向 307

    14.1.2 更新方式 308

    14.2 在线训练 310

    14.2.1 数据流向 310

    14.2.2 样本生成 312

    14.2.3 延迟反馈 314

    14.3 迁移学习 317

    14.4 总结 320

    第 15章 分布式TensorFlow 321

    15.1 分布式的理由 321

    15.2 并行方式 322

    15.2.1 模型并行 323

    15.2.2 数据并行 324

    15.3 参数共享与更新 325

    15.3.1 同步更新 326

    15.3.2 异步更新 327

    15.4 分布式训练架构 329

    15.4.1 Parameter Server架构 329

    15.4.2 Ring All Reduce架构 331

    15.5 单机代码移植 334

    15.5.1 数据准备 334

    15.5.2 模型搭建 337

    15.5.3 模型训练 337

    15.5.4 模型导出 340

    15.6 分布式训练框架 340

    15.6.1 基于Kubernetes的分布式训练框架 340

    15.6.2 基于Flink的分布式训练框架 344

    15.7 总结 345

    第 16章 示例:推荐算法训练代码框架设计 346

    16.1 问题 347

    16.2 解题思路 348

    16.2.1 数据问题 348

    16.2.2 训练问题 349

    16.3 详细设计 350

    16.3.1 配置解析 351

    16.3.2 数据读取 352

    16.3.3 模型搭建 352

    16.3.4 完整流程 353

    16.4 代码实现 353

    16.4.1 配置解析 354

    16.4.2 特征处理 359

    16.5 总结 362

    第 17章 回顾和探索 363

    17.1 回顾 363

    17.2 探索 364

    17.2.1 数据 364

    17.2.2 算法 366

    17.2.3 平台 367

    17.2.4 安全 367

    17.3 总结 368
查看详情
相关图书 / 更多
大规模推荐系统实战
大规模C++软件开发 卷1:过程与架构
[美]约翰·拉科斯(John Lakos)
大规模推荐系统实战
大规模地震预警系统理论、技术与实践
王暾;潘臻;吴军;伍良燕;林鸿潮;韦瑶;刘顺章
大规模推荐系统实战
大规模储能系统优化规划与运行技术
张澄;黄强;胡泽春
大规模推荐系统实战
大规模存储系统数据消冗
夏文 冯丹 华宇 邹翔宇
大规模推荐系统实战
大规模应急医用物资配置策略及其优化研究
叶永 著
大规模推荐系统实战
大规模MIMO网络的频谱、能量和硬件效率
Emil;Bjornson(埃米尔·比约尔森)
大规模推荐系统实战
大规模C++软件开发 卷1 过程与架构(英文版)
约翰·拉科斯(John Lakos)
大规模推荐系统实战
大规模时滞电力系统特征值计算(第2版)
叶华;刘玉田
大规模推荐系统实战
大规模在线学习动力与质量:社会性知识网络视角
王帆
大规模推荐系统实战
大规模英文语义树构建技术
冶忠林 著
大规模推荐系统实战
大规模网络数据分析与空间自回归模型
黄丹阳
大规模推荐系统实战
大规模深远海养殖模式的研究报告
林鸣