经典CTR模型(6)---xDeepFM

xDeepFM Combining Explicit and Implicit Feature Interactions for Recommender Systems

Posted by weber on January 7, 2020

论文:xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems,KDD,2018

1. 背景介绍

FNN,PNN,DeepFM的特征交互都发生在 bit-wise,并且模型学习出的是隐式的交互特征,其形式未知,不可控;DCN虽然显式学习高阶特征交互,但特征交互都发生在 bit-wise,而非 vector-wise。

因此,微软亚洲研究院社会计算组提出了一种极深因子分解机模型(xDeepFM),不仅能同时以显式和隐式的方式自动学习高阶的特征交互,使特征交互发生在向量级,还兼具记忆与泛化的学习能力。

2. xDeepFM结构

image-20200323144921094

如图所示,xDeepFM特别的设计之处在于:CIN模块,具体看看这一块的实现。

2.1 Compressed Interaction Network

为了实现自动学习显式的高阶特征交互,同时使得交互发生在向量级上,文中首先提出了一种新的名为压缩交互网络(Compressed Interaction Network,简称CIN)的神经模型。 其过程如下图所示:

image-20200323145411120

得到第k层中的一个向量,可以分为两步:

  1. 根据隐藏状态$X^k \in \mathbb{R}^{h_k \times d}$和原特征矩阵$X^0 \in \mathbb{R}^{m \times d}$,计算三维的中间张量$Z^{k+1} \in \mathbb{R}^{h_k \times m \times d}$;
  2. 用 $h_{k+1}$个尺寸为 $m \times h_k$的卷积核,生成下一个隐层的状态 $X_{k+1} \in \mathbb{R}^{h_{k+1} \times d}$

整个宏观过程如图所示:

image-20200323145427628

可以看出,它的特点是,最终学习出的特征交互的阶数是由网络的层数决定的,每一层隐层都通过一个池化操作连接到输出层,从而保证了输出单元可以见到不同阶数的特征交互模式。同时不难看出,CIN的结构与循环神经网络RNN是很类似的,即每一层的状态是由前一层隐层的值与一个额外的输入数据计算所得。不同的是,CIN中不同层的参数是不一样的,而在RNN中是相同的;RNN中每次额外的输入数据是不一样的,而CIN中额外的输入数据是固定的,始终是X0。

CIN为什么是显式的学习?

X1的第h个神经元向量可以表示为: 那X2的第h个神经元向量: 同理,第k层的神经元也可以表示成显示乘积的形式。

3. 优缺点

优点:

  1. xDeepFM可以同时学习到显式的高阶特征交叉(CIN)与隐式的高阶特征交叉;
  2. 在交叉特征的学习上,CIN采用了vector-wise的交叉(而不是DCN中的bit-wise交叉);

缺点:

  1. CIN在实际计算中时间复杂度过高;
  2. CIN的sum-pooling操作会损失一定的信息;