以下仅仅为个人对文章的阅读记录,如有错误,欢迎指正。如需转载注明来源即可~~
Sun Y, Pan J, Zhang A, et al. : Field-matrixed Factorization Machines for Recommender Systems[J]. arXiv preprint arXiv:2102.12994, 2021.
原文链接:https://arxiv.org/pdf/2102.12994.pdf
一、简介
在过去的几年中,点击预测任务(Click Through Prediction,CTR)吸引了很多研究人员的注意,因为其在推荐系统、在线广告中越来越重要的作用。浅层CTR模型,从简单有效的LR到著名的FM以及之后的FFM,都尽可能地建模特征交互,也取得了越来越好的效果。但是FFM在考虑域信息的时候伴随着大量的参数,而FwFM则提出了一种参数更少的方式,实现了类似的效果。本文的FmFM模型,在FwFM的基础上进一步改进,使用两个特征之间的Field matrix来建模他们之间的交互。FmFM模型实现了更好的效果同时保持了较高的计算效率。
核心贡献:
- 提出了FmFM框架,可以将FM、FwFM、FvFM都纳入该框架下。
- 对FwFM模型进行了三个方向的优化:
① 通过降维(PCA)方法,使得每个Field的特征维度都不同(都低于固定维度),保证了模型表现的同时叫嚣了模型的参数量。
② 虽然FmFM的参数少,但是有很多的矩阵运算,为了减少浮点数运算,可以通过缓存所有中间结果的方式实现。而且这种方式在形式上将FmFM模型转换为FFM。
③ 采用FwFM中的方法,优化模型中的线性部分,为每个Field学习一个特定的向量,通过代替权重,可以学到更多的信息。 - 通过实现证明了在Criteo和Avazu数据集上,FmFM比LR、FM、FwFM等浅层模型取得了更好的效果,同时也超过了大部分的深度学习CTR模型,例如DNN、WDL、DeepFM、AutoInt等。
二、FM等浅层模型发展历程
主要介绍了LR、Poly2、FM、FwFM浅层模型。
1、Logistic Regression (LR)
使用最广泛CTR预测模型,模型十分简单,参数少,计算快。LR通过线性权重实现单个特征的组合:但是LR缺少表示特征交互的能力。有效建模特征交互是目前CTR模型的主要研究方向之一。
2、Degree-2 Polynominal (Poly2)
Poly2 在LR的基础上为每一对特征学习了权重。
模型的参数量为。但是CTR场景下特征组合很稀疏,而且分布不均衡导致很多参数无法得到有效的学习。
3、Factorization Machines (FM)
FM为每个特征学习一个Embedding vector,使用两个特征向量之间的点积(dot product)建模特征交互,即。FM可以在特征稀疏的场景下进行高效的特征学习。
但是FM忽略了一个事实:当一个特征和其他field的特征进行交互时,表现可能是不同的,因此有人提出了FFM模型。
4、Field-aware Factorization Machines (FFM)
FFM模型为每个field特征学习n-1个field的特征向量,当某个field与不同filed的特征交互时,选择对应的向量。 表示field i 的特征与field j的特征交互时选择的embedding,则相反,两者做点积,表示特征交互。
虽然FFM模型的表现很好,但是FFM模型不可接受的一点是参数量巨大,为。
5、Field-weighted Factorization Machines (FwFM)
FwFM是FM的扩展,添加了权重,显式地建模了不同特征交互的重要性。
FwFM的参数量远小于FFM,但是在效果上足以媲美FFM。
但是仅仅使用一个标量来表示特征域交互的权重,表达能力不够。
三、FmFM模
1、FmFM模型总览
为了解决FwFM在特征交互权重上表达能力不够的问题,本文提出了通过Field matrix的方式来计算特征交互的重要性,即公式中的红框部分,可以和FwFM模型进行对比,十分简洁易懂。可以看作是weighted out product,作者在后面也有分析。
① Embedding Lookup: 从Embedding table中找到三个特征的向量,,;
② Transformation: 和矩阵 ,分别计算,获得两组对应的中间向量和。
③ Dot product: 最后通过简单的点积计算获得最后的交互项。
2、FmFM可以作为FM家族的联合框架
这一部分说明如何将FM、FwFM,FvFM(本文提出)使用FmFM进行描述。
FM:将FmFM中的特征交互矩阵看作是单位矩阵即可获得FM模型。很明显,向量和单位矩阵相乘等于本身。作者将这种情况下的自由度定义为0。
FwFM:FwFM中的field matrix 是一个常量矩阵。如下图。作者将此时的自由度定义为1。
FvFM:FvFM是一个比FwFM自由度更加高,但是比FmFM自由度低的模型。此时的交互矩阵为每个维度有学一个权重,在我的理解中,有点像weighted inner product。
FmFM: 把交互矩阵进行了扩展,在我的理解中,有点类似weighted outer product。
模型的自由度
和OPNN进行对比: 很明显,两者都是计算weighted outer product的。
文中指出和OPNN的区别:
- FmFM是浅层模型。没有使用DNN等全连接层。我们可以将FmFM作为一个浅层组件或者深度CTR模型的构建模块。
- FmFM支持可变Embedding 维度。
FFM无法归纳到FmFM框架原因:
因为FFM在查询Feature Embedding的方式和FmFM不同,如下图所示,FFM总是使用Field specific embeddings。因此每个Field总有n-1个embeddings, 对应其他的n-1个field。
FFM这种学习Embedding的方式给了他很大的灵活性,但是带来了巨大的内存消耗,以及过拟合的风险。
3、以上模型的复杂度分析
m是所有特征的数量,n是filed的数量,n << m。K是Embedding的维度。
4、模型的优化
(1)Variable Dimensions in Embeddings(可变嵌入维度)
在以往的模型中特征的维度K都是相同的,这保证了Field-pair可以进行dot product。但是FmFM中使用Field matrix时不需要方阵,如下如所示。这就使我们可以根据Field的特特点设定Field specific length,提供了另一种灵活性。
特征的维度决定了信息的携带量:这个属性允许我们根据field的需要进行调整。
为了优化各个field 的维度,保证不损失模型的表现,本文提出了2阶段的方法。
- 首先为每个field设置了一个较大的维度16。然后使用FmFM模型训练处一个完整的模型。
-
从完整的模型中我们可以知道每个field中包含多少信息(方差),然后使用PCA对每个Embedding table 进行降维。从后文的结果表明,95%的原始方差是一个很好的权衡。使用新的维度设置,重新训练模型,我们可以得到第二个模型,而且和完整的模型相比,没有显著的性能损失。、
下表是使用PCA方法后,Criteo数据集上39个Field选择的维度。维度的平均值只有7.72,远低于完整模型的维度16。这就极大的减少了参数和内存。
(2)过渡向量的缓存以及可变维度
FmFM的复杂度比FFM低很多,但是FmFM需要大量的矩阵计算,如下图。
同时如果使用可变维度,则可以实现更低的时间复杂度。
(3) Soft Pruning (剪枝)
这一部分,作者指出降维的方法类似于剪枝的作用。
以下两张图展示了Criteo两个Field之间的互信息。第一张图是降维前,第二章是降维后。可以看到两者是非常相关的。这意味着优化后的FmFM模型在重要的Field pair上分配更多的参数和计算量,在低重要性的Field pair上分配更少的参数和计算量。
四、实验分析
1、实验数据集与设置。数据集划分: Train:Validation: Test = 8:1:1
评价指标: AUC和Logloss
2、性能对比
在降低了Field的维度之后,模型的表现并没有显著的下降。在方差是95%的时候,只有不到1/2的嵌入维度和1/3的计算成本。
在差不多AUC的效果下,模型FmFM的计算复杂度是最低的。
五、个人小结
看过FM、FFM、FwFM之后,再看FmFM模型,就会觉得FmFM理所应当被提出来。就像LR到FM再到FFM,一个必然的流程,只是时间问题。本文之后提出的可变嵌入降维以及之后的分析也能让我们学到很多。