1、fm模型的优点
(1)在特征极其稀疏的情况下也能进行参数预估
(2)时间复杂度低,在线性时间复杂度下即可完成模型的训练和预估
(3)FM是一个通用预测器,可用于任何实数值特征向量的场景下,不依赖特定的输入数据
2、FM模型
当拥有多个特征时,构建预估模型的最直观想法是将多个特征直接进行线性组合,求解损失函数最小时,特征对应的权重值。具体公式如下:
![](https://img.haomeiwen.com/i7960001/a1b0d3dffdeb26c6.png)
在我们的直观感受中,特征与特征之间也存在一定的相关性。以购物为例,不同年龄和不同性别的人群可能会拥有不同的购物偏好,因此可以考虑在模型中加入组合特征。以二阶组合特征为例,具体模型公式如下:
![](https://img.haomeiwen.com/i7960001/ac873040c81f2c7f.png)
使用上述公式在训练时存在一定的缺点,一是训练的时间复杂度为,二是只有在
和
不全为0的情况下,组合特征的权重才能训练充分。
为了解决上述问题,FM模型在构建时引入了矩阵分解的思想,组合特征相应权重由一对向量的内积得到而非仅使用单一的权重值。
![](https://img.haomeiwen.com/i7960001/eb9a8de78a0fdc7d.png)
其中,和
向量维度为
。
3、组合特征部分公式推导
FM模型性能极其良好,在时间复杂度下即可完成模型的训练和预估。论文中对其二阶组合部分公式做了推导,推导过程如下:
![](https://img.haomeiwen.com/i7960001/e23021bb87c0ef40.png)
第一步,原始公式计算的是下图右上三角部分的值,所以可将原始公式先扩展为下图矩阵中所有元素的累加和,去除对角线上的元素后,由于和
计算得到的值相等,将公式直接除以2即可。
![](https://img.haomeiwen.com/i7960001/5a39f93b00469ac9.png)
第二步,由于下标与
无关,交换求和符号的位置得到
,将
提到括号外。
第三步,这两项仅与下标
相关,
仅与下标
相关,所以可以将其分别拆分并整理得到两个求和项的乘积。
第四步,由于两个求和项只是下标不同,更换下标后,写成同一求和项的平方,得到最终的式子。
从推导完成的式子中可以得出,预估模型的时间复杂度为,且每项向量
的计算仅与
相关,不会出现在计算组合特征时,必须被组合的两个特征不全为0才能计算权重的情况,这也是FM模型泛化性能较强的原因。
4、更新参数
FM模型参数更新可以通过随机梯度下降实现,具体公式中的每项梯度如下图所示,对应梯度可以通过上述推导得到的公式计算得到。
![](https://img.haomeiwen.com/i7960001/6a056d8f383481eb.png)
参考资料:
网友评论