猜你喜欢
从零开始构建企业级推荐系统

从零开始构建企业级推荐系统

书籍作者:张相於 ISBN:9787121391514
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:7720
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书是一本面向实践的企业级推荐系统开发指南,内容包括产品设计、相关性算法、排序模型、工程架构、效果评测、系统监控等推荐系统核心部分的设计与开发,可以帮助开发者逐步构建一个完整的推荐系统,并提供了持续优化的系统性思路。本书注重从系统性和通用性的角度看待推荐系统的核心问题,希望能够帮助读者做到知其然,也知其所以然,更能够举一反三,真正掌握推荐系统的核心本质。此外,本书对于推荐系统开发中常见的问题和陷阱,以及系统构建过程,也做了重点介绍,力求让读者不仅知道做什么,而且知道怎么做。本书的目标读者是推荐系统研发工程师、产品经理以及对推荐系统感兴趣的学生和从业者。

作者简介

张相於,本科和研究生毕业于中国人民大学,现任阿里巴巴高级算法专家。多年来一直从事推荐系统及相关领域的系统研发,具有丰富的实践经验,并乐于分享经验与教训,在ResysChina上发表过多篇推荐系统相关文章,也在全球架构师峰会等技术大会上做过多次演讲。

编辑推荐
适读人群 :本书的目标读者是推荐系统研发工程师、产品经理以及对推荐系统感兴趣的学生和从业者。

√ 举一纲而万目张,解一卷而众篇明:本书旨在与庞杂的领域知识网格中点亮关键节点,为读者的商业化落地开辟泛化通道。
√ 注重零启动|全流程|成系统|通用化:用整体、全局思维将商业级推荐系统涉及的算法、模块、架构与相关性链条全线贯通。
√ 国内首批实践商业化推荐的老江湖:从转转到阿里,十年知名电商企业主导推荐系统研发和带领相关算法团队经验。
√ 产品逻辑|数据|算法|架构四大体系:用真实案例覆盖电商、新闻、短视频等主流场景和技术生态,面向工程师与产品经理。

前言

最近恰巧看到一段视频,是杰夫·贝索斯在1997年的一段访谈,关于他如何开始创办亚马逊的。贝索斯之前在纽约的一家量化对冲基金公司工作,他在做数据统计时发现,当年互联网的使用量在一年时间里增长了2300%,数据告诉他通过互联网卖东西这件事情不容错过。
他列出了20种可以在网上销售的产品,发现书籍是最佳选择。书籍这个品类下的商品数量比第二名音乐品类要多得多。同时在售的音乐CD有大约20万种,而各种语言的书籍有300万种,其中光英文的书籍就有150万种。当有如此之多的书籍可以选择的时候,网上商店就是最佳的选择了,其他方式都很难满足。20世纪末,注意力是最稀缺的商品。如果想赢得消费者,就要做创新的东西,做全新的对用户真正有价值的东西。
视频的最后,贝索斯说道,“今天,1997年,互联网和电子商务都才刚刚起步,它还仅仅是day one。我相信,当多年以后回头看的时候,人们会说,wow,20世纪末是这个星球上的一个伟大时代。”无疑,时间回报了这位能够洞穿未来的冒险家。现如今亚马逊已经成为世界上首屈一指的公司之一,贝索斯也随之登上了世界首富的宝座。亚马逊是全世界最早将个性化推荐技术作为商业系统核心引擎的公司。他们早年关于协同过滤的论文对这个领域的发展影响深远。
相於工作早期主要的一段经历是在当当网。当当网是国内最早使用个性化推荐技术的商业公司之一,通过数据智能帮助读者发现值得阅读的好书。从2016年开始,相於陆续在ResysChina 公众号上发表了多篇文章,对自己工作所得所想进行了无私的总结与分享。相於的文章深入浅出,把这项以数学模型为主,乍看起来让人枯燥的工作,讲解得清晰易懂。更难能可贵的是,相於不但精通算法模型,而且对推荐系统的相关产品也有很多思考,受到了业内读者的广泛好评。这本书是相於的心血之作,打磨良久,如果你想系统全面地了解如何构建企业级的推荐系统,本书不容错过。
——ResysChina发起人,谷文栋

自序
我第一次接触推荐系统是在2012年的电商行业,那时推荐系统领域有两大传说:一是推荐系统在Amazon的订单贡献达到30%以上;二是Netflix悬赏百万美金寻找最强的推荐算法。在这种气氛的烘托下,推荐系统开始受到越来越多的关注,但这种关注并没有在短时间内转化成更丰硕的成果。在认知层面,除了电商和视频等少数行业,在大多数行业中推荐系统的重要性还没有被广泛认可,那时整个行业对于流量分发的认知也远没有今天这么深入透彻,对于推荐系统的认知也更多停留在“可以帮助电商网站卖货”这样的层面。在产品形态层面,彼时还是以各种“豆腐块”为主,现在占据主导的feed流、直播以及内容混排等也都还没有出现或者尚处在萌芽期。而在技术层面,机器学习技术还没有开始广泛应用,更遑论深度学习,那时推荐算法绝对的主角还是“常青树”——协同过滤算法。那一年,现在以推荐技术名扬四海的字节跳动刚刚成立。
推荐系统在后来几年内的发展可谓一日千里,也在各个领域受到了越来越多的重视,在业务、产品和技术层面都取得了长足的发展,与搜索和广告一起,构成了互联网算法行业不可或缺的三大核心组件。尤其是近年来随着数据量的持续增长和算力的持续提升,推荐系统这一以数据和算法为核心驱动力的产品,在深度学习技术的助推下,将业务效果不断推向新的高度。
从2015年开始,受到ResysChina社区发起人谷文栋的邀请,我开始在ResysChina的公众号上写一些推荐系统相关文章,其中有关于推荐算法的,有关于机器学习的,也有一些关于推荐系统整体思考的。在这个过程中我发现,虽说关于推荐系统受到关注更多的通常是各种炫酷的算法,但出自一线实践的系统构建一手经验和教训有时会引起更多的共鸣,这些经验和教训可能并不高端也不复杂,甚至很多时候不够起眼,可是对于构建出成功的推荐系统却是非常重要的。于是,与大家分享我和我的团队的实践经验和教训就成为写这本书的第一个驱动力。
写这本书还有第二个驱动力,就是希望梳理出推荐系统一些通用的可泛化的做法和思路。推荐系统是一个涉及面非常广的领域,从算法到工程都有很多比较有技巧性的点,这些技术点编织成了一张复杂的网络。但这个世界的本质是简单的,这张复杂的网络中一定存在着一些关键的核心节点,这些节点代表了推荐系统中最为本质、技术点共性的一些东西,掌握这些节点就好比抓住了一棵树的主干,更多的具体实践方法只是主干上长出的树杈和枝丫。正所谓“举一纲而万目张,解一卷而众篇明”,希望能通过这本书和读者一起探得推荐系统中的些许思想精华。
以上均为作者的美好愿望,但推荐系统领域博大精深,技术日新月异,作者才疏学浅,经多年努力也只窥得皮毛,书中错谬疏漏之处在所难免。因此,读者读完本书如能略有收获,作者已是诚惶诚恐;如能得诸位读者不吝赐教,更将不胜感激。读者可以在ResysChina的微信公众号、知识星球以及知乎专栏上找到我,也可通过[email protected]联系到我。
在这里要感谢曾经和我一起工作过的同事们,和你们的共事过程给予了我写作的灵感;感谢ResysChina社区的读者们,你们的反馈和肯定是我写就本书的动力;最后,感谢我永远18岁的老婆和我可爱的儿子,你们的爱让这一切成为可能。
张相於 2020年5月

前言
说起推荐系统,大多数人第一时间想到的是协同过滤、机器学习这些算法技术,但是当你沉浸在其中足够久的话就会发现,就如同一辆高级跑车不仅需要一台高级的发动机,构建一套靠谱的推荐系统需要的也不仅仅是那几种“高大上”的算法,还有很多不那么光鲜的工作需要完成。在掌握推荐算法和搭建一套可用的企业级推荐系统之间,还有很多路要走。写作本书的目的就是帮助大家从零开始一步步搭建一套可用的企业级推荐系统。这里面最宝贵的可能不是某种算法或某种架构,而是一些通用化、系统化的思维,以及一些没走过就不知道的“坑”或者技巧。而很多时候也正是这些不会在论文中出现的东西,撑起了推荐系统的半边天,确保了推荐算法能够产生它应有的价值。
本书在写作时力求达到良好的条理性、系统性和通用性。在条理性方面,希望能将一种算法或一个模块的演进过程从简单到复杂、循序渐进地展开阐述,读者可以结合自己的业务情况来决定从哪种状态入手。在系统性方面,希望能做到把散落的知识点连成面,例如在介绍相关性算法时,会对所有的相关性链条模式进行系统性总结,这样即使以后出现新的相关性算法,读者也可以很快知道应该如何应用它。在通用性方面,希望能找到不同问题之间的共同点,例如在介绍如何应用机器学习技术时,会将特征类型按照维度和泛化能力进行通用抽象分类,让读者真正理解不同特征的作用原理和作用范围。
本书的整体结构如下。
?? 第1章:介绍推荐系统的产生背景、价值及一些产品层面的思考,和读者一起探讨为什么要有推荐系统,以及什么样的推荐系统是好的系统。
?? 第2章:对推荐系统所涉及的技术做一个整体的概括性介绍,勾勒出推荐系统技术的整体骨架,作为后续章节内容的指引。
?? 第3章:介绍经久不衰的协同过滤算法和其他的基础相关性算法,同时给出相关性链条的常用模式和规律,按照该模式可构建出任意相关性关系。
?? 第4章和第5章:介绍以机器学习模型为代表的算法融合方法及对应的数据血统策略,这里会覆盖在推荐系统场景下应用机器学习技术的全流程,还会重点介绍机器学习应用中一些不易察觉但却影响很大的“坑”及其应对方式。
?? 第6章:介绍推荐系统的基石数据之一——用户画像系统,包括常用的算法及架构的演进,这套技术不仅可用来服务于推荐系统,也可使用在其他需要用户画像系统的场景中。
?? 第7章:介绍推荐系统的各种评测方法及系统监控策略,包括离线的和在线的多维度效果评测方法,以及系统上线之后保障系统稳定运行的监控方法。
?? 第8章:介绍推荐算法优化的常用方法,以及影响推荐系统效果的一些非技术因素,这里着重介绍效果优化的一般性思路,力求做到精练,通过举一反三,可推广到更多的场景中。
?? 第9章:介绍自然语言处理技术在推荐系统中的应用,包括常用技术的演进过程,以及它们之间的关系。
?? 第10章:介绍推荐系统所特有的探索与利用问题,包括该问题对推荐系统的影响,以及常用的解决方法。
?? 第11章:介绍推荐系统的整体架构设计,包括架构分层、在每一层上适合进行的操作,以及常用的架构演进规律。
?? 第12章:介绍推荐系统工程师的成长路线,包括其需要掌握的技术和进阶过程。
?? 第13章:介绍当今推荐系统面对的挑战,以及目前已有的一些尝试,读者可以从这里了解到当前还有哪些重要问题没有得到解决,以及它们对推荐系统的影响。
对于推荐系统的初学者,建议从第1章开始按顺序阅读;对于有一定经验的读者,则可以直接翻到感兴趣的章节进行阅读。

目录

第1章 推荐系统的时代背景 1
1.1 为什么需要推荐系统 1
1.1.1 提高流量利用效率 1
1.1.2 挖掘和匹配长尾需求 6
1.1.3 提升用户体验 7
1.1.4 技术积累 8
1.2 推荐的产品问题 10
1.2.1 推荐什么东西 10
1.2.2 为谁推荐 13
1.2.3 推荐场景 14
1.2.4 推荐解释 16
1.3 总结 18
第2章 推荐系统的核心技术概述 19
2.1 核心逻辑拆解 19
2.2 整体流程概述 20
2.3 召回算法 21
2.4 基于行为的召回算法 24
2.5 用户画像和物品画像 24
2.6 结果排序 26
2.7 评价指标 26
2.8 系统监控 27
2.9 架构设计 28
2.10 发展历程 28
2.11 总结 30
第3章 基础推荐算法 31
3.1 推荐逻辑流程架构 31
3.2 召回算法的基本逻辑 34
3.3 常用的基础召回算法 36
3.3.1 用户与物品的相关性 36
3.3.2 物品与物品的相关性 42
3.3.3 用户与用户的相关性 46
3.3.4 用户与标签的相关性 47
3.3.5 标签与物品的相关性 48
3.3.6 相关性召回的链式组合 50
3.4 冷启动场景下的推荐 51
3.5 总结 53
第4章 算法融合与数据血统 54
4.1 线性加权融合 55
4.2 优先级融合 57
4.3 基于机器学习的排序融合 59
4.4 融合策略的选择 61
4.5 融合时机的选择 63
4.6 数据血统 64
4.6.1 融合策略正确性验证 65
4.6.2 系统效果监控 65
4.6.3 策略效果分析 67
4.7 总结 68
第5章 机器学习技术的应用 69
5.1 机器学习技术概述 69
5.2 推荐系统中的应用场景 70
5.3 机器学习技术的实施方法 72
5.3.1 老系统与数据准备 72
5.3.2 问题分析与目标定义 74
5.3.3 样本处理 76
5.3.4 特征处理 80
5.3.5 模型选择与训练 98
5.3.6 模型效果评估 101
5.3.7 预测阶段效果监控 104
5.3.8 模型训练系统架构设计 105
5.3.9 模型预测系统架构设计 108
5.4 常用模型介绍 109
5.4.1 逻辑回归模型 109
5.4.2 GBDT模型 111
5.4.3 LR+GDBT模型 112
5.4.4 因子分解机模型 113
5.4.5 Wide & Deep模型 115
5.4.6 其他深度学习模型 116
5.5 机器学习实践常见问题 117
5.5.1 反模式1:只见模型,不见系统 117
5.5.2 反模式2:忽视模型过程和细节 117
5.5.3 反模式3:不注重样本精细化处理 118
5.5.4 反模式4:过于依赖算法 119
5.5.5 反模式5:核心数据缺乏控制 120
5.5.6 反模式6:团队不够“全栈” 121
5.5.7 反模式7:系统边界模糊导致出现“巨型系统” 121
5.5.8 反模式8:不重视基础数据架构建设 122
5.6 总结 123
第6章 用户画像系统 124
6.1 用户画像的概念和作用 124
6.2 用户画像的价值准则 126
6.3 用户画像的构成要素 128
6.3.1 物品侧画像 129
6.3.2 用户侧画像 133
6.3.3 用户画像扩展 139
6.3.4 用户画像和排序特征的关系 142
6.4 用户画像系统的架构演进 143
6.4.1 用户画像系统的组成部分 143
6.4.2 野蛮生长期 144
6.4.3 统一用户画像系统架构 145
6.5 总结 147
第7章 系统效果评测与监控 148
7.1 评测与监控的概念和意义 148
7.2 推荐系统的评测指标系统 150
7.3 常用指标 151
7.4 离线效果评测方法 158
7.5 在线效果评测方法 163
7.5.1 AB实验 163
7.5.2 交叉实验 173
7.6 系统监控 178
7.7 总结 181
第8章 推荐效果优化 182
8.1 准确率优化的一般性思路 183
8.2 覆盖率优化的一般性思路 185
8.3 行为类相关性算法优化 188
8.3.1 热度惩罚 188
8.3.2 时效性优化 190
8.3.3 随机游走 194
8.3.4 嵌入表示 196
8.4 内容类相关性算法优化 200
8.4.1 非结构化算法 201
8.4.2 结构化算法 201
8.5 影响效果的非算法因素 205
8.5.1 用户因素 205
8.5.2 产品设计因素 206
8.5.3 数据因素 208
8.5.4 算法策略因素 208
8.5.5 工程架构因素 209
8.6 总结 210
第9章 自然语言处理技术的应用 211
9.1 词袋模型 212
9.2 权重计算和向量空间模型 214
9.3 隐语义模型 216
9.4 概率隐语义模型 218
9.5 生成式概率模型 220
9.6 LDA模型的应用 222
9.6.1 相似度计算 222
9.6.2 排序特征 222
9.6.3 物品打标签&用户打标签 223
9.6.4 主题&词的重要性度量 223
9.6.5 更多应用 224
9.7 神经概率语言模型 224
9.8 行业应用现状 226
9.9 总结和展望 227
第10章 探索与利用问题 228
10.1 多臂老虎机问题 228
10.2 推荐系统中的EE问题 230
10.3 解决方案 231
10.3.1 ?-Greedy算法 231
10.3.2 UCB 234
10.3.3 汤普森采样 236
10.3.4 LinUCB 237
10.4 探索与利用原理在机器学习系统中的应用 239
10.5 EE问题的本质和影响 240
10.6 总结 241
第11章 推荐系统架构设计 242
11.1 架构设计概述 242
11.2 系统边界和外部依赖 244
11.3 离线层、在线层和近线层架构 246
11.4 离线层架构 247
11.5 近线层架构 249
11.6 在线层架构 252
11.7 架构层级对比 255
11.8 系统和架构演进原则 256
11.8.1 从简单到复杂 256
11.8.2 从离线到在线 258
11.8.3 从统一到拆分 258
11.9 基于领域特定语言的架构设计 259
11.10 总结 262
第12章 推荐系统工程师成长路线 263
12.1 基础开发能力 264
12.1.1 单元测试 264
12.1.2 逻辑抽象复用 264
12.2 概率和统计基础 265
12.3 机器学习理论 266
12.3.1 基础理论 267
12.3.2 监督学习 268
12.3.3 无监督学习 269
12.4 开发语言和开发工具 270
12.4.1 开发语言 270
12.4.2 开发工具 270
12.5 算法优化流程 271
12.6 推荐业务技能 273
12.7 总结 274
第13章 推荐系统的挑战 275
13.1 数据稀疏性 275
13.2 推荐结果解释 277
13.3 相关性和因果性 281
13.4 信息茧房 283
13.5 转化率预估偏差问题 286
13.6 召回模型的局限性问题 288
13.7 用户行为捕捉粒度问题 290
13.8 总结 291

短评

不错,挺好的

2020-08-22 15:20:19

我们的生活方式是什么时候回来呀,我

2020-08-22 16:18:59

挺不错的,快递小哥很给力,真的很不错,书到了,完好无损,质量也很好,整体来说还是不错的体验,棒棒哒

2020-08-12 16:25:45

标签
推荐系统,机器学习,企业级,RecommandationSystem,AI,2020