交叉特征的处理算法学习理解(FM-xDeepFM)FM算法

公式:

交叉特征的处理算法学习理解(FM-xDeepFM)

其中

交叉特征的处理算法学习理解(FM-xDeepFM)

交叉特征的处理算法学习理解(FM-xDeepFM)

其中交叉特征的处理算法学习理解(FM-xDeepFM)

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

交叉特征的处理算法学习理解(FM-xDeepFM)

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

注:V的维度为交叉特征的处理算法学习理解(FM-xDeepFM)交叉特征的处理算法学习理解(FM-xDeepFM)的维度为交叉特征的处理算法学习理解(FM-xDeepFM)交叉特征的处理算法学习理解(FM-xDeepFM)为超参,表示向量维度。

FFM算法

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

交叉特征的处理算法学习理解(FM-xDeepFM)

此时相对于FM中的交叉特征的处理算法学习理解(FM-xDeepFM),FFM中的交叉特征的处理算法学习理解(FM-xDeepFM)维度为交叉特征的处理算法学习理解(FM-xDeepFM)交叉特征的处理算法学习理解(FM-xDeepFM)中有f个向量是不相同的,同一fiield下的向量是相同的。

DeepFM算法

对高阶特征组合进行建模

交叉特征的处理算法学习理解(FM-xDeepFM)

FM算法中 

交叉特征的处理算法学习理解(FM-xDeepFM)

FM layer中的+的输入为onehot编码,x的输入为词向量交叉特征的处理算法学习理解(FM-xDeepFM),ANN的输入也是词向量交叉特征的处理算法学习理解(FM-xDeepFM)

最后的交叉特征的处理算法学习理解(FM-xDeepFM)

DCN算法(Deep & cross network)

交叉特征的处理算法学习理解(FM-xDeepFM)

其中交叉特征的处理算法学习理解(FM-xDeepFM)是连续变量和分类变量embedding向量的组合向量

交叉特征的处理算法学习理解(FM-xDeepFM)

交叉特征的处理算法学习理解(FM-xDeepFM)

交叉特征的处理算法学习理解(FM-xDeepFM)

交叉特征的处理算法学习理解(FM-xDeepFM)

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

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

xDeepFM算法

交叉特征的处理算法学习理解(FM-xDeepFM)

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

交叉特征的处理算法学习理解(FM-xDeepFM)

交叉特征的处理算法学习理解(FM-xDeepFM)中的m行表示有m个特征(field),每个field的向量维度为D,交叉特征的处理算法学习理解(FM-xDeepFM)一开始是初始化的向量矩阵,由embedding vector组成。

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

交叉特征的处理算法学习理解(FM-xDeepFM)交叉特征的处理算法学习理解(FM-xDeepFM)

首先理解交叉特征的处理算法学习理解(FM-xDeepFM)

交叉特征的处理算法学习理解(FM-xDeepFM)

交叉特征的处理算法学习理解(FM-xDeepFM)中有交叉特征的处理算法学习理解(FM-xDeepFM)个field,交叉特征的处理算法学习理解(FM-xDeepFM)中有m个field,进行点乘的维度效果为:

交叉特征的处理算法学习理解(FM-xDeepFM)

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

最后得到一个维度为交叉特征的处理算法学习理解(FM-xDeepFM)的矩阵,可以理解为有D个样本(每个样本是一个embedding维度),每个样本有交叉特征的处理算法学习理解(FM-xDeepFM)个特征和m个特征的交叉,即有交叉特征的处理算法学习理解(FM-xDeepFM)个值。

再理解交叉特征的处理算法学习理解(FM-xDeepFM)

交叉特征的处理算法学习理解(FM-xDeepFM)

交叉特征的处理算法学习理解(FM-xDeepFM)

其中向量交叉特征的处理算法学习理解(FM-xDeepFM)为权重向量,最后得到维度为交叉特征的处理算法学习理解(FM-xDeepFM)的矩阵交叉特征的处理算法学习理解(FM-xDeepFM),最后对每个filed的向量进行加总求和实现sum pooling。

在用代码实现过程中,可将维度为交叉特征的处理算法学习理解(FM-xDeepFM)的矩阵的矩阵进行压缩,得到维度为交叉特征的处理算法学习理解(FM-xDeepFM)的矩阵,然后用维度为交叉特征的处理算法学习理解(FM-xDeepFM)交叉特征的处理算法学习理解(FM-xDeepFM)的filter进行conv1d的卷积操作,再进行sum_pooling操作。

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

相关文章: