「xDeepFM」- 论文摘要
1、前言
基于DNN的分解机模型,能够发现低阶和高阶组合特征,在bit-wise level上,本文提出了Compressed Interaction Network (CIN)网络结构,目的在生成的特征在vector-wise level上,CNN和RNN的功能应用到了CIN上,进一步将CIN和DNN结合,将此网络称为xDeepFM。
2、CTR整体发展情况介绍
对于CTR方面的输入一般具有高维度高度稀疏的特点,传统的做法即采用LR来进行预测,效果也很不错,但达到瓶颈后很难进行提升了,由于LR需要进行人工特征工程,所以效率会有点低,而且在达到瓶颈后无论加减特征效果都会下降,后来2010年提出FM模型,能够自动发现二阶组合特征,但是发现高阶组合特征的复杂度太大,所以FM仅用来发现二阶组合特征。2014年Facebook提出GBDT+LR的融合方案,简单的来说由于GBDT本身可以发现多种有区分性的特征以及特征组合,决策树的路径可以直接作为LR输入特征使用,省去了人工寻找特征、特征组合的步骤。所以可以将GBDT的叶子结点输出,作为LR的输入。为了自动去发现组合特征以及减少人工特征工程的复杂性,相继提出了Wide&Deep,Deep&Cross,FNN,AFM,PNN,DIN,DeepFM等网络模型。
3、xDeepFM
由于Deep&Cross Network中的cross network实际上无法有效的捕获高阶组合特征,因此本文设计出一个新的网络CIN来代替DCN中的cross network部分,所以xDeepFM的提出实际上是在DCN的基础上进行改进的,而且CIN可以具体指定最高多少阶。 特征组合在向量级别(向量组相互交叉)上而不是在位级别(各个位的值为1时的交叉结果,AND(userId=1,gender=1))上(features interact at the vector-wise level rather than the bit-wise level)。
xDeepFM结构图:
3.1、Embedding Layer
embedding层是将原始高维度高度稀疏的特征进行降维,转化从dense vector。对于单值特征,例如 gender=[1,0],the feature embedding is used as the field embedding。如果是多值特征,例如interests=comedy&rock,interests=[0,1,0,0,1,0….], the sum of feature embedding is used as the field embedding。最后将各个embedding vector结合起来。
e = [e_1, 3_2, …, 3_m]
3.2、High-order Interactions
3.2.1、DeepFM + PNN 组合网络结构:
从图中可以发现此模型共享Embedding层,而且此结构中包含两种组合特征的方式,所以该模型在组合特征上既包括向量级别上也包括位级别上,其中的Product Layer是在向量级别上进行两两相乘,FM Layer是在位级别上进行相乘。PNN和DeepFM的主要区别在于PNN将Product层的输出连接到DNN,而DeepFM将FM层直接连接到输出单元。
3.2.2、CrossNet:
表达式:
x_k = x_0 x^T_{k-1} w_k +b_k +x_{k-1}
x0均参与每层的cross操作。CrossNet设计目的在于发现高阶组合特征,然而本文却发现这个网络并不能有效的发现高阶组合特征。证明如下:
第i+1层定义如下:
x_{i+1} = x_0x^T_i w_{i+1} +x_i
,输出为xk
假设k=1,
\begin{matrix} x_1 &= x_0 (x_0 ^Tw_1) +x_0 & \\ &= x_0(x^T_0w_1 +1) & \\ & =\alpha^1x^0 & \end{matrix}
其中
\alpha ^1 = x^T_0w_1 +1
,实际上可发现x1与x0是线性关系。
那么当k=i+1时,有:
\begin{matrix} x_{i+1}& = x_0x_i^T w_{i+1} +x_i\\ &=x_)((\alpha^ix_0)^Tw_{i+1}) +\alpha ^ix_0\\ &= \alpha^{i+1} x_0 \end{matrix}
其中
\alpha ^{i+1} = \alpha^i(x^T_0w_{i+1} +1)
,xi+1与x0还是线性关系,所以该网络本身无法有效的发现高阶组合特征。
3.3、Compressed Interaction Network(CIN)
结构图:
CIN侧重在以下方面:
在向量级别上进行特征组合(相乘),而不是在位级别上
可以指定最高多少阶
明确高阶组合特征,而不是像CrossNet一样,存在线性关系。
经过Embedding层后得到x0,其以一张图的形式表示出来,形状大小为m X D,其中m由多个经过embedding后得到的(embedding)field vector组成,D的大小为field feature的大小。设CIN结构有k层,每层的输出结果为xk,xk的结果与x0和xk-1有关,其计算公式为:
,里面包含 Hadamard乘积(◦ 的含义),即⟨a1 ,a2 ,a3 ⟩ ◦ ⟨b1 ,b2 ,b3 ⟩ = ⟨a1 b1 ,a2 b2 ,a3 b3 ⟩ 。表达式含义:xk-1的每一行i和x0 的每一行j进行相乘,然后乘上权重
的对应项 !$W^{k,h}_{ij}$,最后求总和得到xk 的值。Hk表示第k层的embedding vector的个数。H0=m,由此公式可知道,此操作方法与RNN类似,下一层的输入依赖前一层的结果。本文引入了CNN的方式来解释此公式,将xk看成image,把!$W^{k,h}$看成卷积核,这样以卷积操作的形式构成下一个image。
根据图(c),我们发现还需要对CIN中每层进行sum pooling操作,公式:
,表示第i层中每个embedding vector进行求和,得到!$p^{k}_{i}$。将1~k层的pooling结果进行concat,即
。如果我们直接使用CIN进行二分类,则加入sigmoid层,计算公式:
3.4、Combination with Implicit Networks
根据xDeepFM结构图得到,如下公式:
损失函数为logloss:
加入正则项,防止过拟合,最后目标函数为:
本作品采用《CC 协议》,转载必须注明作者和本文链接