点击率模型大家都很熟悉了,特别是FM模型, 从最FM->FFM->...->FwFM->最后本篇的FmFM,全称为 Field-matrixed Factorization Machines,该模型不仅可以做交叉特征的筛选,同时提出了一个高效的方式最小化维度的同时保证模型效果。
先回顾下最简单的LR,交叉特征需要人工挖掘,最后直接线性加权,然后配上log loss:
然后是Poly2,在LR的基础上增加特征交叉,每个特征之间都有wi,j要学习,但是数据很稀疏,效果提升一般。
考虑到Poly2对交叉特征处理过于“暴力”,FM因此诞生,使得wi,j=<vi, vj>,这样参数数量远远降低,同时也解决了数据稀疏的问题。
FFM则认为wi,j=<vi, vj>是错的,没有考虑到某些特征是属于同一个field的,因此认为wi,j=<vi, F(j), vj, F(i)>,取得了比FM更好的效果,如下所示:
FwFM被提出,显示的指明交互特征的权重,因为有些交互特征会给模型带来负向效果:
FmFM提出用一个矩阵MF(i),F(j)描述不同field之间的交互,如下式所示:
FmFM可以看作FwFM的扩展,这里用一个矩阵代替标量r来描述field之间的交互,该矩阵把特征i的embedding空间映射到特征j的embedding空间,论文给了一个范例解释了如何计算特征i和j,特征i和k之间的交互特征:
论文接下来对FM家族的统一框架进行了阐述,对于FM而言,我们只需将MF(i),F(j)变成单位矩阵,FmFM就变成FM了。对于FwFM而言,我们容易得到:
所以对于FwFM而言,就是让MF(i),F(j) = rF(i),F(j)*I。同理,FmFM与FvFM也是有着紧密的联系,如下式所示:
所以FmFM可以算是一个统一FM/FwFM/FvFM的框架,同时FmFM和OPNN同样关系紧密。
以下是各个模型的复杂度对比:
看到这里,想问FmFM就这?FmFM其实还有个独一无二的特性。以往无论什么FM模型,都要求所有特征的维度是统一的,都是K的大小。在FmFM就没必要统一维度,比如特征i,j,k维度都不同,我们依然可以计算他们之间的特征交叉,如下图所示:
因为不同field的特征数量不同,需要的维度其实是不同的,比如性别特征,就男/女两种,没必要用统一的128维度去表达。然后论文又提出了一个特别好的方法去降低各个特征的维度,一共分为两步,第一步先统一设定为维度K,然后训练一个模型,训练完后对每个特征跑PCA降维,实验证明保留95%原始方差的降维效果最好,第二步就是降维后重train该模型,两个模型最终对比效果并没有下降。
FmFM在不同数据集的表现均不亚于其他FM模型。
在维度优化后,效果依然不逊色。
论文还有很多其他细节,感兴趣参考原文。
1、FM2: Field-matrixed Factorization Machines for Recommender Systems
FM"又又又"升级了?