FFM在CTR任务中的应用
2018-03-24 本文已影响336人
0过把火0
序
FFM是FM的一个变种算法,通过引入field的概念,FFM把相同性质的特征归于同一个field。不同field之间的隐因子变得不同。用<vi,f(j),vj,f(i)> 代替<vi,vj>,其中f(i) 是特征i所属的field。
为何引入field概念
FM虽然在寻求两辆特征之间的关系,但是其二次项特征之间依旧是相互独立的数字,而FFM引入了field概念后,将不同类型的特征进行了区分,例如下图所示,向量的接近程度代表其之间的相关性。换句话说,FM可以看作是只有一个field的FFM。
![](https://img.haomeiwen.com/i8166116/eb8c4109316e048e.png)
FFM原理
FFM模型如下定义;
![](https://img.haomeiwen.com/i8166116/f7c1097d799a0256.png)
其中,fj 是第j 个特征所属的field。如果隐向量的长度为k , 那么FFM的二次参数有nfk 个,远多于FM模型的nk 个。此外,由于隐向量与field相关,FFM的二次项不能化简,其预测的复杂度是O(kn^2)
FFM数据的编码格式
若原始数据如下:
![](https://img.haomeiwen.com/i8166116/be42484b9e315971.png)
该数据可以被编码成5个特征,其中“Genre=Comedy”和“Genre=Drama”属于同一个field,“Price”是数值型,不用One-Hot编码转换。为了方便说明FFM的样本格式,我们将所有的特征和对应的field映射成整数编号。
![](https://img.haomeiwen.com/i8166116/16cd3a8dde322e91.png)
转为LIBFFM数据格式:
1:1:1 2:2:2 3:3:1 3:4:1 4:5:9.99
其格式对应:field index:feature index:value
针对上面的例子,FFM组合有10项,如下所示:
![](https://img.haomeiwen.com/i8166116/c726df8cd326e25a.png)