美文网首页
fm模型简述

fm模型简述

作者: vAugust | 来源:发表于2020-04-06 19:21 被阅读0次

    1、fm模型的优点

    (1)在特征极其稀疏的情况下也能进行参数预估

    (2)时间复杂度低,在线性时间复杂度下即可完成模型的训练和预估

    (3)FM是一个通用预测器,可用于任何实数值特征向量的场景下,不依赖特定的输入数据

    2、FM模型

    当拥有多个特征时,构建预估模型的最直观想法是将多个特征直接进行线性组合,求解损失函数最小时,特征对应的权重值。具体公式如下:

    2.1 线性回归

    在我们的直观感受中,特征与特征之间也存在一定的相关性。以购物为例,不同年龄和不同性别的人群可能会拥有不同的购物偏好,因此可以考虑在模型中加入组合特征。以二阶组合特征为例,具体模型公式如下:

    2.2 加入二阶组合特征

    使用上述公式在训练时存在一定的缺点,一是训练的时间复杂度为O(n^2),二是只有在x_{i} x_{j} 不全为0的情况下,组合特征的权重才能训练充分。

    为了解决上述问题,FM模型在构建时引入了矩阵分解的思想,组合特征相应权重由一对向量的内积得到而非仅使用单一的权重值。

    2.3 加入二阶组合特征的FM模型

    其中,v_{i} v_{j} 向量维度为k

    3、组合特征部分公式推导

    FM模型性能极其良好,在O(kn)时间复杂度下即可完成模型的训练和预估。论文中对其二阶组合部分公式做了推导,推导过程如下:

    3.1 组合特征公式推导

    第一步,原始公式计算的是下图右上三角部分的值,所以可将原始公式先扩展为下图矩阵中所有元素的累加和,去除对角线上的元素后,由于<v_{i},v_{j} >x_{i} x_{j} <v_{j},v_{i} >x_{j} x_{i} 计算得到的值相等,将公式直接除以2即可。

    第二步,由于下标fi,j无关,交换求和符号的位置得到\frac{1}{2}(\sum_{f=1}^k\sum_{i=1}^{n}\sum_{j=1}^n v_{i,f}v_{j,f}x_{i}x_{j} - \sum_{f=1}^k \sum_{i=1}^n v_{i,f}v_{i,f}x_{i}x_{i} ) ,将\sum_{f=1}^k提到括号外。

    第三步,v_{i,f}x_{i} 这两项仅与下标i相关,v_{j,f} x_{j} 仅与下标j相关,所以可以将其分别拆分并整理得到两个求和项的乘积。

    第四步,由于两个求和项只是下标不同,更换下标后,写成同一求和项的平方,得到最终的式子。

    从推导完成的式子中可以得出,预估模型的时间复杂度为O(kn),且每项向量v_{i,f}的计算仅与x_{i} 相关,不会出现在计算组合特征时,必须被组合的两个特征不全为0才能计算权重的情况,这也是FM模型泛化性能较强的原因。

    4、更新参数

    FM模型参数更新可以通过随机梯度下降实现,具体公式中的每项梯度如下图所示,v_{i,f}对应梯度可以通过上述推导得到的公式计算得到。

    4.1 梯度计算

    参考资料:

    https://www.csie.ntu.edu.tw/~b97053/paper/Rendle2010FM.pdf

    https://zhuanlan.zhihu.com/p/50426292

    相关文章

      网友评论

          本文标题:fm模型简述

          本文链接:https://www.haomeiwen.com/subject/typbphtx.html