提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、LR 算法的缺陷
- 并未考虑到特征之间的关系。在实践中,对特征进行交叉组合往往能够更好地提升模型效果。
- 对于多取值特征进行one-hot编码,具有高度稀疏性,带来维数灾难问题
FM(Factorization Machine)模型就是针对在特征组合过程中遇到的上述问题而提出的一种高效的解决方案。FM模型被广泛应用于广告预估模型中,它的效果要好于LR。
二、FM
1 定义
FM的主要目标是,解决在数据稀疏的情况下,特征怎样进行交叉的问题。FM模型引入了多项式回归模型来加入特征间的关联性,通常对线性模型增加一个二阶多项式,其多项式模型的公式变为:
y = w 0 + ∑ i = 1 n w i x i + ∑ i = 1 n − 1 ∑ j = i + 1 n w i j x i x j y=w_0+\sum_{i=1}^n w_i x_i+\sum_{i=1}^{n-1} \sum_{j=i+1}^n w_{i j} x_i x_j y=w0+∑i=1nwixi+∑i=1n−1∑j=i+1nwijxixj (1)
与一般线性模型相比,上式多了一个二阶交叉项,模型参数多了n(n-1)/2个。
y = w 0 + ∑ i = 1 n w i x i + ∑ i = 1 n − 1 ∑ j = i + 1 n ⟨ V i , V j ⟩ x i x j = w 0 + ∑ i = 1 n w i x i + 1 2 ∗ ∑ f = 1 k { ( ∑ i = 1 n v i f x i ) 2 − ∑ i = 1 n v i f 2 x i 2 } \begin{aligned} y & =w_0+\sum_{i=1}^n w_i x_i+\sum_{i=1}^{n-1} \sum_{j=i+1}^n\left\langle V_i, V_j\right\rangle x_i x_j \\ & =w_0+\sum_{i=1}^n w_i x_i+\frac{1}{2} * \sum_{f=1}^k\left\{\left(\sum_{i=1}^n v_{i f} x_i\right)^2-\sum_{i=1}^n v_{i f}^2 x_i^2\right\}\end{aligned} y=w0+i=1∑nwixi+i=1∑n−1j=i+1∑n⟨Vi,Vj⟩xixj=w0+i=1∑nwixi+21∗f=1∑k⎩ ⎨ ⎧(i=1∑nvifxi)2−i=1∑nvif2xi2⎭ ⎬ ⎫ (2)
2 求解FM
到目前为止已经得到了FM的模型表示(4),使用梯度下降法对参数进行求解: