DeepFM: A Factorization-Machine based Neural Network for CTR Prediction简介

论文简介

Abstract

对于一个基于CTR预估的推荐系统,最重要的是学习到用户点击行为背后隐含的特征组合。在不同的推荐场景中,低阶组合特征或者高阶组合特征可能都会对最终的CTR产生影响。但是现存的方法总是忽视了高阶或低阶组合特征的联系,或者要求专门的特征工程,因此作者建立了DeepFM模型,将FM与DNN结合起来。

Introduction

在这里插入图片描述

DeepFM的预测结果可以写为:

y ^ = s i g m o i d ( y F M + y D N N ) \hat{y}=sigmoid(y_{FM}+y_{DNN}) y^=sigmoid(yFM+yDNN)

FM部分

FM部分的详细结构如下:

在这里插入图片描述

已知我们FM公式如下:

在这里插入图片描述

在目前很多的DNN模型中,都是借助了FM这种形式来做的embedding,具体推导如下:参考自该博客

在这里插入图片描述

借助原文的图,这里k表示隐向量的维数, V i j V_{ij} Vij表示第i个特征embeding之后在隐向量的第j维。假设已经给出了V矩阵,

在这里插入图片描述

其中第5-15个特征是同一个field经过one-hot编码后的表示,这是隐向量按列排成矩阵,同时,它也可看作embedding层的参数矩阵,按照神经网络前向传播的方式,embedding后的该slot下的向量值应该表示为:

在这里插入图片描述

可以看到这个结果就是一个5维的向量,而这个普通的神经网络传递时怎么和FM联系到一起的,仔细观察这个式子可以发现,由于是离散化或者one-hot之后的X,所以对于每一个field的特征而言,截断向量X都只有一个值为1,其他都为0。那么假设上述slot的V中,j为7的特征值为1,那么矩阵相乘之后的结果为:

在这里插入图片描述

从结果中可以看到,实质上,每个slot在embedding后,其结果都是one-hot后有值的那一维特征所对应的隐向量。看到这里,在来解释模型中FM部分是如何借助这种方式得到的。回到模型的示意图,可以看到在FM层,是对每两个embedding向量做内积,那么我们来看,假设两个slot分别是第7和第20个特征值为1:

在这里插入图片描述

是不是感觉特别熟悉,没错,这个乘积的结果就是FM中二阶特征组合的其中一例,而对于所有非0组合(embedding向量组合)求和之后,就是FM中所有二阶特征的部分,这就是模型中FM部分的由来。

当然,FM中的一阶特征,则直接在embedding之前对于特征进行组合即可。

DNN部分

在这里插入图片描述

两个主要的特点:

  • 每个field的embedding保持相同的size
  • FM中的隐向量v被用作embedding 权重压缩数据

FM部分和深度部分分享一样的特征嵌入层能够带来两个好处:

  • 可以学到低阶和高阶特征联系
  • 不需要对输入进行专门的特征工程

可以参考我的github来看看源代码,如有错误,欢迎交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值