FM/FFM原理及其公式详解

FM在特征组合中的应用

  年龄(x1) 城市(x2) 性别(x3)
用户1 23 北京
用户2 31 上海

如上述特征X有三个维度,年龄是数值型特征,城市和性别是类别型特征,在进行特征组合的使用类别型特征要onehot处理 。

  x1年龄 x2北京 x3上海 x4深圳 x5男 x6女
用户1 23 1 0 0 1 0
用户2 31 0 1 0 0 1

实际上"北京的男性用户","上海的女性用户 "这种组合特征可能是有用的,即x_i,x_{j},(x_i,,x_j都是one_hot特征)同时为1可能是一个很有用的特征,这种组合特征是x_i,和x_j的线性组合无法表示的 ,这样一来x_i\ast x_j就成了一个新特征,为了不错过任何一种可能有用的组合特征,我们穷尽所有的i,j的组合,把x_ix_j,1\leq x_i\leq n,i<j\leq n,都加到特征里面去,即使其中某些x_ix_j不是one-hot特征或者某些 x_ix_j不是有用的特征,都没关系,经过大量样本的训练,模型会把那些无用的特征的系数训练为0。

这样就有人提出了FM模型:

                                                  \widehat{y}=w_{0}+\sum_{i=1}^{n}w_{i}x_{i}+\sum_{i=1}^{n} \sum_{j=i+1}^{n}w_{ij}x_{i}x_{j}
      这个公式中w_{0},w_{i},x_{i},w_{ij}都是一个数既不是向量也不是矩阵,它是在计算一个样本的预测输出,x_{i}表示某个样本在第i个特征处的值,由于二次项系数w_{ij},我们额外引入n^{2}/2个参数需要训练。任意两个参数都是独立的,即w_{ij}w_{jh}时毫无关联的。然而在稀疏的场景下,二次项参数的训练是很困难的,其原因:每个参数w_{ij}的训练需要大量x_ix_j都为非零的样本(因为只有一条样本中x_{j}或者x_j等于0,那么对应的w_{ij}\ast 0=0,那么该二次项就不存在了,永远无法训练该参数),由于样本数据本来就稀疏,满足x_ix_j不为了0的样本非常少,训练样本不足,很容易导致参数w_{ij}不准。

    有没有什么办法可以减少参数?再来观察二次项系数矩阵W_{n\times n},它是对称的方阵w_{ij}=w_{ji},这里是因为x_ix_j与 x_{j}x_{i},这两

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值