fm家族

参考链接:
https://zhuanlan.zhihu.com/p/357328156
http://litowang.top/2018/07/29/factorization-machine/#more
https://www.cnblogs.com/zhangchaoyang/articles/8157893.html?utm_source=wechat_session&utm_medium=social&utm_oi=659730706637393920

提出FwFM的升级版FmFM,并把FM, FwFM, FvFM统一到FmFM框架下。
提出的FmFM对比FM, FwFM, FvFM, FFM等主流浅层CTR模型取得了更优的效果(浅层是相对使用了DNN的Wide&Deep, Deepfm, xDeepFM等深层模型而言)。
通过降维操作,FmFM可以使得每个Field的特征具有不同的embedding dimensions,从而减小模型的参数量和避免over-fitting问题。

1.研究意义及背景

研究背景:点击率预估(CTR)在推荐系统和计算广告中扮演着重要的作用。CTR问题中的数据通常是一个multi-field的形式。CTR中的特征有以下两个特点:首先,所有的特征都是类别型(categorical)的,并且非常稀疏,因为它们中的许多是标识符(identifiers,比如adid, userid)。因此,特征的总数可以很容易地达到数百万到数十亿。其次,每个特征(feature)都属于且仅属于一个域(field),可以有几十到数百个域。

CTR预估模型可粗糙的分为浅层模型和深层模型。一些代表包括:

浅层模型:LR, Degree-2 Polynomial, FM, FFM, FwFM以及本文的FvFM和FmFM

深层模型:FNN、PNN、Wide&Deep, DeepFM, xDeepFM, AutoInt等

2.浅层模型发展史

本节描述浅层模型:LR, Degree-2 Polynomial, FM, FFM, FwFM

Logistic Regression (LR): 使用线性权重组合每个单一的特征

其中m表示特征数量

优点:LR模型简单,计算快。

缺点:LR不具备特征交互的能力(交叉特征可能比单一特征具有更重要的影响)。

Degree-2 Polynomial (Poly2):为每一个特征对学习一个权重

优点:Poly2可以捕获特征交互。

缺点:Poly2的参数量为O(m*m),在CTR这样的稀疏场景下仅有少量的特征对会同时出现,因此Poly2的权重稀疏无法得到有效的学习

Factorization Machines (FM):对Poly2中的权重矩阵W做矩阵分解,为每个特征学一个k为的向量表示。两个向量的内积表示特征对的重要性。

优点:FM可以捕获特征交互,同时可以在稀疏场景下有效的学习。
其中:<vi,vj>表示的是向量vi 和向量 vj 的内积,
如果我们直接第式子中的第三项部分进行计算,复杂度是O(kn2),简单的对式子进行化简,我们可以得到复杂度更低的计算式O(kn):

我们再用一个简单的例子回顾下FM模型,假设我们有三个特征:gender(性别)、weekday(星期几)、city(城市),那么FM模型如下:

注意,此处省略了xi,因为在one-hot编码中,激活的xi就是1,未激活的为0。

取一条训练数据例子如下:

参数V Male的梯度为:

因此性别特征参数的更新,会在城市和星期两个方向进行,这是在假设年龄和星期之间不独立,存在一定相关性,但是如果性别和星期之间是相互独立的,那么我们希望对于性别特征参数的更新应该与星期正交,FM的这一假设降低了模型的空间,使得特征权重的更新相互耦合(后续我们可以看到,FFM则可以解决这个问题)
缺点:FM忽略了这样一个事实: 当一个特性与来自其他域(Field)的特性交互时,它的行为可能会有所不同。

在FFM(Field-aware Factorization Machines )中每一维特征(feature)都归属于一个特定的field,field和feature是一对多的关系。比如

  1. 对于连续特征,一个特征就对应一个Field。或者对连续特征离散化,一个分箱成为一个特征。比如
  2. 对于离散特征,采用one-hot编码,同一种属性的归到一个Field

不论是连续特征还是离散特征,它们都有一个共同点:同一个field下只有一个feature的值不是0,其他feature的值都是0。

FFM模型认为𝑣𝑖不仅跟𝑥𝑖有关系,还跟与𝑥𝑖相乘的𝑥𝑗所属的Field有关系,即𝑣𝑖成了一个二维向量𝑣𝐹×𝐾,𝐹是Field的总个数。FFM只保留了(1)中的二次项.

你一定有个疑问:𝑣是模型参数,为了求𝑣我们采用梯度下降法时需要计算损失函数对𝑣的导数,为什么这里要计算𝑦̂ 对𝑣的导数?看看分割线下方的内容你就明白了。

Field-weighted Factorization Machines (FwFM):显式地建模了不同的Field相互交互的强度。

优点:FwFM可以捕获特征交互,考虑了Field信息,相比FM仅仅增加了n*(n-1)/2个需要学习的参数(n一般仅为几十或几百),仅用FFM 4%左右的参数便可达到相媲美的效果[2]。FwFM已经被部署到很多大厂的广告系统中。

缺点:FwFM仅用一个标量来表达域交互的强度,自由度不够、表达能力有限。

3.提出的模型

本节主要从以下几个方面描述:

介绍文章提出的新浅层模型FmFM
把FM、FwFM、FvFM、FmFM放到统一框架下描述
对比FmFM与基于外积的OPNN的联系
对比FmFM与FFM的联系
对比LR、Poly2、FM、FFM、FwFM、FvFM、FmFM的模型复杂度
把FmFM进一步扩展到维度可变的场景下压缩模型大小

提出的新浅层模型:Field-matrixed Factorization Machines (FmFM)

FwFM的作者在今年WWW‘21上提出了更灵活的FwFM扩展版,记为FmFM(以及过渡模型FvFM). 相比于FwFM仅用一个标量r来建模域交互的强度,FmFM用了自由度更高的matrix。形式化描述为:

在FmFM中,交互矩阵可以把特征投影到另外的n-1个空间中,具体的可以参考下图,i, j, k表示来自三个Field的特征。当特征i和来自不同域的特征j、k交互时,可以通过交互矩阵M_{F(i), F(j)}, M_{F(i), F(k)}把特征i分别投影到特征j和特征k所在的空间中:

把模型统一到一个框架:接下来我们看一下如何把FM、FwFM、FmFM以及过渡版本FvFM统一到一个框架描述中:

Factorization Machines (FM):

FM可以看作是把特征交互矩阵定为正定矩阵。也即:

Field-weighted Factorization Machines (FwFM):

FwFM可以看作不同Field之间的交互矩阵为标量r乘以正定矩阵:

图示描述为图3左边的灰色矩阵。

Field-vectorized Factorization Machines (FvFM):

根据FwFM的提示,作者提出了一个比FwFM更灵活的版本FvFM,即Field交互矩阵对角线元素不再是相同的r,而是对每个维度都学一个d,图示描述为图3右边的灰色矩阵。


Field-matrixed Factorization Machines (FmFM):把交互矩阵扩展


对比一下FM、FwFM、FvFM、FmFM,可以总结一下它们交互强度的自由度如下表:

对比FmFM与FFM的联系:

FFM由于总是使用field specific embeddings,所以无法统一到FmFM的框架下。FFM如图4所示:

FFM由于不同的域交互时使用不同的embedding,因此给模型带来了更大的灵活性。但也带了巨大的内存消耗,另外,由于特征是服从长尾分布的(而不是均匀分布),所以FFM的方式更放大了这种分布不平衡性,会带来over-fitting问题。

FmFM不同Field特征的可变嵌入维数:

在FM、FFM、FwFM、FvFM中,都是使用一个K维的向量来表示一个特征,即使这些特征是来自不同的Field的。

当我们在FmFM中使用矩阵乘法时,它实际上不要求Field矩阵是方阵;我们可以通过改变Field矩阵的形状来调整输出向量的长度。这个属性为我们提供了另一种灵活性,可以根据需要在embedding table中设置Field-specific length。如下图所示:

嵌入向量的维数决定了它所能携带的信息量;这个属性允许我们适应每个Field的需要,对于需要较大信息量的Field分配一个大的embedding size, 对于少量信息量的Field分配一个小的embedding size。这样能减小模型的大小同时也能避免over-fitting问题。

例如在图5中:域 _ 可能只包含3个值(男、女、其他),而另一个字段 _ _ 可能包含超过100万的特性。因此,嵌入表的字段 _ 可能只需要5-dimension (5D),而域 _ _ 可能需要7D。Field矩阵 应该建立的形状(7, 5)。当我们交叉 _ _ 和 _ 之间的特性时,矩阵可以将5D特征向量到7D向量,使其适合与 _ _ 域的特征向量做点积。

那么问题是如何确定每个Field的特征需要多少dimension呢??

文章提出了一个基于剪枝的方法(2-pass的方法):首先使用一个固定长度的K(例如K=16)训练完整的FmFM模型,从完整的模型中,我们能了解每个Field中有多少信息(方差),然后我们对每个Field中的embedding table使用标准的PCA降维。

文章的实验经验表明:包含95%原始方差的新维度是一个很好的权衡。使用这个新的特定于Field的dimension设置,我们再从头开始训练模型,与第一个完整的模型相比,理论上得到的第二个模型不会有任何显著的性能损失。

下表显示了使用PCA方法优化的Criteo数据集中每个Field字段的维数。这个列表显示出这些维度的范围是巨大的,从2到14都有,大多数维度都小于10。 的平均值只有7.72,低于FwFM论文的最优设置。由于保持了来自数据集的大多数方差,较低的平均维数意味着模型有较少的参数,需要较少的内存。

注:当模型训练完后,如果我们缓存FmFM中的向量与各个交互域的乘积后,FmFM可以看作FFM模型。

(降维v.s.剪枝:变量的嵌入维数也起着类似于剪枝(pruning)的作用。传统剪枝方法(如DeepLight[4])给出了binary值来决定保留或删除Field或Field pair,DeepLight变量嵌入维度给我们一个新方法来随需应变的确定每个Field和Field的重要性,并分配每个Field一个向量来表示其重要性。)

下面左图给出了原始的Full FmFM模型中Field pair与label之间的互信息(Mutual Information),右图给出了降维后的FmFM模型中Field pair与label之间的互信息(Mutual Information),可以看到两者是非常相关的。这意味着优化后的FmFM模型在重要的Field pair上分配更多的参数和计算量,在低重要性的Field pair上分配更少的参数和计算量。



4.实验分析

各模型实验性能对比:

数据集:经典的CTR数据集Criteo和Avazu


可以观察到:

在这两个数据集上,FvFM和FmFM的性能都优于LR、FM和FwFM。
令人惊讶的是,FmFM在两组测试中都能获得比FFM更好的性能。正如我们之前提到的,即使FFM是一个比FmFM大几十倍的模型,我们的FmFM模型在所有浅模型中仍然获得了测试集中最好的AUC。
2)维度优化后的FmFM:

作者在Criteo数据集上使用全尺寸FmFM模型来作为评估指标参考。我们分别保持99%,97%,95%,90%,85%和80%方差的PCA降维。

posted @ 2021-05-17 17:54  Marklong  阅读(250)  评论(0编辑  收藏  举报