深度因子分解机(DeepFM)模型
深度因子分解机(Deep Factorization Machine,DeepFM)模型是从广深(Wide&Deep)框架中演化出来的一种模型。
因为 Wide&Deep 模型的广义线性部分,挖掘到的用户兴趣对交叉信息仍然需要人工特征工程来人为构建特征和特征间的组合,所以过程相当繁琐且需要依赖人工经验。
DeepFM 模型使用 FM 模型替换掉了 LR 部分,从而形成了 FM&Deep 结构。
Cgp9HWGRxFmAeoWpAAJzpc1E6GU139.pngOutput Units:输出单元 FM Layer:因子分解机层 Hidden Layer:隐藏层 Dense Embeddings:稠密表征 Sparse Features:稀疏特征 Addition:加 Inner Product:内积 Sigmoid Function:Sigmoid函数 Activation Function:激活函数 Weight-1 Connection:权重1连接 Normal Connection:正常连接 Embedding:隐向量 Field i~m:域 i~m
与 Wide&Deep 模型异曲同工,DeepFM 模型分为 FM 部分和 Deep 部分。
FM 部分:
它可以自动提取特征交叉信息,其中包含了加权求和的一阶信息和向量内积的二阶信息。相比 Wide&Deep 模型而言,它在低层特征的使用上更合理。
Deep 部分:
DeepFM 模型与 Wide&Deep 模型的 Deep 部分本质上并无区别,然而,Wide&Deep 模型中的 Embedding 层是为 Deep 部分专门设计的,而 DeepFM 模型中的Embedding 层由 Deep 部分与 FM 部分共享输出。
深度和交叉网络(DCN)模型
深度和交叉网络(Deep & Cross Network,DCN)模型是从广深(Wide&Deep)框架中演化出来的一个模型。
Wide&Deep 在低层特征使用时,无法提供更高阶的特征,必须需要依赖人工构建交叉信息。而 DeepFM 模型中的 FM 部分虽然可以自动组合特征,但是仅限于二阶特征交叉,那么如何自动学习高于二阶特征交叉的特征组合呢?
DCN 模型将 Wide 部分替换为由特殊网络结构实现的特征交叉网络,它的框架如下图所示:左侧的交叉层除了接收前一层的输出外,还会同步接收原始输入层的特征,从而实现特征信息的高阶交叉。
CioPOWGRxKqAEZ9mAADQQSd8WTc622.pngCombination output layer:组合输出层Cross network:交叉网络 Deep network:深度网络 Embedding and stacking layer:表征和堆叠层 Dense feature:稠密特征 Sparse feature:稀疏特征 Embedding vec:表征向量 Cross Layer:交叉层 Deep Layer:深度层 Output:输出
对比 DeepFM 模型,DCN 模型在低层特征的信息提取上,不仅能够挖掘特征中更高阶的交叉信息,而且计算效率更有优势。
通用范式框架 Embedding + MLP
深度学习中非常基础且应用最广泛的通用范式框架是 Embedding + MLP,目前即便是鼎鼎大名的广深(Wide&Deep)模型框架也只是这套框架的变种之一。
Embedding + MLP 通用范式框架就是把 MLP 作为模型的拟合基础组件,然后将高维度特征以隐向量表征的形式进行输入,从而实现了两者的完美结合。
通常来说,Embedding + MLP 通用范式框架的打法如下。
第一步:把稀疏特征转成稠密隐向量表征;
第二步:将隐向量表征以某种形式进行拼接;
第三步:堆叠 FC 层(全连接 MLP)对目标进行拟合;
第四步:对目标函数进行输出。
通过这种打法,使得 Embedding + MLP 能够较好地捕获高阶特征组合。
不过,它对高频低阶特征兼容性不够,这也是广深(Wide&Deep)框架需要改进的点(在09 讲中已介绍)。另外,MLP 深度的增加,容易导致梯度消失、训练难以收敛、模型容易过拟合使得模型效能不升反降等问题。
网友评论