美文网首页
推荐系统-FM(Factorization Machine)模型

推荐系统-FM(Factorization Machine)模型

作者: 菜鸡不得行 | 来源:发表于2019-07-27 22:39 被阅读0次

    1. 介绍

    在进行CTR(click through rate)预估时,除了单个特征外,通常要进行特征组合,FM算法是进行特征组合时的常见算法。

    2. one-hot的问题

    FM主要是为了解决数据稀疏的情况下,特征组合问题。一般categories特征经过one-hot编码以后,样本数据会变得很稀疏,假设有10万个item,如果对item的这个维度进行one-hot编码,这个维度的数据稀疏性就是十万分之一,所以数据的稀疏性是,是实际应用中常见的挑战。

    one-hot编码的另一个问题是特征空间变大,上面的10万个item,编码后样本空间有一个categories会变成10万维,特征空间会暴增。

    3. 特征组合

    普通的线性模型,各个特征都是独立考虑的,没有考虑到特征之间的相关性,如果能找出有关联的特征,会有很大的帮助。一般的线性模型为:


    从上面公式中看出,一般的线性模型是不考虑特征间的关联的,为了描述特征间的多样性,我们采用多项式模型。在多项式中,特征x_ix_j 的组合用x_ix_j 表示,现在讨论二阶多项式模型。

    其中,n表示样本的特征数量,x_i 表示第i个特征。公式的第三项就是加入了特征组合的部分。

    4. FM求解

    从上面的多项式可以看出,特征组合的部分,特征相关参数有n(n-1)/2 个。但是在数据很稀疏的情况下,x_i,x_j 都不为0的情况非常少,这样使得w_{ij} 无法通过训练得出。

    为了求出w_{ij} , 对每一个特征分量x_i 引入隐向量V_i=(v_{i1},v_{i2}...v_{ik}) 。将每个w_{ij} 用隐向量的内积<v_i,v_j> 表示,然后利用v_i,v_j^Tw_{ij}​ 进行矩阵求解。

    那么w_{ij} 可以表示为:

    具体过程:


    5. FM总结

    • FM降低了特征组合项学习不充分的影响。

      参数学习有之前学习w_{ij} 的过程,变成了学习n个单特征对应的k维隐向量的过程。

    • FM提高了预估能力。

      由于FM学习的参数为单特征的隐向量,所以训练集中没有出现的特征组合的样本,FM模型依然可以用来预估。

    • FM提高了参数学习效率,

      参数个数由(n^2+n+1) 变成了(nk+n+1) 个,模型复杂的由O(mn^2) 变为O(mnk),m为训练样本数。

    FM是一个可以表示特征之间关系的函数表达式,可以推广到更高阶,将多个特征之间的关联信息考虑进来。

    参考资料

    http://www.52caml.com/head_first_ml/ml-chapter9-factorization-family/

    相关文章

      网友评论

          本文标题:推荐系统-FM(Factorization Machine)模型

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