xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems
目标:CTR预估
文中指出DNN可以进行隐式的特征交叉,但是这种交叉是bit-wise(元素级,文中bit指比如embedding中的某一位)的。本文提出一种新的CIN(Compressed Interaction Network)模型通过显式的方式进行特征交叉,并且这种交叉是vector-wise(向量级)的。
这种CIN模型和CNN、RNN相比,功能上有一定的相似性。之后结合CIN和典型的DNN成为一个统一的模型,命名为eXtreme Deep Factorization Machine(xDeepFM)。
一方面,xDeepFM能够显式的学习有限程度(bounded-degree)上的特征交叉;另一方面,xDeepFM能够隐式的学习任意low-order和high-order的特征交叉。
当下一种常见的特征交叉方式为cross-product transformation,生成的特征称为corss feature或multi-way feature。比如3-way feature AND(user_organization=msra,
item_category=deeplearning, time=monday)当这三个条件都满足时值为1。
这种特征交叉的方式的缺点在于:
•获得有意义的特征组合通常需要非常出色的领域知识。
•在大规模数据的情况下,手动的抽取所有特征交叉组合并不现实。
•手动设计的特征组合不能泛化到训练数据中不可见的特征交叉上。
文中提出FNN和PNN的缺点在于更多的关注high-order的特征交叉,较少的关注low-order的特征交叉。
Wide & Deep和DeepFM通过引入包括shallow和deep两个模块的混合结构,能够同时较好的学习到high-order和low-order的特征交叉。
上述模型都使用DNN来学习high-order特征交叉,然而这种交叉是隐式的,没有理论上的结论表明这种特征交叉的最大程度(maximum degree)是多少。此外,DNN进行特征交叉是元素级(bit-wise)的,传统的FM进行特征交叉是向量级(vector-wise)的。
本文提出的模型是显式的、向量级的学习特征交叉。本文的工作基于Deep & Cross Network(DCN),在下文会说明DCN的不足之处,而本文设计了一种新的compressed interaction network(CIN)来代替DCN的cross network。CIN显式的学习特征交叉,交叉的程度随着网络深度的增加而增加。最后,把显式的high-order交叉模块、隐式的交叉模块和传统FM模块进行组合,得到xDeepFM。
PRELIMINARIES
Embedding Layer
Embedding layer非常熟悉了。onehot的field直接压缩成一个embedding;multi-hot的field对多个embedding求和得到最终的一个embedding。经过embedding layer后得到向量
Implicit High-order Interactions
FNN、Deep Crossing、Wide & Deep中的deep部分将e输入到前馈神经网络中来学习high-order特征交互,前向过程为
k表示层数,sigma表示激活函数,xk表示第k层的输出。这种结构的特征交叉是元素级(bit-wise)的,即同一个field上embedding中的元素也会相互影响。
上图展示了PNN和DeepFM的模型结构,它们同时进行了bit-wise和vector-wise的特征交叉。
Explicit High-order Interactions
Deep & Cross的详细内容见前面Deep & Cross的笔记,这里快速提一下。
Deep & Cross中提出的Cross Network显式的进行high-order特征交叉,每一层的计算公式为
wk, bk, xk分别表示第k层的权重、偏置、输出。本文认为CrossNet学习了一种特殊类型的high-order特征交叉,每个hidden layer都是x0乘上一个标量。
即有以下定理
同时,原文中给出了具体证明
需要注意的是,标量乘并不意味着xk与x0是线性关系。系数αi+1对于x0是敏感的。CrossNet能够有效的学习特征交叉,并且相比DNN复杂度要小很多,然而它的缺点在于:
•CrossNet的输出限定于一个特殊的形式,即每一层为x0乘一个标量。
•特征交叉是bit-wise的。
OUR PROPOSED MODEL
Compressed Interaction Network
本文设计了一种新的cross network,命名为Compressed Interaction Network(CIN),考虑到的点主要有:
•特征交互是vector-wise的。
•显式的high-order特征交互。
•复杂度不会随着交叉程度指数上升。
1≤h≤Hk,Wk,h(Hk-1 * m维)表示第h个feature vector的参数矩阵,○表示哈达玛积。
Xk通过Xk-1和X0的交叉得到,因此这种特征交叉是显式的,交叉的程度随着层的深度而增加。
CIN的结构和RNN非常相似,它们下一层的输出都取决于上一层的结果以及一个额外的输入。在每一层都保持embedding vector的结构,因此这种特征交互是vector-wise的。
同时文中指出,等式(6)和CNN有着非常明显的联系。如图4(a)所示,引入中间tensor Zk+1,其为Xk和X0沿着各个embedding维度的外积(outer product),这里外积的理解很重要,即(m * 1) * (1 * n)得到m*n的矩阵,结合原图中理解。对应于CNN,Zk+1可以看作特殊的image,Wk,h可以看作filter。如图4(b)所示,沿着embedding dimension方向(D)滑动filter做卷积,得到一个hidden vector
也就是feature map。Xk也就是Hk个不同的feature map的集合。
图4(c)描绘了CIN结构的全貌,令T表示网络的深度,每个隐层Xk (1≤k≤T)都与最终的输出有连接。对每个hidden layer中的feature map做sum pooling,
i∈[1,Hk],Hk表示第k个hidden layer的长度,由此得到pooling vector
所有的hidden layer上得到的pooling vector concatenate成一个长向量,
如果直接把CIN的结果用于二分类,那么对p+做sigmoid即可,
Combination with Implicit Networks
普通的DNN隐式的学习high-order特征交叉,与CIN是互补的,因此考虑结合两者,得到的模型即为xDeepFM。
xDeepFM的优势在于:
•同时包括了low-order和high-order的特征交叉。
•同时包括了显式和隐式的特征交叉。
最终的输出单元为:
sigma表示sigmoid激活函数,a表示原始特征,xkdnn表示普通DNN的输出,p+表示CIN的输出,w和b分别为weight和bias。
对于二分类问题,一般用log loss
加上正则化项,目标函数为
θ为参数集合。
Relationship with FM and DeepFM
假设所有的特征域都是onehot的,当CIN中的深度和feature map数量为1时,模型退化为DeepFM的一种泛化形式(此时与DeepFM的区别在于,DeepFM中FM层直接连接到输出上,没有权重系数)。当移除DNN部分,并使用constant sum filter(直接把feature map对应位置的元素求和)后,模型退化为传统的FM模型。
文中最后提到的future work中有一个很有意思的idea,对于multi-hot的特征域,文中采用的是简单的sum pooling。因此可以考虑DIN中的想法,也就是做一个weighted sum pooling。