首页>参考读物>计算机科学与技术>软件与程序设计

构建企业级推荐系统:算法、工程实现与案例分析
作者 : 刘强 著
出版日期 : 2021-07-16
ISBN : 978-7-111-68616-3
定价 : 129.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 499
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书从不同角度来介绍企业级推荐系统构建的理论、方法、策略。首先让读者对推荐系统有一个基础的认知,然后针对将要用到的算法知识进行了详细讲解,接着从用户维度、标的物维度、算法维度、平台方维度等角度介绍了评估方法,再进行了工程实现,通过案例对工程实现的核心模块、架构设计、技术选型进行分解。紧接其后从运营角度讲解了推荐产品的应用场景及设计推荐产品的基本原则,并进行了实践,通过实践案例分析,进一步强化前面介绍的各个知识点,让读者有一个系统认识。

图书特色

企业级推荐系统领域集大成之作,视频行业技术专家10年实践经验总结
从场景、算法、工程、运营、实践等多维度深度梳理构建企业级推荐
系统的方法

图书前言

为什么要写这本书
最早开始规划写这本书是在2018年6月,当时的动机主要有如下3点:
首先,我希望做一些知识梳理和价值沉淀的工作。自2009年毕业开始,我一直从事的都是与大数据、算法相关的工作,对于推荐系统也有近10年的实践经验,特别是最近9年一直在同一家公司(即我现在所在的公司“电视猫”)做推荐系统相关的工作。在从事推荐系统的工作中我遇到过很多坑,积累了一些经验,拓展了解决问题的思路,也有了一些自己的想法。因此,希望通过写一本书来对自己的知识做一次全面的梳理和沉淀。
其次,给自己一定的压力,培养自己的写作习惯。我曾经看到过一句话,大致意思是说“一个人对世界的贡献,在于他输出了什么而不是吸收了什么”,这句话对我的触动比较大,平时我非常喜欢看书,但是很少输出,我是一个不太爱整理的人,所学的知识和技能大都记录在自己的脑海里,不够体系化,所以我希望通过写一本书来培养自己良好的写作习惯,做一个有输出的人。
最后,我希望给推荐系统从业者或即将从事推荐系统开发的读者提供一定的帮助。我算是从零开始自己摸索做推荐系统的,一路下来非常辛苦,走了很多弯路,但也从互联网上获得了很多的帮助,非常感谢这些无偿输出知识的人。我是一个乐于助人的人,一般别人问我问题,我都会给别人提供一些建议。对于推荐系统,经过这么多年的训练,我自己有了比较多的思考、想法和经验,所以希望能够系统地将自己所学知识分享给需要帮助的人,而通过写书分享知识算是一种最好、最系统的方式。
2018年在规划好大纲后,我尝试写了一点点,但是没有坚持下来,每次写几十个字就卡住了,因为感觉无法很好地表达自己的思想,也没有外在的激励或者压力逼迫自己写下去,屈服于个人的惰性,所以就这样放下了。
转机发生在2019年年底。当时与我关系很好的一个同事的夫人联系我,说让我带着大家一起输出,多积淀积淀,我答应了。之后她就组织我们团队几个愿意参与写作的同事开始在公众号上写文章。我写的主题就是推荐系统,最早的一篇发布于2019年1月23日。这之后每两周我都会输出一篇1万字左右的推荐系统的相关文章,一直持续到2020年4月28日,中间没有间断过。本书的内容是基于这些发布在公众号上的文章所进行的梳理、编排、修改与优化。
读者对象
本书主要讲解与企业级推荐系统相关的理论与知识,聚焦于企业如何搭建、运营、优化推荐系统。本书的适用人群很广,具体来说,适合如下人员阅读:
推荐系统开发及推荐算法研究的相关从业者。
未来期望从事推荐系统相关工作的学生。
已经工作但是想转行做推荐系统相关工作的在职人员。
从事推荐算法研究,希望对推荐系统在工业界应用有所了解的高校科研人员。
对推荐系统感兴趣的产品、运营人员。
期望将推荐系统引入产品体系的公司管理层。
如何阅读本书
本书篇幅较大,一共27章,分别从不同角度来介绍企业级推荐系统构建的理论、方法和策略,围绕推荐系统在企业中的实践展开,下面分别对各章内容进行简单介绍。
第一篇为推荐系统基础认知,包括第1章。这一部分介绍推荐系统相关的基本概念与知识,帮助读者了解推荐系统的基础知识。
第二篇为推荐系统基础算法,包含6章。这些章讲解最基础、可能也是最重要的企业级推荐算法。第2章介绍了企业级推荐系统的5种推荐范式及每种范式的应用场景,以及推荐排序和召回的相关知识,本篇其他章(第3~7章)则介绍了基于内容的推荐算法、协同过滤推荐算法、基于朴素机器学习思想(朴素贝叶斯、关联规则、聚类)的推荐算法、矩阵分解推荐算法和因子分解机等知识。我们不仅会讲解算法的实现原理,更会讲解怎么将这些算法应用到具体的业务场景中,同时会对算法的优缺点、适用范围、未来发展等更多读者关心的主题进行详细介绍。
第三篇为推荐系统进阶算法,包含5章。第8章讲解了推荐系统冷启动的相关知识点,包括各种冷启动问题以及解决冷启动问题的可行策略。紧接着的3章(第9~11章)分别介绍嵌入方法、深度学习方法及混合推荐算法,这些方法是目前工业界比较主流的推荐策略和方法。这一部分的最后一章(即第12章)讲解了构建可解释性推荐系统的相关知识点,这是其他推荐系统书籍中未曾涉及的主题。
第四篇为推荐系统评估与价值,包含2章。第13章讲解推荐系统的评估,这一章首先从用户维度、标的物维度、算法维度、平台方维度等4个维度讲解每个维度有哪些评估方法,让读者知道从不同的角度可以对推荐系统进行不同的评估。然后基于推荐系统产品的视角,从离线评估、在线评估、主观评估等角度(并结合前面的4个维度)来系统讲解具体的评估方法和策略。第14章讲解推荐系统的商业价值,对于企业来说,引入推荐系统的主要目标就是提升产品的商业价值。这一章的内容包括推荐系统在用户增长、用户体验提升、商业变现、资源节省这4个方面所起的价值和作用。
第五篇为推荐系统工程实现,包含6章。这一部分系统地讲解了推荐系统工程相关的知识点。其中,第15章讲解了推荐系统数据来源、收集、预处理及特征工程的相关知识点。第16章讲解了推荐系统工程实现的核心模块、架构设计、技术选型等主题,并且以笔者团队的Doraemon架构作为案例给读者提供了一个比较接地气的参考方案。第17章讲解了AB测试的相关知识,包括AB测试的价值、在什么情况下需要AB测试、AB测试的实现方案等。第18章则从将推荐作为Web服务的角度来讲解怎么让推荐服务更高效、更稳定、更快速。第19章梳理了目前业界提供推荐系统服务的两种模式:事先计算式和实时装配式,即事先将给用户的推荐结果计算好并存下来或者在用户访问推荐服务时实时为用户计算推荐结果。这一部分的最后一章(即第20章)对实时推荐系统进行了全面的讲解,包括实时推荐系统的价值、系统架构、具体业务场景及面临的挑战等。
第六篇为推荐系统产品与运营,包含4章。这一部分主要从产品和运营的角度来讲解推荐系统。第21章从多个维度来梳理推荐系统的产品形态,并讲解了推荐产品的应用场景及设计好的推荐产品的基本原则。第22章讲解了推荐系统的UI交互和视觉展示,这属于前端UI的范畴,也是用户可以直接感知的部分,这一部分设计的好坏直接影响用户的使用体验。第23章从运营的角度来讲解推荐系统,关注数据化运营、精细化运营及用户画像。推荐系统作为一种运营手段和工具,需要与产品、运营人员配合好才能最大化地发挥商业价值。第24章是这一部分的最后一章,介绍了推荐系统的人工调控策略,即产品、运营人员怎样对推荐系统进行人工调控才可以让推荐系统更好地配合公司的整体运营活动与规划。
第七篇为推荐系统案例分析,包含3章。这一部分讲解了推荐系统实践的相关知识点。第25章重点讲解了怎样从零开始搭建一个企业级的推荐系统,笔者借用5W3H思考框架来阐述如何更好、更快、更高效地构建一个可用的推荐系统。第26、27章是实际案例,基于笔者公司的业务讲解了具体怎样实现推荐系统。
另外本书还包括两个附录。附录A梳理了推荐算法工程师成长所要做的准备,对于想从事推荐算法工作的读者,笔者给出了可行的职业发展方向和定位,以及做好推荐系统需要如何准备,需要从哪些方面提升自我,以更好地适应未来对推荐算法从业者的要求。附录B介绍了在企业中推荐算法团队的日常工作、协作对象及推荐算法团队的目标与定位。
勘误和支持
由于笔者水平有限,写作时间也比较仓促,书中难免会出现一些不准确的地方甚至是错误,恳请读者批评指正。你可以将书中描述不准确的地方或错误告诉我,以便再次印刷或再版时更正,通过微信gongyouliu_01、gongyouliu_02可与我取得联系。如果你有更多的宝贵意见,也欢迎发送邮件到我的邮箱891391257@qq.com,我很期待听到你们真诚的反馈。
致谢
首先要感谢移动互联网时代,让我们可以更便捷、更高效地获取信息。只有在移动互联网时代推荐系统才有用武之地,从而才有了推荐系统的大爆发。
感谢我的公司和领导让我有一个比较好的平台可以接触推荐系统,并在这个领域一直精进。
感谢我的(前)同事连凯、程欢、祝冰鑫、杨奇珍在我写作过程中帮助阅读初稿并提供修改建议,感谢刘娜、李娟、李新、赵旭乾帮忙编辑文章,让我写的文章可以发布在公众号里,正是这些文章构成了本书的初始材料。
感谢机械工业出版社华章分社的编辑杨老师。在过去的一年中,在她的不断指导下,我对图书出版的流程有了比较好的了解,经过她的指导和一字一句的修改,本书的质量才得以保证。
感谢傅瞳在全书成稿后对本书进行校对。感谢好友金婷在过去两年来对我的鼓励、支持和帮助,让我有更多前行的勇气和动力。
最后要感谢我的父母和家人,是他们的无私付出让我有机会接受高等教育,让我可以无后顾之忧地完成本书的写作和修订工作!
谨以此书献给我最亲爱的家人,以及所有懂我、关心我、支持我的朋友们。

刘强(gongyouliu)
2021年4月
于上海

上架指导

计算机\程序设计

封底文字

在互联网后流量时代,是否能构建优秀的推荐系统,并且全方位地赋能公司的产品开发、运营、广告、商业化,成为互联网产品能否从众多的竞争者中脱颖而出的必要条件。本书作者从事大数据、智能推荐工作已有十多年,所构建的推荐系统已成功服务于电视猫过亿的互联网用户。他将多年实践经验整理成书,全面、系统地阐述了如何构建企业级推荐系统。书中干货满满,相信每一位读者都能受益。
蒋黎君
电视猫联合创始人兼CTO
市面上已经有不少优秀的关于推荐系统的技术图书,但看到刘强这本书我还是有不小的惊喜。有别于已经面世的同类书,本书主要侧重于推荐算法(尤其是基于深度学习的推荐),并按照“点-边-面”的原则,从算法扩展到系统,涵盖产品设计与运营等推荐的全生命周期。本书结构清晰,内容层层递进,不仅包含理论,还包括大量翔实的案例。阅读本书仿佛聆听一位有血有肉有思想的大师在倾囊传授其毕生才华,让我这位在AI行业深耕多年的老兵也受益匪浅。该书不仅有利于从事推荐方向的科研人员更好地了解工业界推荐技术的演进和应用,也适合广大算法工程师、AI产品与运营经理阅读。
王昊奋
同济大学百人计划特聘研究员、博士生导师,OpenKG发起人
推荐系统的应用场景非常广泛,对于提升用户体验非常重要,甚至是许多互联网平台系统最核心的功能。刘强老师的著作从场景、算法、工程、运营、实践等多个维度阐释了构建一个优秀推荐系统应该考虑的问题,是作者多年工作的结晶。推荐给每一位从事互联网软件开发的同行。
程 浩
示说网创始人,前英特尔大数据团队研发经理
推荐系统已经是互联网头部公司智能运营的核心竞争力和秘密武器,也将成为产业数字化转型大潮中政府和企业应对各种业务场景的利器。刘强老师的这本著作聚焦企业推荐系统,对整体架构、流程建设、算法模型和代码实现都有深入浅出的讲解,是作者多年经验的结晶。推荐给所有投身政府和企业数字化转型产业的技术人员。
裘靖宇
维智科技合伙人,前微软全球生态合作伙伴资深经理
随着产业互联网时代的到来,数字化改造、智能化升级成为企业发展的关键。推荐系统是企业智能化升级的核心系统,必须受到重视。刘强是推荐系统领域的技术专家,既有扎实的理论功底,又有丰富的实战经验。本书是刘强十多年推荐系统知识和实战经验的结晶,深入浅出地介绍了如何构建企业级推荐系统,堪称产业互联网时代企业智能化升级的一把关键钥匙。
吴 斌
爱搭AIda创始人兼CEO

图书目录

前 言
第一篇 推荐系统基础认知
第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

教学资源推荐
作者: [美] 托尼·加迪斯(Tony Gaddis) 著
作者: [英] 约翰·M. 斯图尔特(John M. Stewart) 著
作者: Y. Daniel Liang
参考读物推荐
作者: Elliotte Rusty Harold
作者: 范怀宇 著
作者: 马伟 著
作者: (美)Adrian Turtschi 等