摘要
特征交叉对许多商业模型的成功至关重要。由于大型互联网系统中原始数据的种类、数量和产生速度,人工制作这些特征通常会带来高成本。基于因子分解机的模型,以向量乘积的方式衡量相互作用,可以自动学习组合特征的模式,并对未见过的特征进行归纳。随着深度神经网络(DNNs)在各个领域的巨大成功,最近研究人员提出了几个基于DNN的因子分解模型来学习低阶和高阶特征的相互作用。尽管深层神经网络具有从数据中学习任意函数的强大能力,但普通的深层神经网络是以隐含的方式在bit-wise级别上产生特征交互。在本文中,我们提出了一种新的Compressed Interaction Network(CIN),其目的是以明确的方式和在vector-wise级别上产生特征交互。我们表明,CIN与卷积神经网络(CNN)和循环神经网络(RNN)共享一些功能。我们进一步将CIN和经典的DNN结合成一个统一的模型,并将这个新的模型命名为 "eXtreme Deep Factorization Machine"(xDeepFM)。一方面,xDeepFM能够显式地学习某些有限阶数的特征交互;另一方面,它可以隐式地学习任意的低阶和高阶特征交互。我们在三个真实世界的数据集上进行了综合实验。我们的结果表明,xDeepFM的性能优于最先进的模型。我们将xDeepFM的源代码发布在https://github.com/Leavingseason/xDeepFM
关键词
Factorization machines, neural network, recommender systems,deep learning, feature interactions
引言
特征在许多预测系统的成功中起着核心作用。由于使用原始特征很少能获得最佳结果,数据科学家通常在原始特征的转换上花费大量的工作,以产生最佳预测系统或赢得数据挖掘比赛。特征转换的一个主要类型是分类特征的交叉积转换。这些特征被称为交叉特征或多向特征,它们衡量的是多个原始特征的相互作用。例如,如果用户在微软亚洲研究院工作,并在周一看到一篇关于深度学习的技术文章,那么一个三阶特征AND(user_organization=msra,item_category=deeplearning,time=monday)的值为1。
传统的交叉特征工程有三个主要的弊端。首先,获得高质量的特征需要付出高昂的代价。因为正确的特征通常是特定的任务,数据科学家在成为领域专家和提取有意义的交叉特征之前,需要花费大量的时间来探索产品数据的潜在模式。第二,在大规模的预测系统中,如互联网应用的推荐系统,大量的原始特征使得手动提取所有的交叉特征是不可行的。第三,手工制作的交叉特征不能推广到训练数据中未见的互动。因此,在没有人工工程的情况下学习交互特征是一项有意义的任务。
因式分解机(FM)将每个特征嵌入到潜在因子向量
经典的因式分解机方法可以扩展到任意的高阶特征交互,但主要的缺点是,它建议对所有的特征交互进行建模,包括有用和无用的组合。显然,无用特征的相互作用可能会引入噪声并降低性能。近年来,深度神经网络(DNNs)以其强大的特征表示学习能力在计算机视觉、语音识别和自然语言处理方面取得了成功。利用DNN来学习复杂的、有选择性的特征交互是很有前途的。 我们提出了一个因式分解机支持的神经网络(FNN)来学习高阶特征交互。它在应用DNN之前使用预先训练好的因式分解机进行特征领域嵌入。进一步提出了Product-based的神经网络(PNN),它在嵌入层和DNN层之间引入了一个product layer,并且不依赖预先训练好的FM模型。FNN和PNN的主要缺点是它们更关注高阶特征的相互作用,而对低阶的相互作用捕捉不多。Wide&Deep和DeepFM模型通过引入混合结构来克服这个问题,它包含一个浅层组件和一个深层组件,目的是学习记忆和泛化,因此它们可以共同学习低阶和高阶特征的相互作用。
上述所有的模型都是利用DNN来学习高阶特征的相互作用。然而,DNN是以隐含的方式建立高阶特征交互的模型。DNN学习的最终函数可以是任意的,而且没有关于特征交互的最大程度是什么的理论结论。此外,DNN在比特级别建立了特征交互模型,这与传统的调频框架在向量级别建立特征交互模型不同。因此,在推荐系统领域,DNN是否真的是代表高阶特征交互的最有效模型,仍然是一个开放的问题。在本文中,我们提出了一个基于神经网络的模型,以明确的、矢量级别的方式学习特征的相互作用。我们的方法是基于Deep & Cross Network(DCN)的,其目的是有效地捕捉有限阶数的特征相互作用。然而,我们将在第2.3节中论证,DCN将导致一种特殊的互动形式。因此,我们设计了一个新的compressed interaction network(CIN)来取代DCN中的交叉网络。CIN明确地学习特征交互,并且交叉阶数随着网络的深度而增长。根据Wide&Deep和DeepFM模型的思想,我们将显式高阶交互模块与隐式交互模块和传统的FM模块相结合,并将联合模型命名为eXtreme Deep Factorization Machine(xDeepFM)。新的模型不需要人工特征工程,将数据科学家从繁琐的特征搜索工作中解放出来。综上所述,我们做出了以下贡献。
- 我们提出了一个新的模型,名为 "eXtreme Deep Factor-ization Machine"(xDeepFM),它能有效地联合学习显性和隐性的高阶特征互动,并且不需要人工特征工程。
- 我们在xDeepFM中设计了一个 compressed interaction network(CIN),明确地学习高阶特征的相互作用。我们展示了,特征的交互程度在每一层都会增加,而且特征的交互是在vector层面而不是bit层面上的。
- 我们在三个真实世界的数据集上进行了广泛的实验,结果表明,我们的xDeepFM明显优于几个最先进的模型。
本文的其余部分组织如下。第2节提供了一些初步的知识,这对于理解基于深度学习的推荐系统是必要的。第3节详细介绍了我们提出的CIN和xDeepFM模型。我们将在第4节中介绍对多个数据集的实验探索。第5节中讨论了相关的工作。第6节是本文的结论。
预备知识
Embedding层
在计算机视觉或自然语言理解中,输入数据通常是图像或文本信号,已知它们在空间或时间上或者同时是相关的,因此DNN可以直接应用于具有密集结构的原始特征。然而,在互联网应用的推荐系统中,输入的特征是稀疏的,具有巨大的维度,并且没有明确的空间或时间上的相关性。因此,多字段的分类形式被相关工作广泛使用。例如,一个输入实例[user_id=s02,gender=male,organization=msra,interests=comedy&rock]通常通过字段感知的onehot编码被转化为高维稀疏的特征:
嵌入层应用于原始特征输入,将其压缩成一个低维的、密集的实值向量。如果字段是单值的,特征嵌入被用作字段嵌入。以上面的例子为例,男性特征的嵌入被当作字段性别的嵌入。如果字段是多意义的,则用特征嵌入的总和作为字段的嵌入。嵌入层如图1所示。嵌入层的结果是一个宽的串联向量:
其中
隐式高阶交互作用
FNN、Deep Crossing和Wide&Deep中的深度部分利用领域嵌入向量
其中
PNN和DeepFM对上述架构稍作修改。除了在嵌入向量
显式高阶交互作用
交叉网络(CrossNet),其结构如图3所示。它的目的是明确地模拟高阶特征的相互作用。与经典的全连接前馈网络不同,隐藏层是通过以下的交叉操作来计算的:
其中
定理2.1.考虑一个k层交叉网络,第(i+1)层定义为
证明如下。当k=1时,根据矩阵乘法的关联律和分配律,我们有:
请注意,标量倍数并不意味着
我们提出的模型
Compressed Interaction Network
我们设计了一个新的交叉网络,命名为Compressed Interaction Network(CIN),有以下考虑:(1)交互是在向量层次上应用的,而不是在位层次上;(2)高阶特征的交互是明确表征的;(3)网络的复杂性不会随着交互程度的增加而呈指数增长。
由于嵌入向量被认为是向量层面交互的单位,在此我们将场嵌入的输出表述为矩阵
值得指出的是,方程6与计算机视觉中著名的卷积神经网络(CNN)有很强的联系。如图4a所示,我们引入了一个中间张量
图4c提供了CIN的结构概览。让
对于所有
CIN分析
我们分析了拟议的CIN,以研究模型的复杂性和潜在的有效性。
与隐式网络的结合
如第2.2节所述,普通DNN学习隐含的高阶特征交互。由于CIN和普通DNN可以相互补充,一个直观的方法是将这两种结构结合起来,使模型更加强大。由此产生的模型与Wide&Deep或DeepFM模型非常相似。该架构如图5所示。考虑到一方面它包括低阶和高阶特征的相互作用,另一方面它包括隐性特征的相互作用和显性特征的相互作用,我们把这个新的模型命名为eXtreme Deep Factorization Machine(xDeepFM)。其产生的输出单位成为:
其中
其中
其中
3.3.1 与FM和DeepFM的关系。假设所有的字段都是单值的。从图5中不难看出,当CIN部分的深度和特征图都设置为1时,xDeepFM是DeepFM的一般化形式,通过学习FM层的线性回归权重(注意,在DeepFM中,FM层的单元直接与输出单元相连,没有任何系数)。 当我们进一步去掉DNN部分,同时对特征图使用恒定和滤波器(它只是简单地获取输入的总和,没有任何参数学习),那么xDeepFM就降级为传统的FM模型了。
实验结果
在本节中,我们进行了广泛的实验来回答以下问题:
- (Q1)我们提出的CIN在高阶特征交互学习中的表现如何?
- (Q2)对于推荐系统来说,是否有必要结合显性和隐性的高阶特征互动?
- (Q3)网络的设置如何影响xDeepFM的性能?
在介绍了一些基本的实验设置后,我们将回答这些问题。
实验设置
数据集
Criteo数据集。这是一个著名的行业基准数据集,用于开发预测广告点击率的模型,并且可以公开访问。给定一个用户和他正在访问的页面,目标是预测他点击特定广告的概率。
大众点评网数据集。大众点评网是中国最大的消费者评论网站。它提供了多种功能,如评论、签到和商店的元信息(包括地理信息和商店属性)。我们收集了6个月的用户签到活动来进行餐厅推荐实验。考虑到用户的资料、餐厅的属性和用户最近访问的三个POI(兴趣点),我们想预测他访问该餐厅的概率。对于用户签到实例中的每一家餐厅,我们通过POI的受欢迎程度对3公里内的四家餐厅进行抽样,作为负面实例。
必应新闻数据集。必应新闻是微软的必应搜索引擎的一部分。为了评估我们的模型在一个真实的商业数据集中的表现,我们收集了连续五天的新闻阅读服务的印象记录。我们使用前三天的数据进行训练和验证,后两天的数据进行测试。
对于Criteo数据集和大众点评数据集,我们按8:1:1的比例随机拆分实例进行训练、验证和测试。三个数据集的特点总结在表1中。
评估指标
我们使用两个指标来评估模型:AUC(ROC曲线下面积)和Log loss(交叉熵)。这两个指标从两个不同的角度来评估性能。AUC衡量的是一个正面实例的排名比随机选择的负面实例的排名高的概率。它只考虑到预测实例的顺序,对类的不平衡问题不敏感。相比之下,Logloss衡量的是每个实例的预测分数和真实标签之间的距离。有时我们更依赖Logloss,因为我们需要利用预测的概率来估计一个排名策略的好处(通常调整为CTR×bid)。
Baselines
我们将xDeepFM与LR(逻辑回归)、FM、DNN(普通深度神经网络)、PNN(从iPNN和OPN中选择一个更好的)、Wide & Deep、DCN(Deep& Cross Network)和DeepFM进行比较。正如第2节所介绍和讨论的,这些模型与我们的xDeepFM高度相关,其中一些是推荐系统的最先进模型。请注意,本文的重点是自动学习特征的相互作用,所以我们不包括任何手工制作的交叉特征。
复现性
我们使用Tensorflow实现我们的方法。每个模型的超参数是通过在验证集上进行网格搜索来调整的,每个模型的最佳设置将在相应的章节中显示。学习率被设置为0.001。对于优化方法,我们使用小型批次大小为4096的Adam。我们对DNN、DCN、Wide&Deep、DeepFM和xDeepFM使用λ=0.0001的L2正则化,对PNN使用dropout 0.5。每层神经元数量的默认设置是:(1)DNN层400;(2)Criteo数据集的CIN层200,大众点评和Bing News数据集的CIN层100。由于我们在本文中关注的是神经网络结构,所以我们将所有模型的字段嵌入维度定为10的固定值。我们用5个Tesla K80 GPU并行进行了不同设置的实验。源代码可在https://github.com/Leavingseason/xDeepFM
单个神经组件的性能比较 (Q1)
我们想知道CIN的单独表现。请注意,FM明确地测量2阶特征的相互作用,DNN隐含地建立高阶特征的相互作用,CrossNet试图用少量的参数建立高阶特征的相互作用(在第2.3节中被证明是无效的),而CIN明确地建立高阶特征的相互作用。在理论上并不能保证某个单独的模型比其他的模型更有优势,因为这确实取决于数据集。例如,如果实际的数据集不需要高阶特征的相互作用,那么FM可能是最好的个体模型。因此,我们对哪个模型在本实验中表现最好没有任何期望。
表2显示了各个模型在三个实际数据集上的结果。令人惊讶的是,我们的CIN一直优于其他模型。一方面,结果表明,对于实际数据集,稀疏特征上的高阶交互是必要的,这可以通过DNN、CrossNet和CIN在所有三个数据集上的表现明显优于FM这一事实得到验证。另一方面,CIN是最好的个体模型,这证明了CIN在为明确的高阶特征互动建模方面的有效性。请注意,一个k层的CIN可以对k阶的特征互动进行建模。同样有趣的是,在Bing News数据集上,CIN需要5层才能产生最佳结果。
综合模型的表现(Q2)
xDeepFM将CIN和DNN整合为一个端到端的模型。虽然CIN和DNN在学习特征交互方面涵盖了两种不同的属性,但我们有兴趣知道将它们结合在一起进行联合显性和隐性学习是否确实必要和有效。在这里,我们比较了几个不局限于单个模型的强大基线,结果见表3。我们观察到LR比其他所有的模型都要差得多,这表明基于因子化的模型对于测量稀疏特征是必不可少的。Wide&Deep、DCN、DeepFM和xDeepFM明显优于DNN,这直接反映出,尽管它们很简单,但加入混合成分对提高预测系统的准确性是很重要的。我们提出的xDeepFM在所有的数据集上都取得了最好的性能,这表明结合显性和隐性的高阶特征互动是必要的,而xDeepFM在学习这类组合方面是有效的。另一个有趣的现象是,所有基于神经网络的模型都不需要很深的网络结构就能达到最佳性能。深度超参数的典型设置是2和3,而xDeepFM的最佳深度设置是3,这表明我们学到的交互作用最多是4阶。
超参数研究(Q3)
我们在本节中研究了超参数对xDeepFM的影响,包括(1)隐藏层的数量;(2)每层的神经元数量;和(3)激活函数。我们通过保持DNN部分的最佳设置而改变CIN部分的设置来进行实验。
网络深度
图6a和7a显示了隐藏层数的影响。我们可以观察到,xDeepFM的性能在开始时随着网络深度的增加而增加。然而,当网络深度设置大于3时,模型的性能就会下降。这是由过度拟合引起的,我们注意到,当我们增加更多的隐藏层时,训练数据的损失仍然不断减少。
每层的神经元数量
增加每层的神经元数量表示增加CIN中的特征图数量。如图6b和7b所示,当我们将神经元数量从20个增加到200个时,Bing News数据集上的模型性能稳步上升,而在大众点评数据集上,100个是每层神经元数量的更合适设置。在这个实验中,我们将网络的深度固定为3
激活函数
请注意,我们利用Identity作为CIN的神经元的激活函数,如公式6所示。深度学习文献中的一个常见做法是在隐藏神经元上采用非线性激活函数。因此,我们比较了不同的激活函数在CIN上的结果(对于DNN中的神经元,我们保留激活函数与relu)。如图6c和7c所示,Identity函数确实是最适合于CIN中的神经元。
相关工作
传统推荐系统
非因子分解模型
对于大型互联网应用的推荐系统(RSs)来说,输入特征通常是稀疏的、分类的、连续的、混合的和高维的。线性模型,如带有FTRL的逻辑回归,被广泛采用,因为它们易于管理、维护和部署。由于线性模型缺乏学习特征交互作用的能力,数据科学家必须花费大量的工作来设计交叉特征,以达到更好的性能。考虑到一些隐藏的特征很难手工设计,一些研究人员利用提升决策树来帮助建立特征转换。
因子分解模型
上述模型的一个主要缺点是,它们不能对训练集中未见过的特征交互进行归纳。因式分解机通过将每个特征嵌入到一个低维的潜在向量来克服这个问题。矩阵分解(MF),只考虑ID作为特征,可以被看作是一种特殊的FM。建议是通过两个潜向量的乘积来实现的,因此它不需要用户和项目在训练集中的共同出现。MF是RS文献中最流行的基于模型的协同过滤方法。将MF扩展到利用侧面信息,其中包括线性模型和MF模型。另一方面,对于许多推荐系统来说,只有隐性反馈数据集,如用户的观看历史和浏览活动是可用的。因此,研究人员将因子化模型扩展到隐性反馈的贝叶斯个性化排名(BPR)框架中。
深度学习推荐系统
深度学习技术已经在计算机视觉、语音识别和自然语言理解方面取得了巨大的成功。因此,越来越多的研究人员对在推荐系统中采用DNNs感兴趣。
高阶互动的深度学习
为了避免手动建立高阶交叉特征,研究人员将DNNs应用于领域嵌入,从而可以自动学习分类特征交互的模式。代表性的模型包括FNN、PNN、DeepCross、NFM、DCN、Wide&Deep以及DeepFM。这些模型与我们提出的xDeepFM高度相关。由于我们已经在第1节和第2节中对它们进行了回顾,我们在本节中不再进一步详细讨论它们。我们已经证明,与这些模型相比,我们提出的xDeepFM有两个特殊的特性:(1)xDeepFM以显性和隐性的方式学习高阶特征的相互作用;(2)xDeepFM在向量层面而不是比特层面上学习特征的相互作用。
深度学习用于精细化表征学习
我们将其他一些基于深度学习的RS包括在本节中,因为它们不太关注学习特征的相互作用。一些早期的工作主要采用深度学习来模拟辅助信息,如视觉数据和音频数据。最近,深度神经网络被用来为RSs中的协同过滤(CF)建模。 他们提出了一个神经协同过滤(NCF),这样MF中的内积可以通过神经架构被替换为任意函数。自动编码器可以进一步用于联合建模CF和侧面信息,以产生更好的隐向量。 采用神经网络联合训练多个领域的潜在因素。 提出了关注性协作过滤(ACF),以学习项目级和组件级的更详细的偏好。表明传统的RS不能有效地捕捉兴趣的多样性和局部激活,因此他们引入了深度兴趣网络(DIN),以关注性激活机制代表用户的多样化兴趣。
结论
在本文中,我们提出了一个新的网络,名为压缩交互网络(CIN),其目的是明确地学习高阶特征的相互作用。CIN有两个特殊的优点:(1)它可以有效地学习某些有界度的特征交互;(2)它在矢量水平上学习特征交互。根据一些流行的模型的精神,我们将CIN和DNN纳入一个端到端的框架,并将得到的模型命名为eXtremeDeep Factorization Machine(xDeepFM)。因此,xDeepFM能够以显性和隐性的方式自动学习高阶特征的相互作用,这对于减少人工特征工程工作具有重要意义。我们进行了全面的实验,结果表明,我们的xDeepFM在三个真实世界的数据集上的表现一直超过了最先进的模型。
未来的工作有两个方向。首先,目前我们只是采用了一个总和池来嵌入多价域。我们可以探索使用DIN机制[47]来根据候选项目捕捉相关的激活。第二,正如3.2.2节中所讨论的,CIN模块的时间复杂度很高。我们有兴趣开发一个分布式的xDeepFM,它可以在GPU集群上有效地训练。
Comments | NOTHING