推荐系统8---FNN、DeepFM与NFM(FM在深度学习中的身影重现)

1,前言

Wide&Deep模型开启深度学习时代的组合模型之后,后面的模型都是在Wide&Deep的基础上进行各种方式的模型组合,以应对不同的模型任务。从大的角度看,模型的改进方向主要有两点:
1,特征交互上要进一步加强学习,来增强模型的表达能力。
2,尽量避免人工构造特征工程,尽量实现端到端。
FNN,DeepFM,NFM模型的发展逻辑:
FNN模型是2016年提出的一个FM和DNN模型的组合。这个模型底层是FM,上层是DNN,该模型提出的目的是特征之间的交叉和表达能力的增强。
2017年DeepFM模型出现,相比较FNN模型,该模型仍然是FM和DNN的组合,但不是串行,而是基于Wide&Deep模型的架构,换成并行的方式。让FM充当W&D中的Wide部分。这样既考虑了低阶交叉,也考虑高阶交叉,并且实现了端到端,避免了W&D中的特征工程。但是该模型的FM仍然是二阶交叉,无可避免的会限制模型表达能力。
2017年,NFM也被提出,这个模型也可以看成是W&D的计划模型,它改进了FM的二阶隐向量内积部分,换成一个表达能力更强的函数,并且Deep部分也完成了特征交叉池化层。

2,FNN模型

2.1FNN模型简介

CTR任务中,传统的线性模型,比如LR模型不能利用特征之间的交互信息,而一些非线性模型,如FM,表达能力又不够强。因此,在深度学习时代,提出了FM与DNN的组合模型:基于因子分解机的神经网络模型(Factorization Machine supported Neural Network,FNN)模型,该模型的灵感在于图像领域CNN通过相邻层连接扩大感受野的做法,使用DNN来对FM显示表达的二阶特征再交叉,从而产生更加高阶的特征组合,加强模型对数据模式的学习能力。

在这里插入图片描述

FNN模型的训练分成预训练和正式训练两个阶段。预训练阶段对FM模型进行训练,然后用FM训练好的特征隐向量对正式训练的模型进行embedding层的初始化操作。这样在正式训练的时候,就加速了模型的收敛过程。

2.2 FNN模型详解

1,底层FM模型
在这里插入图片描述


x是输入特征,它是高维稀疏的。可以分成N个Field。每个Field中,只有一个值为1,其余的都为0(即one-hot)。Field i可以表示成 X [ s t a r t i , e n d i ] X[start_{i},end_{i}] X[starti,endi] W 0 i W_{0}^{i} W0i是Field i的embedding矩阵。 W 0 i ⋅ X [ s t a r t i , e n d i ] ] W_{0}^{i}\cdot X[start_{i},end_{i}]] W0iX[starti,endi]] 在代码实现中,就是对每个Field(比如性别),基于该Field域所有的可能取值进行LableEncoder,LableEncoder的值与 W 0 i W_{0}^{i} W0i中的每一个embedding向量一一对应。对于每一个具体的样本,它的Field i域的值是LableEncoder 中的某一个值,然后根据LableEncoder的值,从 W 0 i W_{0}^{i}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值