文章所发表的会议
WWW2021
作者及其单位
Yang Sun, JunWei Pan, Alex Zhang, Aaron Flores,他们都来自雅虎研究。
文章主要思想
众所周知,FM(因子分解机)模型可以用来解决机器学习问题中的回归、分类等任务,并且非常善于解决稀疏数据,因而对于经常进行one-hot编码的推荐系统CTR预测问题来说,是非常合适作为模型去处理的。之前在FM的基础上,有人提出了field(场)的概念,即把所有相似的特征放在一类,称为一个field。本文提出的FmFM模型便能够更好的去模拟场的信息,使得模型更加精准。
FM族模型的基本公式
FM:
FFM:
FwFM:
FmFM:
上面的式子都是由LR(线性回归)演变而来的。是常数项系数,第二项是一次项,而二次项则是FM族模型的创新之处。如果是普通的二次回归,则二项式系数的参数量有
个,但是FM模型巧妙地利用每个特征embedding结果的向量内积作为系数,使得参数量减少到了
个,其中
是embedding向量的维度,
是特征的数量。另一个这样做的好处是,向量内积的形式削弱了二阶参数之间的独立性,使得泛化能力更强(
越大,模型越精细,反之模型泛化能力更强)。这也是其处理稀疏问题取得良好表现的原因。下文中,我们把
叫做隐向量。
后来,有学者引入了field的概念,把相同或近似性质的特征归为一个field。可以看到,后面的三个模型的隐向量内积的部分都不仅仅与这个特征自己有关,还跟这个特征所属于的field有关。第四个式子即为本文提出的模型。的意思是特征
所属的feild的序号。
即为与特征
与特征
的feild有关的矩阵。计算FmFM的二次交叉项的步骤如下图:

简单来说,计算交叉项的步骤分为三步。第一步,对特征和特征
分别进行embedding,得到
和
。第二步,把
和矩阵
相乘。第三步,用第二部相乘的结果与
作内积。
FM族模型的参数量
以下表格中和
的参数量跟上文中一样,而
表示field的数量。

可以看到,FFM模型的参数量明显大于其他FM族模型,而本文提出的FmFM与其他FM族模型的参数量在一个数量级上。
FmFM模型的优化方法(注意:不是更新参数的过程!)
由于FmFM引入了场矩阵,故参数量也比较巨大,作者针对其作出了下面几个方面的优化,从而减少计算量以及参数量:
1、对于不同的特征,可以不固定隐向量的维度,而是视该特征的方差具体分析。比如对于Criteo数据集,作者刚开始都使用了16维的隐向量。拟合模型以后,便可以得到每个field中有多少信息(方差),然后对这些属于同一个field的隐向量进行PCA降维,取包含95%原始方差的新维度。这样,对于那些方差较小的field来说,它所包含的所有特征的隐向量的维度便可以大大减小,从而减少了模型的参数数量。与此同时,我们也要注意到,由于属于不同field的特征之间的隐向量的维度不一样,那么场矩阵就经常不能为方阵了,如下图:

2、减少中间缓存向量的维度。
利用公式。我们假设
是2维的而
是14维的,那么采用等式右边的计算方法最后一步只需要计算一个2*2的向量内积,而采用等号左边的方法则是14*14。
3、改进一次项系数。
将线性项改为
,即学习一些与field类有关的新隐向量
,这样需要学习的一次项参数个数即为
(
是应用方法1降维后的二次交叉项隐向量的平均维度),一般情况下都小于特征数
。
实验部分
(未完待续)