https://blog.csdn.net/jliang3
1.重点归纳
1)FM和FFM模型凭借在数据量较大并且特征稀疏的情况下,仍然能够得到优秀的性能和效果,屡次在各大公司举办的CTR预估比赛中获得不错的战绩。
2)FM旨在解决稀疏数据下的特征组合问题,使用矩阵分解的方法来求解参数,从而降低计算复杂度为线性。
(1)模型:
(2)损失函数
(3)优化方法
3)FFM在FM的基础上引入了field概率,FFM把相同性质的特征归于同一个field。
(1)模型:
(2)二次参数有nfk个,远多于FM模型的nk个。由于隐向量与field有关,FFM二次项不能够化简,预测复杂度是O(kn^2)
(3)损失函数采用logistic loss函数和L2惩罚项,因此只能用于二分类问题。使用SGD优化。
(4)CTR和CVR样本类别获取
2.FM模型
1)FM旨在解决稀疏数据下的特征组合问题
(1)对于categorical特征,一般都是进行one-hot编码处理,不可避免的样本数据变得很稀疏,另外一个问题是特征空间变得特别大。
(2)某些特征经过关联后,与label之间的相关性就会提高,因此引入两个/多个特征的组合是非常有意义的。普通的线性模型,我们都是将各个特征独立考虑的,并没有考虑到特征之间的相互关系,但实际上大量的特征之间是有关联的。
如:女性这个特征与化妆品类服饰类商品有很大关联
(3)多项式模型是包含特征组合的最直观的模型,二阶多项式模型:
2)FM求解
(1)所有二次项参数wij可以组成一个对称阵W,这个矩阵可以分解为W=VTV。
(2)V的第j列便是第j维特征的隐向量,每个参数wij=<vi,vj>,这是FM模型的核心思想。vi是第i维特征隐向量<.,.>代表向量点积。
进行简化:
(3)简化后,二次项的参数数量为kn个(计算复杂度O(kn)),远小于多项式模型的参数数量。所有包含“xi的非零组合特征”的样本都可以用来学习隐向量vi,很大程度上避免了数据稀疏性造成的影响。
3)回归和分类
(1)回归问题
(2)分类问题(二分类问题)
4)优化方法
每次只对一个参数进行优化,并逐轮进行迭代
5)与SVM二阶多项式比较
3.FFM模型
1)FFM在FM的基础上引入了field概率,FFM把相同性质的特征归于同一个field。如onehot编码前特征country下有两取值USA和China,那么onehot编码后这两个特征属于同一个field。
(1)假设样本的n个特征属于f个field,那么FFM的二次项有nf个隐向量。而在FM模型中,每一维特征的隐向量只有一个。FM可以看作是FFM的特例,是把所有特征都归属到一个field时的FFM模型。
(2)模型
(3)二次参数有nfk个,远多于FM模型的nk个。由于隐向量与field有关,FFM二次项不能够化简,预测复杂度是O(kn^2)
2)例子
那么,FFM的组合特征有10项,如下图所示。
其中,红色是field编号,蓝色是特征编号,绿色是此样本的特征取值。
3)损失函数采用logistic loss函数和L2惩罚项,因此只能用于二分类问题。使用SGD优化。
4)FFM应用
(1)FFM主要用来预估站内的CTR(点击率)和CVR(转化率)
如:年龄、性别、职业、兴趣、品类偏好、浏览/购买品类等基础信息,用户近期点击量、购买量、消费额等统计信息。
如:所属品类、销量、价格、评分、历史CTR/CVR等信息。
如:浏览/购买评论匹配、浏览/购买商家匹配、兴趣偏好匹配等几个维度。
(2)使用FFM方法,所有的特征必须转换成”field_id:feature_id:value”格式。
(3)CTR和CVR样本类别获取
(4)FFM的实现细节
图片来源:小小挖掘机博客