二、FNN

  1. 传统的 CTR 预估模型大多数采用线性模型。线性模型的优点是易于实现,缺点是:模型表达能力较差,无法学习特征之间的相互作用 interaction

    非线性模型(如:FM,GBDT)能够利用不同的组合特征,因此能够改善模型的表达能力。但是这些特征无法利用不同特征的任意组合。

    论文 Deep Learning over Multi-field Categorical Data – A Case Study on User Response Prediction 提出了 FNNSNN 两种模型来学习特征的交互作用。

  2. 由于视觉、听觉、文本信号在空间或者时间上是局部相关的,因此深度神经网络能够利用这种局部依赖性,并学习特征空间的 dense representation,从而使得神经网络能够直接从原始输入中直接有效的学习高阶特征。

    而在 CTR 预估任务中,大多数输入特征是离散的 categorical 特征,特征之间的局部依赖性是未知的。

    Factorisation-machine supported Neural Networks: FNNSampling-based Neural Networks: SNN 两种模型就是从离散的 sparse feature 学到 dense representation

  3. FNNSNN 的主要思路是:

    • sparse feature 二、FNN - 图1学到 dense representation 二、FNN - 图2
    • 二、FNN - 图3 作为一个深度前馈神经网络的输入,输出为概率 二、FNN - 图4

    二者的区别在于学到 二、FNN - 图5 的方式不同。

    另外 FNNSNN 采用了 “逐层预训练 + 微调” 的训练方式,事实上这种训练方式目前已经不推荐使用,而是直接端到端的训练方式。

2.1 模型

2.1.1 FNN

  1. FNN 模型结合了神经网络和 FM 模型,网络分为以下几层:

    • 第 0 层输入层:categorical 经过 one-hot 编码之后作为输入,该层也被称作 sparse binary feature 层。
    • 第1层embedding 层:输入层经过局部连接生成embedding 向量,该层也被称作 dense real layer 层。
    • 第2层到第 二、FNN - 图6 层:全连接层。
    • 最后一层:sigmoid 输出层。

    二、FNN - 图7

  2. FNN 的核心在于 embedding 向量的生成。假设有 二、FNN - 图8fieldone-hot 向量为 二、FNN - 图9field i 在向量中的起始位置为 二、FNN - 图10、终止位置为 二、FNN - 图11(包含)。

    每个 field 生成一个 embedding 向量。即 field i 生成 二、FNN - 图12 。同时还有全局bias 。即:

    二、FNN - 图13

    • 输入位置 二、FNN - 图14 仅仅与 二、FNN - 图15 相连,即:局部连接:

      二、FNN - 图16

      其中 二、FNN - 图17 为映射参数。

    • 二、FNN - 图18FM 模型初始化。由于采用逐层预训练,因此一旦初始化 二、FNN - 图19 之后就固定。

      因此求解 FM 的过程就是求解 二、FNN - 图20 的过程,且一旦初始化后就冻结 二、FNN - 图21 ,直到最后的微调阶段才更新 二、FNN - 图22

  3. 一旦求解出 二、FNN - 图23,就可以计算后续网络:

    二、FNN - 图24

    其中 二、FNN - 图25 为激活函数。

    • 网络每层的隐向量维度可以不同。
    • 网络每层通过 layer-wise RBM 逐层预训练来初始化。
  4. 一旦进行了 FM 预训练和 layer-wise RBM 预训练之后,则可以通过监督学习来微调模型。

    模型的损失函数为交叉熵:

    二、FNN - 图26

    考虑到:

    二、FNN - 图27

    二、FNN - 图28 时,对应梯度为0。因此只需要更新 二、FNN - 图29 非零的分量对应的参数,这大大降低了参数更新的计算量。

2.1.2 SNN

  1. SNNFNN 的区别在于第一层的网络结构,在 SNN 中第一层是全连接的。

    二、FNN - 图30

    其中 二、FNN - 图31 为激活函数,二、FNN - 图32 为第一层的网络参数。

    第一层参数可以通过两种预训练方式来预训练:restricted Boltzmann machine:RBM 或者 denoising auto-encoder:DAE

    二、FNN - 图33

2.2 实验

  1. 数据集:采用 iPinYou 数据集。该数据集是一个公开的、真实的展示广告数据集,包含 1950万曝光数据,其中点击数据 14790个。

    所有特征都是 categorical 特征,经过one-hot 编码之后有 937670 维。

  2. 模型比较了全量广告主,以及部分广告主(广告主 1458,2259,2997,3386 ) 上的预测结果。

    结论:

    • FM 模型并没有显著的强于 LR 模型,这意味着该任务中二阶特征交叉并没有很好的捕捉到数据的模式。
    • 大多数情况下 FNN 的效果最好。

    二、FNN - 图34