NFM
背景
今天学习深度推荐模型中的NFM(Neural Factorization Machines)模型,该模型是由2017年在SIGIR会议上提出的。CTR预估中,为了解决稀疏特征的问题,学者们提出了FM模型来建模特征之间的交互关系。但是FM模型只能表达特征之间两两组合之间的关系,无法建模两个特征之间深层次的关系或者说多个特征之间的交互关系,所以通过Deep Network来建模更高阶的特征之间的关系,提出了一种将FM融合进DNN的策略,通过引进了一个特征交叉池化层的结构,使得FM与DNN进行了完美衔接,这样就组合了FM的建模低阶特征交互能力和DNN学习高阶特征交互和非线性的能力,形成了深度学习时代的神经FM模型(NFM)。
NFM模型
由上面我们知道NFM模型与DeepFM模型类似,都是与DNN相结合得到的,只是DeepFM模型是并行结构,NFM是串行结构,下面看一下NFM模型的目标函数:
之前我们学的FM模型的公式如下:
由上面两个公式可以看出,二者在前半部分是一样的,后面在NFM中用一个函数来代替FM中二阶向量交叉,通常将这个函数用一个底层考虑交叉,高层使用的一个DNN,最后得到NFM模型。模型结构如下:
由图可以看出,NFM模型即是在Embedding层和Hidden之间加了一个B-Interation(特征交叉池化层)。假设 V x \mathcal{V}_{x} Vx是所有特征embedding的集合, 那么在特征交叉池化层的操作:
f B I ( V x ) = ∑ i = 1 n ∑ j = i + 1 n x i v i ⊙ x j v j f_{B I}\left(\mathcal{V}{x}\right)=\sum_{i=1}^{n} \sum_{j=i+1}^{n} x_{i} \mathbf{v}{i} \odot x{j} \mathbf{v}_{j} f