作者 | gongyouliu

编辑 | auroral-L

大家好,我是强哥。一个热爱暴走、读书、写作的人!

我的新书「构建企业级推荐系统:算法、工程实现与案例分析」终于出版啦!这是一本大部头的书,一共500页,36万余字。为了写这本书我花了3年,熬了几百个夜。书从规划到正式出版,跨越了4年,真是太不容易啦!

新书一览

下面是这本书的大纲,大家可以上下滑动了解一下书的大致内容,如果喜欢可以直接点击下面的链接购买或者点击文章末尾的“阅读原文”跳转到购买页面购买。

目录

前 言

第一篇 推荐系统基础认知

第1章 推荐系统介绍 2
1.1 推荐系统产生的背景 2
1.2 推荐系统解决什么问题 3
1.3 推荐系统的应用领域 3
1.4 推荐系统的定义 4
1.5 常用的推荐算法 5
1.5.1 基于内容的推荐 5
1.5.2 协同过滤 5
1.5.3 基于模型的推荐 6
1.5.4 基于社交关系的推荐 6
1.6 构建推荐系统的阻碍与挑战 6
1.7 推荐系统的价值 7
1.8 本章小结 8

第二篇 推荐系统基础算法

第2章 推荐算法基础 10
2.1 推荐系统范式 10
2.2 推荐算法3阶段pipeline架构 14
2.3 推荐召回算法 15
2.3.1 完全非个性化范式 15
2.3.2 完全个性化范式 15
2.3.3 群组个性化范式 19
2.3.4 标的物关联标的物范式 20
2.3.5 笛卡儿积范式 22
2.4 排序算法 22
2.4.1 logistic回归模型 23
2.4.2 GBDT模型 24
2.4.3 Wide & Deep模型 24
2.5 推荐算法落地需要关注的几个问题 24
2.5.1 推荐算法工程落地一定要用到排序模块吗 24
2.5.2 推荐算法服务于用户的两种形式 25
2.5.3 推荐系统评估 25
2.6 本章小结 25

第3章 基于内容的推荐算法 27
3.1 什么是基于内容的推荐算法 27
3.2 基于内容的推荐算法的实现原理 28
3.2.1 基于用户和标的物特征为用户推荐的核心思想 29
3.2.2 构建用户特征表示 29
3.2.3 构建标的物特征表示 30
3.2.4 为用户做个性化推荐 36
3.3 基于内容的推荐算法应用场景 39
3.4 基于内容的推荐算法的优缺点 40
3.4.1 优点 41
3.4.2 缺点 41
3.5 基于内容的推荐算法落地需要关注的问题 42
3.5.1 内容来源的获取 42
3.5.2 怎么利用负向反馈 43
3.5.3 兴趣随时间变化 44
3.5.4 数据清洗 44
3.5.5 加速计算与节省资源 44
3.5.6 解决基于内容的推荐越推越窄的问题 44
3.5.7 工程落地技术选型 45
3.5.8 业务的安全性 45
3.6 本章小结 45

第4章 协同过滤推荐算法 47
4.1 协同过滤思想简介 47
4.2 协同过滤算法原理介绍 48
4.2.1 基于用户的协同过滤 49
4.2.2 基于标的物的协同过滤 49
4.3 离线协同过滤算法的工程实现 49
4.3.1 计算topN相似度 50
4.3.2 为用户生成推荐 52
4.4 近实时协同过滤算法的工程实现 54
4.4.1 获取用户在一个时间窗口内的行为 54
4.4.2 基于用户行为记录更新标的物关联表CR 55
4.4.3 更新用户的行为记录HBase表:UAction 55
4.4.4 为用户生成个性化推荐 55
4.5 协同过滤算法的应用场景 57
4.5.1 完全个性化推荐 57
4.5.2 标的物关联标的物推荐 58
4.5.3 其他应用形式及场景 58
4.6 协同过滤算法的优缺点 58
4.6.1 优点 59
4.6.2 缺点 59
4.7 协同过滤算法落地到业务场景需要关注的问题 60
4.7.1 两种协同过滤算法的选择 60
4.7.2 对时间加权 60
4.7.3 关于用户对标的物的评分 61
4.7.4 相似度计算 61
4.7.5 冷启动问题 62
4.8 本章小结 63

第5章 基于朴素ML思想的协同过滤算法 65
5.1 基于关联规则的推荐算法 65
5.2 基于朴素贝叶斯的推荐算法 67
5.3 基于聚类的推荐算法 70
5.3.1 基于用户聚类的推荐 70
5.3.2 基于标的物聚类的推荐 71
5.4 YouTube基于关联规则思路的视频推荐算法 71
5.4.1 计算两个视频的相似度(关联度) 72
5.4.2 基于单个种子视频生成候选视频集 72
5.4.3 基于用户行为为用户生成推荐候选集 72
5.4.4 推荐结果排序 73
5.5 Google News基于贝叶斯框架的推荐算法 74
5.5.1 基于用户过去的行为来分析用户的兴趣点 75
5.5.2 利用贝叶斯框架来建模用户的兴趣 75
5.5.3 为用户做个性化推荐 78
5.6 Google News基于用户聚类的推荐算法 78
5.6.1 基于MinHash聚类 78
5.6.2 基于聚类为用户做推荐 80
5.7 本章小结 80

第6章 矩阵分解推荐算法 83
6.1 矩阵分解推荐算法的核心思想 83
6.2 矩阵分解推荐算法的算法原理 84
6.3 矩阵分解推荐算法的求解方法 85
6.3.1 利用SGD来求解矩阵分解 85
6.3.2 利用ALS来求解矩阵分解 86
6.4 矩阵分解推荐算法的拓展与优化 87
6.4.1 整合偏差项 87
6.4.2 增加更多的用户信息输入 87
6.4.3 整合时间因素 88
6.4.4 整合用户对评分的置信度 89
6.4.5 隐式反馈 89
6.4.6 整合用户和标的物metadata信息 90
6.5 近实时矩阵分解算法 91
6.5.1 算法原理 92
6.5.2 工程实现 94
6.6 矩阵分解算法的应用场景 97
6.6.1 应用于完全个性化推荐场景 97
6.6.2 应用于标的物关联标的物场景 98
6.6.3 应用于用户及标的物聚类 98
6.6.4 应用于群组个性化场景 98
6.7 矩阵分解算法的优缺点 99
6.7.1 优点 99
6.7.2 缺点 100
6.8 本章小结 101

第7章 因子分解机 103
7.1 分解机简单介绍 103
7.2 分解机参数预估与模型价值 105
7.2.1 分解机在稀疏场景下的参数估计 106
7.2.2 分解机的计算复杂度 106
7.2.3 分解机模型求解 107
7.2.4 模型预测 107
7.3 分解机与其他模型的关系 108
7.3.1 FM与矩阵分解的联系 108
7.3.2 FM与SVM的联系 108
7.4 分解机的工程实现 110
7.5 分解机的拓展 112
7.5.1 高阶分解机 112
7.5.2 FFM 113
7.5.3 DeepFM 113
7.6 近实时分解机 114
7.7 分解机在推荐系统上的应用 114
7.7.1 用户与标的物的交互行为信息 115
7.7.2 用户相关信息 115
7.7.3 标的物相关信息 115
7.7.4 上下文信息 115
7.8 分解机的优势 116
7.9 本章小结 117

第三篇 推荐系统进阶算法

第8章 推荐系统冷启动 120
8.1 冷启动的概念 120
8.2 解决冷启动面临的挑战 121
8.3 解决冷启动的重要性 121
8.4 解决冷启动的方法和策略 122
8.4.1 用户冷启动 123
8.4.2 标的物冷启动 125
8.4.3 系统冷启动 126
8.4.4 新的视角看冷启动 126
8.5 不同推荐产品形态解决冷启动的方案 128
8.6 设计冷启动需要注意的问题 129
8.7 冷启动的未来发展趋势 130
8.8 本章小结 131

第9章 嵌入方法在推荐系统中的应用 132
9.1 嵌入方法简介 132
9.2 嵌入方法应用于推荐系统的一般思路 133
9.2.1 学习标的物的嵌入表示 134
9.2.2 同时学习用户和标的物的嵌入表示 135
9.3 用于推荐系统的嵌入方法的算法原理介绍 135
9.3.1 基于矩阵分解的嵌入 135
9.3.2 基于Word2vec的嵌入 136
9.3.3 基于有向图的嵌入 137
9.3.4 基于深度神经网络的嵌入 138
9.4 嵌入方法在推荐系统中的应用案例介绍 139
9.4.1 利用矩阵分解嵌入做推荐 139
9.4.2 利用Item2vec获得标的物的嵌入做推荐 139
9.4.3 阿里盒马的联合嵌入推荐模型 140
9.4.4 淘宝基于图嵌入的推荐算法 143
9.4.5 整合标的物多种信息的Content2vec模型 145
9.5 利用嵌入方法解决冷启动问题 146
9.5.1 通过ID间的结构连接关系及特征迁移解决冷启动问题 146
9.5.2 通过图片、文本内容嵌入解决冷启动问题 148
9.6 本章小结 148

第10章 深度学习在推荐系统中的应用 151
10.1 深度学习介绍 152
10.2 利用深度学习技术构建推荐系统的方法和思路 153
10.2.1 从推荐系统中使用的深度学习技术角度看 154
10.2.2 从推荐系统的预测目标角度看 154
10.2.3 从推荐算法的归类角度看 155
10.3 工业界几个经典深度学习推荐算法介绍 156
10.3.1 YouTube的深度学习推荐系统 156
10.3.2 Google的Wide & Deep深度学习推荐模型 160
10.3.3 阿里基于兴趣树的深度学习推荐算法 163
10.3.4 Google的神经网络协同过滤深度学习推荐算法 166
10.4 开源深度学习框架&推荐算法 168
10.4.1 TensorFlow(Keras) 168
10.4.2 PyTorch(Caffe) 169
10.4.3 MxNet 169
10.4.4 DeepLearning4j 170
10.4.5 百度的PaddlePaddle 170
10.4.6 腾讯的Angel 170
10.4.7 微软开源的推荐算法库recommenders 171
10.5 深度学习技术应用于推荐系统的优缺点及挑战 171
10.5.1 优点 171
10.5.2 缺点与挑战 172
10.6 深度学习推荐系统工程实施建议 174
10.6.1 深度学习的效果真的有那么好吗 174
10.6.2 团队是否适合引入深度学习推荐技术 174
10.6.3 打通深度学习相关技术栈与团队现有技术栈 175
10.6.4 从经典成熟的模型与跟公司业务接近的模型着手 175
10.7 深度学习推荐系统的未来发展 176
10.7.1 算法模型维度 176
10.7.2 工程维度 176
10.7.3 应用场景维度 177
10.7.4 数据维度 177
10.7.5 产品呈现与交互维度 178
10.8 本章小结 178

第11章 混合推荐系统介绍 182
11.1 什么是混合推荐系统 182
11.2 混合推荐系统的价值 183
11.2.1 冷启动问题 183
11.2.2 数据稀疏性问题 183
11.2.3 马太效应 183
11.2.4 灰羊效应 183
11.2.5 投资组合效应 184
11.2.6 稳定性/可塑性问题 184
11.3 混合推荐系统的实现方案 185
11.3.1 单体的混合范式 185
11.3.2 并行的混合范式 186
11.3.3 流水线混合范式 187
11.4 工业级推荐系统与混合推荐 188
11.4.1 实时推荐系统与混合推荐 190
11.4.2 深度学习等复杂推荐模型整合多数据源和多模型 190
11.4.3 特殊情况下的处理策略 191
11.4.4 推荐数量不足的增补 191
11.4.5 通过混合策略解决用户冷启动 191
11.5 对混合推荐系统的思考 192
11.5.1 整合实时推荐中用户的短期和长期兴趣 193
11.5.2 利用单个复杂模型建模多源信息 193
11.5.3 多源的标的物混合 193
11.5.4 家庭场景中多人兴趣的混合推荐 194
11.5.5 用户在多APP场景下行为的混合 195
11.5.6 用户多状态(场景)的融合推荐 195
11.6 本章小结 195

第12章 构建可解释性推荐系统 198
12.1 可解释性推荐系统简介 198
12.1.1 什么是推荐解释 198
12.1.2 推荐解释的价值 199
12.1.3 互联网推荐产品的推荐解释模型 200
12.1.4 推荐解释的形式 200
12.1.5 推荐解释的现状 200
12.2 构建可解释性推荐系统的方法 201
12.2.1 基于用户关系来做推荐解释 201
12.2.2 基于标的物相似关系来做推荐解释 203
12.2.3 基于标签来做推荐解释 203
12.2.4 其他推荐解释方式 204
12.3 常用工业级推荐产品的推荐解释 205
12.3.1 完全个性化范式的推荐解释 205
12.3.2 标的物关联标的物范式的推荐解释 207
12.3.3 其他推荐范式的推荐解释 208
12.4 做好推荐解释需要关注的几个问题 208
12.5 构建可解释性推荐系统面临的挑战与机遇 210
12.5.1 混合推荐算法让推荐解释更加困难 210
12.5.2 设计实时个性化推荐解释面临的技术挑战 211
12.5.3 企业管理者/数据产品经理更关注精准度而不是解释性 211
12.5.4 黑盒推荐算法很难解释 211
12.5.5 普适的推荐解释框架 211
12.5.6 利用知识图谱做解释 211
12.5.7 生成对话式解释 211
12.6 本章小结 212

第四篇 推荐系统评估与价值

第13章 推荐系统的评估 214
13.1 推荐系统评估的目的 214
13.2 评估推荐系统的常用指标 215
13.2.1 用户的维度 215
13.2.2 平台方的维度 216
13.2.3 推荐系统自身的维度 216
13.2.4 标的物提供方的维度 217
13.3 推荐系统的评估方法 218
13.3.1 离线评估 219
13.3.2 在线评估*一阶段 223
13.3.3 在线评估*二阶段 224
13.3.4 主观评估 225
13.4 推荐系统评估需要关注的问题 226
13.5 本章小结 227

第14章 推荐系统的商业价值 228
14.1 为什么要关注推荐系统的商业价值 228
14.2 衡量推荐系统商业价值的维度 229
14.2.1 广告变现 230
14.2.2 电商变现 231
14.2.3 增值服务变现 231
14.2.4 用户增长 232
14.2.5 成本节省及效率提升 232
14.3 量化推荐系统商业价值的思路和方法 233
14.3.1 提升广告的曝光与转化 233
14.3.2 促进标的物提供方(即商家)生态繁荣 233
14.3.3 促进标的物售卖,获取更多经济收益 234
14.3.4 提升会员的转化与留存 234
14.3.5 提升用户留存率、活跃度和停留时长 234
14.3.6 节省人力成本 235
14.3.7 提升内容分发效率 235
14.4 提升推荐系统商业价值需要关注的问题及建议 235
14.5 本章小结 237

第五篇 推荐系统工程实现

第15章 推荐系统之数据与特征工程 240
15.1 推荐算法建模的一般流程 240
15.2 推荐系统依赖的数据源介绍 241
15.2.1 根据数据来源来划分 241
15.2.2 根据数据载体来划分 243
15.2.3 根据数据组织形式来划分 244
15.3 数据处理与特征工程简介 246
15.3.1 数据生成 246
15.3.2 数据预处理 248
15.3.3 特征工程 250
15.4 常用推荐算法之数据与特征工程 258
15.4.1 排行榜推荐 258
15.4.2 标的物关联标的物推荐 259
15.4.3 个性化推荐 260
15.5 推荐系统数据与特征工程的未来趋势 262
15.5.1 融合更多的数据源来构建更复杂的推荐模型 262
15.5.2 深度学习等复杂技术可减少人工特征工程的投入 262
15.5.3 实时数据处理与实时特征工程 263
15.5.4 自动化特征工程 263
15.6 本章小结 264

第16章 推荐系统的工程实现 266
16.1 推荐系统与大数据 266
16.2 推荐系统业务流及核心模块 268
16.2.1 数据收集模块 269
16.2.2 ETL模块 269
16.2.3 特征工程模块 269
16.2.4 推荐算法模块 270
16.2.5 推荐结果存储模块 270
16.2.6 Web服务模块 271
16.3 推荐系统支撑模块 272
16.3.1 评估模块 272
16.3.2 调度模块 272
16.3.3 监控模块 272
16.3.4 审查模块 273
16.4 推荐系统架构设计 273
16.5 推荐系统工程实现的设计哲学 279
16.5.1 什么是好的推荐系统工程实现 280
16.5.2 推荐系统工程实现的原则 280
16.5.3 怎样设计好的推荐系统工程架构 280
16.6 近实时个性化推荐 281
16.7 推荐系统业务落地需要关注的问题 282
16.8 推荐系统的技术选型 284
16.9 推荐系统工程的未来发展 285
16.10 本章小结 285

第17章 AB测试平台的工程实现 286
17.1 什么是AB测试 286
17.2 AB测试的价值 287
17.3 什么时候需要AB测试 288
17.4 AB测试的应用场景 289
17.5 AB测试平台的核心模块 290
17.5.1 分组模块 290
17.5.2 实验管理模块 291
17.5.3 业务接入模块 291
17.5.4 行为记录分析模块 291
17.5.5 效果评估模块 292
17.6 业界流行的AB测试架构实现方案 292
17.7 推荐系统业务AB测试实现方案 297
17.8 开发AB测试平台需要的资源及支持 301
17.9 构建AB测试平台需要关注的重要问题 302
17.10 本章小结 303

第18章 构建优质的推荐系统服务 304
18.1 推荐服务背景介绍 304
18.2 什么是优质的推荐服务 306
18.2.1 高性能 306
18.2.2 高可用 306
18.2.3 可伸缩 306
18.2.4 可扩展 307
18.2.5 安全性 307
18.3 设计优质的推荐服务面临的挑战 307
18.3.1 需要存储的数据量大 308
18.3.2 需要快速及时响应用户请求 308
18.3.3 接口访问并发量大 308
18.3.4 业务相对复杂 308
18.4 构建优质服务的一般原则 309
18.4.1 模块化 309
18.4.2 数据存储与数据缓存 309
18.4.3 负载均衡 309
18.4.4 异步调用 310
18.4.5 分布式及去中心化 310
18.4.6 分层思想 310
18.5 设计优质推荐服务的可行策略 311
18.5.1 高性能 311
18.5.2 高可用 314
18.5.3 可伸缩 315
18.5.4 可扩展 316
18.5.5 安全性 317
18.6 本章小结 318

第19章 推荐系统提供Web服务 319
19.1 什么是推荐系统Web服务 319
19.2 推荐系统提供Web服务的两种方式 321
19.2.1 事先计算式Web服务 322
19.2.2 实时装配式Web服务 324
19.3 两种Web服务方式的优劣对比 326
19.3.1 事先计算式Web服务的优缺点 326
19.3.2 实时装配式Web服务的优缺点 327
19.4 影响Web服务方式的因素及选择原则 328
19.4.1 推荐产品形态的时效性对选择推荐Web服务的影响 328
19.4.2 技术及架构复杂性对选择推荐Web服务的影响 328
19.4.3 推荐阶段对选择推荐Web服务的影响 328
19.4.4 算法形态对选择推荐Web服务的影响 329
19.5 本章小结 329

第20章 实时个性化推荐 331
20.1 实时推荐系统背景介绍 331
20.2 实时推荐系统的价值 333
20.3 实时推荐系统的应用场景 334
20.3.1 新闻资讯类 335
20.3.2 短视频类 335
20.3.3 婚恋、陌生人社交类 336
20.3.4 直播类 336
20.3.5 电商类 337
20.3.6 音乐、电台类 337
20.4 实时推荐系统的整体架构 338
20.4.1 Lambda架构 339
20.4.2 Kappa架构 343
20.5 实时推荐系统的技术选型 345
20.5.1 离线部分算法的技术选型 345
20.5.2 实时部分算法的技术选型 345
20.6 实时推荐算法与工程实现 346
20.7 构建实时推荐系统面临的困难和挑战 347
20.8 实时推荐系统的未来发展 347
20.8.1 实时推荐是未来推荐发展的方向 348
20.8.2 每个人都有望拥有为自己服务的个性化算法 348
20.8.3 实时推荐应用场景的多样性 349
20.8.4 实时交互方式趋于多元化 349
20.9 本章小结 350
第六篇 推荐系统产品与运营

第21章 推荐系统产品 354
21.1 推荐产品简介 354
21.2 推荐产品形态介绍 355
21.2.1 基于用户维度的推荐 355
21.2.2 基于标的物维度的推荐 357
21.2.3 基于用户和标的物交叉维度的推荐 359
21.3 推荐产品的应用场景 360
21.4 设计优质推荐产品的要点 361
21.5 本章小结 362
*22章 推荐系统的UI交互与视觉展示 363
22.1 信息获取与推荐系统 363
22.2 交互设计的基本原则 365
22.3 推荐系统的UI交互 367
22.3.1 什么是推荐系统的UI交互 367
22.3.2 设计好的UI交互的原则 368
22.3.3 UI交互在推荐系统中的价值 371
22.4 推荐系统的视觉展示 372
22.4.1 什么是推荐系统的视觉要素 373
22.4.2 视觉要素展示的一般原则 373
22.4.3 视觉要素展示的价值 376
22.5 关于推荐系统UI交互和视觉展示的展望 376
22.6 本章小结 378

第23章 推荐系统与精细化运营 379
23.1 运营简介 379
23.2 数据化运营 381
23.3 精细化运营 383
23.3.1 精细化运营的概念 383
23.3.2 精细化运营的特点 384
23.3.3 为什么说现在进入了精细化运营时代 384
23.3.4 精细化运营面临的挑战 385
23.3.5 精细化运营的流程与方法 385
23.4 用户画像介绍 386
23.4.1 用户画像的概念 387
23.4.2 标签的分类 387
23.4.3 用户画像构建流程 389
23.4.4 用户画像平台的基础架构 390
23.4.5 用户画像的应用场景 391
23.5 推荐系统与精细化运营 394
23.5.1 推荐系统是精细化运营的**级形式 394
23.5.2 推荐系统与精细化运营的区别与联系 395
23.5.3 利用推荐系统的思路进行精细化运营 396
23.5.4 利用推荐系统的思路进行精细化运营面临的困境 397
23.6 本章小结 398

第24章 推荐系统的人工调控策略 399
24.1 什么是推荐系统的人工调控 399
24.2 为什么要进行人工调控 400
24.2.1 用户体验 401
24.2.2 安全性 401
24.2.3 商业价值 402
24.2.4 运营需要 402
24.2.5 降低人力成本 403
24.3 怎样进行人工调控 404
24.3.1 数据层面的人工调控 404
24.3.2 特征层面的人工调控 405
24.3.3 模型层面的人工调控 406
24.3.4 结果层面的人工调控 407
24.3.5 展示层面的人工调控 407
24.3.6 效果层面的人工调控 409
24.4 怎样评估人工调控的价值 409
24.5 人工调控面临的挑战 410
24.5.1 知识层面的脱节,沟通不畅 410
24.5.2 很难*确评估对推荐系统的影响范围 410
24.5.3 为运营人员提供方便操控的界面是关键 411
24.6 人与机器的有效协作 411
24.7 本章小结 412

第七篇 推荐系统案例分析

第25章 从零开始构建企业级推荐系统 414
25.1 Why:你的产品为什么需要推荐系统 414
25.2 Who:让谁来搭建推荐系统 415
25.2.1 自建推荐系统 415
25.2.2 通过外包构建推荐系统 416
25.2.3 购买推荐系统云服务 416
25.3 When:在产品的什么阶段搭建推荐系统 416
25.4 What、Where:搭建什么样的推荐系统 417
25.5 How:怎样搭建推荐系统 418
25.5.1 产品起步阶段的推荐 418
25.5.2 产品成长阶段的推荐 420
25.6 How much:关于构建推荐系统的资源投入 420
25.6.1 人力投入 421
25.6.2 计算资源投入 421
25.7 How feel:对推荐系统价值的预期 422
25.8 从零搭建推荐系统必须做好的3件事 422
25.8.1 产品与算法 423
25.8.2 评估指标 423
25.8.3 AB测试 423
25.9 几个具体实用的建议 424
25.10 本章小结 425

第26章 基于标签的实时短视频推荐系统 426
26.1 基于标签的推荐算法应用场景 426
26.1.1 完全个性化推荐 427
26.1.2 标的物关联标的物推荐 427
26.1.3 主题推荐 428
26.2 基于标签的推荐算法原理 428
26.2.1 个性化推荐 428
26.2.2 视频相似推荐 430
26.2.3 主题推荐 430
26.3 推荐产品的整体架构及工程实现 430
26.3.1 个性化推荐 432
26.3.2 相似视频推荐 435
26.3.3 主题推荐 437
26.4 个性化推荐的召回与排序策略 438
26.4.1 召回策略 438
26.4.2 排序策略 439
26.4.3 电视猫个性化推荐实时更新策略 440
26.5 冷启动策略 442
26.6 未来优化方向 442
26.6.1 增加模型排序模块 442
26.6.2 对重复的节目做过滤 442
26.6.3 整合用户负反馈 443
26.6.4 针对标签的优化 443
26.7 本章小结 443

第27章 基于Erlang语言的视频相似推荐 445
27.1 视频相似推荐系统简介 445
27.2 相似推荐算法原理及实现细节 447
27.2.1 年代 447
27.2.2 标题 448
27.2.3 地域 448
27.2.4 豆瓣评分 449
27.2.5 是否获奖 449
27.3 实现视频相似推荐系统的问题与难点 449
27.3.1 数据量大,增速快 449
27.3.2 需要实时计算 450
27.3.3 计算与某个视频*相似的视频需要遍历所有视频 450
27.3.4 需要更新已经计算视频的相似度 450
27.4 为什么要用Erlang语言开发 450
27.4.1 Erlang语言简介 450
27.4.2 Erlang语言的特性 451
27.4.3 选择Erlang语言开发视频相似推荐系统的原因 452
27.5 系统架构与工程实现 453
27.5.1 Master节点模块与功能 454
27.5.2 Slaver主要负责计算任务 456
27.5.3 Riak集群负责*终相似推荐结果的存储 457
27.5.4 响应请求模块会基于用户请求给出推荐结果 457
27.6 相似推荐的核心亮点 458
27.7 未来的优化方向 459
27.8 本章小结 460

附录A 推荐算法工程师的成长之道 461
附录B 推荐算法团队组成及目标定位 471

△上下滑动浏览目录

我最早开始规划写这本书是在2018年6月份,当时就将书的大纲列出来了。触动我写书的主要动机有如下3点:

首先,我希望做一些知识梳理和价值沉淀的工作。我从2009年毕业开始,一直从事的都是大数据、算法相关的工作,推荐系统也有10来年的实践经验,特别是最近9年一直在同一家公司(即我现在所在的公司电视猫)做推荐系统相关的工作。在从事推荐系统的工作中趟了很多坑,积累了一些经验,特别是沉淀了很多自己的思路和想法。希望通过写一本书来对自己的知识做一次全面的梳理。

其次,给自己一定压力,培养自己写作的习惯。我曾经看到过一句话,大致意思是说“一个人对世界的贡献,在于他输出了什么而不是吸收了什么”。这句话对我触动比较大,平时我一直都非常喜欢看书,但是很少输出,我是一个不太爱整理的人,有很多知识和技能基本记录在自己的脑海里,还不够体系化。希望通过写一本书来给自己一定的压力,让自己培养良好的写作习惯,做一个有输出的人。

最后,希望给推荐从业者或者即将从事推荐系统开发的读者提供一定的帮助和借鉴。我算是从零开始自己摸索做推荐系统的,一路走下来非常辛苦,走了很多弯路,从互联网上获得了很多资料的帮助,一直以来非常感谢这些无偿提供知识输出的人。自己是一个比较乐于助人的人,一般别人问我问题都会给别人提供一些建议。对于推荐系统,经过这么多年的训练,我自己有比较多的思考、想法和经验,所以想系统地将自己所学知识分享给需要帮助的人,通过写书分享知识算是一种最好的、最系统的方式。

上面这3个原因是我写作这本书的最初动机。2018年年中规划好大纲后,尝试过写了一点点,但是没有坚持下来,每次写几十个字就卡住了,无法表达自己的思想。可能主要的原因是自己一直以来写作能力都不好,也没有外在的激励或者压力逼迫自己写下去,屈服于个人的惰性,所以就这样放下了。

转机发生在2018年底。我一个很好的前同事的老婆给我打电话说让我带着我团队的人一起输出,多积淀积淀,当时我就答应了。这之后就组织我们团队的几个愿意参与写作的同事开始在公众号上写文章了。我写的主题就是推荐系统,最早的一篇发布在2019年1月23日。这之后每两周我都输出一篇大约1万字左右的推荐系统相关的文章,一直持续到2020年4月28日,中间没有间断过一次。本书的内容基本都是在这些发布在公众号上的文章的重新梳理、编排、修改与优化。

我在2020年4月28日写完所有文章(这本书的发布在公众号的初稿)后,我花了3个多月,将初稿整理、修改,按照书的目录编排和要求整理成一章章,最终在2020年7月底将书的初稿交给了出版社的编辑老师。

从2021年8月到今年6月底,这近11个月期间,我跟编辑老师一起对各种问题进行修改,包括参考文献格式、图片、公式、语句、段落、整体结构、表述方式等各个方面进行了全方位的优化与调整。最终才让这本书高质量地出版出来。

前面我讲了写这本书的初衷。写这本书,我还有一个非常重要的诉求,那就是:通过出书打造个人品牌。在如今的自媒体时代,每个人自带媒体属性。你的朋友圈,你在知乎、B站、头条等平台上的账号就是你的媒体平台。

品牌的价值是非常巨大的,大家从苹果手机获取了智能手机80%以上的利润这件事就应该可以感知到品牌的巨大商业价值。

作为技术人,个人品牌也是极其重要的 。那么品牌可以给我们带来什么好处呢?我想至少有如下几点:如果有了品牌,你可以更容易进入一家不错的公司;如果有了品牌,你可以认识更多的高端人脉资源,通过别人给你介绍新的机会,可以获得更好的选择;如果有了品牌,你也可以去企业做技术培训或者自己创业做技术培训都是好的机会。对于我自己来说,我就是希望通过出书带来的品牌价值,让我更好地做好公众号,未来选择做大数据与人工智能的技术培训。

对于技术人来说,我觉得出书可能也是最好的打造个人品牌的方式了。

首先,出书是一个带有很强个人标签属性的事情。你自己写的书,成果属于你自己,代表的也是自己的能力。不像在大公司工作,可能你的光环更多来自于公司的光环而不是个人(这里那种高职级的、为公司创造巨大商业价值的人除外)。

其次,出书是有一定门槛的,不是所有人都可以出书的(这里不考虑那种自己花钱让小出版社出版的书,这种没太大品牌价值)。你的内容要有价值、有深度,出版社才愿意找你出书。目前大出版社主要是通过两个渠道找人出书的,一是通过各种自媒体平台(比如公众号、知乎、CSDN、头条、豆瓣等)找一些创作优秀作品的人,二是大公司的非常有经验的一线开发人员。如果不具备这两个条件,你是很难被大出版社看中的。

再次,出书是一件很难的事情。特别是出一本评价好、被大出版社接收的书那是相当有挑战的。写书需要长期坚持,一般至少也需要一年以上的时间。绝大多数人是无法坚持的,你能坚持下去,你就战胜了90%以上的人。正因为难于坚持,所以才显得稀少、有价值。

在这本书的出版过程中,我自己也受益匪浅。首先我熟悉了出书的整个流程,这对于我以后出别的书更方便。其次,在写书、修改书的过程中,我一遍遍地阅读、思考,我的知识体系进行了一次次的梳理和升华,对专业知识的理解更深刻,有了更完整的全局观、整体观。

希望这本书的出版,能够给我带了我想要的。未来三到四年我还会出版两本书:一本数据分析入门,一本推荐系统入门(后面我会专门写一篇文章来讲这个计划)。相信通过这本书的出版,我更有经验了,出版后面这两本书肯定会更加容易和得心应手。

如果大家对出书感兴趣,可以加我微信:liuq4360。我会将我知道的所有关于出书的知识和注意事项分享给你。

这本书耗费了我极大的心血。十年磨一剑,是我10多年的推荐系统实践经验的总结,可能也是目前市场上唯一一本真正从企业的角度全面而系统地介绍推荐系统的著作。

书中从概念、算法、工程、产品、运营、设计、实践等多角度、全方位来讲解企业级推荐系统的知识,对核心知识点进行归纳、总结、浓缩,并结合案例来讲解怎么构建一套有商业价值的推荐系统。这本书可以帮助读者更好、更全面地理解企业级推荐系统相关的知识点,学以致用,让推荐系统真正帮助企业更有效地分发内容、产出商业价值!

大家有需要的可以点击下面的购买链接直接下单购买,感谢大家的支持与信任!

我为什么要花3年熬几百个夜写一本推荐系统的专著?相关推荐

  1. 花了三个月,终于把个人网站写完了

    网站地址:瞳孔空间 项目代码:eyesSpace(权限服务代码没开源,但不影响阅读业务逻辑) 详细介绍可以看我录的视频:花了三个月,终于把个人网站写完了 一:介绍 技术栈: 前端:Vue3 + TS ...

  2. R语言爬虫豆瓣高评分电影(喝最烈的酒,熬最深的夜,吃最好的胃药,敷最贵的面膜)

    豆瓣电影TOP250抓取 下了那么多包没用多少东西,看着黑人,反正prada   prada 的赶紧逃,赶紧的,你会炸的    这里面主要用到R/Rstudio里面的RCurl.XML.wordclo ...

  3. 心田花开写作指导二年级看图写话风筝写作方法

    二年级看图写话风筝怎么写?心田花开从看.说.写.仿四方面入手让二年级学生快速学会风筝看图写话作文写作. 一.仔细看风筝图片是写好风筝看图写话文章基本要素 引导孩子围绕着看图写话基本要素(时间.地点.人 ...

  4. 花了一个深夜,才用C语言写了一个2048游戏雏形

    12年我毕业的第二个月工资,我就买了一个IPAD,然后在IPAD上下了一个2048游戏,玩起来非常爽. 然后这几天看到好几个公众号都发了自己写这个游戏的代码,然后我自己也想试试,所以就有了这篇文章,写 ...

  5. 女朋友学高数,我花了 15 分钟用栈给她写了一个计算器 | 原力计划

    作者 | 天才程序YUAN 责编 | 夕颜 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) 前记 女朋友说:"高数好难,看我最近挺辛苦的,你送我一个礼物给 ...

  6. python爬虫进程和线程的区别_熬了两个通宵写的!终于把多线程和多进程彻底讲明白了!...

    我们知道,在一台计算机中,我们可以同时打开许多软件,比如同时浏览网页.听音乐.打字等等,看似非常正常.但仔细想想,为什么计算机可以做到这么多软件同时运行呢?这就涉及到计算机中的两个重要概念:多进程和多 ...

  7. 00后都开始养生了!你还在熬最晚的夜?

    2018年是00后的成年元年 自此90后被迫进入中年期 联合国实名认证:真 · 中年人 90后无疑是悲剧的一代 被80后嘲讽为垮掉的一代人 00后称呼老阿姨.大叔.大婶儿 在社交平台搜索90后的字眼 ...

  8. 女朋友学高数,我花了15分钟用栈给她写了一个计算器

    前记 女朋友说:"高数好难,看我最近挺辛苦的,你送我一个礼物给我,让我开心一下吧.你猜猜我想要什么." 我想了半天,从书到鞋子到电子产品最后到生活用品,感觉什么都不缺,然后和她说: ...

  9. 别尼玛把时间浪费在瞎BB上,就是干!

    # 写在前面 当一个东西越是简单和明显,我们就越不容易通过复杂的方法将其弄明白.最关键的就是,我们只有通过实践来揭示其意义.比如最简单的"技术"--轮子,它甚至不是技术,只能算是工 ...

最新文章

  1. tmux/screen里面如何用鼠标滚轮来卷动窗口内容
  2. 程序员缺乏经验的 7 种表现
  3. js考试题 html5新特性,Web前端初级面试题总结
  4. buu 信息化时代的步伐
  5. TurboMail邮件系统通过涉密信息系统产品认定
  6. ajax 返回数据null,ajax post 返回的数据是null
  7. 服务 进程守护 MarsDaemon 简介
  8. linux hiredis升级,Redis平滑升级
  9. pymongo 增删改查基本操作汇总(基本)
  10. PyTorch 1.0 中文官方教程:使用 PyTorch C++ 前端
  11. WebKit编译小结
  12. 人类社会发明的第一台计算机是什么,第二周第一课概述计算机
  13. 终于有机会获得百度SEO的邀请码了
  14. 适合研发团队的几个项目管理软件对比
  15. 联想台式电脑一键恢复后桌面没有计算机了,联想笔记本一键恢复功能使用教程...
  16. 跨境电商最新资讯——扬帆际海
  17. 满洲国时期的国都建设
  18. 几款国产FPGA系列器件参数汇总
  19. Linux 下查看Ubuntu系统版本信息
  20. 高数——积分上限函数

热门文章

  1. 超级手机病毒算是病毒吗?
  2. 1208 VW/VH
  3. 《世界上最简单的会计学》
  4. 网页广告代码php,【网页广告特效代码】精选5种常用的网页广告特效代码
  5. 这么强大的自学神器,省几万培训费,限额免费学!
  6. 定制RPM包(FPM和原生rpmbuild)
  7. Axure rp9的使用——动态面板
  8. maven打包springboot项目的jar包的时候出现报错There are test failures.
  9. html 鼠标经过弹性flash导航代码,flash鼠标经过代码
  10. ASP.NET -- WebForm -- .aspx与.aspx.cs文件