推荐系统xDeepFM模型

Posted 天泽28

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐系统xDeepFM模型相关的知识,希望对你有一定的参考价值。

推荐系统(七)xDeepFM模型

推荐系统系列博客:

  1. 推荐系统(一)推荐系统整体概览
  2. 推荐系统(二)GBDT+LR模型
  3. 推荐系统(三)Factorization Machines(FM)
  4. 推荐系统(四)Field-aware Factorization Machines(FFM)
  5. 推荐系统(五)wide&deep
  6. 推荐系统(六)Deep & Cross Network(DCN)

这篇文章是中科大、北邮和微软合作发表在KDD’18上的文章,从论文写作手法上来看充满了浓浓的学院风。言归正传,乍一看论文标题xDeepFM还以为是对DeepFM的改进,实际上不是,xDeepFM是对上一篇博客中介绍的DCN(deep&cross network)的改进,这也是为什么这篇博客会介绍xDeepFM的原因。本篇博客将会从一下几个方面来介绍xDeepFM:

  1. 论文动机
  2. xDeepFM模型整体结构
  3. xDeepFM中CIN网络结构
  4. 联合训练目标函数
  5. 总结

一、论文动机

这篇文章diss的一个重点就是DCN网络中cross network部分,因此,个人强烈建议在看xDeepFM之前,请先移步去本人的上一篇博客看看DCN。我们先来看看xDeepFM给出的论据:

  1. 这篇文章认为DCN网络中cross部分只是对 x 0 x_0 x0(输入向量)某种特殊的放缩(交叉)。
  2. 这篇文章认为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=x0xk1Twk+bk+xk1(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模型的主要内容,如果未能解决你的问题,请参考以下文章

摆脱 FM!这些推荐系统模型真香

CTR预估---神经网络

xDeepFM

推荐系统之ContextDNN模型

推荐系统的召回

CRSLab:可能是最适合你的对话推荐系统开源库