返回
Featured image of post DCN-v2:其实就是把DCN的交叉层改成了矩阵化设计

DCN-v2:其实就是把DCN的交叉层改成了矩阵化设计

新一代深度交叉网络在推荐系统中的架构创新与理论突破

DCN V2: Improved Deep & Cross Network and Practical Lessons for Web-scale Learning to Rank Systems

架构:堆叠式与平行式

DCN-V2在架构设计上提供了两种组合方式:

  1. 堆叠式(Stacked):将交叉网络的输出直接输入到深度网络中,形成串行结构。这种设计允许深度网络对交叉特征进行进一步抽象,有利于捕获更复杂的非线性模式。

  2. 平行式(Parallel):交叉网络与深度网络并行运行,最后将两者的输出进行融合。这种结构保持了两个网络的独立性,使得模型能够同时学习显式的特征交叉和隐式的特征组合。

相比原始DCN,DCN-V2的函数空间是其严格超集。此外,考虑到交叉层的低秩特性,模型引入了低秩交叉层的混合机制,在性能和效率之间取得了更好的平衡。

交叉层:矩阵化设计的创新

DCN-V2的核心创新在于其交叉层的设计。交叉层通过显式的特征交叉操作来捕获高阶特征交互。每一层交叉网络的计算过程可以表示为:

$$x_{l+1} = x_0 \odot (W_l x_l + b_l) + x_l$$

这里的$x_0$是维度为$d$的基础特征层,通常是模型的embedding输入层,包含了一阶原始特征信息。$x_l$和$x_{l+1}$分别是第$l+1$层交叉层的输入和输出特征向量,同样具有维度$d$。$W_l$是$d×d$维的可学习权重矩阵,$b_l$是$d$维的偏置向量。这种设计允许特征间进行充分的交互。

对于一个$l$层的交叉网络,它可以产生最高$l+1$阶的多项式特征组合,并包含了从1阶到$l+1$阶的所有特征交叉。值得注意的是,当权重矩阵退化为$W = 1 × w^T$(其中1为全1向量)时,DCN-V2就退化为原始DCN模型。

然而,交叉层只能表达有限阶数的多项式函数族,对于更复杂的函数空间只能进行近似。因此,模型中还引入了深度网络来补充建模数据中的内在分布规律。这种双网络结构使得模型既能高效地捕获显式特征交互,又不失对复杂模式的表达能力。

混合低秩:提升模型效率

在实际的生产环境中,模型的容量往往受到服务资源和延迟要求的限制。为了在有限的资源下提升模型的效率和性能,论文介绍了混合低秩DCN(Cost-Effective Mixture of Low-Rank DCN)的概念和实现方法。

低秩技术的引入

低秩技术是一种常用的模型压缩方法,通过将一个高维的密集矩阵近似为两个低维矩阵的乘积,从而减少计算成本。具体来说,对于一个矩阵 $M\in\mathbb{R}^{d\times d}$,我们可以将其近似为两个矩阵 $U,V\in\mathbb{R}^{d\times r}$,其中 $r\leq d/2$。当 $r$ 较小时,计算成本显著降低。 在实际应用中,我们观察到学习到的矩阵通常具有数值上的低秩特性。例如,图3a显示了DCN-V2中学习到的矩阵 $W$ 的奇异值衰减模式。与初始矩阵相比,学习到的矩阵的奇异值衰减更快,这表明矩阵的主要信息集中在少数几个奇异值中。

混合低秩DCN的两种实现

基于低秩技术,我们提出了混合低秩DCN的概念。具体来说,我们通过以下两种方法来实现这一目标:

子空间中的特征交叉学习

我们在低维子空间中学习特征交叉,然后通过投影将结果映射回高维空间。公式如下: $$x_{l+1}=x_0\odot(U_l V_l^\top x_l+b_l)+x_l$$ 其中,$U_l,V_l\in\mathbb{R}^{d\times r}$,$r\ll d$。

多专家 MoE 机制

我们引入多个专家模型,每个专家在不同的子空间中学习特征交叉,然后通过门控机制动态组合这些交叉。公式如下: $$x_{l+1}=\sum_{i=1}^K G_i(x_l)E_i(x_l)+x_l$$ 其中,$K$ 是专家数量,$G_i(\cdot)$ 是门控函数,$E_i(\cdot)$ 是第 $i$ 个专家模型。

低维空间的非线性变换

为了进一步提升模型的表达能力,我们在低维空间中应用非线性变换来细化表示。公式如下:

$$E_i(x_l) = x_0 \odot (U_i^l \cdot g(C_i^l) \cdot g(V_i^{lT} x_l + b_l))$$

其中,$g(\cdot)$ 是非线性激活函数。

复杂度优化

设 $d$ 表示embedding维度,$L_c$ 表示交叉层数量,$K$ 表示低秩DCN专家数量。为简化分析,假设每个专家具有相同的低维度 $r$(秩的上界)。

对于原始交叉网络,其时间和空间复杂度为 $O(d^2L_c)$ 。这主要来自于每层交叉网络中 $d \times d$ 维权重矩阵的计算和存储。

对于混合低秩DCN(DCN-Mix),当 $rK \ll d$ 时,其复杂度降低为 $O(2drKL_c)$。这是因为:

  1. 每个专家使用两个 $d \times r$ 维的矩阵($U_l$和$V_l$)代替原来的 $d \times d$ 维矩阵
  2. 总共有$K$个专家,每层需要计算 $K$ 次低秩矩阵乘法
  3. 每次矩阵乘法的复杂度从 $O(d^2)$降低到$O(2dr)$

这种设计在保持模型表达能力的同时,显著降低了计算和存储开销。

实验效果

Licensed under CC BY-NC-SA 4.0
© 2023 - 2025 壹壹贰捌· 0Days
共书写了265.7k字·共 93篇文章 京ICP备2023035941号-1