本文记录的目的是方便自己学习和复习,有误之处请谅解,欢迎指出。
之前介绍了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。