DeepFM&DCN&XDeepFM
DeepFM
模型结构
- 将FM与DNN部分结合起来,共享输入embedding,分别学习低阶特征交互和高阶特征交互
- FM部分:
第一项为一阶特征,第二项为二阶特征
- Deep部分:DNN网络
- 损失函数 \(\hat{y}=sigmoid(y_{FM}+y_{DNN})\)
DCN-v2
DeepFM的FM部分仅能学习二阶特征之间的关系,本文提出DCN-v2模型,通过cross network学习显式特征交互,通过deep network学习隐式特征交互。 有限高阶、自动叉乘、参数共享。
模型结构
DCN-v2中提出两种模型结构,分别是Cross network和Deep network级联与并联。
Cross network
Cross network通过n层cross layer显式学习特征交互。cross layer计算方式:
\(x_{0}\in\mathbb{R}^{d}\)表示input layer编码的embedding,\(x_l\)和\(x_{l+1}\)分别表示第$l$层cross layer的输入和输出,\(W_{l}\in\mathbb{R}^{d\times d}\)
为了提升计算效率,使用\(UV^{T}\)来代替参数\(W\),\(U,V\in\mathbb{R}^{d\times r},r\ll d/2\)
XDeepFM
- DCN的不足:
CIN网络
CIN网络的输入来自embedding层,设有$m$个特征field,每个特征的编码维度为$D$,则输入矩阵\(X^{0}\in \mathbb{R}^{m\times D}\)
令\(X^{k}\in \mathbb{R}^{H_{k}\times D}\)为第k层的输出,$H_{k}$表示第k层的向量个数,$D$维度不变,第k层的vector计算方式为
\[X^{k}_{h,*} = \sum_{i=1}^{H_{k-1}}\sum_{j=1}^{m}W_{ij}^{k,h}(X_{i,*}^{k-1}\circ X_{j,*}^{0})\]- 取k-1层的$X^{k\in \mathbb{R}^{H_{k-1}\times D} }$,中的k-1个vector与\(X^{0}\in \mathbb{R}^{m\times D}\)中的m个vector一次做Hadamard积并加权求和
- 同一层不同vector的区别在与参数$W$的不同
- CIN在每一层只包含l+1阶特征,每一层都输出中间结果
This post is licensed under CC BY 4.0 by the author.





