3.1 深度学习相比传统机器学习模型的优势
-
表达能力更强,能够挖掘出更多数据中潜藏的模式
-
模型结构非常灵活,可以根据业务场景和数据特点,灵活调整模型结构,使模型与应用场景完美契合
-
深度学习模型的演变方向
-
改变神经网络的复杂程度
-
从单层神经网络模型AutoRec(自编码推荐)到经典的深度神经网络结构(Deep Crossing)深度交叉
-
增加了神经网络的层数和结构复杂度
-
-
改变特征交叉方式
-
丰富了深度学习网络中特征交叉的方式
-
如改变了用户向量和物品向量互操作方式的NeuralCF
-
定义了多种特征向量交叉操作的PNN(Product-based Neural Network)
-
-
组合模型
-
主要指Wide&Deep模型及其后续变种Deep&Cross、DeepFM
-
通过组合两种不同特点、优势互补的深度学习网络,提升模型的综合能力
-
-
FM模型的深度学习演化版本
-
NFM(Neural Factorization Machine)、FNN(Factorization-machine supported Neural Network)、AFM(Attention neural Factorization Machine)
-
NFM神经网络因子分解机主要使用神经网络提升FM二阶部分的特征交叉能力
-
FNN基于因子分解机支持的神经网络利用FM的结果进行网络初始化
-
AFM是引入了注意力机制的FM模型
-
-
注意力机制与推荐模型的结合
-
将注意力机制引入深度学习推荐模型中
-
如AFM、DIN
-
-
序列模型与推荐模型的结合
-
使用序列模型模拟用户行为或用户兴趣的演化趋势
-
代表模型是DIEN(Deep Interest Evolution Network)
-
-
强化模型与推荐模型结合
-
将强化学习引入推荐领域,强调模型的在线学习和实时更新
-
代表模型是DRN(Deep Reinforcement Learning Network)
-
-
3.2 AutoRec——单隐层神经网络推荐模型
-
2015年澳大利亚国立大学提出
-
基本原理是用协同过滤中的共现矩阵,完成物品向量或用户向量的自编码,利用自编码结果得到用户对物品的预估评分,进而进行推荐排序
-
自编码器相当于一个重建函数,重新输出对输入向量的更新向量
-
重建函数存储了所有输入向量的“精华”,重建函数的参数量远小于输入向量的维度数量,因此自编码器相当于完成了数据压缩和降维的工作
-
输出向量由于经过自编码器的泛化过程,不完全等同于输入向量,因此具备了一定的缺失维度的预测能力,这也是自编码器可以用于推荐系统的原因
-
神经网络的训练方法就是基于链式法则的梯度反向传播
-
基于链式法则,让损失函数对不同层的激活函数求偏导,从而更新不同层的参数
-
3.3 Deep Crossing模型——经典的深度学习架构
-
2016年微软提出,用于精准投放、推荐搜索时的广告,预测CTR
-
模型主要分为四层:Embedding层、Stacking层、Multiple Residual Units层和Scoring层
-
Embedding层将稀疏的类别型特征one hot向量转换成稠密、更低维的Embedding向量,数值型特征不用进入Embedding层,直接进入Stacking层
-
Stacking层将不同的类别型特征和数值型特征拼接在一起,形成新的包含全部特征的特征向量
-
Multiple Residual Units层对特征向量各个维度进行充分的交叉组合
-
短路操作/跳跃连接:输入向量直接与ReLU全连接层的输出进行元素加操作
-
中间的残差单元其实拟合的是输出和输入之间的“残差”
-
可以减少深层网络过拟合的发生,因为跳跃连接,可以减少过拟合的发生
-
可以解决梯度消失问题
-
梯度反向传播过程中,越靠近输入端,梯度的幅度越小,参数收敛的速度越慢
-
在残差单元中使用ReLU激活函数替代原来的sigmoid函数可以解决这个问题,sigmoid靠近正负无穷的时候,值都接近为0,容易发生梯度消失
-
此外跳跃连接相当于直接把梯度毫无变化的传播到下一层,这也使得残差网络的收敛速度更快
-
-
梯度爆炸
-
也是因为在链式法则中,梯度相乘,若某些梯度很大,则会越乘越大,最后超过精度或者参数变化很大,无法收敛
-
通过使用ReLU或者Residual结构或者设置梯度阈值或者加入正则化项可以缓解
-
-
-
Scoring层为了拟合优化目标而存在,使用逻辑回归预测CTR
-
-
总体上是Embedding+多层神经网络的经典深度学习结构,没有注意力机制、序列模型等结构
-
其革命意义是没有任何人工特征工程参与,全部特征交叉交给MRU层
3.4 NeuralCF模型——CF与深度学习的结合
-
传统的矩阵分解预测太简单了,就是用户向量和物品向量做内积
-
2017年由新加坡国立大学提出
-
NeuralCF用“多层神经网络+输出层”的结构替代了矩阵分解模型中简单的内积操作
-
用户向量和物品向量的互操作层可以被任意互操作形式替代,如元素积
-
利用不同的互操作层进行特征的交叉组合,而且可以拼接
-
局限就是没有引入更多其他类型的特征
3.5 PNN模型——加强特征交叉能力
-
PNN模型在DCN的基础上把Stacking层换成了乘积层,与NeuralCF相比允许输入其他更多特征
-
乘积层包括两个部分
-
一部分是特征之间两两拼接的线性拼接部分
-
另一部分是特征两两之间作乘积操作的部分
-
乘积操作包括内积和外积
-
内积就是向量内积
-
外积是特征向量各维度两两交叉,生成特征交叉矩阵(M x M维),M是特征向量的维度
-
-
-
PNN强调不同特征之间的交互,但都交互,忽略了原始特征中有价值的信息
3.6 Wide & Deep模型——记忆能力和泛化能力的综合
-
2016年由谷歌提出
-
Wide部分让模型具有较强的记忆能力,Deep部分让模型具有较强的泛化能力
-
记忆能力是指能记住很多重要特征,根据这个重要特征做出精准推荐,一般像CF、LR这样的简单模型记忆能力强
-
相比于多层网络,特征会被多层处理,不断与其他特征交叉,模型对强特征的记忆反而没有简单模型深刻
-
泛化能力指的是即使是稀疏或没见过的特征输入,模型也能做出较好的预测
-
Wide & Deep模型结构:
-
单层的Wide部分善于处理大量稀疏的id类特征
-
Deep部分利用神经网络表达能力强的特征,进行深层的特征交叉
-
最后输出层利用逻辑回归模型,输出预测
-
-
Deep & Cross模型
-
Cross网络替代Wide部分,目的是增加特征之间交叉的力度
-
-
Wide & Deep成功的关键
-
抓住了业务问题的本质特点,能够融合传统模型记忆能力和深度学习模型泛化能力的优势
-
模型结构并不复杂,在工程上易实现、训练和上线,加速了在业界的推广
-
3.7 FM与深度学习模型的结合
-
FNN——用FM的隐向量完成Embedding层初始化
-
Embedding层参数占整个神经网络的绝大部分
-
由于输入向量过于稀疏,在梯度下降过程中,只有与非零特征相连的Embedding层权重会被更新
-
以上两个原因都会让随机初始化的Embedding层参数收敛很慢
-
因此使用FM训练好的各特征隐向量初始化Embedding层参数,相当于在初始化时引入了有价值的先验信息,加速神经网络收敛
-
-
DeepFM——用FM替代Wide部分
-
相比于Deep & Cross,用FM替代多层Cross网络进行特征交叉,将输入的Embedding向量当作原FM中的特征隐向量
-
改进动机和Deep & Cross一样,都是针对Wide部分无法进行自动的特征组合进行的
-
-
NFM——FM的神经网络化尝试
-
FM系列模型的最大限制就是,它只能到二阶特征交叉,再多就组合爆炸了
-
NFM用神经网络取代FM中的二阶部分
-
-
特征交叉池化层在进行两两Embedding向量的元素积操作后,对交叉特征向量取和,得到池化层的输出向量
-
可以认为NFM是对Wide & Deep的Deep部分加了特征交叉池化层,加强了特征交叉
-
FNN、DeepFM、NFM都是在神经网络的基础上加入有针对性的特征交叉操作
-
沿着特征工程自动化的思路,Wide&Deep, Deep&Cross, FNN, DeepFM, NFM都做了不同特征交叉的工作,至此特征工程已到尽头
-
后续探索结构上的尝试,如注意力机制、序列模型、强化学习,并且效果很显著
3.8 注意力机制在推荐模型中的应用
-
AFM——引入注意力机制的FM
-
实际就是在NFM的特征交叉层和输出层之间加了个注意力网络
-
对每一个交叉特征赋予一个注意力分数
-
注意力网络结构是一个简单的全连接层加softmax输出层的结构
-
-
DIN——引入注意力机制的深度学习网络
-
由阿里在2018年提出
-
输入特征分为两大块,分别是用户特征组和广告特征组
-
用户特征组中有行为序列,用候选广告来提取用户每个行为的注意力分数
-
生成注意力分数的激活单元的输入层是两个Embedding向量,经过元素减操作后,与原Embedding向量一同连接后形成全连接层的输入,最后通过单神经元输出层生成注意力得分
-
-
注意力机制的引入是基于人天生的注意力机制的特点,对这一机制的模拟,可以更接近人的思考过程
-
相比学术界,工业界的推荐算法工程师更需基于对业务的理解推进推荐模型的演化
3.9 DIEN——序列模型与推荐系统的结合
-
序列信息的重要性
-
加强了最近行为对下次行为预测的影响
-
序列模型能够学习到购买趋势的信息
-
-
DIEN模型的架构
-
兴趣进化网络分为三层
-
行为序列层:把原始id类行为序列转换成Embedding行为序列
-
兴趣抽取层:通过模拟用户兴趣迁移的过程,抽取用户兴趣
-
兴趣进化层:在兴趣抽取层上加入注意力机制,模拟与当前目标广告相关的兴趣进化过程
-
-
-
兴趣抽样层
-
GRU(Gated Recurrent Unit)门循环单元网络,相比RNN解决了梯度消失问题,相比LSTM参数更少
-
经由GRU组成的兴趣抽样层后,用户的行为向量被进一步抽象化,形成了兴趣状态向量h(t
-
-
兴趣进化层
-
在兴趣抽样层上加入了注意力机制
-
当前状态向量与目标广告向量进行相互作用的结果
-
通过AUGRU(GRU with Attentional Update gate), 在原GRU更新门的结构上加入了注意力得分
-
3.10 强化学习与推荐系统的结合
-
环境:包括网站、APP、用户组成的整个推荐系统的外部环境
-
行动:推荐系统做出的推荐行为
-
反馈:用户给出的反馈,正反馈如点击行为,负反馈如曝光但未点击行为
-
状态:包括用户特征向量、物品特征向量
-
推荐系统初始化 -> 行为 -> 环境 -> 反馈 -> 状态 -> 行为 ->……
-
适合在线学习,根据用户及时反馈,不断更新模型参数
-
DQN:Deep Quality Network,指通过行动进行质量评估
-
把用户特征和环境特征归为状态向量,因为它们与具体行动无关
-
把用户-物品交叉特征和物品特征归为行动特征,因为它们与推荐物品这一行动有关
-
-
用户特征和环境特征经过左侧多层神经网络生成价值(value)得分V(s)
-
利用状态向量和行动向量生成优势(advantage)得分A(s, a)
-
最终把两部分综合起来得到最终的质量得分Q(s, a)
-
DRN的学习过程:每个一小段时间根据新数据进行微更新,一大段时间后根据所有数据进行主更新
-
DRN的在线训练方法——竞争梯度下降算法
-
对已训练好的网络Q的模型参数增加随机扰动,得到探索网络Q'
-
两个网络分别生成推荐列表,用Interleaving将两个推荐列表组合后推给用户
-
实时收集用户反馈,若探索网络Q'生成的内容好于当前网络Q,则用探索网络代替当前网络,进入下一轮迭代;反之保留当前网络
-
产生随机扰动的公式如下:
-