如何系统性的学习推荐系统?

news2025/4/21 13:43:01

推荐一本适合推荐系统、计算广告、个性化搜索领域的从业人员阅读的书:《互联网大厂推荐算法实战》。快手公司算法专家10余年的实战经验总结。涵盖一线互联网公司当前采用的主流推荐算法,凸显可用性、实用性提供从算法基本原理,到技术框架再到核心源码的解决方案。

本书是一本讲述推荐算法、推荐模型的书。本书总计10章,内容涵盖了推荐系统的基础知识、推荐系统中的特征工程、推荐系统中的Embedding、推荐系统的各组成模块(包括召回、粗排、精排与重排)所使用的算法技术、推荐算法实践中经常会遇到 的难题以及应对之道(其中涉及多任务推荐、多场景推荐、新用户冷启动、新物料冷启动、评估模型效果、定位并解决问题等),最后还用一章的篇幅介绍了推荐算法工程师在工作、学习、面试时应该采取的做法。

推荐理由:

本书所讲的都是各互联网大厂当下主流的推荐算法。本书不会讲述协调过滤、矩阵分解这 类“经典但过时”的算法,尽管它们当下仍可能有用武之地,但绝非互联网大厂的主力算 法,也不是面试时的考察重点。另外,针对一些著名的前沿算法,由于其实现相当复杂, 复现效果也比较有争议,且不是业界主流算法,因此本书也没有在它们身上浪费笔墨。

■本书除了讲解最基本的算法原理,还聚焦于算法工程师的工作实际,关注他们日常遇到 的实际难题。比如,新用户与新物料怎么冷启动?如何打开模型的黑盒,以排查问题或 找到下一步升级改进的方向?线下AUC 涨了,但是线上AB 实验的指标却不涨!这到底 是什么原因造成的? ……

■由于算法工程师也属于广义上的程序员,所以源代码才是最清晰直接的说明文档。为此, 本书针对核心算法都提供了相应的源代码。同时,限于篇幅,书中仅对核心代码进行了 展示,而且给出了相应的注释,以帮助读者彻底理解算法的重要细节。

本书特点:

本书将重心放在了帮助读者梳理算法的发展脉 络方面,指导读者由“术”入“道”,达到“举一反三”的目的。举例如下。

■本书梳理了推荐算法有别于普通机器学习算法的特殊性在哪里。充分认识这一特殊性, 是正确、深刻理解推荐算法的前提,否则外行将无法理解很多推荐算法的精髓。

■Embedding 是深度学习推荐算法的基石,本书用“无中生有”来形容这一技术。本书由 评分卡自然推导出 Embedding, 指出引入 Embedding 是推荐系统增强扩展性的必然结果。

■本书提出了理解深度学习推荐算法的5个维度,可帮助读者加深对推荐算法的理解。

本书为所有向量化召回算法提炼出统一的模型框架,以帮助读者充分理解向量化召回算 法的本质。借助这个框架,读者可以从不同算法中各取所长,构建出适合自己业务场景 的向量化召回算法。

■双塔模型是大厂进行召回、粗排的不二主力。本书指出“改进双塔模型的重点在于减少 信息在塔内流动时的损失”,并总结出了改进双塔模型的4条道路。

■元学习可以助力冷启动问题。但是元学习的经典算法在应用于推荐系统时,必须加以改 造,本书梳理出了三大改造方向。

■对比学习在形式上与向量化召回很相似,因此有很多文章“挂羊头卖狗肉”,将普通的向 量化召回包装成时髦的对比学习来蹭热度。本书辨析了这两个技术的异同,并指出对比 学习应用于推荐系统的本质在于“纠偏”。

《互联网大厂推荐算法实战》目录

第 1章 推荐系统简介 1

1.1 推荐系统的意义 2

1.2 推荐系统是如何运行的 3

1.3 推荐系统架构 5

1.3.1 功能架构 5

1.3.2 数据架构 8

1.4 推广搜的区别与联系 10

1.4.1 三驾马车的相同点 10

1.4.2 推荐与搜索 11

1.4.3 推搜与广告 12

1.5 小结 12

第 2章 推荐系统中的特征工程 14

2.1 批判“特征工程过时”的错误论调 15

2.2 特征提取 16

2.2.1 物料画像 16

2.2.2 用户画像 18

2.2.3 交叉特征 21

2.2.4 偏差特征 22

2.3 数值特征的处理 25

2.3.1 处理缺失值 25

2.3.2 标准化 25

2.3.3 数据平滑与消偏 26

2.3.4 分桶离散化 27

2.4 类别特征的处理 28

2.4.1 类别特征更受欢迎 28

2.4.2 类别特征享受VIP服务 29

2.4.3 映射 30

2.4.4 特征哈希 31

2.5 小结 32

第3章 推荐系统中的Embedding 33

3.1 无中生有:推荐算法中的Embedding 33

3.1.1 传统推荐算法:博闻强识 33

3.1.2 推荐算法的刚需:扩展性 35

3.1.3 深度学习的核心思想:无中生有的Embedding 36

3.1.4 Embedding的实现细节 37

3.2 共享Embedding还是独占Embedding 42

3.2.1 共享Embedding 42

3.2.2 独占Embedding 43

3.3 Parameter Server:推荐算法的训练加速器 46

3.3.1 传统分布式计算的不足 46

3.3.2 基于PS的分布式训练范式 47

3.3.3 PS中的并行策略 49

3.3.4 基于ps-lite实现分布式算法 51

3.3.5 更先进的PS 57

3.4 小结 60

第4章 精排 61

4.1 推荐算法的5个维度 61

4.2 交叉结构 62

4.2.1 FTRL:传统时代的记忆大师 62

4.2.2 FM:半只脚迈入DNN的门槛 69

4.2.3 Wide & Deep:兼顾记忆与扩展 71

4.2.4 DeepFM:融合二阶交叉 74

4.2.5 DCN:不再执着于DNN 76

4.2.6 AutoInt:变形金刚做交叉 79

4.3 用户行为序列建模 86

4.3.1 行为序列信息的构成 86

4.3.2 简单Pooling 86

4.3.3 用户建模要“千物千面” 87

4.3.4 建模序列内的依赖关系 89

4.3.5 多多益善:建模长序列 91

4.4 小结 96

第5章 召回 97

5.1 传统召回算法 97

5.1.1 基于物料属性的倒排索引 98

5.1.2 基于统计的协同过滤算法 99

5.1.3 矩阵分解算法 99

5.1.4 如何合并多路召回 100

5.2 向量化召回统一建模框架 101

5.2.1 如何定义正样本 102

5.2.2 重点关注负样本 103

5.2.3 解耦生成Embedding 105

5.2.4 如何定义优化目标 106

5.3 借助Word2Vec 111

5.3.1 最简单的Item2Vec 112

5.3.2 Airbnb召回算法 116

5.3.3 阿里巴巴的EGES召回 118

5.4 “瑞士军刀”FM的召回功能 120

5.4.1 打压热门物料 121

5.4.2 增广Embedding 122

5.5 大厂主力:双塔模型 124

5.5.1 不同场景下的正样本 124

5.5.2 简化负采样 124

5.5.3 双塔结构特点 126

5.5.4 Sampled Softmax Loss的技巧 127

5.5.5 双塔模型实现举例 129

5.6 邻里互助:GCN召回 131

5.6.1 GCN基础 131

5.6.2 PinSage:大规模图卷积的经典案例 134

5.6.3 异构图上的GCN 142

5.7 小结 143

第6章 粗排与重排 145

6.1 粗排 146

6.1.1 模型:双塔仍然是主力 146

6.1.2 目标:拜精排为师 154

6.1.3 数据:纠正曝光偏差 158

6.1.4 模型:轻量级全连接 159

6.2 重排 161

6.2.1 基于启发式规则 162

6.2.2 基于行列式点过程 165

6.2.3 基于上下文感知的排序学习 174

6.3 小结 180

第7章 多任务与多场景 181

7.1 多任务推荐 181

7.1.1 多任务建模的误区 182

7.1.2 并发建模 182

7.1.3 串行建模 193

7.1.4 多个损失的融合 202

7.1.5 多个打分的融合 206

7.2 多场景推荐 209

7.2.1 特征位置 210

7.2.2 模型结构 211

7.2.3 模型参数 215

7.3 小结 217

第8章 冷启动 219

8.1 Bandit算法 219

8.1.1 多臂老虎机问题 220

8.1.2 Epsilon Greedy 221

8.1.3 UCB 222

8.1.4 概率匹配 223

8.1.5 Bayesian Bandit 223

8.1.6 上下文Bandit 225

8.2 元学习 228

8.2.1 什么是元学习 228

8.2.2 什么是MAML 230

8.2.3 MAML针对推荐场景的改造 233

8.2.4 Meta-Embedding 236

8.3 对比学习 242

8.3.1 对比学习简介 242

8.3.2 对比学习在推荐系统中的作用与使用方式 244

8.3.3 辨析对比学习与向量化召回 246

8.3.4 纠偏长尾物料的实践 247

8.3.5 纠偏小众用户的实践 249

8.4 其他算法 251

8.4.1 迁移学习 251

8.4.2 预测物料消费指标 252

8.4.3 以群体代替个体 253

8.4.4 借鉴多场景推荐 254

8.5 小结 255

第9章 评估与调试 256

9.1 离线评估 256

9.1.1 评估排序算法 257

9.1.2 评估召回算法 261

9.1.3 人工评测 266

9.1.4 持续评估 267

9.2 在线评估:A/B实验 267

9.2.1 线上:流量划分 268

9.2.2 线下:统计分析 273

9.3 打开模型的黑盒 276

9.3.1 外部观察 276

9.3.2 内部剖析 277

9.4 线下涨了,线上没效果 280

9.4.1 特征穿越 280

9.4.2 老汤模型 282

9.4.3 冰山:系统的内在缺陷 284

9.4.4 链路一致性问题 285

9.5 小结 286

第 10章 推荐算法工程师的自我修养 287

10.1 工作 287

10.1.1 重视代码的规范性 287

10.1.2 重视离线评测 288

10.1.3 重视使用工具 289

10.2 学习 290

10.2.1 坚持问题导向 290

10.2.2 重在举一反三 291

10.2.3 敢于怀疑 292

10.2.4 落实代码细节 293

10.3 面试 293

10.3.1 社招 294

10.3.2 校招 296

10.4 小结 297

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1477893.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

0代码自动化测试:RF 框架实现企业级 UI 自动化测试!

RobotFramework框架可以作为公司要做自动化 但是又不会代码的一种临时和紧急情况的替代方案,上手简单。 前言 现在大家去找工作,反馈回来的基本上自动化测试都是刚需!没有自动化测试技能,纯手工测试基本没有什么市场。 但是很多人…

qml 项目依赖

文章目录 出现的问题最终对比下一步 把 apptestQml3_6.exe 放到一个单独目录下,执行 windeployqt.exe ./apptestQml3_6.exe但是出了很多问题,根本运行不起来。 但是在release目录下执行下,程序能跑起来。 根据错误提示,进行添加。…

浮点数二分(一个数开根号)

#include<iostream> using namespace std; int main(){double x;cin>>x;double l0,rx;while(r-l>1e-8){double mid(lr)/2;if(mid*mid>x)rmid;else lmid;}cout<<l<<endl;return 0; }

IJCAI 2023 |时空数据(Spatial-Temporal)论文

本次IJCAI 2023共收到4566份投稿&#xff0c;接收率大约15%&#xff0c;本文总结了IJCAI 2023有关时空数据&#xff08;spatial-temporal&#xff09;的论文。 时空数据Topic:轨迹异常检测&#xff0c;时空预测&#xff0c;信控优化等。 目录 Open Anomalous Trajectory Reco…

大学生课程|统计基础与python分析8|员工离职预测模型(免费下载所有课程材料)

此系列为基础学习系列&#xff0c;请自行学习&#xff0c;课程资源免费获取地址&#xff1a; https://download.csdn.net/download/weixin_68126662/88866689 久菜盒子工作室&#xff1a;大数据科学团队/全网可搜索的久菜盒子工作室 我们是&#xff1a;985硕博/美国全奖doctor/…

深度学习500问——Chapter02:机器学习基础(1)

文章目录 前言 2.1 基本概念 2.1.1 大话理解机器学习本质 2.1.2 什么是神经网络 2.1.3 各种常见算法图示 2.1.4 计算图的导数计算 2.1.5 理解局部最优与全局最优 2.1.5 大数据与深度学习之间的关系 2.2 机器学习学习方式 2.2.1 监督学习 2.2.2 非监督式学习 2.2.3 …

Maven【3】( 依赖的范围,传递性和依赖的排除)(命令行操作)

文章目录 【1】依赖的范围结论验证①验证 compile 范围对 main 目录有效②验证test范围对main目录无效③验证test和provided范围不参与服务器部署 【2】依赖的传递性①compile 范围&#xff1a;可以传递②test 或 provided 范围&#xff1a;不能传递 【3】依赖的排除 【1】依赖…

利用python爬取本站的所有博客链接

前因 由于自己要把csdn的博客同步到hugo中&#xff0c;把博客转为md格式已经搞好了&#xff0c;但是由于csdn的图片具有防盗链&#xff0c;所以打算把所有的图片爬取下来&#xff0c;然后保存在本地 刚好本人略懂一些python&#xff0c;所以自己先写了一个脚本用来爬取各个博…

【Acwing】差分矩阵

图1&#xff1a;a和b数组映射表 由于a是b的前缀和数组&#xff0c;因此改变b[ x1][ y1]之后&#xff0c;受到影响的a中元素如右半图所示 图2&#xff1a;求b数组的前缀和 #include<bits/stdc.h> using namespace std;int n,m,q; int a[1010][1010]; int b[1010][1010]…

最新 RubyMine 2023.3.4 下载与安装 + 永久免费

文章目录 Stage 1 : 官网下载Stage 2 : 下载工具Stage 3-1 : windows为例Stage 3-2 : mac为例常见问题部分小伙伴 Mac 系统执行脚本遇到如下错误&#xff1a;解决方法&#xff1a; 执行脚本做了啥&#xff1f;和正版区别&#xff1f; Stage 1 : 官网下载 先去官网下载 我这里下…

代码随想录算法训练营第二十四天补|● 回溯理论基础 ● 77. 组合

回溯理论基础、组合问题 回溯理论基础 回溯能解决的问题 回溯的本质是穷举&#xff0c;穷举所有可能&#xff0c;然后选出我们想要的答案 回溯如何穷举&#xff1a; 横向遍历for循环&#xff0c;纵向遍历backtracking&#xff08;递归&#xff09;&#xff0c;一般来说&#…

(2024,时空 trasnformer,时空视频分词器,自回归动力学模型,潜在行动模型)Genie:生成式交互环境

Genie: Generative Interactive Environments 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 2. 方法 2.1. 模型组件 2.2. 推理&#xff1a;可控行动视频生成 3. 实验 0. …

数据库orclec;nvl和nvl2的区别

Oracle中nvl()与nvl2()函数详解-CSDN博客 select nvl(null,2) as vb from dual select nvl2(666,2,3) as vb from dual

异常处理(黑马学习笔记)

当前问题 登录功能和登录校验功能我们都实现了&#xff0c;下面我们学习下今天最后一块技术点&#xff1a;异常处理。首先我们先来看一下系统出现异常之后会发生什么现象&#xff0c;再来介绍异常处理的方案。 我们打开浏览器&#xff0c;访问系统中的新增部门操作&#xff0…

如何通过代理IP安全使用Linkedln领英?

LinkedIn是跨境外贸必备的拓客工具&#xff0c;世界各地的许多专业人士都使用领英来作为发布和共享内容的主要工具&#xff0c;这使得它成为跨境出海必备的渠道工具。 但是不少做外贸的朋友都知道&#xff0c;领英账号很容易遭遇限制封禁&#xff0c;但如果善用工具&#xff0…

倾囊相授之性能分析思路

年轻的时候&#xff0c;经常听一些大会或者演讲。有些人说&#xff0c;思路逻辑非常重要。我那时就想&#xff0c;你肯定是瞎忽悠的&#xff0c;因为我怎么就没听懂你说的思路呢&#xff1f; 而现在轮到自己来写或者讲一些东西的时候&#xff0c;才发现他们说得很对&#xff0…

数据分析中生成仪表板制作工具对比,零基础也能实现数据可视化!

#AI生成图表# 仪表板&#xff08;仪表盘&#xff09;在企业做任何数据分析的最后都会需要的&#xff0c;它通过图表、数字、图形和表格等视觉效果&#xff0c;将复杂的数据以直观、易懂的方式展示出来&#xff0c;帮助用户更好地理解数据&#xff0c;以及决策支持和作为一个共…

50kw 直流充电桩测试仪的操作和维护

一、操作步骤 1. 连接电源&#xff1a;将充电桩测试仪的电源线连接到符合规定的电源插座上&#xff0c;确保电源稳定。 2. 连接设备&#xff1a;将充电桩测试仪的测试接口与待测充电桩的充电接口连接&#xff0c;注意接口的对应关系&#xff0c;防止接错。 3. 开机检查&…

请查收:2024年腾讯云服务器优惠价格表_租用配置报价

一张表看懂腾讯云服务器租用优惠价格表&#xff0c;一目了然&#xff0c;腾讯云服务器分为轻量应用服务器和云服务器CVM&#xff0c;CPU内存配置从2核2G、2核4G、4核8G、8核16G、4核16G、8核32G、16核32G、16核64等配置可选&#xff0c;公网带宽1M、3M、5M、12M、18M、22M、28M…

二叉搜索树题目:把二叉搜索树转换为累加树

文章目录 题目标题和出处难度题目描述要求示例数据范围 前言解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 解法三思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;把二叉搜索树转换为累加树 出处&#xff1a;538. 把二叉搜索树转换为累加树 …