- 学习王喆老师的深度学习推荐系统第3章
- 学习深度学习推荐模型的演化流程
- 了解模型改进的一般方式改变深度神经网络的复杂程度 特征交叉 模型组合
- 深度学习模型总结
一、与传统机器学习模型相比,深度学习模型的优势
1、表达能力更强 能够挖掘出更多数据中潜藏的模式
2、结构非常灵活能够根据业务场景和数据特点,灵活调整模型结构,使模型与应用场景完美契合
深度学习推荐模型的演化关系图:
- 改变神经网络的复杂程度
代表模型:AutoRec –> Deep Crossing
- 改变特征交叉方式
代表模型 NeuralCF, PNN
- 组合模型
代表模型:Wide&Deep, Deep&Cross, DeepFM
思路:通过组合两种不同特点、优势互补的深度学习网络,提升模型的综合能力
4、FM 模型的深度学习演化版本
代表模型:NFM, FNN, AFM
5、注意力机制与推荐模型的结合
代表模型:AFM, DIN
6、序列模型与推荐模型的结合
特点:使用序列模型模拟用户行为或用户兴趣的演化趋势
代表模型:DIEN
7、强化学习与推荐模型的结合
代表模型:DRN
AutoRec — 单隐层神经网络推荐模型
AutoRec 模型将自编码器 ( AutoEncoder ) 的思想和协同过滤结合的一种单隐层神经网络推荐模型
基本原理
1、利用协同过滤中的共现矩阵,完成物品向量或用户向量的自编码
2、再利用自编码的结果得到用户对物品的预估评分,进行进行推荐排序
AutoRec 模型的结构
重建函数的具体形式:
目标函数
目标函数形式如下,后边一项是L2正则化项,目的是为了防止过拟合:
基于 AutoRec 模型的推荐过程
I-AutoRec
输入向量:物品的评分向量
U-AutoRec
输入向量:用户的评分向量
U-AutoRec 相比 I-AutoRec 的优势
仅需输入一次目标用户的用户向量,就可以重建用户对所有物品的评分向量
即:得到用户的推荐列表仅需一次模型推断过程
U-AutoRec 相比 I-AutoRec 劣势
用户向量的稀疏性可能会影响模型效果
AutoRec 模型的特点和局限性:
AutoRec 模型从神经网络的角度出发,使用一个单隐层的 AutoEncoder 泛化用户或物品评分,使模型具有一定的泛化和表达能力。由于 AutoRec 模型的结构比较简单,使其存在一定的表达能力不足的问题。
Deep Crossing 模型 — 经典的深度学习架构
Deep Crossing 模型的网络结构
模型主要由4层组成:
Embedding层:将稀疏的类别型特征转换成稠密的 Embedding 向量
Embedding层结构:以全连接层结构为主
补充:Feature#2 : 代表数值型特征,其不需要经过 Embedding 层,直接进入 Stacking 层
Stacking ( 堆叠 )层:把不同的 Embedding 特征和数值型特征拼接在一起,形成新的包含全部特征的特征向量
Multiple Residual Units 层:
主要结构:多层感知机 / MLP
Scoring 层:输出层,拟合优化目标,对于CTR预估这种二分类问题,结构往往使用LR结构;对于类似图像分类等多分类问题,结构往往采用Softmax结构。
采用多层残差网络作为 MLP 的具体实现
多层残差网络对特征向量各个维度进行充分的交叉组合,使模型能够抓取到更多的非线性特征特征和组合特征的信息
Deep Crossing 模型对特征交叉方法的革命
Deep Crossing 模型中没有任何人工特征工程的参与,原始特征经 Embdding 后输入神经网络层,将全部特征交叉的任务交给模型,相比于 FM / FFM 只具备二阶特征交叉的能力,Deep Crossing 模型可以通过调整神经网络的深度进行特征之间的深度交叉
特点:
① 基于Embedding+MLP架构设计
② 特征交叉层复杂度较高
NeuralCF 模型 — CF与深度学习的结合
CF(协同过滤)发展出了矩阵分解技术,就是把共现矩阵分解为用户向量矩阵和物品向量矩阵。在预测时,计算用户隐向量和物品隐向量的内积,作为用户对物品的评分预测。
从深度学习的视角重新审视矩阵分解模型
在实际使用矩阵分解来训练和评估模型的过程中,往往会发现模型容易处于欠拟合状态,其原因是:矩阵分解的模型结构相对比较简单,特别是输出层(也被称为 Scoring 层),无法对优化目标进行有效的拟合
NeuralCF 模型的结构
左图是矩阵分解技术的网络化表示,右图是NeuralCF结构,很显然区别就是用神经网络代替了矩阵分解中的内积操作(内积操作用于计算用户对所有物品的评分列表,然后排序生成推荐列表)。
替换掉内积的好处
- 让用户向量和物品向量做更充分的交叉,得到更多的有用价值的特征组合信息。
- 引入更多的非线性特征,让模型的表达能力更强。
- 用户和物品向量的互操作可以被替换成任意的互操作,这就是“广义矩阵分解”模型。进一步分析,还可以把多种互操作得到的特征向量拼接起来,再送到输出层进行目标拟合。如下图,用户和物品向量分别经过GMF层和MLP层的互操作之后拼接起来,再送入输出层NeuralCF结构进行目标拟合。这样让模型具有了更强的特征组合和非线性能力。
特点
① NeuralCF实际提出了一种模型框架,基于用户和物品向量这个Embedding层,利用不同的互操作进行特征的交叉组合。
② 实践中并不是模型结构越复杂、特征越多越好。因为过于复杂之后容易出现过拟合和难收敛的问题。
③ 局限性:NeuralCF基于CF的思想,因此也没有引入更多其他类型的特征,比如用户和物品的属性信息等。
泛化(双塔模型)
NeuralCF 的模型结构之中,蕴含了一个非常有价值的思想,就是我们可以把模型分成用户侧模型和物品侧模型两部分,然后用互操作层把这两部分联合起来,产生最后的预测得分。
这里的用户侧模型结构和物品侧模型结构,可以是简单的 Embedding 层,也可以是复杂的神经网络结构,最后的互操作层可以是简单的点积操作,也可以是比较复杂的 MLP 结构。
但只要是这种用户侧模型 + 物品侧模型 + 互操作层的模型结构,我们把它统称为“双塔模型”结构。
优势
1、让用户向量和物品向量做更充分的交叉,得到更多有价值的特征组合信息
2、引入更多的非线性特征,让模型的表达能力更强
局限性
由于是基于协同过滤的思想进行构造的,所以 NerualCF 没有引入更多其他类型的特征这在实际应用中无疑浪费了其他有价值的信息
PNN 模型 — 加强特征交叉能力PNN 模型的网络架构
NeuralCF模型的局限性就是只能使用用户和物品向量,如果加入更多组特征向量
模型结构:
特征交叉方式
如PNN结构图中Product层分为两部分:
① z部分是直接把Embedding结果线性拼接起来;
② p部分是对各特征向量进行两两的内积操作或者外积操作,因为是两两操作,所以p部分总共有N ( N − 1 ) /2 个圆圈(神经元)。
假如p部分是内积操作(称为IPNN模型)
每个圆圈(神经元)是一个标量,和z部分特征向量直接拼接起来输入下一层即可。
假如p部分是外积操作(称为OPNN模型)
每个圆圈(神经元)是一个方阵,因此每个神经元需要搭配一个可学习的参数方阵W,两个方阵对应元素相乘之后,再把整个方阵累加成一个标量,剩下的就和内积操作一样了。
但是这样的话,问题的复杂度提升巨大,于是论文介绍了一种降维方法,把所有Embedding向量叠加,然后叠加后的特征向量通过外积互操作得到矩阵p。然后再和L1层的D1个权重方阵对应元素相乘再累加成标量,就得到了一个D 1维的输出向量。
但是,并不建议上述降维方法,因为把不同特征向量对应维度累加,容易丢失或模糊很多有价值的信息,比如“年龄”和“地域”两个特征向量不在同一个向量空间中,显然不具备任何可比性,因为不应该直接操作。
特点
① 强调了特征之间的交叉方式是多样化的,有效的交叉方式会更有利于捕获特征的交叉信息。
② 局限性:外积操作为了简化操作,对特征进行了无差别的交叉、累加,忽略了原始特征中包含的高价值信息。
网络架构
相比于 Deep Crossing 模型PNN 模型用乘积层 ( Product Layer ) 代替了 Deep Crossing 模型中的 Stacking 层
即:不同特征的 Embedding 向量不再是简单的拼接,而是用 Product 操作进行两两交互,更有针对性地获取特征之间的交叉信息
相比 NeuralCF 模型PNN 模型的输入不仅包括用户和物品信息,还可有更多不同形式、不同来源的特征,通过Embedding 层的编码生成同样长度的稠密特征 Embedding 向量
Product 层的多种特征交叉方式
PNN 模型在经过对特征的线性和乘积操作后,并没有把结果直接送入上层的L1全连接层,而是在乘积层内部又进行了局部全连接层的转换
PNN 模型的优势和局限性
局限性
在外积操作的实际应用中,为了优化训练效率进行了大量的简化操作 对所有特征进行无差别的交叉 在一定程度上,忽略了原始特征向量中包含的有价值的信息
Wide & Deep 模型 — 记忆能力和泛化能力的综合
简单模型的记忆能力强
善于记忆用户行为特征中的信息,并根据此类信息直接影响推荐结果
深度神经网络的泛化能力强
Wide&Deep 模型的结构图
概述
主要思路
由单层的 Wide 部分和多层的 Deep 部分组成的混合模型
Wide 部分:让模型具有较强的记忆能力( memorization )
Deep 部分:让模型具有泛化能力( generalization )
优势
兼具逻辑回归和深度神经网络的优点
1、能够快速处理并记忆大量历史行为特征
2、具有强大的表达能力
开启了不同网络结构融合的新思路
输出采用 softmax / logistic regression 综合 Wide 和 Deep 部分的输出
模型的记忆能力与泛化能力
记忆能力
概念:模型直接学习历史数据中物品或者特征的“共现频率”,并且把它们直接作为推荐依据的能力。
举例:在电影推荐中可以发现一系列的规则,比如,看了 A 电影的用户经常喜欢看电影 B,这种“因为 A 所以 B”式的规则,非常直接也非常有价值。
特点:1)数量非常多,一个“记性不好”的推荐模型很难把它们都记住;2)没办法推而广之,因为这类规则非常具体,没办法或者说也没必要跟其他特征做进一步的组合。
作用:让模型记住大量的直接且重要的规则,这正是单层的线性模型所擅长的。
泛化能力
概念:模型对于新鲜样本、以及从未出现过的特征组合的预测能力。
举例:假设我们知道 25 岁的男性用户喜欢看电影 A,35 岁的女性用户也喜欢看电影 A。问:“35 岁的男性喜不喜欢看电影 A”,那么:
只有记忆能力的模型回答:不知道,没有学过这个知识。
具有泛化能力的模型回答:从第1条可以学习到男性喜欢电影A,第2条可以学习到35岁喜欢电影A,那综合就是35岁男性喜欢电影A。
举例:矩阵分解算法,就是为了解决协同过滤“泛化能力”不强而诞生的。协同过滤只会“死板”地使用用户的原始行为特征,而矩阵分解因为生成了用户和物品的隐向量,所以就可以计算任意两个用户和物品之间的相似度了。
简单模型的记忆能力强
善于记忆用户行为特征中的信息,并根据此类信息直接影响推荐结果
深度神经网络的泛化能力强
Wide 层:广义线性结构
模型能够从历史数据中学习到高频共现的特征组合,发掘特征之间的相关性,通过特征交叉产生特征相互作用的记忆,高效可解释。
Deep 层:前馈神经网络
模型能够利用相关性的传递性去探索历史数据中从未出现过的特征组合,通过 embedding 方法,使用低维稠密特征输入,可以更好的泛化训练样本中从未出现的交叉特征
概述
把单输入层的 Wide 部分与由 Embedding 层和多隐层组成的 Deep 部分连接起来,一起输入最终的输出层
1、单层的 Wide 部分:善于处理大量稀疏的 id 类特征
2、Deep 部分:利用神经网络表达能力强的特点,进行深层的特征交叉,挖掘隐藏在特征背后的数据模式
3、最终,利用逻辑回归模型,输出层将 Wide 部分和 Deep 部分组合起来,形成统一的模型
详细结构
特点
Wide&Deep成功的关键在于:
① 抓住了业务问题的本质特点,融合了传统模型记忆能力和深度学习模型泛化能力的优势。
② 模型结构不复杂,易于工程实现、训练和线上服务,这加速了在业界的推广应用。
收获与总结:
从AutoRec模型采用自自编码器对用户或者物品编码,到Deep Crossing利用“Embedding+多隐层+输出层”的经典深度学习框架,利用全连接层进行特征交叉,到NeuralCF 将传统的矩阵分解中用户向量和物品向量的点积操作,换成为神经网络的互操作,其实他就是表达能力加强版的矩阵分解,但它只用到了用户和物品特征,没有加入其他特征。PNN的出现进一步提高不同特征域之间的特征交叉能力。再到Wide&Deep模型利用Wide部分加强对原始输入信息的记忆能力,利用Deep部分做特征交叉提高把模型的泛化能力。由于Wide&Deep模型中Wide部分需要人工进行特征组合的筛选,利用Cross网络来替换Wide解决这个问题,也就是Deep&Cross模型产生。深度网络模型再推荐系统的应用,提高了模型的泛华能力,引入了更多的特征域,作为推荐系统的输入,并且考虑到原始特征的信息在特征交叉过程中会损失所以有了改进将一些信息输入到深度神经网络做特征交叉,然后将特征交叉后的信息和原始信息再结合,所有特征筛选就是一个要解决的问题。
- 深入了解上次用pytorch代码复现的FM模型,
- 学习FM与深度学习模型的结合
- 用FM的印象量完成Embedding层初始化的FNN模型
- 用FM代替Wide部分的DeepFM模型
- FM的神经网络化尝试 NFM模型
- 引入注意力机智的FM AFM模型
3.对FM模型及其与深度学习的结合模型进行归纳总结
今天的文章深度学习模型汇总[通俗易懂]分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/77291.html