NFM
文章目录
参考 推荐系统遇上深度学习(七)–NFM模型理论和实践
提出背景 & 与其他模型的关系
NFM这个模型是在FM的基础上提出的,是为了改进FM模型只能表达特征之间两两组合之间的关系,无法建模两个特征之间深层次的关系或者说多个特征之间的交互关系,同时为了建模更高阶的特征而提出的。NFM是串行结构中一种较为简单的网络模型。
NFM(Neural Factorization Machines)是2017年由新加坡国立大学的何向南教授等人在SIGIR会议上提出的一个模型,**传统的FM模型仅局限于线性表达和二阶交互, 无法胜任生活中各种具有复杂结构和规律性的真实数据。**针对FM的这点不足,作者提出了一种将FM融合进DNN的策略,通过引进了一个特征交叉池化层的结构,使得FM与DNN进行了完美衔接,这样就组合了FM的建模低阶特征交互能力和DNN学习高阶特征交互和非线性的能力,形成了深度学习时代的神经FM模型(NFM)。
结构 | 描述 | 常见模型 |
---|---|---|
并行结构 | FM部分和DNN部分分开计算,只在输出层进行一次融合得到结果 | DeepFM,DCN,Wide&Deep |
串行结构 | 将FM的一次项和二次项结果(或其中之一)作为DNN部分的输入,经DNN得到最终结果 | PNN,NFM,AFM |
FM回顾
FM模型用n个隐变量来刻画特征之间的交互关系。这里要强调的一点是,n是特征的总数,是one-hot展开之后的,比如有三组特征,两个连续特征,一个离散特征有5个取值,那么n=7而不是n=3.
y ^ ( X ) = ω 0 + ∑ i = 1 n ω i x i + ∑ i = 1 n − 1 ∑ j = i + 1 n < v i , v j > x i x j \hat{y}(X) = \omega_{0}+\sum_{i=1}^{n}{\omega_{i}x_{i}}+\sum_{i=1}^{n-1}{\sum_{j=i+1}^{n} \color{red}{<v_{i},v_{j}>x_{i}x_{j}}} y^(X)=ω0+∑i=1nωixi+∑i=1n−1∑j=i+1n<vi,vj>xixj
< v i , v j > = ∑ f = 1 k v i , f ⋅ v j , f <v_{i},v_{j}> = \sum_{f=1}^{k}{v_{i,f}\cdot v_{j,f}} <vi,vj>=∑f=1kvi,f⋅vj,f
FM的化简公式也很重要:
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ \sum_{i=1}^{n-…
- v i , f v_{i,f} vi,f 是一个具体的值;
- 第1个等号:对称矩阵 W W W 对角线上半部分;
- 第2个等号:把向量内积 v i v_{i} vi,