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

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

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

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

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

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

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

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

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

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

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

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

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

      六、DCN - 图5

      其中 为 六、DCN - 图6 的向量长度。

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

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

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

        其中 六、DCN - 图8 为第 层的输出,六、DCN - 图9 为第 层的参数。 其中 六、DCN - 图10

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

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

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

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

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

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

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

      六、DCN - 图15

      其中 为激活函数,六、DCN - 图16, 为 六、DCN - 图17 的向量长度。

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

      其中:

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

      六、DCN - 图21

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

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

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

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

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

    2. 为讨论方便,假设 六、DCN - 图25。设 的第 六、DCN - 图26 个元素为 。令 六、DCN - 图27,交叉项为 ,其中 六、DCN - 图28 为每一项的度 degree。则该交叉项的度为:

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

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

      定义多项式:

      六、DCN - 图29

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

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

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

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

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

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

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

      六、DCN - 图40

      其中:

      • 行向量包含了 各元素,它代表成对交互pariwise interaction
      • 六、DCN - 图41 是一个对角矩阵,整个矩阵构成了一个分块对角矩阵。
    1. Criteo Display Ads 数据集:用于预测广告点击率的数据集,包含13个整数特征,26个类别特征,其中每个类别特征的取值集合(即:cardinality )都很大。

      数据集经过预处理:

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

      注意:类别特征经过 embedding 时,每个特征的 embedding 维度为 。

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

    2. 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 的比较结果:

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

      六、DCN - 图43

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

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

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

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