FM / FFM / Wide&Deep / DeepFFM
FM
LR + 特征交叉项:进行特征组合增强模型泛化能力。
式中$v_i$为特征的embedding向量
FFM
FM + Field:将特征按照事先规则分多个场。每个特征将被映射为多个隐向量,每个隐向量对应一个场。当两个特征组合时,用对方对应的场对应的隐向量做内积。FM可看做只有一个场的FFM。
Wide & Deep
Wide + Deep:由浅层(或单层)的Wide部分神经网络和深层的Deep部分多层神经网络组成,输出层采用softmax或logistics regression综合Wide和Deep部分的输出。Wide部分有利于增强模型的“记忆能力”,Deep部分有利于增强模型的“泛化能力”。

Wide & Deep 网络架构
DeepFM
Deep + FM:用FM做特征间低阶组合,用Deep NN部分做特征间高阶组合,并行方式组合。DeepFM不需要预训练和人工特征工程。

DeepFM 网络架构
tf.nn.embedding_lookup_sparse()
多值离散特征的embedding处理
DCN
Deep + Cross: 深度神经网络+应用显式特征交叉。特征交叉部分公式为:

Deep & Cross 网络架构
面试问题
- DeepFM和Wide&Deep的deep部分有什么不同?
原生的wide&deep里面的deep输入是onehot,数值特征和标签特征都有;DeepFM中的deep是连续数值的embedding输入,且与FM的embedding共享,训练更快更准确。
参考资料
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment