一、DCN V2 [2020]

《DCN V2: Improved Deep & Cross Network and Practical Lessons forWeb-scale Learning to Rank Systems》

  1. 有效的特征交叉(feature cross)对于许多 learning to rank: LTR 模型的成功至关重要。特征交叉提供了单个特征之外的额外交互信息。例如,"国家" 和 "语言" 的组合比其中单个特征更有信息量。在线性模型时代,机器学习从业者依靠手动识别这种特征交叉来增加模型的表达能力。不幸的是,这涉及到一个组合搜索空间,在数据大多是 categoricalweb-scale 的应用中,这个搜索空间很大而且很稀疏。在这种情况下的搜索是耗时耗力的,往往需要领域的专业知识,并使模型更难以泛化。

    后来, embedding 技术被广泛采用,将特征从高维稀疏向量投影到更低维的稠密向量。Factorization Machine: FM 利用 embedding 技术,通过两个 latent vector 的内积来建模 pairwise 特征交互。与那些传统的线性模型中的特征交叉相比,FM 带来了更多的泛化能力。

    在过去的十年中,随着更大的算力和巨大的数据规模,工业界的 LTR 模型已经逐渐从线性模型和 FM-based 的模型迁移到深度神经网络(DNN )。这使得搜索和推荐系统的模型性能得到了全面的提升。人们普遍认为 DNN 是通用的函数近似器,可以潜在地学习各种特征交互。然而,最近的研究(《Latent cross: Making use of context in recurrent recommender systems》《Deep & Cross Network for Ad Click Predictions》)发现:DNN 甚至对二阶特征交叉或三阶特征交叉进行近似建模都是低效的。

    为了更准确地捕捉有效的特征交叉,常见的补救措施是通过更宽或更深的网络进一步提高模型容量。这自然是一把双刃剑:

    • 我们在提高模型性能的同时也使模型的服务速度大大降低。在许多生产环境中,这些模型正在处理极高的 QPS ,因此对实时推理有非常严格的延迟要求。可能,serving 系统已经被推到了一个极限,无法承受更大的模型。

    • 此外,更深的模型往往引入可训练性问题,使模型更难训练。

    这已经揭示了设计一个能够有效地学习 predictive 特征交互的模型的关键需求,特别是在一个处理数十亿用户的实时流量的资源限制环境中。 最近的许多工作试图解决这一挑战。共同的思想是:利用那些从DNN 学到的隐式高阶交叉、以及显式的和有界的特征交叉(在线性模型中已经发现,显式的和有界的特征交叉是有效的)。隐式交叉是指通过端到端的函数来学习交互,而没有任何明确的公式来建模这种交叉。另一方面,显式交叉是通过一个具有可控交互阶次的显式公式来建模的。

    在所有这些方法中,Deep & Cross Network: DCN 是有效和优雅的。然而,在大规模工业系统中部署 DCN 面临许多挑战。DCNcross network 是有局限性的:

    • cross network 代表的多项式仅由 O(input size) 的参数来刻画,这在很大程度上限制了它建模 random cross patterns 的灵活性。

    • 此外,cross networkDNN 之间的分配容量是不平衡的。当将 DCN 应用于大规模生产数据时,这种差距明显增加。绝大部分的参数将被用于学习 DNN 中的隐式交叉。

    在论文 《DCN V2: Improved Deep & Cross Network and Practical Lessons forWeb-scale Learning to Rank Systems》 中,作者提出了一个新的模型 DCN-V2 ,改进了原来的DCN 模型。作者已经在整个谷歌的相当多的 learning to rank system 中成功部署了 DCN-V2 ,在离线模型准确性和在线业务指标方面都有显著的提高。

    DCN-V2 首先通过 cross layer 学习输入(通常是 embedding layer )的显式特征交互,然后与深度网络相结合从而学习互补的隐式交互。DCN-V2 的核心是 cross layer ,它继承了 DCNcross network 的简单结构,然而在学习显式的和有界的交叉特征方面的表达能力显著增强。论文研究了以点击为正标签的数据集,然而 DCN-V2 与标签无关,可以应用于任何 learning to rank system

    论文贡献:

    • 论文提出了一个新的模型 DCN-V2 来学习有效的显式特征交叉和隐式特征交叉。与现有的方法相比, DCN-V2 更具有表达能力,但仍然是高效和简单的。

    • 观察到 DCN-V2 中所学到的矩阵的低秩性质,论文提出利用低秩技术从而在子空间中近似feature cross ,以获得更好的性能和延迟的 trade-off

      此外,论文提出了一种基于 Mixture-of-Expert 架构的技术,以进一步将矩阵分解为多个较小的子空间。然后,这些子空间通过一个门控机制被聚合起来。

    • 论文利用人工合成数据集进行并提供了广泛的研究,证明了传统的基于 ReLU 的神经网络学习高阶特征交叉的低效率。

    • 通过全面的实验分析,论文证明了的 DCN-V2 模型在 CriteoMovieLen-1M 基准数据集上的表现明显优于 SOTA 算法。

    • 论文提供了一个案例研究,并分享了在一个大规模工业 ranking 系统中部署 DCN-V2 的经验,这带来了显著的离线收益和在线收益。

  2. 相关工作:最近 feature interaction learning 工作的核心思想是利用显式的和隐式的特征交叉。为了建模显式交叉,最近的工作引入了乘法运算(x1×x2) ,然后设计一个函数 f(x1,x2) 来有效地、显式地建模特征 x1x2 之间的 pairwise interaction 。我们根据他们如何结合显式部分和隐式部分来组织相关工作。

    • 并行结构:一个工作方向是联合训练两个并行网络,其灵感来自于 wide and deep 模型,其中 wide 组件将原始特征的交叉作为输入,而 deep 组件是一个 DNN 模型。然而,为 wide 组件选择交叉特征又回到了线性模型的特征工程问题。尽管如此, wide and deep 模型已经激发了许多工作从而采用这种并行的架构并改进 wide 部分。

      • DeepFM 通过在 wide 组件采用 FM 模型从而自动进行 feature interaction learning

      • xDeepFM 通过生成多个 feature map 增加了 DCN 的表达能力,每个 feature map 都编码了当前 level 和输入 level 的特征之间的 pairwise 交互。此外,它还将每个 feature embedding xi 视为一个 unit ,而不是将每个元素 xi 视为一个unit 。不幸的是,它的计算成本很高( #params10 倍),使得它在工业规模的应用中不实用。

        此外,DeepFMxDeepFM 都要求所有的 feature embedding 具有相同的大小,这在应用于工业数据时又是一个限制,因为工业数据的词表大小( categorical features 的大小)从 O(10) 到数百万不等。

      • AFM 通过一个注意力网络为每个特征交互分配重要性。

      • AutoInt 利用带残差连接的 multi-head self-attention 机制。

      • InterHAt 进一步采用了分层注意力。

    • 堆叠结构:另一个工作方向是在 embedding layerDNN 模型之间引入一个 interaction layer ,该 interaction layer 创建了显式的特征交叉。这个 interaction layer 在早期阶段捕捉到了特征交互,并促进了后续隐层的学习。

      • product-based neural network: PNN 引入了 inner product layerIPNN)和 outer product layerOPNN)作为 pairwise interaction layerOPNN 的一个缺点在于其高计算成本。

      • Neural FM: NFM 通过用 Hadamard 积代替内积来扩展 FM

      • DLRM 遵从 FM ,通过内积来计算特征交叉。

      这些模型只能创建到二阶显式交叉。

      • AFN 将特征转化为对数空间,并自适应地学习任意阶的特征交互。

      DeepFMxDeepFM 类似,这些方法只接受大小相等的 embedding size

    尽管这些年经过了许多发展,我们的综合实验表明,DCN 仍然是一个强大的基线。我们将此归因于其简单的结构,它促进了 optimization 。然而,正如所讨论的,其有限的表达能力使其无法在 web-scale 的系统中学习更有效的特征交叉。在下文中,我们提出了一个新的架构,它继承了 DCN 的简单结构,同时提高了它的表达能力。

1.1 模型

  1. 这里描述了一个新颖的模型架构 DCN-V2 来学习显式特征交互和隐式特征交互。DCN-V2 从一个 embedding layer 开始,然后是一个包含多个 cross layercross network (用于建模显式特征交互),然后结合一个深度神经网络(用于建模隐式特征交互)。

    DCN-V2 中的改进对于将 DCN 用于高度优化的生产系统至关重要。DCN-V2 极大地提高了 DCNweb-scale的生产数据中在建模复杂的显式的交叉项的表达能力,同时保持其优雅的公式,便于部署。DCN-V2 所建模的函数族是 DCN 所建模的函数族的严格超集。

    模型整体架构如下图所示,有两种方式将 cross networkdeep network 结合起来:堆叠式、并行式。此外,考虑到 cross layer 的低秩性质,我们建议利用 low-rank cross layer 的混合来实现模型性能和效率之间更健康的 trade-off

  2. Embedding Layerembedding layercategorical (sparse) 特征和 dense 特征的组合作为输入,并输出 x0Rd 。它遵循与 DCN 类似的 setting 。与 DeepFM, NFM, xDeepFM, DLRM, IPNN, FM 不同的是,DCN-V2 接受任意的 embedding size 。这对于词表规模从 O(10)O(108) 不等的工业级推荐器尤为重要。

  3. Cross NetworkDCN-V2 和核心在于 cross layer,它创建了显式的特征交叉。其中第 (l+1)cross layer如下所示:

    xl+1=x0(Wlxl+bl)+xl

    其中:

    • x0Rdbase layer ,它包含原始的一阶特征,通常被设置为 embedding layer

    • xl,xl+1Rd 分别代表第 (l+1) 个交叉层的输入和输出。

    • WlRd×d,blRd 是待学习的权重矩阵和 bias 向量。

    • 为逐元素乘法。

    下图展示了一个单独的 cross layer

    对于一个 l 层的 cross network ,最高的多项式阶数是 l+1,网络包含了所有的、直到最高阶次 l+1 阶的所有其它阶次的特征交叉。当 W=1w 时,DCN-V2 退化到 DCN

    cross layer 仅能建模有界的多项式类,而其他任何复杂的函数空间只能被近似。因此,我们接下来引入了一个 deep network 来补充数据中固有分布的建模。

    DCN V1 的公式为:xl+1=(x0xl)wl+bl+xl 。相比之下,DCN V2 的公式为:xl+1=x0(Wlxl+bl)+xl 。如果不考虑 biasbl 和残差项 xl ,那么:

    DCN V1 : xl+1,i=x0,i×j=1dxl,j×wl,jDCN V2 : xl+1,i=x0,i×j=1dxl,j×Wl,i,j

    即:DCN V1 中,xl,j 的权重在所有输出位置 i 上共享;DCN V2 中,xl,j 的权重在所有输出位置 i 行独立。因此,DCN V2 的模型容量更高。

    DCN V2 的核心:用 W 代替 w 。读者感觉没什么创新点。

  4. Deep Network:第 ldeep layer 的公式为:

    hl+1=f(Wlhl+bl)

    其中:

    • hlRdl,hl+1Rdl+1 为第 ldeep layer 的的输入和输出。

    • WlRdl×dl+1,blRdl+1 为待学习的权重矩阵和 bias 向量。

    • f() 为逐元素的激活函数,我们将其设置为 ReLU

  5. Deep and Cross Combination:我们提出了两种结构:

    • Stacked Structure(如 Figure 1a):输入 x0 被馈入 cross network,然后是 deep network,最后是输出层输出 xfinal 。整体结构为 fdeepfcross(x0)

    • Parallel Structure (如 Figure 1b):输入 x0 被并行馈入到 cross networkdeep network,然后这两个网络的输出拼接起来作为最终输出 xfinal 。整体结构为 fdeep(x0) concat fcross(x0)

    prediction 为:

    y^i=σ(wlogitxfinal)

    其中:wlogit 为待学习的参数,σ(x)sigmoid 函数。

    对于损失函数,我们使用 logloss(带正则化项)。注意,DCN-V2 本身是对 prediction-task 和损失函数无关的。

  6. Cost-Effective Mixture of Low-Rank DCN:对于那些生产模型来说,模型容量往往受到有限的 serving 资源、严格的 latency 要求的限制。因此,我们寻求使 DCN-v2 更具 cost-efficient 的方法。

    DCN-V2 结构简单,计算瓶颈在于 matrix-vector 乘法,这使得我们可以利用矩阵近似技术来降低成本:通过两个低秩矩阵 U,VRd×r 来逼近稠密矩阵 WRd×d。当 rd/2 时,成本会降低。然而,当矩阵 M 显示出较大的奇异值 gap 或快速的谱衰减时,该方法是最有效的。在许多情况下,我们确实观察到所学的矩阵 W 在实践中在数值上是低秩的。

    下图 (a) 显示了 DCN-V2 中来自生产模型的学到的矩阵 W 的奇异值衰减模式。可以看到,初始的矩阵相比,学到的矩阵显示出更快的谱衰减模式。给定奇异值 σ1σ2σn,定义秩 RT 为:

    RT=argmink(σk<T×σ1)

    因此,我们定义第 (l+1)cross layer 的低秩版本为:

    xl+1=x0(Ul(Vlxl)+bl)+xl

    其中:Ul,VlRd×r,rd

    这个新的公式有两种解释:

    • 我们在一个子空间中学习特征交叉。

      这个解释启发我们采用Mixture-of-Experts: MoE 的思想。MoE-based 模型由两部分组成:experts (通常是一个小网络)和gating (输入的一个函数)。在我们的案例中,我们不是依靠一个单一的专家来学习特征交叉,而是利用多个这样的专家,每个专家在不同的子空间学习特征交互,并使用门控机制(取决于输入 x )自适应地结合学到的交叉。所得到的低秩交叉层的 mixture 的公式如下(如下图 (b) 所示):

      xl+1=i=1KGi(xl)Ei(xl)+xlEi(xl)=x0(Ul(i)((Vl(i))xl)+bl)

      其中:

      • K 为专家的数量。

      • Gi():RdR 为门控函数,通常是 sigmoidsoftmax 函数。

      • Ei():RdRd 为学习特征交叉的第 i 个专家。

      Gi() 针对每个输入 x 从而动态地为每个专家进行加权。当 Gi()=1 时,上式退化为:xl+1=x0(Ul(Vlxl)+bl)+xl

    • 我们将输入 x 投影到低维的 Rr,然后再投影回 Rd

      这个解释激励我们利用投影空间的低维性质。我们不是立即从 Rd 投影回 Rd,dd,而是在投影空间中进一步应用非线性变换来 refine the representation

      Ei(xl)=x0(Ul(i)g(Ci(i)g((Vl(i))xl))+bl)

      其中:g() 为非线性激活函数。

  7. 我们旨在有效利用固定的内存/时间预算来学习有意义的特征交叉。以下公式从上到下都代表一个严格意义上的、逐渐增大的函数族:

    xl+1=x0(Wlxl+bl)+xlxl+1=x0(Ul(Vlxl)+bl)+xlxl+1=i=1KGi(xl)Ei(xl)+xl,Ei(xl)=x0(Ul(i)((Vl(i))xl)+bl)xl+1=i=1KGi(xl)Ei(xl)+xl,Ei(xl)=x0(Ul(i)g(Ci(i)g((Vl(i))xl))+bl)

    这一组模型有比较大的工程参考意义,它描述了从简单模型到复杂模型的升级路径,同时也具有一定的物理意义。

  8. 算法复杂度:令 dembedding sizeLccross layers 数量, K 为低秩 DCN 专家的数量。此外,我们假设每个专家具有相同的小维度 rcross network 的时间复杂度和空间复杂度为 O(d2Lc) ,对于 mixDCN(低秩 DCN) 的时间复杂度和空间复杂度为 O(2drKLc)

  9. bit-wisefeature-wise 的角度来看,对于 l 层的 cross networkcross network 能够创造出直到 l+1 阶的所有的特征交互。

    DCN 相比,DCN-V2 用更多的参数来刻画相同的多项式类,表达能力更强。此外,DCN-V2 中的特征交互具有更强的表达能力,可以从 bit-wisefeature-wise 两方面来看;而在DCN 中,它只是从 bit-wise 的角度来看。

1.2 实验

  1. "CrossNet""CN" 代表 cross network"Mix" 代表低秩混合版本。

1.2.1 人工合成数据集

  1. 大多数工作只研究了具有未知交叉模式和噪音的数据的公共数据集。很少有工作在一个干净的环境中用已知的 ground-truth 模型进行研究。因此,重要的是要了解:

    • 在哪些情况下,传统的神经网络会变得没有效率。

    • 在我们提出的模型 DCN-V2 中每个组件的作用。

    我们用 DCN 模型中的 cross network 来表示那些特征交叉方法,并与工业推荐系统中常用的 ReLU 进行比较。为了简化实验和便于理解,我们假设每个特征 xiR ,单项式 x1α1x2α2xdαd 代表一个 αd=|α|1 阶的特征交叉。

  2. 难度增加时的性能:仅考虑二阶特征交叉,令 ground-truth modelf(x)=|α|1=2wαx1α1x2α2xdαd 。学习 f(x) 的难度取决于:

    • 稀疏性 (wα=0):交叉的数量。

    • 交叉模式的相似性(Var(wα) 来刻画):意味着一个特征的变化会同时影响大多数特征交叉达到多大程度。

    因此,我们创建了难度不断增加的人工合成数据集:

    f1(x)=x12+x1x2+x3x1+x4x1f2(x)=x12+0.1x1x2+x2x3+0.1x32f3(x)=(i,j)Swi,jxixj,xR100,|S|=100

    其中: S 和权重 wi,j 都是随机选择的,xi 为区间 [-1, 1] 之间均匀采样的。

    下表报告了 5 次运行和 model size 的平均 RMSE 。可以看到:

    • 当交叉模式很简单时(即,f1 ),DCN-V2DCN 都很有效。

    • 当模式变得更加复杂时(即,f3),DCN-V2 仍然准确,而 DCN 则准确性下降了。

    • 即使采用更宽更深的结构,DNN 的性能仍然很差。这表明 DNN 在建模单项式模式时效率不高。

  3. 每个组件的作用:我们还分别对 3 阶和 4 阶的同质多项式进行了消融研究。对于3 阶和 4 阶,我们从 xR50 中随机选择 20 个交叉项。下图展示了层深度对于平均 RMSE 的影响。

    • 显然,x0(Wlxl+bl) 在第 l1 层建模了 l 阶交叉,这在第 2 层对 3 阶多项式取得的最佳性能得到验证(4 阶多项式也是类似的)。在其他层,性能明显下降。

    • DCN (红色虚线)在复杂的交叉模式建模方面的有限表达能力。

  4. 总而言之,ReLU (即,ReLU 激活函数的 DNN)在捕获显式的特征交叉(乘法关系)方面效率不高,即使有更深更大的网络。DCN 准确地捕捉到了简单的交叉模式,但在更复杂的模式中却失败了。DCN-V2 对于复杂的交叉模式仍然是准确和有效的。

1.2.2 真实数据集

  1. 数据集:

    • Criteo:包含 7 天内的用户日志,包含 45M 个样本和 39 个特征。我们使用前6 天的数据进行训练,并将最后一天的数据随机平均分成验证集和测试集。我们对 13dense 特征执行 log 归一化(feature-2log(x+4) ,其它为 log(x+1) ),并且嵌入剩下的 26categorical feature

    • MovieLen-1M:包含 740k 个样本和 7 个特征。每个训练样本包括一个 <user-features, movie-features, rating> 三元组。我们将任务形式化为一个回归问题:所有一分和两分的评分都被归一化为 0 、四分和五分被归一化为 1、三分被删除。使用和嵌入 6non-multivalent categorical feature 。数据被随机分成 80% 用于训练、10% 用于验证、10% 用于测试。

  2. baseline 方法:SOTAfeature interaction learning 算法,如下表所示。

  3. 实现细节:所有 baseline 和我们的方法都在 TensorFlow v1 中实现。为了公平比较,除了特征交互组件,所有模型的实现都是相同的。

    • embedding:除了 DNNDCN 模型,所有的 baseline 都要求每个特征的 embedding size 是相同的。因此,我们将所有的模型固定为 Avgvocab(6×(vocab cardinality)1/4)Criteo39Movielen-1M30 )。

    • optimizationAdam 优化器,batch size = 512MovieLen batch size = 128)。权重以 He Normal 来初始化,bias 被初始化为零,梯度被截断为范数 10 。对参数采用 decay = 0.9999 的指数移动平均。

    • 超参数调优:对于所有的 baseline ,我们对超参数进行了粗粒度(大范围)的网格搜索,然后再进行细粒度(小范围)的搜索。为了确保可重复性和减少模型方差,对于每个方法和数据集,我们报告了最佳配置的 5 次独立运行的均值和标准差。我们在下面描述了 Criteo 的详细设置。对于 MovieLens ,我们也遵循类似的过程。

      对于 Criteo 的所有 baseline

      • 学习率调优范围:对数尺度上从 104 调优到 101 、然后在线性尺度上从 104 调优到 5×104

      • 训练步数调优范围:{150k, 160k, 200k, 250k, 300k}

      • 隐层深度调优范围:{1, 2, 3, 4}

      • 隐层维度调优范围:{562, 768, 1024}

      • 正则化参数调优范围: {0,3×105,104}

      每个模型自己的超参数:

      • DCN:交叉层的数量调优范围 {1, 2, 3, 4}

      • AutoInt:注意力层的数量调优范围 {2, 3, 4}attention embedding size 调优范围 {20, 32, 40}attention head 数量调优范围 {2, 3} ;残差连接调优范围 {enable, disable}

      • xDeepFMCIN layer size 调优范围 {100, 200}CIN layer depth 调优范围 {2, 3, 4} ,激活函数为恒等映射,计算为 directindirect

      • DLRMbottom MLP layer size 和数量的调优范围 {(512,256,64), (256,64)}

      • PNN:我们运行了 IPNNOPNNPNN* ,对于后两者,kernel type 调优范围 {full matrix, vector, number}

      对于所有的模型,参数总数上限为 10242×5 ,从而限制搜索空间并避免过于昂贵的计算。

  4. DCN-V2baseline 比较结果:每个模型的最佳 setting 是超参数空间中搜索出来的。如果两个 setting 的性能相当,我们就报告成本较低的那个。可以看到:

    • 我们看到,DCN-V2 的表现一直优于 baseline (包括 DNN ),并实现了健康的 quality/cost trade-off

      注意,在我们为 baseline 模型的最佳 setting 而进行的彻底的超参数搜索中,我们确实探索了更宽、更深的模型。然而,更大的模型也不能产生更多的质量收益,清楚地表明许多 bseline 的瓶颈是质量而不是效率。

    • Best Setting

      • 对于 DCN-V2 模型,"stacked""parallel" 结构都优于所有 baseline,而"stacked"Criteo 上效果更好、 "parallel"Movielen-1M 上效果更好。

        在实践中,我们发现:"stacked" 结构更能提高质量,而 "parallel" 结构有助于减少模型方差。

    • baseline 的比较:

      • 对于二阶方法,DLRM 的表现不如 DeepFM ,尽管它们都来自FM。这可能是由于 DLRM 在点积层之后省略了一阶稀疏特征。

      • 对于高阶方法,xDeepFMAutoIntDCNCriteo 上的表现相似;而在 MovieLens 上,xDeepFMLogloss 上表现出很高的方差。

      • DCN-V2Criteo 上取得了最好的性能,它显式地建模三阶特征交互。DCN-Mix 有效地利用了内存,并在保持准确性的同时减少了 30% 的成本。单独的 CrossNet 在两个数据集上的表现都优于 DNN

    • DNN 的比较:我们调优了 DNN 模型,并使用了更大的 layer size 。令我们惊讶的是,DNN 的表现与大多数 baseline 相差无几,甚至超越了某些模型。

      我们的假设是:那些来自 baseline 的显式特征交叉的模型并不是以一种富有表达能力、以及易于优化的方式建立的。前者使其性能容易被具有大容量的 DNN 所匹配,后者则容易导致可训练性问题从而使模型不稳定。因此,当与 DNN 组合时,整体性能被DNN 组件所支配。

      • 在表达能力方面,考虑二阶方法。PNN 的模型比 DeepFMDLRM 更具有表达能力,这导致它在 MovieLen-1M 上的表现更出色。这也解释了 DCNDCN-V2 相比性能较差的原因。

      • 在可训练性方面,某些模型可能天生就比较难训练,导致性能不尽如人意。

        Criteo 上,PNN 的平均性能与 DNN 相当。这是由 PNN 的不稳定性造成的。虽然它的最好成绩比DNN 好,但它在多次试验中的高标准差推高了平均损失。

    • 模型效率:

      • 对于大多数模型,FLOPS 大约是参数数量的 2 倍。然而,对于 xDeepFMFLOPS 要高出参数数量一个量级,这使得它在工业规模的应用中难以部署。

      • 在所有的方法中,DCN-V2 提供了最好的性能,同时保持了相对的效率。

      • DCN-Mix 进一步降低了成本,在模型效率和质量之间取得了更好的 trade-off

  5. 超参数研究:

    • Depth of Cross Layer:根据设计,cross network 捕获的最高阶特征交叉随着层深的增加而增加。如图 Figure 5 (a) 所示:

      • 随着cross network 的加深,质量有了稳定的提高,表明它能够捕捉到更多有意义的交叉。

      • 然而,当使用更多的层时,改善的速度放缓了。这表明高阶交叉的贡献比低阶交叉的贡献要小。

      我们还用一个同样大小的 DNN 作为参考。当有 ≤2 层时,DNN 的表现优于交叉网络;当有更多层时,cross network 开始缩小性能差距,甚至优于 DNN 的表现。

    • 矩阵的秩:模型是 3 个交叉层,然后是 3512-size ReLU 层。如图 Figure 5 (b) 所示:

      • r 小于 4 时,性能与其他 baseline 持平。

      • r4增加到 64 时,LogLoss 几乎随 r 线性下降(即,模型的改进)。

      • r64 进一步增加到满时,LogLoss 的改善速度减慢了。

      我们把 64 称为 rank 阈值。从 64 开始的明显放缓表明:刻画特征交叉的重要信号可以在前 64 个奇异值中捕获。

    • 专家数量:我们观察到:

      • 表现最好的setting(专家数量、gate 类型、激活函数类型)受到数据集和模型架构的影响。

      • 每种 setting 的最佳表现模型产生了相似的结果。更多的 lower-rank experts 并没有比单个 higher-rank expert 表现更好,这可能是朴素的 gating 函数、以及采取的 optimizations 所导致。我们相信更复杂的 gatingoptimization 会在 mixture of experts 架构下产生更好的结果。

  6. 模型可视化:DCN-V2 中的权重矩阵 W 确切地揭示了模型学到的重要特征交叉。假设第 i 个特征被嵌入为 xi ,那么 block-wise 视图(由 Wi,j 所刻画)展示了特征 xixj 之间交互的重要性:

    x(Wx)=[x1x2xk][W1,1W1,2W1,kW2,1W2,2W2,kWk,1Wk,2Wk,k][x1x2xk]

    下图展示了第一个交叉层中学到的权重矩阵 W 。行/列代表特征。在图 (a) 中,由于版权的原因,特征名称被省略了;深色的像素代表较大的权重。在图 (b) 中,每个 block 代表它的 Frobenius 范数。

    • (a) 展示了整个矩阵,橙色方框突出了一些值得注意的特征交叉。非对角线的 block 对应于重要的交叉,这表明 DCN-V2 的有效性。对角线的 block 对应于 self-interaction (即,x2 )。

    • (b) 表现学到的一些强交互,如 Gender × UserIdMovieId × UserId

      (a) 包含的特征更多,因此方块更小;图 (b) 包含很少的特征,因此方块显得很大。

  7. DCN-V2 在谷歌中的产品化:我们通过 DCN-V2 同时在离线模型的准确性、以及在线关键业务指标方面都取得了显著的收益。与公共数据集相比,收益也更加明显,这可能是由于生产数据集的数据量明显更大,数据分布更复杂。

    • 生产数据和模型:生产数据是由数以千亿计的训练样本组成的抽样用户日志。稀疏特征的词表规模从 2 到数百万不等。baseline 模型是一个全连接的多层感知机,采用 ReLU 激活函数。

    • 与生产模型的比较:与生产模型相比,DCN-V2 产生了 0.6%AUCLoss (即,1.0 - AUC)改进。我们还观察到显著的在线关键业务指标收益。

      baseline 为多层感知机,所以 DCN-V2 表现好是符合预期的。为什么不和 DeepFM 进行比较?

    我们分享一些我们通过产品化 DCN-V2 学到的实际经验:

    • 最好在 DNN 的输入层和隐层之间插入交叉层。

    • 我们看到,通过堆叠或拼接 1-2 个交叉层,准确性得到了一致的提高。超过 2 个交叉层,收益开始趋于平稳。

    • 我们观察到,堆叠交叉层和拼接交叉层的效果都不错。堆叠层(stacking layers)可以学到高阶的特征交互,而拼接层(concatenating layers)(类似于多头机制)可以捕获到互补的交互。

    • 我们观察到,使用 rank = (input size)/4low-rank DCN 始终保持了 full-rank DCN-V2 的准确性。