回答思路
概念:Deepfm(Deep Factorization Machine)即深度因子分解机,是华为的研究者2017年提出,基于wide&deep架构的改进你和优化的分类模型。因为对于wide&deep模型,仍然无法在工作中摆脱人工特征工程的辅助,且wide部分无法进行自动特征交叉,故deepfm方法应运而生。Deepfm可以看做是对wide&deep模型wide部分的改进,使用因子分解机模型代替传统的逻辑回归模型,这样可以直接通过对模型端到端的训练,无需人工设计组合特征,就可以实现模型自动提取二阶组合特征的效果。
其中,w_ij为二阶组合特征的权重,w_i为一阶特征的权重,w_0为线性模型中的偏置项,n为特征维度,x_i表示为训练样本第i维特征值。
由于二项组合特征权重系数的存在,需要引入大量参数进行训练,为降低模型训练复杂度,利用二阶组合特征权重矩阵的对称性质对矩阵进行分解,即w_ij=w_ji,和其稀疏性质,即大部分组合特征值是无意义的,权重系数w_ij实际为0, 。K的取值远远小于n,使得需要训练的参数数量大大减少,在上述矩阵分解后可以将因子分解机部分重写为下式形式:
,其中
FM部分通过隐向量内积的形式学习二阶组合特征,即使训练数据中很少出现或未出现的特征交互形式,也可以哦通过FM被更好的学习,并且不会引入过大的权重参数矩阵。
Deep部分同wide&deep模型的deep部分相同,是一个多层前馈神经网络,用来学习高阶组合特征,特有之处在于:
(1)原始特征数据需要做嵌入层embedding表示,不管经过one-hot编码的原始稀疏向量的维度是多少,都是具有相同维度的嵌入层向量;
(2)作为在FM中的二阶组合特征权重被学习的隐向量,可用来将原始稀疏特征压缩为低维稠密向量,完成嵌入层表示:
Deep FM模型的训练过程包含了因子分解机部分,不需要使用因子分解机模型提前做预训练来获得嵌入层向量,可实现以端到端的方式来联合训练整体模型,可以同时学习低阶组合特征和高阶组合特征,不需要人工设计组合特征,FM部分和Deep部分可共享嵌入层输入,不再需要额外的特征处理。