第 135 题:Deep&Cross的交叉网络,高阶特征交互的显式控制?
题目
Deep&Cross的交叉网络,高阶特征交互的显式控制?
完整讲解
一、Deep&Cross 的交叉网络(Cross Network)
Deep & Cross Network(DCN) 包含 Cross 层 与 Deep 层。Cross 层 显式构造高阶特征交互,每层形式为
\(\boldsymbol{x}_{l+1} = \boldsymbol{x}_0 \boldsymbol{x}_l^\top \boldsymbol{w}_l + \boldsymbol{b}_l + \boldsymbol{x}_l = \boldsymbol{x}_0 (\boldsymbol{x}_l^\top \boldsymbol{w}_l) + \boldsymbol{x}_l.\)
其中 $\boldsymbol{x}_0$ 为初始嵌入拼接,$\boldsymbol{x}_l$ 为第 $l$ 层输出,$\boldsymbol{w}_l, \boldsymbol{b}_l$ 为参数。$\boldsymbol{x}_0 \boldsymbol{x}_l^\top \boldsymbol{w}_l$ 即「初始特征与当前特征的交叉」再投影,阶数随层数增加:$l$ 层对应 $l+1$ 阶交叉(与 $\boldsymbol{x}_0$ 的多次相乘)。
二、高阶交互的显式控制
- 阶数可控:交叉网络的深度 $L$ 直接对应最高交叉阶数(约 $L+1$ 阶)。要多少阶就堆多少层,显式控制,不像纯 DNN 那样阶数隐式且难解释。
- 参数效率:每层只增加 $O(d)$ 参数($\boldsymbol{w}_l \in \mathbb{R}^d$),总参数量 $O(L \cdot d)$,比显式展开所有高阶项(指数级)省很多。
- 与 Deep 并行:Cross 负责显式高阶、Deep 负责隐式非线性,最后拼接再输出,兼顾可解释性与容量。
三、与 FM / DNN 的对比
- FM:只显式二阶;DNN:高阶隐式、阶数不可控。Cross 显式且可控地做高阶(3 阶、4 阶…),适合需要「可解释高阶交叉」的场景。
- 实际层数 $L$ 通常不大(如 2~6),过深可能过拟合与不稳定;可与 Deep 的层数一起调。
四、工程要点
- 实现时 $\boldsymbol{x}_l^\top \boldsymbol{w}_l$ 为标量,故 $\boldsymbol{x}_0 \cdot \text{scalar}$ 为向量,计算高效。
- 输入 $\boldsymbol{x}_0$ 需为定长嵌入拼接;与 Deep 共享嵌入或分别嵌入再拼接均可。
面试要点
- 能写出 Cross 层更新公式 $\boldsymbol{x}_{l+1} = \boldsymbol{x}_0 (\boldsymbol{x}_l^\top \boldsymbol{w}_l) + \boldsymbol{x}_l$ 并说明阶数随层数增加。
- 能说清高阶显式可控、参数量 $O(L\cdot d)$、与 Deep 并行的作用。
- 能与 FM(仅二阶)、纯 DNN(隐式高阶)对比;能提及层数不宜过深。
记忆要点
- Cross 层:$\boldsymbol{x}_{l+1}=\boldsymbol{x}_0(\boldsymbol{x}_l^\top \boldsymbol{w}_l)+\boldsymbol{x}_l$;$l$ 层≈$l+1$ 阶交叉,显式可控。
- 参数 $O(L\cdot d)$;与 Deep 并行,Cross=显式高阶、Deep=隐式非线性。
- 层数通常 2~6;过深易过拟合。