前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >推荐系统(二十)——Kdd'18「微软」xDeepFM,兼具DeepFM和DCN的优势

推荐系统(二十)——Kdd'18「微软」xDeepFM,兼具DeepFM和DCN的优势

作者头像
秋枫学习笔记
发布2022-09-19 11:48:59
5410
发布2022-09-19 11:48:59
举报
文章被收录于专栏:秋枫学习笔记

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是将DeepFMDCN结合的一篇文章,将多层特征交叉和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层的输入为一个矩阵

X^k\in \mathbb{R}^{H_k\times D}

,其中k表示第k层,D表示该field embedding向量的维度,

H_k

表示向量个数。第k层的特征交叉计算方式如下:

\mathbf{X}_{h, *}^{k}=\sum_{i=1}^{H_{k-1}} \sum_{j=1}^{m} \mathbf{w}_{i j}^{k, h}\left(\mathbf{X}_{i, *}^{k-1} \circ \mathbf{X}_{j, *}^{0}\right)

其中h表示输入矩阵中的第h行(个)向量,w为可学习权重,向量之间两两做哈达玛积。最终得到

H_{k-1}\times H_0

个D维的向量,在文中H0=m因此也就是

H_{k-1}\times m

上图为CIN层的总体计算过程,对每一层的X和输入做完交叉后,做sum pooling,

p_i^k=\sum_{j=1}^D{X_{i,j}^k}

。其中i为第i行,得到一个

H_k

维的向量

p^k=[p_1^k,...,p_{H_k}^k]

。然后将每一层的p拼接起来得到

p^+

,最后通过全连接层和sigmoid得到预测值

y=\frac{1}{1+exp\left({p^+}^Tw\right)}

计算方式

计算方式和CIN名字的由来有点相关,不过这里只讲计算方式。CIN中,将

x^k

x^0

以outer product的形式来得到

z^{k+1}

,outer product就是将

x^k_{*,i}\cdot {x^{0}_{*,j}}^T

,最后得到的是

H_k\times m \times D

,然后权重w按D维度逐层相乘。

结果

实验结果表明所提方法是有效的,并且和FM和CrossNet对比可以发现CIN中将两者的思想结合是有作用的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秋枫学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Compressed Interaction Network(CIN)
    • 计算方式
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档