image.png
xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systemshttps://arxiv.org/pdf/1803.05170.pdfcode:https://github.com/Leavingseason/xDeepFM
背景
从方法名中就可以知道这篇文章分享的是FM的进一步改进版,xDeepFM是将DeepFM和DCN结合的一篇文章,将多层特征交叉和Field的概念结合起来。在DCN的推文中我们在总结部分就提到,DCN相对于FM的不同之处在于FM系列方法是可以根据不同的field来做特征交叉的,而DCN是直接在整个特征向量上做特征交叉,没有field的概念。xDeepFM就是将两者结合。
方法
上图为xDeepFM的总体框架图,DNN部分没有改动,主要创新部分在于CIN部分。
Compressed Interaction Network(CIN)
CIN考虑了一下几个方面:
- 在向量层面(vector level)而不是元素层面(bit-wise level)进行特征交叉
- 结合了DCN的方式进行高阶的特征交叉
- 网络的复杂度不会随着交互的程度而呈指数增长
CIN中,第k层的输入为一个矩阵
,其中k表示第k层,D表示该field embedding向量的维度,
表示向量个数。第k层的特征交叉计算方式如下:
其中h表示输入矩阵中的第h行(个)向量,w为可学习权重,向量之间两两做哈达玛积。最终得到
个D维的向量,在文中H0=m因此也就是
个
上图为CIN层的总体计算过程,对每一层的X和输入做完交叉后,做sum pooling,
。其中i为第i行,得到一个
维的向量
。然后将每一层的p拼接起来得到
,最后通过全连接层和sigmoid得到预测值
。
计算方式
计算方式和CIN名字的由来有点相关,不过这里只讲计算方式。CIN中,将
和
以outer product的形式来得到
,outer product就是将
,最后得到的是
,然后权重w按D维度逐层相乘。
结果
实验结果表明所提方法是有效的,并且和FM和CrossNet对比可以发现CIN中将两者的思想结合是有作用的。