模型表示为:因子分解机(Factorization Machine)
1.概念
在如广告点击预测问题中,根据用户画像、广告位以及一些其他特征来预测用户是否会点击广告。当对离散特征进行One-hot编码后,将出现特征维度爆炸,而且特征数据较稀疏。因此,FM最大的特点是对于稀疏的数据具有很好的学习能力。
可以处理以下三类问题:
- 回归问题:使用最小均方误差作为优化标准
- 二分类问题:加一个激活函数,如sigmoid或tanh函数等
- 排序问题:按照预测分数召回
2.优点
- 可以在非常稀疏的数据中进行合理的参数估计
- 在FM模型的复杂度是线性的
- FM是一个通用模型,可以应用于任何特征为实值的情况
3.为什么有效?模型细节
在一般的线性模型中,各个特征独立考虑的,没有考虑到特征与特征之间的相互关系。但实际上,大量的特征之间是有关联的。
举例:电商中,男性购买啤酒较多,女性购买化妆品较多,性别与购买类别之间存在关联。
模型
一般的线性模型为
对于度为2的因子分解机模型为:
,其中,$
$表示两个大小为$k$的向量之间的点积。与线性模型相比,FM的模型多了后面特征组合的部分。
如何求解?
对每一个特征分量$xi$构造一个辅助向量$v_i=(v{i1},v{i2},…,v{ik})$,利用$v_iv_j^T$对交叉项的$w{ij}$进行估计。
K的选取?
k越大能够解释的特征维度越高,但是k的选取不宜太大。
为什么求解模型复杂度是线性的?
求解过程
使用随机梯度下降方式求解
局部感知因子分解机(FFM)
1.基于FM改进之处
特征One-hot之后过于稀疏,因此,同一个categorical特征经过One-hot编码之后生成的数值特征可以放到同一个field。
因此在FFM中,每一维特征都会针对其他特征的每个field,分别学习一个隐变量,该隐变量不仅与特征相关,也与field相关。假设样本的$n$个特征属于$f$个field,那么FFM的二次项有$nf$个隐向量。而在FM模型中每一维特征的隐向量只有一个。如果隐向量的长度为$k$,那么FFM的二次项参数有$nfk$个,远多于FM的$nk$个。
2.模型
3.求解
随机梯度下降,同FM
4.应用
为了使用FFM方法,所有的特征必须转换成“field_id:feat_id:value”格式,field_id代表特征所属field的编号,feat_id是特征编号,value是特征的值。
DeepFM
1.概念
DeepFM目的是同时学习低阶和高阶的特征交叉,主要由FM和DNN两部分组成,底部共享同样的输入。模型可以表示为:
这里的低阶和高阶指的是特征组合的维度,虽然FM理论上可以对高阶特征组合进行建模,但实际上因为计算复杂度原因,一般都只用到了二阶特征组合。因此,FM负责二阶特征组合,DNN负责高阶特征的组合。
2.优势
- 同时结合高阶和低阶特征组合(FM+DNN)
- 端到端模型,无需特征工程(DNN)
- 共享相同的输入和embedding参数,训练高效(借助FFM来做预训练,得到embedding后的向量)
- 评估模型时,用到了新的指标“Gini Normalization”