推荐系统xDeepFM模型
Posted 天泽28
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐系统xDeepFM模型相关的知识,希望对你有一定的参考价值。
推荐系统(七)xDeepFM模型
推荐系统系列博客:
- 推荐系统(一)推荐系统整体概览
- 推荐系统(二)GBDT+LR模型
- 推荐系统(三)Factorization Machines(FM)
- 推荐系统(四)Field-aware Factorization Machines(FFM)
- 推荐系统(五)wide&deep
- 推荐系统(六)Deep & Cross Network(DCN)
这篇文章是中科大、北邮和微软合作发表在KDD’18上的文章,从论文写作手法上来看充满了浓浓的学院风。言归正传,乍一看论文标题xDeepFM还以为是对DeepFM的改进,实际上不是,xDeepFM是对上一篇博客中介绍的DCN(deep&cross network)的改进,这也是为什么这篇博客会介绍xDeepFM的原因。本篇博客将会从一下几个方面来介绍xDeepFM:
- 论文动机
- xDeepFM模型整体结构
- xDeepFM中CIN网络结构
- 联合训练目标函数
- 总结
一、论文动机
这篇文章diss的一个重点就是DCN网络中cross network部分,因此,个人强烈建议在看xDeepFM之前,请先移步去本人的上一篇博客看看DCN。我们先来看看xDeepFM给出的论据:
- 这篇文章认为DCN网络中cross部分只是对 x 0 x_0 x0(输入向量)某种特殊的放缩(交叉)。
- 这篇文章认为DCN网络中cross部分的交叉是bit-wise的而不是像鼻祖FM那样是vector-wise的。这里简单描述bit-wise和vector-wise的区别,假设有两个特征 A , B A,B A,B,embedding维度为4,所以 A ( a 1 , a 2 , a 3 , a 4 ) A(a_1,a_2,a_3,a_4) A(a1,a2,a3,a4), B ( b 1 , b 2 , b 3 , b 4 ) B(b_1,b_2,b_3,b_4) B(b1,b2,b3,b4),那么bit-wise的交互则为 ( w a , b a 1 b 1 , w a , b a 2 b 2 , w a , b a 3 b 3 , w a , b a 4 b 4 ) (w_a,ba_1b_1,w_a,ba_2b_2,w_a,ba_3b_3,w_a,ba_4b_4) (wa,ba1b1,wa,ba2b2,wa,ba3b3,wa,ba4b4),而vector-wise交互则为 w a , b ( a 1 b 1 , a 2 b 2 , a 3 b 3 , a 4 b 4 ) w_a,b(a_1b_1,a_2b_2,a_3b_3,a_4b_4) wa,b(a1b1,a2b2,a3b3,a4b4)。通俗说bit-wise交互的粒度为每个特征embedding向量的每个bit上,而vector-wise交互粒度为特征与特征之间。
上面两个点,第二个点没啥好说的,重点来看看第一个点。xDeepFM这篇文章中给出了公式证明,先来看看DCN中cross部分的交叉公式:
x
k
=
x
0
x
k
−
1
T
w
k
+
b
k
+
x
k
−
1
(1)
x_k = x_0x^T_k-1w_k + b_k + x_k-1 \\tag1
xk=x0xk−1Twk+bk+xk−1(1)
再来看看xDeepFM中的证明:
x
1
=
x
0
(
x
0
T
w
1
)
+
x
0
=
x
0
(
x
0
T
w
1
+
1
)
=
α
1
x
0
(2)
\\beginaligned x_1 &= x_0(x_0^Tw_1) + x_0 \\\\ &= x_0(x_0^Tw_1 + 1) \\\\ &=\\alpha^1x_0 \\tag2 \\endaligned
x1=x0(x0Tw1)+x0=x0(x0Tw1+1)=α1x0(2)
其中,
α
1
=
x
0
T
w
1
+
1
\\alpha^1=x_0^Tw_1 + 1
α1=x0Tw1+1。
以此类推,
x
i
+
1
=
α
i
+
1
x
0
=
α
i
(
x
0
T
w
i
+
1
+
1
)
x
0
=
α
i
−
1
(
x
0
T
w
i
+
1
)
(
x
0
T
w
i
+
1
+
1
)
x
0
=
α
i
−
2
(
x
0
T
w
i
−
1
+
1
)
(
x
0
T
w
i
+
1
)
(
x
0
T
w
i
+
1
+
1
)
x
0
=
.
.
.
=
(
x
0
T
w
1
+
1
)
.
.
.
(
x
0
T
w
i
−
1
+
1
)
(
x
0
T
w
i
+
1
)
(
x
0
T
w
i
+
1
+
1
)
x
0
(3)
\\beginaligned x_i+1 &= \\alpha^i+1x_0 \\\\ &= \\alpha^i(x_0^Tw_i+1 + 1)x_0 \\\\ &= \\alpha^i-1(x_0^Tw_i + 1)(x_0^Tw_i+1 + 1)x_0 \\\\ &= \\alpha^i-2(x_0^Tw_i-1 + 1)(x_0^Tw_i + 1)(x_0^Tw_i+1 + 1)x_0 \\\\ &=... \\\\ &= (x_0^Tw_1 + 1)...(x_0^Tw_i-1 + 1)(x_0^Tw_i + 1)(x_0^Tw_i+1+ 1)x_0 \\tag3 \\endaligned
xi+1=αi+1x0=αi(x0以上是关于推荐系统xDeepFM模型的主要内容,如果未能解决你的问题,请参考以下文章