元数据
深度学习推荐系统
- 书名: 深度学习推荐系统
- 作者: 王喆
- 简介: 深度学习在推荐系统领域掀起了一场技术革命,本书从深度学习推荐模型、Embedding技 术、推荐系统工程实现、模型评估体系、业界前沿实践等几个方面介绍了这场技术革命中的主 流技术要点。
- 出版时间: 2020-03-01 00:00:00
- ISBN: 9787121384646
- 分类: 科学技术-工业技术
- 出版社: 电子工业出版社
- PC地址:https://weread.qq.com/web/reader/b7732f20813ab7c33g015dea
高亮划线
推荐序
📌 模型的设计和实现是解耦的。 ⏱ 2023-09-26 20:38:12
📌 关键性的技术破局点是算法与系统架构的协同设计(algo-system co-design)。 ⏱ 2023-09-26 20:40:05
1.1 为什么推荐系统是互联网的增长引擎
📌 用户角度:推荐系统解决在“信息过载”的情况下,用户如何高效获得感兴趣信息的问题。从理论上讲,推荐系统的应用场景并不仅限于互联网 ⏱ 2023-09-26 20:43:08
📌 推荐系统解决产品能够最大限度地吸引用户、留存用户、增加用户黏性、提高用户转化率的问题,从而达到公司商业目标连续增长的目的。 ⏱ 2023-09-26 21:02:13
📌 推荐系统的“终极”优化目标应包括两个维度:一个维度是用户体验的优化;另一个维度是满足公司的商业利益。 ⏱ 2023-09-26 21:02:48
1.2 推荐系统的架构
📌 物品信息 ⏱ 2023-09-26 21:05:50
📌 用户信息 ⏱ 2023-09-26 21:06:00
📌 “场景信息”或“上下文信息”。 ⏱ 2023-09-26 21:06:05
📌 对于用户U(user),在特定场景C(context)下,针对海量的“物品”信息,构建一个函数f(U,I,C),预测用户对特定候选物品I (item)的喜好程度,再根据喜好程度对所有候选物品进行排序,生成推荐列表的问题。 ⏱ 2023-09-26 21:06:20
📌 模型的结构一般由“召回层”“排序层”“补充策略与算法层”组成。 ⏱ 2023-09-29 09:51:13
2.2 协同过滤——经典的推荐算法
📌 协同过滤”就是协同大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出目标用户可能感兴趣的信息的推荐过程 ⏱ 2023-09-29 09:51:21
📌 在互联网应用的场景下,用户数往往远大于物品数,而UserCF需要维护用户相似度矩阵以便快速找出To p n相似用户。 ⏱ 2023-09-29 09:51:26
📌 用户的历史数据向量往往非常稀疏,对于只有几次购买或者点击行为的用户来说,找到相似用户的准确度是非常低的 ⏱ 2023-09-29 09:51:10
📌 ItemCF是基于物品相似度进行推荐的协同过滤算法。通过计算共现矩阵中物品列向量的相似度得到物品之间 ⏱ 2023-09-29 09:51:26
📌 而UserCF正适用于发现热点,以及跟踪热点的趋势。 ⏱ 2023-09-27 18:32:52
📌 ItemCF更适用于兴趣变化较为稳定的应用, ⏱ 2023-09-29 09:51:27
📌 协同过滤的天然缺陷——推荐结果的头部效应较明显,处理稀疏向量的能力弱。 ⏱ 2023-09-29 09:51:23
2.3 矩阵分解算法——协同过滤的进化
📌 矩阵分解算法则期望为每一个用户和视频生成一个隐向量,将用户和视频定位到隐向量的表示空间上(如图2-4(b)所示),距离相近的用户和视频表明兴趣特点接近, ⏱ 2023-09-29 09:51:04
📌 “矩阵分解”的算法框架下,用户和物品的隐向量是通过分解协同过滤生成的共现矩阵得到的 ⏱ 2023-09-29 09:51:24
📌 矩阵分解算法将m×n维的共现矩阵R分解为m×k维的用户矩阵U和k×n维的物品矩阵V相乘的形式 ⏱ 2023-09-29 09:51:17
📌 对矩阵进行矩阵分解的主要方法有三种:特征值分解(Eigen Decomposition)、奇异值分解(Singular Value Decomposition,SVD)和梯度下降(Gradient Descent)。 ⏱ 2023-09-29 09:51:15
📌 (1)奇异值分解要求原始的共现矩阵是稠密 ⏱ 2023-09-29 09:51:25
📌 传统奇异值分解的计算复杂度达到了O(mn2)的级别[4], ⏱ 2023-09-29 09:51:22
📌 梯度下降法成了进行矩阵分解的主要方 ⏱ 2023-09-29 09:51:17
📌 正则化对应的英文是Regularization,直译过来是“规则化”,即希望让训练出的模型更“规则”、更稳定,避免预测出一些不稳定的“离奇”结果。 ⏱ 2023-09-29 09:51:16
2.4 逻辑回归——融合多种特征的推荐模型
📌 逻辑回归模型将推荐问题转换成了一个点击率(Click Through Rate,CTR)预估问题。 ⏱ 2023-09-29 09:51:15
📌 逻辑回归作为广义线性模型的一种,它的假设是因变量y服从伯努利分布。那么在CTR预估这个问题上,“点击”事件是否发生就是模型的因变量y,而用户是否点击广告是一个经典的掷偏心硬币问 ⏱ 2023-09-29 09:51:10
2.5 从FM到FFM——自动特征交叉的解决方案
📌 著名的“辛普森悖论”用一个非常简单的例子,说明了进行多维度特征交叉的重要性。 ⏱ 2023-09-29 09:51:19
📌 在对样本集合进行分组研究时,在分组比较中都占优势的一方,在总评中有时反而是失势的一方,这种有悖常理的现象,被称为“辛普森悖论”。下 ⏱ 2023-09-29 09:51:06
📌 逻辑回归只对单一特征做简单加权,不具备进行特征交叉生成高维组合特征的能力,因此表达能力很弱,甚至可能得出像“辛普森悖论”那样的错误结论 ⏱ 2023-09-29 09:51:21
📌 one-hot编码是将类别型特征转换成向量的一种编码方式。 ⏱ 2023-09-27 18:32:50
📌 FM为每个特征学习了一个隐权重向量(latent vector)。在特征交叉时,使用两个特征隐向量的内积作为交叉特征的权重 ⏱ 2023-09-29 09:51:19
📌 当[插图]特征与[插图]特征进行交叉时,[插图]特征会从[插图]的这一组隐向量中挑出与特征[插图]的域f2对应的隐向量[插图]进行交叉。同理,[插图]也会用与[插图]的域f1对应的隐向量进行交叉 ⏱ 2023-09-29 09:51:20
📌 FFM引入了特征域的概念,为模型引入了更多有价值的信息,使模型的表达能力更强,但与此同时,FFM的计算复杂度上升到kn2,远大于FM的kn。 ⏱ 2023-09-29 09:51:18
2.6 GBDT+LR——特征工程模型化的开端
📌 GBDT通过逐一生成决策子树的方式生成整个树林,生成新子树的过程是利用样本标签值与当前树林预测值之间的残差,构建新的子树 ⏱ 2023-09-29 09:51:14
📌 GBDT+LR组合模型的提出,意味着特征工程可以完全交由一个独立的模型来完成,模型的输入可以是原始的特征向量,不必在特征工程上投入过多的人工筛选和模型设计的精力,实现真正的端到端(End to End)训练。 ⏱ 2023-09-29 09:51:04
2.7 LS-PLM——阿里巴巴曾经的主流推荐模型
📌 LS-PLM的结构与三层神经网络极其相似,在深度学习来临的前夜,可以将它看作推荐系统领域连接两个时代的节点。 ⏱ 2023-09-29 09:51:11
📌 在逻辑回归的基础上加入聚类的思想,其灵感来自对广告推荐领域样本特点的观察。 ⏱ 2023-09-29 09:51:24
📌 首先用聚类函数π对样本进行分类(这里的π采用了softmax 函数对样本进行多分类),再用LR模型计算样本在分片中具体的CTR,然后将二者相乘后求和。 ⏱ 2023-09-29 09:51:05
📌 LS-PLM可以看作一个加入了注意力(Attention)机制的三层神经网络模型,其中输入层是样本的特征向量,中间层是由m 个神经元组成的隐层,其中m 是分片的个数,对于一个CTR预估问题,LS-PLM的最后一层自然是由单一神经元组成的输出层。 ⏱ 2023-09-29 09:51:08
3.4 NeuralCF模型——CF与深度学习的结合
📌 NeuralCF 用“多层神经网络+输出层”的结构替代了矩阵分解模型中简单的内积操作 ⏱ 2023-09-29 09:51:22
3.5 PNN模型——加强特征交叉能力
📌 唯一的区别在于PNN模型用乘积层(Product Layer)代替了Deep Crossing模型中的Stacking层。也就是说,不同特征的Embedding向量不再是简单的拼接,而是用Product操作进行两两交互,更有针对性地获取特征之间的交叉信息。 ⏱ 2023-10-12 09:38:01
3.6 Wide&Deep模型——记忆能力和泛化能力的综合
📌 “记忆能力”可以被理解为模型直接学习并利用历史数据中物品或者特征的“共现频率”的能力。 ⏱ 2023-10-12 09:43:19
📌 “泛化能力”可以被理解为模型传递特征的相关性,以及发掘稀疏甚至从未出现过的稀有特征与最终标签相关性的能力。矩阵分解比协同过滤的泛化能力强,因为矩阵分解引入了隐向量这样的结构,使得数据稀少的用户或者物品也能生成隐向量,从而获得有数据支撑的推荐得分,这就是非常典型的将全局数据传递到稀疏物品上,从而提高泛化能力的例子。 ⏱ 2023-10-12 09:45:40
3.8 注意力机制在推荐模型中的应用
📌 注意力的轻重更应该由同类信息的相关性决定。 ⏱ 2023-10-13 08:41:09
📌 注意力机制在数学形式上只是将过去的平均操作或加和操作换成了加权和或者加权平均操作。这一机制对深度学习推荐系统的启发是重大的。 ⏱ 2023-10-13 08:41:32
3.9 DIEN——序列模型与推荐系统的结合
📌 DIEN 在模拟兴趣进化的过程中,需要考虑与目标广告的相关性。 ⏱ 2023-10-13 08:46:17
📌 但在工程实现上需要注意:序列模型比较高的训练复杂度,以及在线上推断过程中的串行推断,使其在模型服务过程中延迟较大,这无疑增大了其上线的难度,需要在工程上着重优化。 ⏱ 2023-10-13 08:47:34
3.10 强化学习与推荐系统的结合
📌 竞争梯度下降算法(Dueling Bandit Gradient Descent Algorithm)。 ⏱ 2023-10-13 08:52:18
第4章 Embedding技术在推荐系统中的应用
📌 主要作用是将稀疏向量转换成稠密向量,便于上层深度神经网络处理 ⏱ 2023-10-13 09:36:31
4.1 什么是Embedding
📌 推荐场景中大量使用one-hot编码对类别、id 型特征进行编码,导致样本特征向量极度稀疏,而深度学习的结构特点使其不利于稀疏特征向量的处理,因此几乎所有深度学习推荐模型都会由Embedding层负责将高维稀疏特征向量转换成稠密低维特征向量 ⏱ 2023-10-13 09:38:33
4.3 Item2vec——Word2vec在推荐系统领域的推广
📌 广义上的Item2vec模型其实是物品向量化方法的统称,它可以利用不同的深度学习网络结构对物品特征进行Embedding化。 ⏱ 2023-10-13 13:32:59
📌 Item2vec方法也有其局限性,因为只能利用序列型数据,所以Item2vec在处理互联网场景下大量的网络化数据时往往显得捉襟见肘,这就是Graph Embedding技术出现的动因。 ⏱ 2023-10-13 13:32:52
4.4 Graph Embedding——引入更多结构信息的图嵌入技术
📌 网络的“同质性”指的是距离相近节点的Embedding应尽量近似 ⏱ 2023-10-13 13:34:10
📌 结构性”指的是结构上相似的节点的Embedding 应尽量近似 ⏱ 2023-10-13 13:34:21
📌 方法EGES(Enhanced Graph Embedding with Side Information)[9],其基本思想是在DeepWalk生成的Graph Embedding基础上引入补充信息。 ⏱ 2023-10-13 13:35:18
4.5 Embedding与深度学习推荐系统的结合
📌 (3)通过计算用户和物品的Embedding相似度,Embedding可以直接作为推荐系统的召回层或者召回策略之一。 ⏱ 2023-10-13 19:52:15
📌 ,Embedding的本质是建立高维向量到低维向量的映射,而“映射”的方法并不局限于神经网络,可以是任何异构模型。 ⏱ 2023-10-13 19:54:00
📌 物品或用户的Embedding是比较稳定的 ⏱ 2023-10-13 19:54:35
4.6 局部敏感哈希——让Embedding插上翅膀的快速搜索方法
📌 通过建立kd(k-dimension)树索引结构进行最近邻搜索是常用的快速最近邻搜索方法,时间复杂度可以降低到O(log2n)。 ⏱ 2023-10-13 19:56:39
📌 局部敏感哈希(Locality Sensitive Hashing,LSH) ⏱ 2023-10-13 19:56:55
📌 在欧式空间中,将高维空间的点映射到低维空间,原本相近的点在低维空间中肯定依然相近,但原本远离的点则有一定概率变成相近的点。 ⏱ 2023-10-13 19:57:36
📌 有效的解决方法是采用m个哈希函数同时进行分桶。同时掉进m个哈希函数的同一个桶的两点 ⏱ 2023-10-13 19:58:26
5.1 推荐系统的特征工程
📌 特征的本质其实是对某个行为过程相关信息的抽象表达 ⏱ 2023-10-13 20:04:30
📌 上下文信息(context)是描述推荐行为产生的场景的信息。 ⏱ 2023-10-13 20:06:27
📌 对于这类特征的处理,最常用的处理手段包括归一化、离散化、加非线性函数等方法。 ⏱ 2023-10-13 20:08:30
📌 离散化是通过确定分位数的形式将原来的连续值进行分桶,最终形成离散值的过程。 ⏱ 2023-10-13 20:08:47
5.3 推荐系统的实时性
📌 模型更新得越频繁,实时性越好,损失越小,效果越好。 ⏱ 2023-10-13 20:21:17