这个笔记,是我记录的阅读该书,对我比较有用的一些点。不算是能完全覆盖全书知识点的笔记。
能完全覆盖全书知识点,比较详尽的笔记,可以参考如下。
《深度学习推荐系统》超级详细读书笔记https://www.zhihu.com/tardis/bd/art/444018628
推荐系统模型——前深度学习时代
传统推荐算法 | 优势 | 劣势 |
简单协同过滤算法 | 算法简单 不需要领域知识 能发掘新的兴趣点 | 数据稀疏 冷启动问题 头部效应明显 |
矩阵分解算法 | 缓解数据稀疏问题 泛化能力加强 | 损失其它相关用户物品和上下文信息 缺乏解释性 |
逻辑回归模型 | 模型简单,易于实现 学习各个特征权重,具有可解释性 | 表达能力较差 没有进行特征组合和特征筛选 |
因子分解机模型 | 解决稀疏数据交叉特征组合问题 模型表达能力增强 | 模型参数多,训练困难 容易过拟合 无法学习三阶及以上特征 |
梯度提升树+逻辑回归组合模型(GBDT+LR 组合模型) | 自动化特征组合端到端训练 减少手工特征组合 | 泛化能力差 容易过拟合 |
强烈推荐延伸阅读资料1
深度学习在推荐学习系统的应用,相关模型简介
相比AutoRec模型过于简单的网络结构带来的一些表达能力不强的问题,Deep Crossing模型完整地解决了从特征工程、稀疏向量稠密化、多层神经网络进行优化目标拟合等一系列深度学习在推荐系统中的应用问题,为后续的研究打下了良好的基础。
因为在阅读本书的过程中,在机器学习的实践方面,刚好遇到了特征稀疏的问题,所以对这里的【稀疏向量稠密化】这个方面比较感兴趣。
在下面的Deep Crossing模型介绍中,其对【稀疏向量稠密化】做了具体的说明,“Embedding 层的作用是将稀疏的类别型特征转换成稠密的Embedding向量”
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Deep Crossing模型的网络结构为完成端到端的训练,Deep Crossing模型要在其内部网络中解决如下问题。
(1)离散类特征编码后过于稀疏,不利于直接输入神经网络进行训练,如何解决稀疏特征向量稠密化的问题。
(2)如何解决特征自动交叉组合的问题。
(3)如何在输出层中达成问题设定的优化目标。
Deep Crossing模型分别设置了不同的神经网络层来解决上述问题。如图3-6所示,其网络结构主要包括4层——Embedding层、Stacking层、Multiple Residual Units层和Scoring层。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Wide&Deep模型
3.6 Wide&Deep模型——记忆能力和泛化能力的综合
Wide&Deep模型的主要思路正如其名,是由单层的Wide部分和多层的Deep部分组成的混合模型。其中,Wide部分的主要作用是让模型具有较强的“记忆能力”(memorization);Deep部分的主要作用是让模型具有“泛化能力”(generalization),正是这样的结构特点,使模型兼具了逻辑回归和深度神经网络的优点——能够快速处理并记忆大量历史行为特征,并且具有强大的表达能力
3.6.1 模型的记忆能力与泛化能力
Wide&Deep模型的设计初衷和其最大的价值在于同时具备较强的“记忆能力”和“泛化能力”。“记忆能力”是一个新的概念,“泛化能力”虽在之前的章节中屡有提及,但从没有给出详细的解释,本节就对这两个概念进行详细的解释。“记忆能力”可以被理解为模型直接学习并利用历史数据中物品或者特征的“共现频率”的能力。一般来说,协同过滤、逻辑回归等简单模型有较强的“记忆能力”。由于这类模型的结构简单,原始数据往往可以直接影响推荐结果,产生类似于“如果点击过A,就推荐B”这类规则式的推荐,这就相当于模型直接记住了历史数据的分布特点,并利用这些记忆进行推荐。
因为Wide&Deep是由谷歌应用商店(Google Play)推荐团队提出的,所以这里以App推荐的场景为例,解释什么是模型的“记忆能力”。
假设在Google Play 推荐模型的训练过程中,设置如下组合特征:AND (user_installed_app=netflix,impression_app=pandora)(简称netflix&pandora),它代表用户已经安装了netflix这款应用,而且曾在应用商店中看到过pandora这款应用。如果以“最终是否安装pandora”为数据标签(label),则可以轻而易举地统计出netflix&pandora这个特征和安装pandora这个标签之间的共现频率。假设二者的共现频率高达10%(全局的平均应用安装率为1%),这个特征如此之强,以至于在设计模型时,希望模型一发现有这个特征,就推荐pandora这款应用(就像一个深刻的记忆点一样印在脑海里),这就是所谓的模型的“记忆能力”。
像逻辑回归这类简单模型,如果发现这样的“强特征”,则其相应的权重就会在模型训练过程中被调整得非常大,这样就实现了对这个特征的直接记忆。相反,对于多层神经网络来说,特征会被多层处理,不与其他特征进行交叉,因此模型对这个强特征的记忆反而没有简单模型深刻。
泛化能力”可以被理解为模型传递特征的相关性,以及发掘稀疏甚至从未出现过的稀有特征与最终标签相关性的能力。矩阵分解比协同过滤的泛化能力强,因为矩阵分解引入了隐向量这样的结构,使得数据稀少的用户或者物品也能生成隐向量,从而获得有数据支撑的推荐得分,这就是非常典型的将全局数据传递到稀疏物品上,从而提高泛化能力的例子。再比如,深度神经网络通过特征的多次自动组合,可以深度发掘数据中潜在的模式,即使是非常稀疏的特征向量输入,也能得到较稳定平滑的推荐概率,这就是简单模型所缺乏的“泛化能力”。
在通过交叉积变换层操作完成特征组合之后,Wide 部分将组合特征输入最终的LogLoss输出层,与Deep部分的输出一同参与最后的目标拟合,完成Wide与Deep部分的融合
深度学习,在推荐系统中的应用,总结:
沿着特征工程自动化的思路,深度学习模型从PNN 一路走来,经过了Wide&Deep、Deep&Cross、FNN、DeepFM、NFM等模型,进行了大量的、基于不同特征互操作思路的尝试。但特征工程的思路走到这里几乎已经穷尽了可能的尝试,模型进一步提升的空间非常小,这也是这类模型的局限性所在。从这之后,越来越多的深度学习推荐模型开始探索更多“结构”上的尝试,诸如注意力机制、序列模型、强化学习等在其他领域大放异彩的模型结构也逐渐进入推荐系统领域,并且在推荐模型的效果提升上成果显著。
Embedding技术在推荐系统中的应用(第4章 )
4.1.3 Embedding技术对于深度学习推荐系统的重要性
回到深度学习推荐系统上,为什么说Embedding 技术对于深度学习如此重要,甚至可以说是深度学习的“基础核心操作”呢?原因主要有以下三个:
(1)推荐场景中大量使用one-hot编码对类别、id 型特征进行编码,导致样本特征向量极度稀疏,而深度学习的结构特点使其不利于稀疏特征向量的处理,因此几乎所有深度学习推荐模型都会由Embedding层负责将高维稀疏特征向量转换成稠密低维特征向量。因此,掌握各类Embedding技术是构建深度学习推荐模型的基础性操作。
(2)Embedding本身就是极其重要的特征向量。相比MF等传统方法产生的特征向量,Embedding的表达能力更强,特别是Graph Embedding技术被提出后,Embedding几乎可以引入任何信息进行编码,使其本身就包含大量有价值的信息。在此基础上,Embedding向量往往会与其他推荐系统特征连接后一同输入后续深度学习网络进行训练。
(3)Embedding对物品、用户相似度的计算是常用的推荐系统召回层技术。在局部敏感哈希(Locality-Sensitive Hashing)等快速最近邻搜索技术应用于推荐系统后,Embedding 更适用于对海量备选物品进行快速“初筛”,过滤出几百到几千量级的物品交由深度学习网络进行“精排”。
所以说,Embedding技术在深度学习推荐系统中占有极其重要的位置,熟悉并掌握各类流行的Embedding 方法是构建一个成功的深度学习推荐系统的有力武器。
Embedding相关技术总结
推荐系统应用——特征工程、召回、冷启动
探索与利用
《淮南子》中有一句话非常有名:“先王之法,不涸泽而渔,不焚林而猎。”否定的是做事只顾眼前利益,不做长远打算的做法。那么在推荐系统中,有没有所谓的眼前利益和长远打算呢?当然是有的。所有的用户和物品历史数据就像是一个鱼塘,如果推荐系统只顾着捞鱼,不往里面补充新的鱼苗,那么总有一天鱼塘中鱼的资源会逐渐枯竭,以至最终无鱼可捞。
这里的“捞鱼”行为指的就是推荐系统一味使用历史数据,根据用户历史进行推荐,不注重发掘用户新的兴趣、新的优质物品。那么,“投放鱼苗”的行为自然就是推荐系统主动试探用户新的兴趣点,主动推荐新的物品,发掘有潜力的优质物品。
给用户推荐的机会是有限的,推荐用户喜欢的内容和探索用户的新兴趣这两件事都会占用宝贵的推荐机会,在推荐系统中应该如何权衡这两件事呢?这就是“探索与利用”试图解决的问题
解决“探索与利用”问题目前主要有三大类方法。
(1)传统的探索与利用方法:这类方法将问题简化成多臂老虎机问题。主要的算法有ε-Greedy(ε贪婪)、Thompson Sampling(汤普森采样)和UCB。该类解决方法着重解决新物品的探索和利用,方法中并不考虑用户、上下文等因素,因此是非个性化的探索与利用方法。
(2)个性化的探索与利用方法:该类方法有效地结合了个性化推荐特点和探索与利用的思想,在考虑用户、上下文等因素的基础上进行探索与利用的权衡,因此被称为个性化探索与利用方法。
(3)基于模型的探索与利用方法:该类方法将探索与利用的思想融入推荐模型之中,将深度学习模型和探索与利用的思想有效结合,是近年来的热点方向
深度学习推荐系统——前沿行业内的工程实践(Facebook、Youtube)
CTR预估、Criteo数据集
推荐系统-工程师能力
推荐延伸阅读材料:
1、智能推荐系统研究综述①
http://c-s-a.org.cn/csa/article/pdf/8403
2、特征交叉与特征融合综述
http://www.360doc.com/content/22/0621/10/35712332_1036842363.shtml
3、深度学习推荐系统(五)Deep&Crossing模型及其在Criteo数据集上的应用
深度学习推荐系统(五)Deep&Crossing模型及其在Criteo数据集上的应用-CSDN博客
4、推荐系统-飞浆深度学习实战 清华大学出版社
http://www.tup.tsinghua.edu.cn/upload/books/yz/094994-01.pdf
5、基于PaddleRec复现经典CTR预估算法
仅需24小时,带你基于PaddleRec复现经典CTR预估算法
6、Click-Through Rate Prediction on Criteo
Criteo Benchmark (Click-Through Rate Prediction) | Papers With Code
7、Torch-Rechub学习分享、Torch-Rechub学习分享1
Torch-Rechub学习分享 - 简书
Torch-Rechub学习分享2 - 简书 (jianshu.com)
8、推荐系统研究进展与应用 - 武汉大学学报
武汉大学学报(理学版) (whu.edu.cn)