特征组合之DeepFM

特征组合之DeepFM

1. 为什么需要DeepFM?
我们在之前的文章中提到FM, FMM,理论上,FM可以处理高阶的特征组合,但由于计算复杂度的原因,一般只处理二阶的特征组合(即在FM章节提到的度为2的FM)。所以我们很一般地想到用DNN的方法来解决拟合更高阶的特征组合。

注:可以很显然地得知,高阶的特征组合的参数时阶乘上涨的。比如2阶的FM的特征组合部分的参数数量时 C(n,2),则三阶的时C(n,3)

2.DeepFM的提出思路?

在CTR预估的过程中,特征组合后one hot编码常常会导致特征非常稀疏。在这个场景下,将one hot 特征直接输入DNN会导致参数爆炸,DNN中会有过多的参数,所以是不可行的。

在这里插入图片描述

如何解决这个问题呢?借鉴FMM的思路,引入filed,将特征分为不同的filed。
在这里插入图片描述

低阶和高阶的特征组隐含在两个隐层中。
在这里插入图片描述

将DNN与FM融合:
在这里插入图片描述

所以网络融合分为两种结构:(1)并行结构。 (2)串行结构。
在这里插入图片描述
在这里插入图片描述

3. 什么是DeepFM?
DeepFM是并行网络融合的一个典型,它为了融合低阶特征组合和高阶特征组合,用FM加上DNN的并行方式。
在这里插入图片描述

DeepFM包含两部分:神经网络部分与因子分解机部分,分别负责低阶特征的提取和高阶特征的提取。这两部分共享同样的输入。DeepFM的预测结果可以写为:

在这里插入图片描述

分为FM部分和DNN部分:
FM因子分解机在上篇博客中游详细的介绍。
DNN部分:
在这里插入图片描述
深度部分是一个前馈神经网络。与图像或者语音这类输入不同,图像语音的输入一般是连续而且密集的,然而用于CTR的输入一般是及其稀疏的。因此需要重新设计网络结构。具体实现中为,在第一层隐含层之前,引入一个嵌入层作embedding来完成将输入向量压缩到低维稠密向量。
在这里插入图片描述

代码实现:https://link.jianshu.com/?t=https%3A%2F%2Fgithub.com%2FChenglongChen%2Ftensorflow-DeepFM

参考:
DeepFM介绍
FM,FFM,DeepFM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值