推荐系统-FFM(Field-aware Factorization Machine)模型

1. 介绍

在CTR预估的时候,经常会遇到one-hot类型的变量,这会导致严重的数据特征稀疏的情况。FFM(Field-aware Factorization Machine)模型可以解决这个问题。FFM模型是在FM模型基础上发展出来的算法。

在FFM模型中引入了类别的概念,即field。简单来说,就是将同一个categories特征经过one-hot编码后,生成的数值特征都可以放到同一个field中,比如国籍、日期等等。举个例子,d=12/11/15,d=23/5/14,d=17/2/18,这三个特征都是代表日期的,可以放到同一个field中。

在FFM中,每一维特征 ,针对其他特征的每一种field(),都会学习一个隐向量 。因此,隐向量不仅与特征相关,也与field相关。假设特征 分别与特征, 交互(假设后两个特征分别属于不同的field ,),原来FM模型交互的时候,都是使用相同的隐向量, 但是在FFM模型中,会使用不同的隐向量和,这就是FFM模型和FM模型的唯一区别。

2. 公式

推荐系统-FFM(Field-aware Factorization Machine)模型_第1张图片

可以看到,如果隐向量的长度为k,那么FFM模型的二次参数有个,远多于FM模型的个。由于隐向量与field相关,FFM的二次项并不能化简,其预测复杂度是。

下面举个例子说明一下FFM的特征组合方式,输入记录:


推荐系统-FFM(Field-aware Factorization Machine)模型_第2张图片

这条记录可以编码成5个特征,其中“Genre=Comedy”和“Genre=Drama”属于同一个field,“Price”是数值型,不用One-Hot编码转换。为了方便说明FFM的样本格式,我们将所有的特征和对应的field映射成整数编号。


推荐系统-FFM(Field-aware Factorization Machine)模型_第3张图片

那么,FFM的组合特征有10项。


推荐系统-FFM(Field-aware Factorization Machine)模型_第4张图片

其中,红色的是field的编号,蓝色是特征编号。

3. FFM实现细节

实现方式不唯一。

损失函数

FFM将问题定义为分类问题,使用logistics loss,同时加入L2正则。


推荐系统-FFM(Field-aware Factorization Machine)模型_第5张图片

将类别设定为-1和1的时候,逻辑回归的损失函数如上图。

随机梯度下降

训练FFM使用的是随机梯度下降方法,即每次只选一条数据进行训练

参考资料

https://www.cnblogs.com/ljygoodgoodstudydaydayup/p/6340129.html

https://www.jianshu.com/p/781cde3d5f3d

你可能感兴趣的:(推荐系统-FFM(Field-aware Factorization Machine)模型)