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