本文记录的目的是方便自己学习和复习,有误之处请谅解,欢迎指出。
之前介绍了FM,接下来是它的改进版本FFM,加入了领域Field思想。在FM模型中,每一个特征会对应一个隐变量,但在FFM模型中,认为应该将特征分为多个field,即每个特征对应多个field,每个field有一个隐变量。公式如下:
假设某特征包含有个field,某特征表示为。FM中对应一个大小为维度的隐向量,即个参数;而在FFM中就对应个维的向量,即。如下图参数所示,FFM参数是FM参数的field倍。
一、例子
这是网上常用例子,用自己的理解进行介绍。
首先,样本特征有四种特征分别user、movie、genre以及price,对类别特征进行One Hot编码,特征从4个扩展到5个,即value 1-value 5。
每种特征作为一个Field,现在进行FFM交叉特征组合。以对应的隐向量为例,可以从图中看到,如果是FM特征交叉的话,只会使用进行交叉,而FFM则会有三个个不同的隐向量进行交叉。因此FFM参数是FM的倍参数。
表示特征均不为0,FM内容中讲过,若存在某个值为0,是没有意义的交叉,它的输出为0。