deep deepfm wide 区别_吃透论文——推荐算法不可不看的DeepFM模型

大家好,我们今天继续来剖析一些推荐广告领域的论文。

今天选择的这篇叫做DeepFM: A Factorization-Machine based Neural Network for CTR Prediction,翻译过来就是DeepFM:一个基于深度神经网络的FM模型。这篇paper的作者来自哈工大和华为,不得不说在人工智能领域的很多论文都是国产的,作为从业者还是非常欣喜能看到这点的。

通过名字我们也能看得出来,今天的这篇paper本质上其实是FM模型的一个进阶或者说是优化版本。如果对FM模型不太了解的同学可以通过下方传送门回顾一下:

本文同样很长,建议先马后看。

摘要

对于CTR预估的模型来说,一个很重要的点就是学习用户行为对应的特征背后的潜在联系。虽然目前在这个领域已经取得了一些进展(截止2017年),但是目前的做法要么在低维或者高维的特征上存在很大的偏差,要么需要大量的专家级的特征工程。

在本篇paper当中,我们设计了一种新的模型DeepFM,从而找到了一种可能性,可以同时提升低维和高维的特征。它结合了FM和神经网络模型的长处,和Google最新的Wide & Deep模型的做法相比,取得了更大的进步,并且还免去了特征工程的部分。

摘要里面内容不多,主要是拉踩了一下同行。

简介

对推荐场景来说,CTR是最关键的指标,除了广告系统会按照CTR x bid来进行排序之外,推荐系统一般都会严格地按照预估的CTR进行排序。所以这其中的关键问题就是准确地预估CTR。

为了方便大家的理解,简单介绍一下目前常规的做法。一般来说常规的推荐系统当中的特征分为四个部分,第一个部分是用户特征,是关于用户的一些信息。比如是男是女,是否是高收入群体,是否是高消费群体,成为平台的用户多久了,偏好平台当中什么类目的商品等等。第二个部分是商品特征,就是关于item的一些信息,比如价格、类目、折扣、评价等等。第三个部分是上下文特征,比如当前的时间,是早上还是晚上,比如item展示的位置等等。最后一个部分是用户实时的行为,比如用户在浏览这个商品之前还看过哪些其他的商品,他登陆平台多久了,等等。

显然用户是否会点击某一个item是由以上这四个部分的信息共同作用的,比如给一个高富帅推兰博基尼或者是百达翡丽就是有吸引力的,给一个连听都没听说过的屌丝推同样的内容显然就屁用没有。也就是说商品的特征和用户的特征之间是存在逻辑上的关联的,我们一般称为特征的交叉。

这些交叉信息往往是隐式的,也就是我们不能直接描述和形容出来的。举个简单的例子,可能并不是所有富人都喜欢奢侈品,有些可能就喜欢电子消费品,还有些可能喜欢服装或者是旅行。人的喜好是很复杂的,我们很难用固定的规则去描述。所以这就需要模型能有这样的能力去学习这些特征之间的潜在联系,对这些潜在交叉信息把握越好的模型,一般也都拥有越好的效果。

比如我们分析了主流的app store市场之后发现,在饭点的时候,用户经常会下载外卖类的app,这说明了app的类别和时间之间存在交叉关系。再比如我们发现年轻的男生往往喜欢设计类游戏,这说明了app的类别与用户的性别之间也存在交叉关系。像是这样的交叉信息还有很多,从Wide & Deep模型的经验当中我们可以学到考虑低维和高维交叉特征之后,模型的效果会更好。

这里面的一个关键挑战是如何高效地对特征之间的交叉信息进行建模,其中的一些比较容易理解,也比较容易做出特征来,然而大部分的交叉信息是隐式的,难以直观理解的,比如啤酒和尿布的例子就是一个,只有大数据挖掘才能发现。即使是直观上容易理解的部分,由于涉及的数量太大,也不可能通过手工来全部处理。

之后paper当中拉踩了一下同行,首先说明了单纯的CNN以及RNN效果不好,这个比较容易想明白,RNN主要应用场景是序列场景,比如文本、音频等,用在CTR预估上并不合适。CNN也是一样,主要应用在图片等高维度的数据当中,也不太适合推荐场景。

然后还比较了一下同年发表的其他三篇论文,FNN、PNN以及Wide & Deep。也是一些常规套话,没有太多的分析,比如在低维高维特征的交叉上表现不足啦,比如需要过多的特征工程啦等等。其中Wide & Deep我们之前写文章剖析过了,FNN和PNN大家感兴趣可以去读一下paper,在业内用的不多,应该是效果不太理想。经过了一番比较之后提出了本文的观点,我们可以设计出一种效果更好并且会自动学习特征之间交叉信息的模型。

方案

我们假设训练集当中一共有n条样本,每一条样本可以写成。其中的是一个m个field组成的向量,包含了用户和item组成的特征。,y=0表示用户没有点击,相反,y=1表示用户点击。

我们再来看样本的特征,这m维特征可以看成两部分组成,第一部分是类别特征,比如性别、地理位置、收入情况等等。第二种是连续性特征,比如平均花费、平均停留时间等等。类别特征(categorical feature)一般被表示成一个one-hot之后的向量,而一个连续特征,一般就是表示它自己,当然也可以离散化成one-hot向量。

我们把这些特征全部处理完之后,整个向量会转化成,这里的每一个field和向量一一对应。由于这当中做了一些离散化的处理,会使得x向量变得非常稀疏。所以我们要做的就是在这样特征比较稀疏的样本上建立一个CTR预测模型。

DeepFM

我们希望能够设计模型能够更好地学习低维和高维特征之间的交互,基于这点,我们在深度模型的基础上结合了FM,推出了DeepFM模型。它的整体结构如下图:

这张图看起来可能会有点乱,我们可以先忽略一些局部的细节,先从整体上把握。这个模型可以分成两个部分,分别是FM部分以及Deep部分。这两个部分的输入是一样的,并没有像Wide & Deep模型那样做区分。

其实这个模型还是比较好理解的,神经网络也就是Deep的部分用来训练这些特征的一维的关联以及联系,而FM模型会通过隐藏向量V的形式来计算特征之间的二维交叉的信息。最后一维和二维的信息汇总到一起,进入sigmoid层,获得最终的结果。

用公式来表达的话,大概是这样:

FM部分

FM部分其实就是因子分解机,我们在之前的文章当中曾经专门剖析过。FM会考虑所有特征之间两两交叉的情况,相当于人为对左右特征做了交叉。但是由于n个特征交叉的组合是这个量级,所以FM设计了一种新的方案,对于每一个特征i训练一个向量,当i和j两个特征交叉的时候,通过来计算两个特征交叉之后的权重。这样大大降低了计算的复杂度。

这当中涉及一些公式的推导和计算,我们在之前的文章当中已经详细推导过了,这里就不多赘述了。

最终我们可以得到这部分的公式:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值