公众号后台回复“图书“,了解更多号主新书内容
作者:livan
来源:数据python与算法
模型汇总简介
前面描述了如此多的深度模型,如图:
貌似都可以用来做推荐系统排序和CTR预估,那么,这些模型有什么相同点和不同点呢?
我们对其中一部分做一些分析,后续会添加全量模型比较和模型选择方法~
FM与FFM的区别
1)FM是在LR的基础上添加了二次项,用来表示特征交叉对模型的影响;
2)FFM是在FM的基础上添加了场域的概念,用于表示各个特征之间的关系,各个特征之间的强相关、负相关等通过在FM模型上添加一个关系向量表示,因此,形成了FFM模型。
AFM与NFM的区别
看一下AFM与NFM的图形:
NFM模型
AFM模型
AFM:在FM的基础上添加了attention的机制:
1)由于最后的加权累加,二次项并没有进行更深的网络去学习非线性交叉特征,所以AFM并没有发挥出DNN的优势,也许结合DNN可以达到更好的结果。
2)不同的特征之间的交叉,重要程度不一样,AFM通过添加Attention机制调整二次项系数,性能有所提升,没有dropout的情况下效果也大幅优于FM。
NFM:NFM模型将FM与神经网络结合,提升FM捕捉特征间多阶交互信息的能力:
1)对FM模型的二次项部分增加隐含层,以提高模型高纬度的特征交叉能力,如果去掉隐含层则还原成FM模型。
2)将模型复杂度提高,不可避免的会面临训练过拟合的问题,NFM使用了dropout与batch normalization技术来缓解过拟合问题,但需要注意使用的顺序。
3)NFM的Bi-Interaction Layer能充分的捕获二阶交叉特征信息,所以只需要接入较浅的隐层结构就能捕获更高阶的信息,从而取得不错的效果。NFM对于参数初始化不敏感,更容易进行训练优化。
4)NFM与Wide&Deep与Deep Crossing效果差异不大,不过NFM训练较为简便。
SNN、FNN与PNN的区别
看一下FNN与PNN的图形:
FNN模型
PNN模型
SNN模型
FNN:先使用预先训练好的FM,得到隐向量,然后作为DNN的输入来训练模型。
缺点在于:
1)受限于FM预训练的效果,Embedding的参数受FM的影响,不一定准确;
2)预训练阶段增加了计算复杂度,训练效率低;
3)FNN只能学习到高阶的组合特征,没有对低阶特征建模。
SNN:SNN和FNN模型区别于最底层的训练方法:
1)FNN最底层先用FM初始化,SNN最底层是全连接的,不区分不同的field。
2)SNN初始化采用RBM(限制玻尔兹曼机)和DAE(自动编码机)。
PNN:捕获高阶组合特征,在Embedding layer和first hidden layer之间增加了一个product layer,但是内积的计算复杂度依旧非常高。
原因是:
1)product layer的输出是要和第一个隐藏层进行全连接的;
2)product layer的输出需要与第一个隐藏层全连接,计算复杂度居高不下;
3)和FNN一样,只能学习到高阶的特征组合,没有对于1、2阶特征建模。
Deep&Cross、Wide&Deep与deepFM的区别
先看一下Wide&Deep与deepFM模型的图形:
Wide&Deep模型
deepFM模型
Deep&Cross模型
从图中,我们看到区别为:
Wide&Deep:同时学习低阶和高阶组合特征,它混合了一个线性模型(Wide part)和Deep模型(Deep part)。
1)Wide part和Deep part两部分需要不同的输入,Deep part直接输入one-hot;
2)Wide part部分的输入中二阶特征交叉需要靠特征工程来实现,通过wide部分发挥作用。
Deep&Cross:是融合了FM与Wide & Deep的特性。
1)对比Wide & Deep,不需要特征工程来获得高阶的交叉特征;
2)对比 FM 系列的模型,DCN 拥有更高的计算效率并且能够提取到更高阶的交叉特征。
DeepFM:在Wide&Deep的基础上进行改进:
1)不需要预训练FM得到隐向量;
2)不需要人工特征工程,能同时学习低阶和高阶的组合特征;
3)FM模块和Deep模块共享Feature Embedding部分,可以更快的训练,以及更精确的训练学习。
4)从试验结果来看DeepFM效果优于wide&deep。
此处是对主要模型做了总结,详细模型描述会投放在各个模型文章中,欢迎大家查看。
◆ ◆ ◆ ◆ ◆
麟哥新书已经在京东上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前京东正在举行100-50活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:
点击下方小程序即可进入购买页面:
数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。
管理员二维码:
猜你喜欢
● 麟哥拼了!!!亲自出镜推荐自己新书《数据分析师求职面试指南》● 厉害了!麟哥新书登顶京东销量排行榜!● 笑死人不偿命的知乎沙雕问题排行榜
● 用Python扒出B站那些“惊为天人”的阿婆主!● 你相信逛B站也能学编程吗点击阅读原文,即可参与京东100-50购书活动