FM/FFM原理及其公式详解

FM在特征组合中的应用

  年龄(x1) 城市(x2) 性别(x3)
用户1 23 北京
用户2 31 上海

如上述特征X有三个维度,年龄是数值型特征,城市和性别是类别型特征,在进行特征组合的使用类别型特征要onehot处理 。

  x1年龄 x2北京 x3上海 x4深圳 x5男 x6女
用户1 23 1 0 0 1 0
用户2 31 0 1 0 0 1

实际上"北京的男性用户","上海的女性用户 "这种组合特征可能是有用的,即FM/FFM原理及其公式详解,FM/FFM原理及其公式详解,(FM/FFM原理及其公式详解,,FM/FFM原理及其公式详解都是one_hot特征)同时为1可能是一个很有用的特征,这种组合特征是FM/FFM原理及其公式详解,和FM/FFM原理及其公式详解的线性组合无法表示的 ,这样一来FM/FFM原理及其公式详解就成了一个新特征,为了不错过任何一种可能有用的组合特征,我们穷尽所有的i,j的组合,把FM/FFM原理及其公式详解,都加到特征里面去,即使其中某些FM/FFM原理及其公式详解不是one-hot特征或者某些 FM/FFM原理及其公式详解不是有用的特征,都没关系,经过大量样本的训练,模型会把那些无用的特征的系数训练为0。

这样就有人提出了FM模型:

                                                  FM/FFM原理及其公式详解
      这个公式中FM/FFM原理及其公式详解,FM/FFM原理及其公式详解,FM/FFM原理及其公式详解,FM/FFM原理及其公式详解都是一个数既不是向量也不是矩阵,它是在计算一个样本的预测输出,FM/FFM原理及其公式详解表示某个样本在第i个特征处的值,由于二次项系数FM/FFM原理及其公式详解,我们额外引入FM/FFM原理及其公式详解/2个参数需要训练。任意两个参数都是独立的,即FM/FFM原理及其公式详解FM/FFM原理及其公式详解时毫无关联的。然而在稀疏的场景下,二次项参数的训练是很困难的,其原因:每个参数FM/FFM原理及其公式详解的训练需要大量FM/FFM原理及其公式详解FM/FFM原理及其公式详解都为非零的样本(因为只有一条样本中FM/FFM原理及其公式详解或者FM/FFM原理及其公式详解等于0,那么对应的FM/FFM原理及其公式详解,那么该二次项就不存在了,永远无法训练该参数),由于样本数据本来就稀疏,满足FM/FFM原理及其公式详解不为了0的样本非常少,训练样本不足,很容易导致参数FM/FFM原理及其公式详解不准。

    有没有什么办法可以减少参数?再来观察二次项系数矩阵FM/FFM原理及其公式详解,它是对称的方阵FM/FFM原理及其公式详解,这里是因为FM/FFM原理及其公式详解与 FM/FFM原理及其公式详解,这两种组合其实是一种组合, 所以可以对FM/FFM原理及其公式详解进行矩阵分解FM/FFM原理及其公式详解,即FM/FFM原理及其公式详解。其中k远远小于n,本来需要训练的n×n个参数,现在只需要训练n×k个。这里FM/FFM原理及其公式详解FM/FFM原理及其公式详解的稠密表达,也称为第i个特征的隐向量,FM/FFM原理及其公式详解

                                                  FM/FFM原理及其公式详解  

                                                  FM/FFM原理及其公式详解

现在再来看FM/FFM原理及其公式详解,   FM/FFM原理及其公式详解对与这两个系数他们共用一个参数FM/FFM原理及其公式详解(这是一个长度为k的一维向量),这两个系数就不再是独立的了,也就是说所有包含FM/FFM原理及其公式详解的非零特征组合(前提FM/FFM原理及其公式详解)的样本都可以来学习向量FM/FFM原理及其公式详解,以前学习FM/FFM原理及其公式详解,只能是FM/FFM原理及其公式详解FM/FFM原理及其公式详解同时不为0的变量,而现在学习FM/FFM原理及其公式详解,只要保证FM/FFM原理及其公式详解(因为FM/FFM原理及其公式详解只与i相关,这里j可以取任意值).如果还不理解可以看下面的例子。

  x1年龄 x2北京 x3上海 x4深圳 x5男 x6女
用户1 23 1 0 0 1 0
用户2 31 0 1 0 0 1
用户3 24 1 0 1 0 1
用户4 26 1 0 0 0 1
用户5 29 0 1 0 1 0
用户6 24 0 0 1 1 0

对于之前要学习FM/FFM原理及其公式详解参数,只有样本1可以去学习,因为只有样本1,在FM/FFM原理及其公式详解FM/FFM原理及其公式详解处同时不为0,而对于进行矩阵分解之后,要学习FM/FFM原理及其公式详解,这时候可以分别学FM/FFM原理及其公式详解或者FM/FFM原理及其公式详解,因为只要FM/FFM原理及其公式详解或者FM/FFM原理及其公式详解进行参数更新了,那么FM/FFM原理及其公式详解也会参数更新,从而达到学习参数的目的,显然样本1,3,4都可以学习FM/FFM原理及其公式详解,(其中样本3可以更新参数FM/FFM原理及其公式详解FM/FFM原理及其公式详解进而更新参数FM/FFM原理及其公式详解,样本4可以更新参数FM/FFM原理及其公式详解进而更新FM/FFM原理及其公式详解),样本1,5,6可以学习FM/FFM原理及其公式详解,(其中样本5通过可以更新参数FM/FFM原理及其公式详解进而跟新参数FM/FFM原理及其公式详解,样本6可以通过跟新参数FM/FFM原理及其公式详解进而更新FM/FFM原理及其公式详解)。显然经过矩阵分解后有更多的样本可以用来学习参数FM/FFM原理及其公式详解,由上述举例可知,对参数FM/FFM原理及其公式详解,因为一条样本不可能只在FM/FFM原理及其公式详解=1,一定可以找到一个样本在FM/FFM原理及其公式详解FM/FFM原理及其公式详解(k=0,1,2..n)都等于1,因此只要一个样本FM/FFM原理及其公式详解FM/FFM原理及其公式详解!=0,那么就可以学习参数FM/FFM原理及其公式详解

  对于公式(2)进行分解运算

FM/FFM原理及其公式详解构成了一个完整的对称矩阵,FM/FFM原理及其公式详解是这个对称矩阵的上三角部分(不包含对角线),所以FM/FFM原理及其公式详解等于FM/FFM原理及其公式详解减去对角线元素之和再除以2.

 FM/FFM原理及其公式详解

 

用梯度下降法进行训练时需要求 FM/FFM原理及其公式详解对各个参数的偏导数:

                                FM/FFM原理及其公式详解

                                 FM/FFM原理及其公式详解

                                  FM/FFM原理及其公式详解

 

FFM

在FFM(Field-aware Factorization Machines )中每一维特征(feature)都归属于一个特定的field,field和feature是一对多的关系。比如

 field field1年龄                      field2城市           field3性别
 feature x1年龄 x2北京 x3上海 x4深圳 x5男 x6女
用户1 23 1 0 0 1 0
用户2 31 0 0 1 0 1

1对于连续特征,一个特征就对应于一个Field,

2对于离散特征,采样one_hot编码,同一种属性归到一个Field,不论是连续特征还是离散特征,它们都有一个共同点:同一个field下只有一个feature的值不是0,其他feature的值都是0。FFM模型认为FM/FFM原理及其公式详解不仅跟FM/FFM原理及其公式详解有关系,还跟与FM/FFM原理及其公式详解相乘的FM/FFM原理及其公式详解所属的Field有关系,即FM/FFM原理及其公式详解成了一个二维向量FM/FFM原理及其公式详解,F是Field的总个数,设样本一共有n个特征,f个field,那么FFM的二次项有nf个隐向量,每一个特征在每一个field中都会产生一个隐向量,而在FM模型中,每一维特征的隐向量只有一个,FM可以看作FFM的特例,是把所有的特征都归属到同一个field时的FFM模型,

                       FM/FFM原理及其公式详解

上式是FFM的模型表达式,其中FM/FFM原理及其公式详解是第j个特征所属的字段,FM/FFM原理及其公式详解是某条样本第j个特征的值。以上面的表格数据为例,计算用户1的FM/FFM原理及其公式详解中的二次交叉多项式  

             FM/FFM原理及其公式详解

显然上面x1产生的隐向量为FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,   

               x2产生的隐向量为FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  

               x3产生的隐向量为FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解

               x4产生的隐向量为FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  

               x5产生的隐向量为FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,

               x6产生的隐向量为FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解​​​​​​​,

你会发现这里每一个变量怎么产生了5个隐向量,而样本数据才3个field,这是不是与之前的结论相违背呢?,其实不是因为f2,f3,f4属于同一个field2,因此f3,f4,f5可以用f2表示,而f5,f6属于同一个field3,因此f5,f6可以由f3表示:

FM/FFM原理及其公式详解

x1产生的隐向量为FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解, x2产生的隐向量为FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解FM/FFM原理及其公式详解,  x3产生的隐向量为FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解FM/FFM原理及其公式详解,  x4产生的隐向量为FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解FM/FFM原理及其公式详解,   x5产生的隐向量为FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解FM/FFM原理及其公式详解,  x6产生的隐向量为FM/FFM原理及其公式详解,  FM/FFM原理及其公式详解FM/FFM原理及其公式详解,  这里x1并没有产生3个隐向量,这是因为field里面只有一个特征,所以在field内部无法产生交叉特征,因此他会退化到线性部分FM/FFM原理及其公式详解​​​​​​​中去。                                  之前我们说了FM/FFM原理及其公式详解是一个二维数组shape=(F,k),F为特征总数,可是每次在计算FM/FFM原理及其公式详解的时候特征FM/FFM原理及其公式详解生成的所有隐向量都有用吗?,No,在前面我们说了,同一个field下只有一个feature的值不是0,其他feature的值都是0,因此FM/FFM原理及其公式详解FM/FFM原理及其公式详解中产生的隐向量都没有都不起作用,因为FM/FFM原理及其公式详解=0(FM/FFM原理及其公式详解FM/FFM原理及其公式详解的其他特征),也就是说每个特征产生的隐向量真正起作用的只有F-1个。