nffm模型

然而在大多数情况下,由于很多特征对预测并不重要,所以这些数据集是稀疏的(每个训练样本只有几个变量是非零的)。在数据稀疏的场景下,因子分解有助于从原始数据中提取到重要的潜式或隐式的特征。

因子分解有助于使用低维稠密矩阵来表示目标和预测变量之间的近似关系。在本文中我将讨论算法Factorization Machines(FM) 和Field-Aware Factorization Machines(FFM)

线性或逻辑回归模型在很多问题上表现很好,但缺点是这种模型只能学习所有变量或者特征各自的影响,无法学习变量之间的相互作用。

FM算法的另一个巨大优势是能够在线性时间复杂度下使用简单的数学方法计算模型中成对特征的相互作用。

1 模型结构: nffm模型_第1张图片

组成: shallow part :LR 。deep part:ffm embedding+fcs (全连接层)

FFM 是FM 的改进版,FM 对每个特征只会生成一个连续值特征向量,与其他特征做交叉时,都会使用这个特征向量,而FFM 中,每一个特征会生产多个特征向量,与不同的特征做组合时,会用不同的特征向量做组合,从本质来讲,FFM 比FM 的效果要好,其实就是参数的数量更多了,它的效果要略好于单纯增加的enbedding size。

2 NFFM 的数学表达

假设我们有f个特征,第i 个特征的onehot 向量为xi。

则模型的输入为:

设第i个特征的FFM embedding 的结果为:

值得注意的是其实是一个多余的向量(即特征i 与自己做组合时的特征向量),但是为了编程更加方便,我们还是生成了该向量。

nffm 模型的数学表达式为:

DNN(x) 代表模型的深度部分,可以分解:

FCS(X) 代表全连接层的函数表示,代表元素之间的乘法

代表的是两个特征向量之间做元素乘法后拼接的结果,假设每个embedding size 为k,则的size 为f*(f-1) *k/2 .

特征对(ESPN,Adidas) 只有一个负的训练数据,那么在Poly2 算法中,这个特征对可能会学到一个负的权重值wESPN,Adidas ; 而在FM 算法中,由于特征对(ESPN,Adidas) 是由sESPN -wAdidas 决定的,而其中的wESPN 和wAdidas 分别是从其他特征对中学到的,比如(ESPN,Nike)(NBC,Adidas)等,所有预测可能更加精确。

另一个例子是特征对(NBC,Gucci)没有任何训练数据,对于Poly2算法,这个特征对的预测值为0;但是在FM算法中,因为wNBC和wGucci可以从其他特征对中学到,所以仍然有可能得到有意义的预测值。‘nffm模型_第2张图片

为了理解FFM算法,我们需要认识field的概念。field通常是指包含一个特定特征的更广泛的类别。在上述训练示例中,field分别指发布者(P)、广告商(A)和性别(G)。

 

你可能感兴趣的:(机器学习)