• DeepFM 设计思路简单,源于 2016 年 Google 的宽深网络方法但是效果出众。DeepFM是一个集成了FM和DNN的神经网络框架,思路和Google的Wide&Deep相似,都包括wide和deep两部分。W&D模型的wide部分是广义线性模型,DeepFM的wide部分则是FM模型,两者的deep部分都是深度神经网络。DeepFM神经网络部分,隐含层的**函数用ReLu和tanh做信号非线性映射,sigmoid函数做CTR预估的输出函数。

  • 模型结构:

    1. FM部分的结构:

      DeepFM

       

      FM部分是一个因子分解机。关于因子分解机可以参阅文章[Rendle, 2010] Steffen Rendle. Factorization machines. In ICDM, 2010.。因为引入了隐变量的原因,对于几乎不出现或者很少出现的隐变量,FM也可以很好的学习。

    DeepFM的输出公式为:

    DeepFM

     

    FM的输出公式为:

    DeepFM

     

    DeepFM

     

    1. DNN部分结构:

      DeepFM

       

    两个主要的特点:

    • 输入数据的每个字段的特征经过embedding之后,都为kk维(lantent vector的维度),所以embedding后的特征维度是 字段数×k字段数×k

    • 在FM里得到的隐变量VV现在作为了嵌入层网络的权重,FM模型作为整个模型的一部分与其他深度学习模型一起参与整体的学习, 实现端到端的训练。

    • 这里的第二点如何理解呢,假设我们的k=5k=5,首先,对于输入的一条记录,同一个Field 只有一个位置是1,那么在由输入得到dense vector的过程中,输入层只有一个神经元起作用,得到的dense vector其实就是输入层到embedding层该神经元相连的五条线的权重,即vi1vi1,vi2vi2,vi3vi3,vi4vi4,vi5vi5。这五个值组合起来就是我们在FM中所提到的vivi。在FM部分和DNN部分,这一块是共享权重的,对同一个特征来说,得到的ViVi是相同的。

    • word2vec | embedding_lookup 输入其实就是one-hot Embedding,而word2vec要学习的是new Embedding。

  • 算法优缺点:

    1. DeepFM 可以对低阶特征交互和高阶特征交互进行建模,不需要进行特征工程。

    2. DeepFM 是一个端到端的模型,可以高效的进行训练,因为模型宽的部分和深的部分,不仅共享输入,也共享嵌入式向量。

    3. DeepFM 相比,其他几种点击率预估算法有以下缺点:

      1. FNN : FNN 是一个由 FM 初始化的前向神经网络。FM 预训练策略有如下两个问题:1). 嵌入层参数受 FM 影响较大 2). FM 预训练对算法效率有影响。另外,FM 只包含了高阶特征组合。

      2. PNN : PNN 及其变种 IPNN 和 OPNN 忽略了低阶特征的组合。

      3. 宽深网络:宽身网络的 FM 部分需要人工处理特征工程。

  • Ref:

    1. DNN for CTR总结全:https://zhuanlan.zhihu.com/p/28202287

    2. DeepFM: A Factorization-Machine based Neural Network for CTR Prediction

相关文章: