xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems
引言(ABSTRACT)
组合特征对与许多商业模型的成功都至关重要。受网络获取的原始数据的种类、容量和提取速度等限制,手工提取特征往往花费较大的代价。随着深度学习的兴起,最近研究者们提出了许多基于DNN的因子分解模型来学习高阶和低阶的交互特征。现在诸如DeepFM和Deep&Wide等模型都可以自动学习隐式的高维交互特征,并结合了低维特征,但是有一个缺点就是它们的高维特征都是在bite-wise的层面上进行交互的。本文提出了一种全新的压缩交互网络(Compressed Interaction Network(CIN)),能够在vector-wise级别学习显式的交互特征,CIN带有一些CNN和RNN的特点,作者进一步将CIN与经典的DNN融合成一个统一模型,命名为"eXtreme Deep Factorization Machine(xDeepFM)"。一方面,xDeepFM能够显式地学习一定的有界度特征交互;另一方面,它可以隐式地学习任意的低阶和高阶交互特性。
什么是bit-wise与vector-wise?
假设隐向量的维度为3维,如果两个特征(对应的向量分别为(a1,b1,c1) (a1,b1,c1)(a1,b1,c1)和(a2,b2,c2) (a2,b2,c2)(a2,b2,c2))在进行交互时,交互的形式类似于f(w1∗a1∗a2,w2∗b1∗b2,w3∗c1∗c2) 的话,此时我们认为特征交互是发生在元素级(bit-wise)上。如果特征交互形式类似于f(w∗(a1∗a2,b1∗b2,c1∗c2))的话,那么我们认为特征交互是发生在特征向量级(vector-wise)。
1简介(INTRODUCTION)
1.1手动提取交互特征的缺点:
- 挖掘出高质量的交互特征需要非常专业的领域知识并且需要做大量的尝试,很耗时间;
- 在大型的推荐系统中,原生特征是海量的,手动挖掘交叉特征几乎不可能;
- 挖掘不出肉眼不可见的交叉特征。
1.2几种经典的特征提取模型:
- FM模型,用提取隐向量然后做内积的形式来提取交叉特征,扩展的FM模型可以提取随机的高维特征,但是主要的缺陷是:会学习所有的交叉特征,其中肯定会包含无用的交叉组合,另外一篇论文指出引入无用的交叉特征会引入噪音并降低模型的表现。
- DNN模型
- FNN:“Factorisation-machine supported Neural Network (FNN)”,它在DNN之前使用了预训练的field embedding。
- PNN:Product-based Neural Network (PNN),在embedding layer和DNN Input之间插入了一层product layer,不依赖于pre-trained FM。
1.3FNN和PNN的缺点都是忽略了低维交互特征,Wide&Deep和DeepFM模型通过混合架构解决了这种问题,但是它们同样存在缺点:a)它们学习到的高维特征是一种implicit fasion,没有一种公式可以明确推论出最终学习出来的交叉特征到底是多少维的;b)另一方面,其DNN部分是在bit-wise的层面下进行学习的,而经典的FM架构是在vetor-wise层面学习的。
2.PRELIMINARIES
2.1 Embedding Layer
在计算机视觉或者自然语言处理领域,输入往往是图片或者文字文本,这些都是空间或者时间上相关的,因此可以用DNN直接作用于结构紧制的原始特征上。但是在推荐系统中,输入的原始特征稀疏,维数大,没有明显的时空相关性。在原始特征输入上应用嵌入层,将其压缩为低维、密集的实值向量。
虽然输入的每个feature的长度可能不同,但是经过embedding layer后,长度均为D,保持一致。
2.2隐式的高阶交互
FNN,Deep Crossing以及Wide&Deep的深层部分利用 field embedding e e e上的前馈神经网络来学习高阶特征交互,具体的前向传播过程如下:
PNN和DeepFM除了在嵌入向量e上应用DNN之外,还在架构中引入了双向交互层。 因此,bit-wise和vector-wise相互作用都包含在他们的模型中。 PNN和DeepFM之间的主要区别在于:PNN将product layer的输出连接到DNN,而DeepFM将FM层直接连接到输出单元。PNN 与 DeepFM 结构如下图所示,属于元素级(bit-wise)的特征交互,也可以理解为相同 field 中的 embedding vector 内的元素也会相互影响。
2.3显式的高阶交互
Cross Network(CrossNet)的结构图如下所示:
Cross-Network的目标在于明确地模拟高阶特征交互。 与传统的完全连接的前馈网络不同,隐藏层通过以下交叉操作计算:
其中 w k , b k , x k w_k, b_k, x_k w