赞
踩
FFM(Field-aware Factorization Machine)
1. 为什么需要FMM?
Field-aware即通过引入field的概念,FFM把相同性质的特征归于同一个field。 基于FM,提高FM模型的表达能力和复杂度,从而提高FM的学习能力。
2. 什么是FMM&FMM的推导?
与FM相似,在线性回归的模型上引入特征组合部分。与FM不同的是,特征组合部分的隐向量多了个filed维度。
所以如果隐向量的长度为k,那么FFM的二次参数有f*(nk)个,远多于FM模型的nk个。f为引入的field数,n*k为隐向量维度。
FFM将问题定义为分类问题的逻辑回归,同时引入正则项:
FFM的训练过程:
1.根据样本特征数量()、field的个数()和训练参数(),生成初始化模型,即随机生成模型的参数;
2.如果归一化参数 为真,计算训练和验证样本的归一化系数,样本 的归一化系数为
3.对每一轮迭代,如果随机更新参数 为真,随机打乱训练样本的顺序;
4,对每一个训练样本,执行如下操作:
A.计算每一个样本的FFM项,即公式中的输出 ;
B.计算每一个样本的训练误差,如算法所示,这里采用的是交叉熵损失函数 ;
C.利用单个样本的损失函数计算梯度 ,再根据梯度更新模型参数;
5.对每一个验证样本,计算样本的FFM输出,计算验证误差;
6.重复步骤3~5,直到迭代结束或验证误差达到最小。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。