FFM算法

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

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

FFM

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

FM参数
FFM参数

一、例子

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

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

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

FFM特征交叉

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。