「xDeepFM」- 论文摘要

2020年6月10日 01:52 阅读 201 评论 0

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:

加入正则项,防止过拟合,最后目标函数为:

原创文章,转载请注明出处:https://boywithacoin.cn/article/xdeepfm-lun-wen-zhai-yao/


您尚未登录,请 登录注册 后评论
    0 人参与 | 0 条评论
    暂时没有评论,欢迎来尬聊!