FFM算法

    本文记录的目的是方便自己学习和复习,有误之处请谅解,欢迎指出。

    之前介绍了FM,接下来是它的改进版本FFM,加入了领域Field思想。在FM模型中,每一个特征会对应一个隐变量,但在FFM模型中,认为应该将特征分为多个field,即每个特征对应多个field,每个field有一个隐变量。公式如下:

FFM

    假设某特征包含有个field,某特征表示为。FM中对应一个大小为维度的隐向量,即个参数;而在FFM中就对应个维的向量,即。如下图参数所示,FFM参数是FM参数的field倍。

FM参数
FFM参数

一、例子

    这是网上常用例子,用自己的理解进行介绍。

    首先,样本特征有四种特征分别user、movie、genre以及price,对类别特征进行One Hot编码,特征从4个扩展到5个,即value 1-value 5。

    每种特征作为一个Field,现在进行FFM交叉特征组合。以对应的隐向量为例,可以从图中看到,如果是FM特征交叉的话,只会使用进行交叉,而FFM则会有三个个不同的隐向量进行交叉。因此FFM参数是FM的倍参数。

FFM特征交叉

    表示特征均不为0,FM内容中讲过,若存在某个值为0,是没有意义的交叉,它的输出为0。

你可能感兴趣的:(FFM算法)