六、DCN

  1. 人工交叉特征效果很好,但是有两个主要缺点:

    • 人工探索所有的交叉特征是不现实的。
    • 难以推广到未曾出现过的交叉特征。

    虽然 DNN 能够自动探索交叉特征并推广到未出现过的交叉特征,但是DNN 的学习效率不高,且无法显式的学习特征交叉。

    论文 《Deep & Cross Network for Ad Click Predictions》 提出了 Deep&Cross Network:DCN 模型,该模型保留了 DNN 的优点。

    此外,DCN 提出了一种新的cross network ,该网络能够高效学习高阶特征交互。

    实验结果表明:DCN 无论在模型表现以及模型大小方面都具有显著优势。其优点:

    • cross network 显式的在每层应用特征交叉,有效的学习了预测能力强的交叉特征,无需人工特征工程。
    • cross network 简单高效,可以学习高阶交叉特征。每增加一层,能够学到的交叉特征的阶数就加一阶。
    • 模型表现更好,且参数要比 DNN 少一个量级。
  2. Wide&Deep 模型使用交叉特征作为输入,其成功依赖于选择合适的交叉特征。

    如何选择合适的交叉特征是个指数级问题,目前尚未有明确有效的方法。

6.1 模型

  1. DCN 模型结构如下图所示,模型包含 embedding and stacking 层、cross networkdeep network 三个组成部分。

    六、DCN - 图1

  2. embedding and stacking 层:假设输入包含 sparse 特征和 dense 特征。设原始特征为向量 六、DCN - 图2,其中:

    六、DCN - 图3

    其中 六、DCN - 图4field ione-hot 向量,六、DCN - 图5 为经过归一化的 dense 特征,六、DCN - 图6 为向量拼接。

    • 首先将 field i 的特征映射到 embedding 向量:

      六、DCN - 图7

      其中 六、DCN - 图8one-hot 向量长度, 六、DCN - 图9 为参数。

  • 然后将 embedding 向量和归一化的 dense 特征拼接成向量:

    六、DCN - 图10

    其中 六、DCN - 图11六、DCN - 图12 的向量长度。

    embedding and stacking 层就是将 六、DCN - 图13 转换为 六、DCN - 图14

  1. cross networkcross network 是一个新颖的结构,其核心思想是以高效的方式显式应用特征交叉。

    • cross network 由交叉层构成,每层的输入输出为:

      六、DCN - 图15

      其中 六、DCN - 图16 为第 六、DCN - 图17 层的输出,六、DCN - 图18 为第 六、DCN - 图19 层的参数。 其中 六、DCN - 图20

      每一层的输出都包含两个部分:该层的输入 六、DCN - 图21 、交叉特征 六、DCN - 图22

      六、DCN - 图23

    • cross network 的特殊结构使得交叉特征的阶数随着网络的深度加深而增加。

      对于 六、DCN - 图24 层的 cross network,其交叉特征的阶数最高可达 六、DCN - 图25 阶。

    • 假设 cross network六、DCN - 图26 层,则 cross network 部分的参数数量为:六、DCN - 图27

      另外, cross network 的时间复杂度、空间复杂度都是输入维度 六、DCN - 图28 的线性函数。因此 cross network 相对于右侧的 deep network 部分来讲,其代价几乎是可以忽略不计的。因此 DCN 的整体时间复杂度、空间复杂度与 DNN 几乎相同。

    • cross network 的本质是用 六、DCN - 图29 来捕获所有的特征交叉,这种方式避免了存储整个矩阵以及矩阵乘法运算。

    • 由于cross network 的参数很少,所以这部分网络的容量较小,网络过于简单,模型容易陷入欠拟合。

      为了加强模型的学习能力,DCN 在右侧引入了并行的 deep network

  2. deep networkdeep network 部分是一个简单的全连接前馈神经网络:

    六、DCN - 图30

    其中 六、DCN - 图31 为激活函数,六、DCN - 图32六、DCN - 图33六、DCN - 图34 的向量长度。

    假设所有隐层的维度都是 六、DCN - 图35 ,一共 六、DCN - 图36 层,则deep network 的参数数量为:

    六、DCN - 图37

    其中:

    • 输入为 六、DCN - 图38 ,所以第一层的参数数量为:六、DCN - 图39
    • 后续的 六、DCN - 图40 层,每一层的参数数量为:六、DCN - 图41
  3. DCN 通过拼接层 combination layer 来拼接 cross networkdeep network 两个网络的输出向量,然后输出到标准的 sigmoid 输出层:

    六、DCN - 图42

    其中 六、DCN - 图43 为预测的点击概率,六、DCN - 图44cross network 的输出向量,六、DCN - 图45deep network 的输出向量,六、DCN - 图46 为模型参数。

    模型的损失函数为带正则化的对数似然函数:

    六、DCN - 图47

    其中 六、DCN - 图48 为样本数量,六、DCN - 图49 为样本的真实 label 。注意:这里只对 dense network 的权重进行正则化。

  4. DCN 训练时联合训练 cross networkdeep network

6.2 cross network

  1. cross network 可以理解为:多项式逼近 polynomial approximationFM 泛化generalization to FM 、或者有效投影efficient projection

  2. 为讨论方便,假设 六、DCN - 图50。设 六、DCN - 图51 的第 六、DCN - 图52 个元素为 六、DCN - 图53。令 六、DCN - 图54,交叉项为 六、DCN - 图55 ,其中 六、DCN - 图56 为每一项的度 degree。则该交叉项的度为:

    六、DCN - 图57

    如果多项式中有多个交叉项,则多项式的度为所有交叉项中degree 的最大值。

  3. 多项式逼近:Weierstrass 逼近定理表明:在一定条件下,任何函数都可以通过多项式逼近到任意精度。

    定义多项式:

    六、DCN - 图58

    该多项式的项一共有 六、DCN - 图59 个,即参数数量有 六、DCN - 图60 个。

    • 与之相比,cross network 仅仅包含 六、DCN - 图61 的参数就可以达到与 六、DCN - 图62 相同的度。
    • 可以证明: 六、DCN - 图63 层的 cross network,其输出可以表示为 六、DCN - 图64 的各交叉特征的多项式,多项式的度不超过 六、DCN - 图65
  4. FM 泛化:在 FM 中,特征 六、DCN - 图66 和向量 六、DCN - 图67 相关联,交叉特征 六、DCN - 图68 的权重为 六、DCN - 图69 。而在 DCN 中,特征 六、DCN - 图70 和一组标量 六、DCN - 图71 相关联,交叉特征 六、DCN - 图72 的权重从两个集合 六、DCN - 图73 中的元素相乘项构成。

    • 相同点:二者都是首先学习特征独立的一些参数(如:六、DCN - 图74 ),然后交叉项的权重时相应参数的某种组合。

    • 不同点:FM 是个浅层网络,其交叉项的度为2,因此表达能力受限。

      DCN 网络相对较深,能够表达 六、DCN - 图75 阶交叉特征,其中 六、DCN - 图76cross network 的深度。

    另外和高阶 FM (三阶及其以上)不同,cross network 的参数数量是输入特征数量的线性函数,而不是指数函数。

  5. 效投影efficient projectioncross network 的每一层都是在 六、DCN - 图77六、DCN - 图78 之间计算成对交互pariwise interaction,然后投影到 六、DCN - 图79 维。

    六、DCN - 图80

    其中:

    • 行向量包含了 六、DCN - 图81 各元素,它代表成对交互pariwise interaction
    • 六、DCN - 图82 是一个对角矩阵,整个矩阵构成了一个分块对角矩阵。

6.3 实验

  1. Criteo Display Ads 数据集:用于预测广告点击率的数据集,包含13个整数特征,26个类别特征,其中每个类别特征的取值集合(即:cardinality )都很大。

    数据包含 7 天的 11 GB 用户日志(约 4100万条记录)。我们用前 6 天的数据训练,第7天的数据随机划分为相同大小的验证集和测试集。

    数据集经过预处理:

    • 整数特征:通过log 函数来归一化
    • 类别特征:执行 one-hot 编码。

    注意:类别特征经过 embedding 时,每个特征的 embedding 维度为 六、DCN - 图83

    当拼接所有 embedding 特征和整数特征之后,向量维度为 1026 维。即:embedding and stacking 层的输出维度为 六、DCN - 图84

  2. 参数配置:

    • 优化策略:

      • 采用 Adam 优化器,batch size = 512
      • deep network 采用 batch normalization
      • 对范数超过100的梯度进行裁剪
    • 正则化:采用早停策略。因为论文未发现 六、DCN - 图85 正则化或者 dropout 有效。

    • 超参数:deep network 隐向量维度、deep network层数、cross layer 层数、初始化学习率通过超参数搜索 grid search 获得。

      搜索空间:

      • deep network 隐向量维度:32~1024
      • deep network层数:2~5
      • cross layer 层数:1~6
      • 初始化学习率:0.0001~0.001
  3. DCN 模型和其它四个模型的对比,这些模型为:

    • LR 模型:所有整数特征通过log 映射然后离散化。使用单个特征和交叉特征作为输入,其中交叉特征采用一个复杂的特征选择工具来选择。

      超参数搜索得到最佳超参数:42个交叉特征。

    • FM 模型:标准的 FM 模型。

    • DNN 模型:标准的前馈神经网络模型。

      超参数搜索得到最佳超参数:5层网络,隐向量维度 1024。

    • Wide&Deep 模型:其 wide 部分依赖领域知识来构建交叉特征。由于没有一个很好的方法来做交叉特征筛选,因此这里跳过了比较。

    • DeepCrossing 模型:它没有显式的特征交叉,而是依赖于 stacking 和残差单元来构建隐式的特征交叉。

      超参数搜索得到最佳超参数:5层残差单元,输入维度424,隐向量维度 537。

    • DCN:超参数搜索得到最佳超参数:deep network 为2层,cross layer 为6层,deep network 隐向量为 1024维。

    基于验证集 logloss 的比较结果:

    六、DCN - 图86

    达到指定最佳验证集 logloss 需要的参数数量:

    六、DCN - 图87

    给定不同的内存限制,模型大小和效果(验证集 logloss

    六、DCN - 图88

  4. 考察不同网络结构对于 DCN 的影响:

    • deep network 深度和隐向量维度对于模型效果的影响:所有的结果都是相对于 DNN 的验证集 logloss 的绝对数量变化(单位为 六、DCN - 图89 ),负数表示下降。

      比较的 DNN 模型和 DCN 模型在 deep network 上具有相同的结构,只是 DNN 模型没有 cross network 而已。

      六、DCN - 图90

    • cross network 深度对于模型效果的影响:当cross network 深度从 0 到1时,所有DCN 模型的验证集 logloss 都下降; 当 cross network 深度继续增加时,部分 DCN 模型的验证集 loglss 反而上升。

      图中的 2 layers,32 nodes 表示deep network 的深度和隐向量维度。

      六、DCN - 图91