今天给大家分享一篇对FM进行改进的文章,主要改进是针对不同的样本,显式建模了不同特征的重要度,接下来一起学习下。
1、背景
由于能够高效的建模特征之间的交互作用,因子分解机(Factorization machine,FM)已经被成功地应用于各种推荐系统中。同时,许多的研究工作聚焦于从特征交互角度来提升FM模型的效果,如DeepFM将FM和DNN进行结合,建模特征之间的二阶和高阶交互,AFM通过引入attention思想,建模不同特征交互的重要性。
但是上述工作忽略了样本的独特性,举例来说,当样本是<青少年,女性,学生,喜欢粉色>,预测是否会点击<连衣裙>,此时女性这个特征会起到较为关键的作用;当样本是<青少年,女性,学生,喜欢蓝色>,预测是否会点击<笔记本>,此时女性这个特征就相对来说没有那么重要。因此,同一个特征在不同样本中应该被赋予不同的重要程度以更好地反映其具体贡献。
基于上述思路,论文提出了样本感知的FM模型( Input-aware Factorization Ma- chine,IFM)来显式建模不同特征在不同样本的影响程度。接下来,一起看下IFM模型的具体结构。
2、IFM介绍
2.1 FM回顾
首先简单回顾一下FM模型。FM模型针对每一个特征xi,都有对应的embedding vi,其预估值计算公式如下:
其中,二次项可以进行简化计算,化简之后公式如下:
因此,FM模型在预测阶段的计算时间复杂度为O(kn),其中k是embedding的长度,n为特征的数量(离散变量转换为one-hot后的特征数量)。
2.2 IFM模型
对于给定的特征,IFM模型预估值的计算公式如下:
可以看到,其与FM计算公式非常相似,主要区别点在于一次项权重w和embedding向量v都是样本感知的。其网络结构如下图所示:
接下来,对每一部分进行分别介绍。
Embedding Layer
同FM一样,IFM也给每一个特征赋予对应的embedding向量,如针对上图中的x输入,由于x是离散变量转换为对应one-hot之后的结果,因此是极其稀疏的,我们在计算中也只需要考虑取值为1的特征。假设每条样本总共有h个取值为1的特征,将其对应的h个embedding进行拼接,得到k * h维的向量Vx。
Factor Estimating Network
Factor Estimating Network是论文主要的创新之处,其主要作用是针对不同的样本,对每一个特征计算样本感知权重mx,i,并作用于一次项权重wi和embedding向量vi。子网络结构如下:
根据上图,特征重要度的计算过程如下:
Reweighting Layer
经过Factor Estimating Network得到输出mx,i,就可以对样本每个特征的一次项权重和embedding向量进行refine,计算公式如下:
FM Prediction Layer
同FM一样,IFM在预测时,也可以对公式进行相应的化简,其结果如下:
好了,论文结构就介绍到这里,接下来简单看下实验部分。
3、实验结构
论文对比了IFM和FM等bese模型在不同数据集上的表现,其结果如下:
FM作为非常经典的CTR预估模型,学者们对于其的研究也是一直在进行,如最近还有FM^2、对偶样本感知DIFM模型等,后续小编也会尽量对这些改进模型进行分享和总结~~