DeepFM: A Factorization-Machine based Neural Network for CTR Prediction
Abstract
学习用户行为背后的复杂特征交互对于最大化推荐系统的CTR至关重要.尽管取得了很大进展,但现有方法似乎对低阶或高阶交互有强烈的bias,或者需要专业知识特征工程.
本文,表明可以推导出一种强调低阶核高阶特征交互的端到端学习模型.
提出的模型DeepFM结合了推荐系统里的factorization machine和特征学习里的deep learning在新的神经网络结构中.
介绍
click-through rate(CTR)的预测在推荐系统中是至关重要的,其中任务是估计用户点击推荐项目的概率.在许多推荐系统中,目标是最大化点击次数,因此返回给用户的项目可以按估计的CTR排序;在其他应用场景(如在线广告)中,提高收入也很重要,因此排名策略可以根据所有候选人的点击率进行调整,其中”bid”是系统在用户点击项目时获得的好处.在任何一种情况下,很明显关键是正确估算点击率.
了解用户点击行为背后隐含的特征交互对CTR预测非常重要.通过在主流应用市场的研究,发现人们经常在吃饭时下载外卖一个用,这说明 app category和time-stamp之间的交互(order-2)可以作为CTR的信号.其次,男性青少年喜欢射击游戏和RPG游戏,这意味着app类别、用户性别和年龄的交互(order-3)是CTR的另一个信号.一般来说,用户单击行为背后的特性交互可能非常复杂,其中低阶核高阶特性交互都应该发挥重要作用.根据谷歌的Wide&Deep模型的见解,同时考虑低阶和高阶特征交互比单独考虑任何一种情况都带来了额外的改进
本文的关键挑战是有效地建模特征交互.一些特征交互可以很容易理解,因此可以由专家设计.然而,很多其他特征交互隐藏在数据中并且难以识别先验(例如,经典关联规则”尿布和啤酒”是从数据挖掘而不是由专家发现),其只能通过机器学习自动捕获.即使对于易于理解地交互,专家似乎也不可能对其进行详尽的建模,尤其是当特征数量很大时.
广义的线性模型,如FTRL,在实践中表现出了不错的表现.然而,线性模型缺乏学习特征交互的能力,并且通常的做法是在其特征向量中手动包括成对特征交互.这种方法难以概括为模拟高阶特征交互或者哪些从未或很少出现训练数据的方法.Factorization Machine(FM)模型是成对特征相互作用通过特征间的隐向量的内积,并显示非常有希望的结果.虽然原则上FM可以模拟高阶特征交互,但实际上通常由于高复杂性而仅考虑2阶特征交互。
为了模拟低阶和高阶特征相互作用,提出了一种有趣的混合网络结构(Wide&Deep),它结合了线性(“Wide”)模型和deep模型。在该模型中,“wide part”和“deep part”分别需要两个不同的输入,“wide part”的输入仍然依赖于专业特征工程。
可以看出,现有模型偏向于低阶或高阶特征交互,或依赖于特征工程。在本文中,我们展示了可以推导出一种学习模型,该模型能够以端到端的方式学习所有订单的特征交互,除了原始特征之外没有任何特征工程。我们的主要贡献总结如下:
- 提出了一种新的神经网络模型DeepFM,集成了FM和DNN的体系结构.它模拟FM等低阶特征交互,并模拟DNN等高阶特征交互.与Wide&Deep模型不同,DeepFM可以在没有任何特征工程的情况下进行端到端训练.
- DeepFM可以被有效地训练,因为它的wide part和deep part,不想Wide&Deep model,共享了相同的输入和embedding vector,在Wide&Deep模型中,input vector是大尺寸的,因为它在其宽部分的输入向量中包括手动设计的成对的特征交互,这也极大地增加了其复杂性.
- 对DeepFM进行了评估,显示了对现有CTR预测模型的持续改进.
方法
假设训练数据集包含n个实例(x;y),其中y是一个m字段数据记录,通常涉及一对用户(user)和项目(item),并且y∈{0,1}被关联于label表明user 点击行为(y=1表示用户点击了该项目,否则y=0).x可以包括分类字段(例如,性别,位置)和连续字段(例如,年龄).每个分类字段被表示为onehot向量,并且每个连续字段被标识为值本身,或者在离散化之后的onehot向量.然后,每个实例转换为(x;y),其中$x=[x_{field_1},x_{field_2},..,x_{field_m}]$是一个二维向量,$x_{field_j}$表示向量的第j个field.通常,x是高维的并且非常稀疏.CTR预测任务是建立预测模型$\hat{y}=CTRmodel(x)$以估计用户在给定上下文中点击特定应用的概率.
DeepFM
目标是学习低阶和高阶特征交互.为此,提出了一种DeepFM.如下图所示,DeepFM由两个组件组成,FM组件和Deep组件,它们共享相同的输入.对于特征i,标量$w_i$永安里衡量其order-1重要性,潜在向量$V_i$用于衡量其与其他特征的相互作用的影响.$V_i$被喂进FM组件中来对order-2特征的相互作用进行建模.所有参数,包括$w_i,V_i,和网络参数(W^{(l)},b^{(l)})$被共同训练来结合预测模型:
其中$\hat{y}$∈(0,1)是预测的CTR,$y_{FM}$是FM组件的输出,并且$y_{DNN}$是deep组件的输出.
FM组件
FM组件是一种factorization machine,被提出用于学习特征交互以进行推荐.除了特征之间的线性(order-1)交互外,FM还将特征交互成对(order-2)建模为各自特征潜向量的内积.它可以比以前的方法更有效地捕获order-2特征交互,特别是在数据集稀疏地情况下.在以往地方法中,只有特征i和特征j同时出现在同一条数据记录中,才能训练特征i和特征j相互作用的参数.而在FM中,它是通过其潜向量$V_i$和$V_j$的内积来测量的.由于这种灵活的设计,FM可以在数据记录中出现i(或者j)时训练潜向量$V_i(V_j)$。因此,FM能够更好地学习训练数据中从未或很少出现的特征交互
如FM组件结构图所示,FM的输出是一个Addition单元和一系列Inner Product单元的总和:
其中w∈$R^d$并且$V_i∈R^k$(k是已知的).The addition unit(
Deep Component
Deep component 是前馈神经网络,用于学习高阶特征交互.如上图,数据记录(向量)被送进神经网络中.与图像或音频的数据作为输入的纯连续且密集的神经网络相比,CTR预测输入是不同的,它需要一个新的神经网络结构设计.特别地,CTR预测的原始特征输入向量常常是非常稀疏的,超高维的,分类-连续混合的和在field上成组的(eg.,gender,location,age).这表明一个embedding层用以压缩输入向量至低维,密集的实值向量在将其送入第一个隐藏层之前,否则网络可能难以训练.
上图突出显示了从输入层到嵌入层的子网络结构.这种网络结构的两个有趣特点:1)不同input field 向量长度可以不同,但嵌入的大小相同(k). 2)FM中隐含的特征向量(V)作为网络权值,学习后用于将input field向量压缩为嵌入向量(embedding vector).表示嵌入层的输出为:
其中$e_i$是第i个field的嵌入并且m是field的数目.$a^{(0)}$被送进深度神经网络,并且向前的过程是
其中l是层得深度,$\sigma$是激活函数.$a^{(l)},W^{(l)},b^{(l)}$是第l层的输出,模型权重和偏置.在那之后,密集的实值特征向量被生成,最终将其送入CTR预测的sigmoid函数:$y_{DNN}=\sigma(W^{|H|+1}·a^H+b^{|H|+1})$,其中|H|是隐层的数目.
值得指出额是,FM组件和deep组件共享特征嵌入,这能两个重要的好处:1)它从原始特征中学习低阶核高阶特征交互2)根据Wide&Deep的要求,不需要输入进行专业的特征工程。
其他神经网络
受到各种应用中深度学习的巨大成功的启发,最近开发了几种用于CTR预测的深度模型。本节将提出的DeepFM与现有的CTR预测深度模型进行比较。
FNN:如上图所示,FNN是FM初始化的前馈神经网络。FM预训练策略导致两个限制:1)嵌入参数可能受到FM的过度影响2)预训练阶段引入的开销降低了效率.此外FNN仅捕获高阶特征交互,相比之下,DeepFM不需要预训练,可以学习高阶和低阶特征交互.
PNN:为了捕获高阶特征交互,PNN在嵌入层和第一个隐藏层之间强加了一个product层。根据不同类型product操作,有三种变体:IPNN,OPNN,和PNN,其中IPNN基于向量的内积,OPNN基于外积和PNN基于内积和外积.
为了使计算更有效,文中提出了内积和外积的近似计算:1)通过消除一些神经元来近似计算内积2)通过将m个k维特征向量压缩维k维向量来近似计算外积.然而,发现外积不如内积可靠,但它仍然具有高计算复杂性,因为product层的输出连接到第一隐藏层的所有神经元.与PNN不同,DeepFM中product层的输出仅连接到最终输出层(一个神经元).与FNN一样,所有PNN都忽略低阶特征交互.
Wide&Deep: Wide&Deep由Google提出同时模拟低阶和高阶特征交互.需要对Wide部分的输入进行专业知识特征工程。相比之下,DeepFM不需要这样的专业知识来直接从输入原始特征中学习来处理输入.
DeepFM与其他深层模型在四个方面的关系如表所示
Conclusions
本文提出了一种基于Factorization Machine的CTR预测神经网络DeepFM,克服了现有模型的不足,取得了较好的预测效果。DeepFM联合训练一个deep组件和一个FM组件。该方法具有以下优点:1)不需要任何预处理;2)同时学习高阶和低阶特征交互;3)引入特征嵌入的共享策略,避免特征工程。我们对两个真实世界的数据集(Criteo数据集和一个商业应用商店数据集)进行了广泛的实验,以比较DeepFM和最先进模型的有效性和效率。我们的实验结果表明,1)DeepFM在AUC和Logloss这两个数据集上都优于目前的模型;2) DeepFM的效率可以媲美目前最高效的deep模型。
未来的研究有两个有趣的方向。一个是探索一些策略(例如引入池化层)以加强学习最有用的高阶特征交互的能力。另一种是在GPU集群上训练DeepFM以解决大规模问题。