点击率模型大家都很熟悉了,特别是FM模型, 从最FM->FFM->...->FwFM->最后本篇的FmFM,全称为 Field-matrixed Factorization Machines,该模型不仅可以做交叉特征的筛选,同时提出了一个高效的方式最小化维度的同时保证模型效果。

 

FM又又又升级了?_计算机视觉

先回顾下最简单的LR,交叉特征需要人工挖掘,最后直接线性加权,然后配上log loss:

 

FM又又又升级了?_机器学习_02

 

FM又又又升级了?_计算机视觉_03

然后是Poly2,在LR的基础上增加特征交叉,每个特征之间都有wi,j要学习,但是数据很稀疏,效果提升一般。

 

FM又又又升级了?_机器学习_04

考虑到Poly2对交叉特征处理过于“暴力”,FM因此诞生,使得wi,j=<vi, vj>,这样参数数量远远降低,同时也解决了数据稀疏的问题。

 

FM又又又升级了?_算法_05

FFM则认为wi,j=<vi, vj>是错的,没有考虑到某些特征是属于同一个field的,因此认为wi,j=<vi, F(j), vj, F(i)>,取得了比FM更好的效果,如下所示:

 

FM又又又升级了?_深度学习_06

FwFM被提出,显示的指明交互特征的权重,因为有些交互特征会给模型带来负向效果:

 

FM又又又升级了?_计算机视觉_07

 

FM又又又升级了?_算法_08

FmFM提出用一个矩阵MF(i),F(j)描述不同field之间的交互,如下式所示:

 

FM又又又升级了?_计算机视觉_09

FmFM可以看作FwFM的扩展,这里用一个矩阵代替标量r来描述field之间的交互,该矩阵把特征i的embedding空间映射到特征j的embedding空间,论文给了一个范例解释了如何计算特征i和j,特征i和k之间的交互特征:

 

FM又又又升级了?_算法_10

论文接下来对FM家族的统一框架进行了阐述,对于FM而言,我们只需将MF(i),F(j)变成单位矩阵,FmFM就变成FM了。对于FwFM而言,我们容易得到:

 

FM又又又升级了?_计算机视觉_11

 

FM又又又升级了?_算法_12

所以对于FwFM而言,就是让MF(i),F(j) = rF(i),F(j)*I。同理,FmFM与FvFM也是有着紧密的联系,如下式所示:

所以FmFM可以算是一个统一FM/FwFM/FvFM的框架,同时FmFM和OPNN同样关系紧密。

以下是各个模型的复杂度对比:

 

FM又又又升级了?_机器学习_13

看到这里,想问FmFM就这?FmFM其实还有个独一无二的特性。以往无论什么FM模型,都要求所有特征的维度是统一的,都是K的大小。在FmFM就没必要统一维度,比如特征i,j,k维度都不同,我们依然可以计算他们之间的特征交叉,如下图所示:

 

FM又又又升级了?_机器学习_14

因为不同field的特征数量不同,需要的维度其实是不同的,比如性别特征,就男/女两种,没必要用统一的128维度去表达。然后论文又提出了一个特别好的方法去降低各个特征的维度,一共分为两步,第一步先统一设定为维度K,然后训练一个模型,训练完后对每个特征跑PCA降维,实验证明保留95%原始方差的降维效果最好,第二步就是降维后重train该模型,两个模型最终对比效果并没有下降。

 

FM又又又升级了?_机器学习_15

 

FM又又又升级了?_计算机视觉_16

FmFM在不同数据集的表现均不亚于其他FM模型。

 

FM又又又升级了?_计算机视觉_17

在维度优化后,效果依然不逊色。

 

FM又又又升级了?_人工智能_18

论文还有很多其他细节,感兴趣参考原文。

 

FM又又又升级了?_深度学习_19

1、FM2: Field-matrixed Factorization Machines for Recommender Systems

FM"又又又"升级了?

 

FM又又又升级了?_人工智能_20