推荐系统与深度学习(十三)——常见模型比较

公众号后台回复“图书“,了解更多号主新书内容

作者: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购书活动
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值