天天看点

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
FM算法

公式:

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

其中

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

其中

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

利用上三角矩阵=(对称矩阵-对角矩阵)/2的思想,将其化简为

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

再利用梯度下降法求出V,即得到每个特征的隐含向量(能反映交叉信息),同时训练即可得到分类或回归模型。

注:V的维度为

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

的维度为

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

为超参,表示向量维度。

FFM算法

在FM的基础上引入了类别(field)的概念,n个特征(已one-hot编码)属于f个field。

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

此时相对于FM中的

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

,FFM中的

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

维度为

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

中有f个向量是不相同的,同一fiield下的向量是相同的。

DeepFM算法

对高阶特征组合进行建模

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

FM算法中 

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

FM layer中的+的输入为onehot编码,x的输入为词向量

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

,ANN的输入也是词向量

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

最后的

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

DCN算法(Deep & cross network)

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

其中

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

是连续变量和分类变量embedding向量的组合向量

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

通过不断地叠加,实现了高阶的交叉cross。

参考大佬文章:https://zhuanlan.zhihu.com/p/55234968

xDeepFM算法

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

DCN中没有考虑field概念,xDeepFM考虑了filed概念,核心是CIN的理解:

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

中的m行表示有m个特征(field),每个field的向量维度为D,

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

一开始是初始化的向量矩阵,由embedding vector组成。

后续再通过如下算式进行特征的高阶交叉:

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

首先理解

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

中有

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

个field,

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

中有m个field,进行点乘的维度效果为:

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

z1 = x1*y1;z2 = x2*y1,z3 = x3*y3;z4 = x1*y4

最后得到一个维度为

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

的矩阵,可以理解为有D个样本(每个样本是一个embedding维度),每个样本有

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

个特征和m个特征的交叉,即有

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

个值。

再理解

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

其中向量

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

为权重向量,最后得到维度为

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

的矩阵

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

,最后对每个filed的向量进行加总求和实现sum pooling。

在用代码实现过程中,可将维度为

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

的矩阵的矩阵进行压缩,得到维度为

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

的矩阵,然后用维度为

交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
交叉特征的处理算法学习理解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

的filter进行conv1d的卷积操作,再进行sum_pooling操作。

参考大佬文章:https://zhuanlan.zhihu.com/p/57162373

继续阅读