推荐

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

Abstract

了解用户行为背后复杂的特征交互对于提高推荐系统的点击率(CTR)至关重要。尽管有了很大的进步,现有的方法似乎对低阶或高阶交互有强烈的bias,或者需要专门的特征工程。在本文中,我们证明了推出一个端到端的可学习模型是可能的,它同时强调低阶和高阶的特征交互。提出的模型DeepFM在一个新的神经网络体系结构中结合了用于推荐的factorization machines和用于特征学习的深度学习的能力。与谷歌最新的Wide & Deep模型相比,DeepFM的“wide”和“deep”部分共享输入,除了原始特征外,不需要进行特征工程。在benchmark数据和商业数据上进行了综合实验,验证了DeepFM相对于现有CTR预测模型的有效性和效率。

1 Introduction

在推荐系统中,点击率(CTR)的预测是至关重要的,其任务是估计用户点击推荐商品的概率。在许多推荐系统中,目标是最大限度地增加点击次数,因此应该根据估计的点击率对返回给用户的商品进行排名;而在在线广告等其他应用场景中,提高收入也很重要,因此在所有候选对象中,排名策略可以调整为CTR×bid,“bid”是用户点击商品时系统获得的收益。无论哪种情况,关键都在于正确估计点击率。

了解用户点击行为背后的隐式特征交互对点击率预测具有重要意义。通过我们对主流apps市场的研究,我们发现人们经常在用餐时间下载外卖apps,这表明app类别和时间戳之间的(order-2,二阶)互动可以作为点击率的信号。第二,男性青少年喜欢射击游戏和RPG游戏,这意味着app类别、用户性别和年龄的(order-3,3阶)交互是CTR的另一个信号。一般来说,用户点击行为背后的特征交互可能是高度复杂的,低阶和高阶特征交互都应该发挥重要作用。根据谷歌的Wide & Deep模型[Cheng et al., 2016]的见解,同时考虑低阶和高阶特征交互比单独考虑任何一种情况带来了额外的改进。

关键的挑战是如何有效地建模特征交互。有些特性交互很容易理解,因此可以由专家设计(如上面的实例)。然而,大多数特征交互都隐藏在数据中,难以识别先验(例如经典的关联规则“尿布和啤酒”是从数据中挖掘出来的,而不是由专家发现的),只能通过机器学习自动捕获。即使对于易于理解的交互,专家似乎也不太可能对它们进行详尽的建模,特别是当特征数量很大的时候。

广义线性模型,如FTRL [McMahan et al.,2013]虽然简单,但在实践中表现出了良好的性能。然而,线性模型缺乏学习特征交互的能力,通常的做法是在其特征向量中手动包含成对特征交互。这种方法很难推广,难以对高阶特征交互或训练数据中从未或很少出现的特征交互进行建模[Rendle, 2010]。Factorization Machines (FM)[Rendle, 2010]将成对特征交互建模为特征之间潜在向量的内积,并显示出非常有前景的结果。虽然理论上FM可以模拟高阶特征交互,但由于高度的复杂性,在实践中通常只考虑二阶特征交互。

作为一种学习特征表征的强大方法,深度神经网络具有学习复杂特征交互的潜力。一些想法将CNN和RNN扩展用于CTR预测[Liu et al.,2015;Zhang et al.,2014],但是基于CNN的模型偏向于相邻特征之间的交互,而基于RNN的模型更适合于具有序列依赖性的点击数据。[Zhang et al.,2016]研究特征表征,提出Factorization-machine supported Neural Network (FNN)。该模型在应用DNN之前预训练FM,因此受到FM能力的限制。[Qu et al., 2016]对特征交互进行了研究,在嵌入层和全连接层之间引入了product层,提出了Product-based Neural Network (PNN)。正如[Cheng et al., 2016]所指出的,PNN和FNN与其他深度模型一样,捕获的低阶特征交互很少,但这也是CTR预测所必需的。为了对低阶和高阶特征交互进行建模,[Cheng et al.,2016]提出了一种有趣的混合网络结构(Wide & Deep),它结合了线性(“Wide”)模型和深度模型。在该模型中,“wide part”和“deep part”分别需要两种不同的输入,“wide part”的输入仍然依赖于专家特征工程。

可以看到,现有的模型偏向于低阶或高阶特征交互,或者依赖特征工程。在本文中,我们证明了可以推导出一个学习模型,该模型能够以端到端方式学习所有阶的特征交互,除了原始特征之外不需要任何特征工程。我们的主要贡献总结如下:

  • 我们提出了一个新的神经网络模型DeepFM(图1),它集成了FM和深度神经网络(DNN)的架构。它可以构建类似FM的低阶特征交互,也可以构建DNN的高阶特征交互。与wide & deep模型不同[Cheng et al., 2016],DeepFM可以不经过任何特征工程进行端到端训练。
  • DeepFM可以有效训练,因为它的wide part和deep part不同于[Cheng et al., 2016],它共享相同的输入和embedding向量。在[Cheng et al., 2016]中,由于在其wide part的输入向量中包含了手工设计的成对特征交互,因此输入向量的大小可能会很大,这也大大增加了其复杂性。
  • 我们在benchmark数据和商业数据上对DeepFM进行了评估,结果表明,在CTR预测方面,DeepFM比现有模型有了一致的改进。

(在本文的所有图中,黑色的Normal Connection是指一个有权重需要学习的连接;红色箭头的Weight-1 Connection则默认为权重为1的连接; 蓝色虚线箭头的Embedding则表示待学习的潜在向量; Addition是指把所有的输入加在一起; Product,包括内积和外积,表示该单位的输出是两个输入向量的乘积;在CTR预测中采用Sigmoid Function作为输出函数;利用relu、tanh等激活函数(Activation Function)对信号进行非线性变换;稀疏特征层(Sparse Features)中的黄色圆圈和蓝色圆圈分别表示输入的one-hot编码中的1和0)

2 Our Approach

假设训练数据集包含n个实例,其中是一个有着m个域的包含一对user和item的数据记录,是相关的label,表示用户点击行为(y=1表示用户点击了这个item,否则为y=0)。可能包含类别域(如性别和位置)和连续域(如年龄)。每个类别域被表示为一个one-hot编码的向量,而每个连续域则表示为该值本身或该值离散化后的one-hot编码的向量。然后,每个实例就被转换为(x,y),其中是一个d维向量,其中第j个域的向量表征。正常来说,x是高维且稀疏的。点击率预测任务是建立一个预测模型去估计在给定上下文时,用户点击特定app的概率。

  

2.1 DeepFM 

我们的目标是学习低阶和高阶特征交互。为此,我们提出了一种基于Factorization-Machine的神经网络(DeepFM)。如图1所示,DeepFM由两个组件组成,FM组件和deep组件,它们共享相同的输入。对于特征i,使用标量wi衡量其1阶重要性,使用潜在向量Vi衡量其与其他特征交互的影响。Vi输入到FM组件中以建模二阶特征交互,也输入到deep组件中输入以建模高阶特征交互。联合训练所有参数,包括wi、Vi和网络参数(W(l), b(l)),得到组合预测模型: 

 

 其中是预测的CTR,是FM组件的输出,是deep组件的输出。

FM组件是[Rendle, 2010]提出的factorization machine,用于学习特征交互以进行推荐。除了特征之间的线性(1阶)交互外,FM模型中的成对(2阶)特征交互是各自特征潜在向量的内积。它可以比以前的方法更有效地捕获2阶特征交互,特别是当数据集是稀疏的时候。在之前的方法中,只有当特征i和特征j同时出现在同一个数据记录中,才能训练特征i和j交互的参数。而在FM中,则通过它们的潜在向量Vi和Vj的内积来测量。得益于这种灵活的设计,FM可以在i(或j)出现在数据记录中时训练潜在向量Vi (Vj)。因此,FM更好地学习了训练数据中从未或很少出现的特征交互。

如图2所示,FM的输出是一个加法(Addition)单元与若干内积(Inner Product)单元之和:

其中(k已经给定),为了简化,我们省略了常数offset。加法单元(<w,x>)反应了1阶特征的重要性,内积单元表示了二阶特征交互的影响。

deep组件是一种前馈神经网络,用于学习高阶特征交互。如图3所示,数据记录(矢量)被输入到神经网络。与单纯以图像[He et al., 2016]或音频[Boulanger-Lewandowski et al., 2013]数据作为输入的神经网络相比,CTR预测的输入有很大的不同,这就需要进行新的网络架构设计。具体来说,CTR预测的原始特征输入向量通常是高度稀疏的、超高维的、类别输入和连续输入混合的,并按域(如性别、位置、年龄)分组的。这表明,在进一步输入到第一个隐藏层之前,需要一个embedding层将输入向量压缩为一个低维、密集的实值向量,否则网络可能难以训练。

图4突出显示了从输入层到embedding层的子网络结构。我们想指出这种网络结构的两个有趣的特点:1)虽然不同输入域向量的长度可以不同,但它们的embedding大小(k)相同;2)将FM中的潜在特征向量(V)作为网络权值,学习并将输入域向量压缩为embedding向量。在[Zhang et al., 2016]中,V被FM预训练并作为初始化。在这项工作中,我们没有像[Zhang等人,2016]那样使用FM的潜在特征向量来初始化网络,而是将FM模型作为我们整体学习体系结构的一部分,和其他DNN模型一起。因此,我们不再需要对FM进行预训练,而是以端到端方式对整个网络进行联合训练。表示embedding层的输出为:

 其中ei是第i个域的embedding,m是域的数量。其中a(0)输入到了深度神经网络中,前向处理过程为:

 其中为层深度,σ为激活函数。 分别为输出、模型权重和第层的bias。之后就得到一个密集的实值特征向量,最后输入到sigmoid函数中用于CTR预测:,其中是隐藏层的数量

需要指出的是,FM组件和deep组件具有相同的特征embedding特征,这带来了两个重要的好处:1)从原始特征中学习低阶和高阶特征交互;2)输入不需要专业的特征工程,如Wide & Deep[Cheng et al., 2016]所要求的。 

2.2 Relationship with Other Neural Networks 

受深度学习在各种应用中取得的巨大成功的启发,最近开发了几种用于CTR预测的深度模型。本节将提出的DeepFM与现有的深度模型进行CTR预测比较。

FNN
如图5(左)所示,FNN是一种FM初始化的前馈神经网络[Zhang et al., 2016]。FM预训练策略存在两个局限性:1)embedding参数受FM影响过大;2)训练前阶段的开销会降低效率。此外,FNN只捕获高阶特征交互。相比之下,DeepFM不需要预训练,可以学习高阶和低阶特征交互。 

PNN
为了捕获高阶特征交互,PNN在embedding层和第一隐含层之间添加了一个product层[Qu et al., 2016]。根据product操作的不同类型,有三种变体:IPNN、OPNN和PNN∗,其中IPNN基于向量的内积,OPNN基于外积,PNN∗基于内部和外积。和FNN一样,所有PNN都忽略低阶特征交互。

Wide & Deep
Wide & Deep(图5(右))是谷歌提出的,用于同时模拟低阶和高阶特征交互。如[Cheng et al., 2016]所示,在“wide”部分的输入(如app推荐中用户安装的app和impression apps的cross-product)需要进行专业特征工程。而DeepFM则不需要这样的专业知识,直接从输入的原始特征中学习来处理输入。

 

这个模型的一个简单的扩展是用FM替换LR(我们也在第3节中评估了这个扩展)。这个扩展类似于DeepFM,但DeepFM共享FM和deep组件之间的embedding特性。特征embedding共享策略通过低阶和高阶特征交互(以反向传播的方式)影响特征表征,从而更精确地建模特征表征。

Summarizations
综上所述,DeepFM与其他深度模型在四个方面的关系如表1所示。可以看出,DeepFM是唯一一个不需要预先训练,也不需要特征工程的模型,可以同时捕捉低阶和高阶特征交互的模型。

3 Experiments 

在本节中,我们将对我们提出的DeepFM和其他最先进的模型进行实证比较。评价结果表明,我们提出的DeepFM比其他任何先进的模型都更有效,DeepFM的效率可与所有深度模型中的最佳模型相媲美。

3.1 Experiment Setup 

Datasets
我们在以下两个数据集上评估我们提出的DeepFM的有效性和效率。

1) Criteo Dataset:Criteo数据集包含4500万用户的点击记录。有13个连续特征和26个类别特征。我们将数据集分成两部分:90%用于训练,而剩下的10%用于测试。

2)Company* Dataset:为了验证DeepFM在真实工业CTR预测中的性能,我们在Company*数据集上进行实验。我们从Company∗ App商店的游戏中心收集连续7天的用户点击记录,用于训练,并使用接下来的1天数据进行测试。在整个收集的数据集中大约有10亿条记录。在这个数据集中,有app特征(如识别、类别等)、用户特征(如用户下载的apps等)和上下文特征(如操作时间等)。

Evaluation Metrics
我们在实验中使用了两个评价指标:AUC (Area Under ROC)和Logloss (cross entropy)。

Model Comparison
我们在实验中比较了9种模型:LR、FM、FNN、PNN(三种变体)、Wide & Deep(两种变体)和DeepFM。在Wide & Deep模型中,为了消除特征工程的影响,我们也采用了原来的Wide & Deep模型,用FM替换LR作为wide部分。为了区分Wide和Deep这两种变体,我们分别将它们命名为LR & DNN和FM & DNN。

(我们不使用谷歌发布的Wide & Deep API,因为该实现的效率非常低。我们通过在wide和deep部分使用共享优化器来简化它们)

Parameter Settings
为了评价Criteo数据集上的模型,我们遵循[Qu et al., 2016]中FNN和PNN的参数设置:(1)dropout: 0.5;(2)网络结构:400-400-400;(3)优化器:Adam;(4)激活函数:IPNN使用tanh, 其他深度模型使用relu。为了公平,我们提出的DeepFM也使用相同的设置。LR和FM的优化器分别为FTRL和Adam, FM的潜在维数为10。
为了在Company∗数据集上得到每个模型的最佳性能,我们进行了仔细的参数研究,这将在第3.3节中讨论。

3.2 Performance Evaluation 

在本节中,我们对3.1节中列出的两个数据集的模型进行评估,以比较它们的有效性和效率。

Efficiency Comparison 

深度学习模型的效率对于现实应用来说是十分重要的。我们通过下面的公式在Criteo数据集比较不同模型的效率:。图6显示的结果包含了再CPU(左边)和GPU(右边)的测试,我们得到了如下的观察结果:1) FNN的预训练使其效率降低;2)尽管IPNN和PNN在GPU上的速度比其他模型快,但由于内积运算效率低,计算成本高;3) DeepFM在这两个测试中几乎达到了最高的效率。

Effectiveness Comparison 

不同模型在Criteo数据集和company∗数据集的CTR的预测性能如表2所示(注意,表中的数字是5次training-testing 的平均值,且AUC的方差和Logloss都是1E-5的),我们有以下的观察:

  • 学习特征交互提高了CTR预测模型的性能。这个观察来自于LR(唯一不考虑特性交互的模型)比其他模型表现得更差的事实。作为最佳模型,在Company∗和Criteo数据集上,DeepFM的AUC比LR高出0.82%和2.6% (Logloss高出1.1%和4.0%)。
  • 同时学习高阶和低阶特征交互,能适当提高CTR预测模型的性能。DeepFM优于只学习低阶特征交互(即FM)或高阶特征交互(即FNN、IPNN、OPNN、PNN∗)的模型。与第二好的模型相比,DeepFM在Company∗和Criteo数据集上的AUC分别超出0.34%和0.41% (Logloss分别超出0.34%和0.76%)。
  • 通过共享用于高阶和低阶特征交互学习的相同特征embedding来同时学习高、低阶特征交互,以提高了CTR预测模型的性能。DeepFM优于使用独立特征embeddings(即LR & DNN和FM & DNN)来学习高阶和低阶特征交互的模型。与这两个模型相比,DeepFM在Company∗和Criteo数据集上的AUC分别超出0.48%和0.44% (Logloss分别超出0.58%和0.80%)。

总体而言,我们提出的DeepFM模型在Company∗数据集上的AUC和Logloss分别比竞争对手高出0.34%和0.35%。事实上,离线AUC评估的一个小改进就可能导致在线CTR的显著增加。据[Cheng et al., 2016]报道,与LR相比,Wide & Deep提高了0.275%的AUC(离线),在线CTR就提高了3.9%。Company∗ App Store的日营业额为数百万美元,因此,即使点击率提高几个百分点,每年也会带来数百万美元的额外收入。此外,我们还对我们提出的DeepFM与其他比较模型进行了t-test。在Company∗的Logloss度量下,DeepFM相对于FM & DNN的p值小于1.5 × 10−3,其他两个数据集上的p值都小于10−6,这表明我们对现有模型的改进是显著的。

3.3 Hyper-Parameter Study 

我们研究了不同深度模型的不同超参数对Company∗数据集的影响。顺序为:1)激活函数;2)dropout率;3)每层神经元数量;4)隐藏层层数;5)网络形状。

Activation Function
根据[Qu et ., 2016], relu和tanh比sigmoid更适合于深度模型。本文比较了深度模型在应用relu和tanh时的性能。如图7所示,relu比tanh更适合于除IPNN外的所有深度模型。可能的原因是relu诱发了稀疏性。

  

Dropout
Dropout [Srivastava et al., 2014]是指神经元在网络中被保留的概率。Dropout是一种正则化技术,在神经网络的精度和复杂性之间作出妥协。我们设dropout为1.0,0.9,0.8,0.7,0.6,0.5。如图8所示,当dropout被正确设置(从0.6到0.9)时,所有的模型都能够达到自己的最佳性能。结果表明,在模型中加入合理的随机性可以增强模型的鲁棒性。

Number of Neurons per Layer
当其他因素保持不变时,增加每层神经元的数量会带来复杂性。从图9中我们可以看到,增加神经元的数量并不总是带来好处。例如,当每层神经元数量从400增加到800时,DeepFM表现稳定;更糟糕的是,当我们将神经元数量从400增加到800时,OPNN的表现更差。这是因为一个过于复杂的模型很容易过度拟合。在我们的数据集中,每层200或400个神经元是一个不错的选择。

Number of Hidden Layers
如图10所示,随着隐藏层数量的增加,一开始模型的性能会有所提高,但随着隐藏层数量的增加,由于过拟合的原因,模型的性能会下降。

Network Shape
我们测试了四种不同的网络形状:恒定、递增、递减和菱形。当我们改变网络形状时,我们固定了隐藏层的数量和神经元的总数。例如,当隐藏层数为3,神经元总数为600时,则有四种不同的形状:恒定(200-200-200)、递增(100-200-300)、递减(300-200-100)和菱形(150-300-150)。从图11可以看出,“恒定”的网络形状优于其他三种选择,这与前人的研究一致[Larochelle et al., 2009]。

4 Related Work 

本文提出了一种新的用于CTR预测的深度神经网络。最相关的领域是推荐系统中的点击率预测和深度学习。

CTR预测在推荐系统中起着重要的作用[Richardson et al., 2007;Juan et al.,2016]。除了广义线性模型和FM模型外,还提出了一些用于CTR预测的模型,如基于树的模型[He et al., 2014]、基于tensor的模型[Rendle and Schmidt-Thieme, 2010]、支持向量机模型[Chang et al., 2010]、贝叶斯模型[Graepel et al., 2010]。

另一个相关领域是推荐系统中的深度学习。在第1节和第2.2节中,已经提到了几个用于CTR预测的深度学习模型,因此我们在这里不进行讨论。除了CTR预测外,推荐任务中还提出了几种深度学习模型(例如,[Covington et al.,2016;Salakhutdinov et al.,2007;van den Oord et al.,2013;Wu et al., 2016; Zheng et al.,2016;Wu et al., 2017;Zheng et al.,2017])。[Salakhutdinov et al,2007;Sedhain et al,2015;Wang et al., 2015]提出通过深度学习改进协同过滤。[Wang and Wang, 2014;van den Oord et al., 2013]的作者通过深度学习提取内容特征,提高音乐推荐的性能。[Chen et al., 2016]设计了一个深度学习网络,考虑展示广告的图像特征和基本特征。[Covington et al., 2016]开发了一个用于YouTube视频推荐的两阶段深度学习框架。

5 Conclusions 

在本文中,我们提出了基于factorization-machine的神经网络DeepFM,用于CTR预测,以克服现有模型的不足。DeepFM联合训练一个deep组件和一个FM组件。它有以下几个优点:1)不需要任何的预训练;2)同时学习高阶和低阶特征交互;3)引入特征embedding共享策略,避免特征工程。在两个真实数据集上的实验表明:1)DeepFM在AUC和Logloss方面都优于最先进的模型;2) DeepFM的效率可以媲美目前最先进的深度模型。

原文地址:https://www.cnblogs.com/wanghui-garcia/p/15186549.html