猜你喜欢
现代推荐算法

现代推荐算法

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

本书深入全面地讲解了现代推荐算法,同时兼顾深度和广度,介绍了当下较前沿、先进的各类算法及其实践。

本书从总览篇开始,介绍推荐系统的基本概念及工作环节。在模型篇中,除了梳理推荐系统的发展史,本书还重点讲解面向工业实践的选择及改进,为读者打下推荐系统的算法基础;进而带着读者进阶到前沿篇、难点篇,面对推荐系统中的各式问题,给出解决方案;最后在决策篇中,从技术原理和用户心理出发,解释一些常见决策背后的依据,从而帮助读者从执行层面进阶到决策层面,建立大局观。

本书力求用简洁易懂的语言说清核心原理,对已经有一定机器学习概念和数学基础的学生和相关领域的从业者非常友好,特别适合推荐系统、计算广告和搜索领域的从业者及学生拓展新知和项目实战。


作者简介

赵致辰

本硕毕业于清华大学电子工程系。主要研究方向包括动作识别、人脸识别、广告和推荐中的排序模型及冷启动问题等,发表相关学术领域论文7篇。曾从事移动端人脸识别工作,开发的红外人脸识别算法应用于国内多款手机;在推荐领域,提出的“POSO”模型在用户冷启动问题上取得突破性收益,已经在业界广泛应用,国内外多家公司与产品如TikTok、快手、Meta等都在以POSO为原型探索冷启动模型。


编辑推荐

本书不仅全面地介绍了当下前沿流行的各式推荐算法,更多的是在阐释技术的同时把作者多年作为推荐算法工程师的工作经验和技巧融合进去,提升本书的含金量,给读者能同时带去技术和职场双重收获!

得到:

→中国图象图形学学会副理事长兼秘书长 北京科技大学计算机与通信工程学院副院长|马惠敏

→张枫

→Meta Principal Scientist |刘霁

→阿里妈妈展示及内容广告算法总监|姜宇宁(孟诸)

→北京大学计算机学院助理教授、博士生导师|王鹤

五位专家倾情作序推荐,每篇推荐序都是值得我们学习的推荐典范文章,既讲述了推荐的发展历史又阐明当下推荐趋势。

也得到了:

→抖音推荐负责人|刘作涛

→字节跳动前视觉技术负责人|王长虎

→快手推荐算法副总裁|周国睿

→清华大学博士|陈晓智

→AMD高级软件研发经理|李栋

→卡耐基梅隆大学博士后 Sea AI Lab 研究员|许翔宇

→旷视科技高级研究员|刘宇

→清华大学未来实验室助理研究员|路奇

→思谋科技总经理|苏驰

九位专家的鼎力推荐,诚心道出对本书的赞赏与评价,供读者品鉴。


前言

在介绍本书之前,请允许我先讲一段当推荐算法工程师时令我自己最满意的工作经历。因为这段工作经历让我找到了与模型的相处方式,或者说得到了一个职业“秘籍”,之后我在工作中遇到的很多难题都是通过这个“秘籍”解决的,这个“秘籍”也会贯穿全书,帮助大家更好地理解和把握推荐系统的本质,助力职业发展。

这段工作经历涉及两个不同的域,我们用 A 域和 B 域来表示。A 域的样本很常见,也经常被研究,因此基于 A 域数据训练的模型预估性能很好;而 B 域的数据难以采集,样本质量也不够理想。在某种需求下,我们希望模型既能识别 A 域的样本,又能进行 A 域和 B 域之间相同样本的比对。由于 B 域中的样本质量很差,直接跨域对比效果不理想。

为了便于理解,这里举个例子,A 域是汉语,B 域是英语,我们要做的任务是判断两个句子的含义是否相同。比如汉语中“在原来的荒山野岭上,经过十二年的时间,他用双手奇迹般地创造了这蒙着如丝细雨显得格外郁郁葱葱的大片森林”“他用 12年把渺无人烟的荒地变成了一片绿色的海洋”,而英语的表述是“After 12 years, he

transformed the wasteland as a huge forest”,我们可以看出,这三个句子说的是同样的意思。该任务既涉及中文句子间的相互比对,又涉及中文和英文句子间的比对,额外的困难之处在于,由于设备采集原因,B 域的句子很多是残缺的,缺少一些词,语义容易模糊,这就给解决问题带来了难度。

笔者一开始尝试同时训练中文句子间比对和中英文句子间比对的两个任务。由于中文的语料非常丰富,中文句子间的比对效果很好。难题发生在中文句子和英文句比对之间,由于缺失了一些词,模型性能异常,它遇到了一个复杂问题,无所适从,只能根据过去的习惯来强行拟合,但效果并不好,项目因此陷入了瓶颈。

笔者隐隐觉得,模型此时的处境和人很像:在我们求学的过程中,要先学会基础代数,才能学微积分,接着才能学懂机器学习。对于一个没有高等数学背景的学生,要求他学习机器学习会如何呢?他会随意猜测,就和模型一样产生强行拟合的问题。因此,笔者决定像对待一个人一样对待自己的模型,首先,学习应该是循序渐进

的,学习的目标要拆解开。具体来说,加入一个辅助任务,让模型先学会英文句子间的比对。在学习该任务的过程中,将两个分别遗失不同信息的句子对应在一起,在这个过程中,模型能够学到“在英文句子中哪些信息是重要的”。等过了这个阶段,模型学会了这个辅助任务,再进行中英文句子比对。此时模型已经学会了避免把判断的依据全放在那些容易缺失的词汇上,中文和英文句子之间的比对就简单了很多。有了辅助任务的加持,模型的性能一下子就提升了不少,中英文句子对比的效果甚至能和中文句子间的对比差不多。

沿着这个思路,接下来会发生什么呢?等到我们已经学会机器学习的知识之后,还有必要再继续做微积分的题目吗?肯定是不需要的,生活中也没人这么做。同理可得,当模型已经学会提炼英文句子中的关键信息,并能做到中英文句子比对之后,继续学习英文句子间比对的意义可能不大了。于是在确认模型已经逐渐收敛之后,笔者去掉了辅助任务,发现模型的效果还能再提升一些。最终,笔者总结出一个“先用辅助任务过渡,再去掉辅助任务,并专注于目标任务”的模型训练方式,按照这个方式训练模型成功的概率很高。

从这次工作经历中提炼个最关键的点,就是把机器学习的模型当成人来看待,用生活中观察到的经验帮助我们认识、理解和运用模型。

把模型当成人来看待

拟人化是我从业以来最常使用的方法。很多人会说,神经网络是个“黑盒子”,里面发生了什么,既难以控制,也不易解释。但我觉得可以从一个简单的角度来看待模型,比如,把它看成一个“学生”。打个比方,有一个很复杂的问题,学生经过一番苦算,终于得到一种结果。此时我们问他:“这样的结果置信吗?需不需要重新验算一遍?”于是他又从头开始计算,得出了另一种结果。现在我们再问他:“这两个结果哪个更好?”他认为两个都不够理想。“那么如何得到更好的结果?”他想了想,把两个结果综合(求和或投票)起来作为最终结果。经过综合的结果果然比任何一个都好。这也可用于理解集成学习(Ensemble Learning)。

不做“温室里的花朵”

推荐算法工程师经常遇见的问题是:某个特征因为在训练和部署时的抽取方法不一样,导致训练时的覆盖度很高(如 99%以上),部署时的覆盖度却很低(10%~20%)。这样模型的表现就会变得很差。这类问题的专业说法叫作“线上、线下不一致”。训练时,特征的覆盖度高,预估很容易,模型就会待在自己的舒适区。可在实际部署时,缺失特征的问题就像一场意外的暴雨,事先根本没有做好准备,作为“温室里的花朵”的模型该如何承受呢?这就是数据增强(Data Augmentation)能改善模型性能的原因。在计算机视觉任务中,数据增强方法包括把图片裁剪为一个片段,在图片上施加噪声,以及把图片旋转一定角度等。这样做就是让模型在训练时把各种奇奇怪怪的例子都经历了,从而就能适应更困难的环境,等到真正应用时就能克服更多的困难。

精准地描述需求,既不欠缺,也不超出作为“学生”,模型会有注意力集中或不集中的时候,也会顾此失彼,就是能力终究有限。我们把样本丢给它,让它学习,它会尽力完成任务,但在这个过程中,也会暴露一些“人性”弱点。如果任务设定的要求太高,它可能就直接“自暴自弃”,出现很奇怪的行为,甚至连低一些的要求都无法达到。这种情况常见于任务难度远远超出模型能力的情况,例如,让一个很小的端上①模型分辨双胞胎的图片,最后可能会发现模型预测的结果很混乱,连一般情况的人脸都难以区分。反过来,如果要求太宽松,

模型又会“洋洋自得”。对于每个样例,它都认为当前已经学习得够充分了,不会主动把精力花在那些难以预测的例子上。

推荐算法工程师往往在扮演一位严厉的“老师”,不停地纠正模型任何试图“偷懒”或“注意力不集中”的问题。有一点是我想强调的:在网络训练的最终阶段,损失函数的数量应该等于且仅等于任务数量。学生要完成什么目标应该是老师准确定义的,因此,作为“老师”的推荐算法工程师应该既不让模型做无关的任务,也不能让它忽略必要的任务设定。这句话还有一个另一种说法:在网络训练未收敛的阶段,可以增加辅助任务,暂时不引入最终任务。

关于本书

本书是一本讲解现代推荐系统、推荐算法的图书。与市面上现存的一些书不同,本书并不涉及具体代码,也不讲解某个架构如何实践剖析,包括本书的两大核心部分是模型和算法。模型是算法中最主要的部分,也是笔者最擅长的部分。除了梳理模型发展的历史,我们更关注背后的思想,面对什么样的问题应该选择什么样的模型,如何做出适合当前场景的改进。本书旨在全面介绍现代推荐系统中所需要的各种算法,并深入解析当下最前沿、最先进的算法及其实践应用,让读者快速掌握前言的发展动态。

本书的主要内容

本书的具体布局如下。

首先我们在总览篇中介绍推荐系统的基本概念和近年来它越来越重要的原因,以及基本的环节。推荐系统演变至今,已经形成一套复杂的链路。想要进入推荐系统相关行业,首先得理解这些基本环节在整个链路中所发挥的作用,以及各个环节之间如何协调。这一篇是整本书的基础,也是从业者入行的第一步。模型作为机器学习的基石,在推荐系统中扮演着重要的角色。尤其在深度学习爆火之后,以神经网络为主的模型已经出现在了推荐系统中的各个环节。从深度学习之前的模型,到目前最新的结构,都将被梳理在模型篇中。具备这些基础知识之后,从业者就能更轻松地解决实际工业生产中的问题,做出更正确的策态。经过一段时间的研究和发展,一些问题逐渐聚合在一起,形成一个个子领域。这些子领域代表了当下业界的前沿方向,因此我们以前沿篇来总结归纳。前沿篇中的问题虽然有难度,但总能找到不错的解决方案。此外,还有一些目前业界没有定论、可

能需要顶尖的技术人员来解决的问题,汇总在难点篇中。立志在推荐算法领域中做出成绩的读者,可以通过这两篇学习推荐系统的核心理论和实践应用,找到灵感。最后,我们对推荐系统整体的理解、对平台与用户的理解最终都会体现为一些关键的决策。在决策篇中,我们从技术原理和用户心理出发,解释一些常见决策背后的

依据。策略也是算法,而且往往是从更宏观的角度出发所提出的算法。对技术人员来说,本篇可以拓宽视野,帮助读者从执行层面进阶到决策层面;对产品运营人员来说,本篇可以解释决策背后的原理,加深理解。

除了知识介绍,书中有大量我个人对推荐系统中问题的理解。就像上面所说的,在当前阶段,很多问题没有定论,这些理解作为我一家之言也未必全对,但我希望这些理解能引发读者更多的思考和开放性的讨论。

由于本书不涉及基础的机器学习概念和数学知识,所以对于还没有深入了解过机器学习的读者,笔者建议先补充一下相关知识;对于已经有一定基础知识的学生和相关领域的从业者,笔者强烈建议阅读本书,本书中不仅有对技术点背后原理的分析,还有对当下领域发展的总结和展望。

作者

2023年5月


目录

总览篇

第 1 章 推荐系统概述 2

11 推荐系统是什么 2

12 推荐系统发展的天时、地利、人和 4

121 天时 6

122 地利 6

123 人和 7

第 2 章 现代推荐链路 9

21 召回、粗排、精排——各有所长 9

22 召回、粗排、精排——级联漏斗 13

23 打压、保送、重排——拍不完的脑袋 20

模型篇

第 3 章 精排之锋 25

31 简单“复读机”——逻辑回归模型 25

32 工业逻辑回归模型的稀疏性要求 29

33 FM 的一小步,泛化的一大步 34

34 多彩的 FNN/PNN/ONN/NFM 世界 37

35 高阶交叉 41

36 工具人 GBDT 45

37 嵌入表示亦福亦祸,树模型的新机遇 49

38 DNN 与两大门派,“一念神魔”与功不唐捐 53

39 再论特征与嵌入生成 58

310 机器学习唯一指定王牌技术——注意力机制 62

311 注意力机制的几种写法 65

312 Transformer 的升维打击 69

第 4 章 粗排之柔 72

41 粗排存在与否的必要性 73

42 粗排复杂化的方法 73

43 Pair-wise 与 List-wise 74

第 5 章 召回之厚 76

51 u2i 之双塔进击史 76

52 i2i 及 u2u2i 方案 81

53 近似搜索概览 85

531 向量量化类方法 86

532 基于图的搜索 87

54 树模型与类树模型的冲击 89

第 6 章 模型迭代的术与道 93

61 什么是“老汤模型” 93

62 模型迭代的“术” 96

63 模型迭代的“道” 98

前沿篇

第 7 章 用户兴趣建模 101

71 从百到万的用户长期兴趣建模 101

711 从百到千 102

712 从千到万 102

72 用户多峰兴趣建模 104

第 8 章 多任务学习 107

81 多任务学习的实践意义 107

82 多任务学习的基本框架 110

83 平行关系建模——MMoE 类方法 113

84 非平行关系建模,任务间的因果 117

第 9 章 非梯度场景 121

91 线上与线下的鸿沟 121

92 弱个性化 CEM,强个性化强化学习 124

93 探微参数与性能的关系,把点连成面 128

第 10 章 探索与利用 133

101 为什么要探索与利用 133

102 探索的本质是巧妙“贪心” 136

第 11 章 后精排环节 139

111 定义多样性问题,简单的形式与复杂的标准 139

112 DPP 算法与多样性 142

113 考虑上下文的重排序 144

第 12 章 推荐中的偏差与消除 147

121 各种各样的偏差 147

122 流行度偏差的消除 148

123 位置偏差的消除 151

第 13 章 自动机器学习技术 155

131 网络结构搜索与网络微操的探索 155

132 特征的搜索 159

133 模型压缩 161

第 14 章 图计算 165

141 数据结构的终极 165

142 GNN 的极简发展史 168

143 物料非原子化,建模转向图 171

难点篇

第 15 章 延迟转化 175

151 转化与广告机制 175

152 转化的分解 177

153 其他角度 178

第 16 章 物料冷启动 181

161 “多模态之石,可以攻玉” 181

162 预排序向左,个性化向右 184

163 流量分配,“普度众生”还是“造神” 188

第 17 章 用户冷启动 191

171 元学习,对模型拔高的要求 191

172 初始化的基底分解与生成 195

173 POSO,首个从结构角度改善用户冷启动的模型 197

174 精品池:抓住人性需求 201

第 18 章 因果推断 204

181 当分布不够用时 204

182 寻找“工具人”,将因果推断直接应用于推荐 209

第 19 章 长尾优化 212

决策篇

第 20 章 流量 218

201 重新认识流量 218

2011 流量区分快慢 219

2012 流量区分成本高低 220

2013 流量是盲目的 220

2014 流量是有“圈子”的 221

202 时间的研究 222

第 21 章 分层 224

211 你必须理解的物料生命周期 224

212 你必须理解的用户分层 228

213 三阶段让用户为我“死心塌地” 231

第 22 章 实验现象与回收 234

221 决策上线的黄金法则 234

222 “临门一脚”,结果真的置信了吗 237

223 不万能的 A/B 实验和难以归因的反转 239

224 线上和线下的对齐——无穷逼近 241

后记 243

参考文献 244


产品特色