从POLY2到FM再到FFM模型的演化过程。

文章目录

    • POLY2模型
    • FM模型
    • FFM模型-引入特诊域的概念
    • 从POLY2到FFM的模型演化过程

POLY2模型

poly2模型进应用征的“暴力”组合的方式
从POLY2到FM再到FFM模型的演化过程。_第1张图片
该模型对所有的特征进行了两两交叉(特征 X j 1 X_j1 Xj1 X j 2 X_j2 Xj2),并对所有的特征组合赋予权 W h ( j 1 , j 2 ) W_h(j_1,j_2) Whj1,j2。POLY2通过暴力组合特征的方式,在一定程度上解决了特征组合的问题。

POLY2模型本质上仍然是线性模型,训练方法与逻辑回归一样。

POLY2存在缺陷:

  • POLY2在进行无选择的特征交叉,在做one*hot编码时,使原本就非常稀疏的特征向量更加稀疏,导致大部分交叉特征的权重缺乏有效的数据进行训练,无法收敛
  • 权重参数由N直接上升到 n 2 n^2 n2,极大的增加了训练复杂度

FM模型

原理:主要是二阶特征组合

为了解决POLY2模型的缺陷,FM诞生。最主要的区别就是应用两个向量的内积( W j 1. W j 2 W_j1 . W_j2 Wj1.Wj2)取代了单一的权重系数( W h ( j 1 , j 2 ) W_h(j1,j2) Whj1,j2 具体来说,FM为每一个特征学习了一个隐权重向量.在特征交叉时,使用两个特征隐向量的内积作为交叉特征的权重。

从POLY2到FM再到FFM模型的演化过程。_第2张图片

  • FM通过引入特征隐向量的方式,直接把POLY2的模型 n 2 n^2 n2 级别的权重参数数量减少到了 nk。使用梯度下降法进行FM训练的过程中,FM的训练复杂度同样可被降低到nk级别,极大的降低了训练开销
  • 隐向量的引入使FM能更好的解决数据稀疏性的问题。
  • FM模型机构比较容易实现,也比较容易进行线上部署和服务。

FM:**
优点:

  • 可以学到更多的特征之间的交叉关系,而且相较于Poly2,FM的学习参数要远远低于Poly2;
  • 在数据集非常稀疏的时候,FM的效果经常好于Poly2。

缺点:

  • 因为FM假设为低秩,用两个latent vector的点积表示两个特征之间的影响,限制了特征的交互关系的表示,特征的交叉关系可能比点积复杂。

FFM模型-引入特诊域的概念

FFM模型引入了特征域感知这一概念,使模型的表达能力更强。
从POLY2到FM再到FFM模型的演化过程。_第3张图片
FFM模型的数学形式是二阶部分。其中与FM的区别在于隐向量由原来的 W j 1 W_j1 Wj1 变成了 W j 1 , f 2 W_j1,_f2 Wj1,f2 ,这就意味着每个特征对应的不是唯一一个隐向量,而是一组隐向量。当 X j 1 X_j1 Xj1 特征与 X j 2 X_j2 Xj2 特征进行交叉的时候, X j 1 X_j1 Xj1特征 会从 X j 1 X_j1 Xj1 这一组隐向量中挑出与特征 X j 2 X_j2 Xj2 的域f2 对应的隐向量 W j 1 , f 2 W_j1,_f2 Wj1,f2 进行交叉 。 同理。 X j 2 X_j2 Xj2特征 也会用 X j 1 X_j1 Xj1 的域对应的隐向量 进行交叉 。

相比与FM,FFM模型引入了特征域的概念,为模型引入了更多有价值的信息,使模型的表达能力增强,但与此同时,FFM模型的计算模型复杂度上升到了 K n 2 Kn^2 Kn2 ,远远大于FM的KN。在实际的工程应用中,需要在模型的效果和工程投入中进行权衡。

FFM:
优点:相较于FM,特征之间的学习更加合理
计算时间和效果都很好
缺点:
FFM FM LR Poly2 对类别型特征的处理很好,对数值型特征的处理非常差,
只学习了二阶交叉特征,由于计算原因没有考虑高阶交叉,
如果对类别特征使用one hot 编码,会损失特征的关联信息。

从POLY2到FFM的模型演化过程

POLY2模型直接学习每一个交叉特征的权重,若特征数量为n,则权重数量为 n 2 n^2 n2 级别的具体为 n(n-1)/2个。

FM模型学习每一个特征的k维隐向量,交叉特征由相应特征隐向量的内积得到,权重数量共nk个。FM比POLY2的泛化能力强,但记忆能以有所减弱,处理稀疏特征向量的能力远强于POLY2

FFM模型在FM模型的基础上引入了特征域的概念,在做特征交叉时,每个特征选择与对方域对用的隐向量做内积运算,得到交叉特征权重,在有n个特征,f个特征域,隐向量维度为k的前提下,参数数量共有n* k* f 个。

你可能感兴趣的:(深度学习,POLY2,FM,FFM)