Wide & Deep、DeepFM系列算法原理与优缺点对比

您所在的位置:网站首页 fm球员缺点 Wide & Deep、DeepFM系列算法原理与优缺点对比

Wide & Deep、DeepFM系列算法原理与优缺点对比

2024-07-02 15:11| 来源: 网络整理| 查看: 265

一、Wide & Deep模型

Wide & Deep Learning 模型的核心思想是结合广义线性模型的记忆能力(memorization)和深度前馈神经网络模型的泛化能力(generalization)。利用广义线性模型从历史数据中学习特征相关性,利用深度前馈神经网络揭示隐式特征之间的相互作用。在训练过程中同时优化 2 个模型的参数,从而达到整体模型的预测能力最优。

Wide & Deep模型结构如下图,左边是wide部分,右边是deep部分。 在这里插入图片描述

1、Wide部分

Wide模型的实质是一个广义线性模型: y = w 0 + W T x y = w_{0}+\textbf{W}^T\textbf{x} y=w0​+WTx 其中,特征 x = [ x 1 , x 2 , ⋯ , x d ] \textbf{x}=[x_1,x_2,⋯,x_d] x=[x1​,x2​,⋯,xd​]是一个d维的向量, W \textbf{W} W为模型的参数。最终再使用一个Sigmoid变换,使得输出的y值在0-1之间。——换言之,Wide部分实际上就是一个LR模型。

2、Deep部分

这一部分就是一个前馈神经网络——原始特征会先进行One-hot编码,得到高维稀疏特征,再将高维稀疏特征做Dense Embedding,转换为低维稠密向量,然后将这些低维密集嵌入矢量馈送到前向通道中的神经网络的隐藏层中。每个隐藏层执行以下计算: a ( l + 1 ) = f ( W ( l ) a ( l ) + b ( l ) ) a^{(l+1)} = f(W^{(l)}a^{(l)} + b^{(l)}) a(l+1)=f(W(l)a(l)+b(l))

a ( l ) a^{(l)} a(l): 第 l l l层的计算值(输出值) f f f: 是激活函数,通常是ReLUs b ( l ) b^{(l)} b(l)和 W ( l ) W^{(l)} W(l): 分别是第 l l l层的偏差项和权重参数

关于深度前馈网络的基本原理可以参考这里 在此解释一下Dense Embedding: 是针对稀疏特征的一种降维方式,它降维的方式可以类比为一个全连接层(没有激活函数),通过 embedding 层的权重矩阵计算来降低维度。假设:

feature_num : 原始特征数embedding_size: embedding之后的特征数[feature_num, embedding_size] 权重矩阵shape[m, feature_num] 输入矩阵shape,m为样本数[m, embedding_size] 输出矩阵shape,m为样本数

那么降维过程可以用下图来描述: 在这里插入图片描述

3、联合训练

通过将Wide模块和Deep模块的对数加权输出作为预测值,然后送入逻辑损失函数中,用于联合训练。模型的联合训练通过反向传播将输出值的误差梯度通过最小批随机梯度同时传送给Wide和Deep模块。

二、FM

DeepFM相当于将Wide & Deep模型中的Wide部分的LR换成了FM,因此下面先介绍FM。 FM解决的问题:大规模稀疏数据下的特征组合问题。 在LR的基础上引入交叉项,于是FM的雏形(二阶多项式模型)可以表示为: y = w 0 + Σ i = 0 n w i x i + Σ i = 1 n − 1 Σ j = i + 1 n w i j x i x j y=w_0 + \Sigma_{i=0}^{n}\textbf{w}_i\textbf{x}_i+\Sigma_{i=1}^{n-1}\Sigma_{j=i+1}^n\textbf{w}_{ij}\textbf{x}_i\textbf{x}_j y=w0​+Σi=0n​wi​xi​+Σi=1n−1​Σj=i+1n​wij​xi​xj​ 其中,n 代表样本的特征数量。 从这个式子中可以看出,组合特征的参数一共有1+2+….+(n-1) =n(n−1)/2 个,其中的n是特征维度(这里的特征是指离散化后的特征,如city=‘北京’),任意两个参数都是独立的。然而,在数据稀疏性普遍存在的实际应用场景中,交叉项参数的训练是很困难的。其原因是,每个参数 Wij 的训练需要大量 Xi 和Xj特征同时非零的样本;由于样本数据本来就比较稀疏,满足“Xi 和 Xj 都非零”的样本将会非常少。训练样本的不足,很容易导致参数 Wij 不准确,最终将严重影响模型的性能。

Wij求解的思路是通过矩阵分解的方法。所有的二次项参数Wij可以组成一个对称阵W(为了方便说明FM的由来,对角元素可以设置为正实数),那么这个矩阵就可以分解为 W=VTV,V 的第 i 列便是第 i 维特征的隐向量。换句话说,特征分量Xi与Xj的交叉项系数就等于Xi对应的隐向量与Xj对应的隐向量的内积,即每个参数 wij=⟨vi,vj⟩,这就是FM模型的核心思想。V i表示 X i 的隐向量, V j 表示 X j 的隐向量 ,为了求出 Wij, 我们需要求出特征分量 X_i 的辅助向量 Vi=(Vi1……Vik), X_j 的辅助向量 Vj=(Vj1……Vjk),k表示隐向量长度( 实际应用中k



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3