第 136 题:xDeepFM的CIN复杂度,特征维度与网络深度的权衡?
题目
xDeepFM的CIN复杂度,特征维度与网络深度的权衡?
完整讲解
一、xDeepFM 与 CIN
xDeepFM 在 Wide(线性)、DNN 之外增加 CIN(Compressed Interaction Network),用向量级的显式交叉逐层构造高阶特征。CIN 的每一层:对「当前层矩阵」与「初始嵌入矩阵」做外积得到三维张量,再沿某一维压缩成二维矩阵,作为下一层输入;层数对应交叉阶数,且阶数显式可控。
二、CIN 的复杂度
- 设 field 数 $m$、嵌入维 $d$,CIN 第 $l$ 层:上一层输出 $H^{l-1} \in \mathbb{R}^{m \times D_{l-1}}$ 与 $\boldsymbol{X}^0 \in \mathbb{R}^{m \times d}$ 做外积(沿 field 维),得到 $O(m \cdot D_{l-1} \cdot d)$ 的中间张量,再经压缩(如多个 filter)得到 $H^l \in \mathbb{R}^{m \times D_l}$。参数量与 $D_{l-1}, D_l, d, m$ 相关;层数 $L$ 增加则 $D_l$ 累积、计算与显存随深度快速增长。
- 特征维度 $d$、$m$:$d$ 大、$m$ 大则每层张量大,计算与内存都增加;需在表达力与资源间权衡。
- 网络深度:CIN 深则高阶显式、但复杂度与过拟合风险上升;工业上 CIN 常取 2~4 层,与 DNN 并行后总深度不会过深。
三、特征维度与深度的权衡
- 维度:嵌入维 $d$、CIN 的 $D_l$ 大则表达力强、计算与参数多;可先固定较小 $d$ 与 $D_l$,按效果再增。
- 深度:CIN 层数多则高阶交叉多,但复杂度近似逐层乘上 $D$ 与 $d$,深度是主要成本来源之一;通常 2~4 层 CIN + 几层 DNN 即可,再深收益递减且易过拟合。
- 与 DNN 分工:CIN 负责显式向量级交叉、DNN 负责隐式高阶;CIN 不必过深,剩余交给 DNN。
四、工程建议
- 先小规模($d=8\sim16$、CIN 2 层、$D$ 较小)跑通与 baseline 对比,再按资源与 AUC 调大维度与深度;可监控 CIN 每层输出范数避免爆炸。
面试要点
- 能说明 CIN 的向量级显式交叉、层数与阶数对应,以及外积与压缩的步骤。
- 能分析复杂度:与 $m, d, D_l, L$ 相关,深度与维度增大均导致计算与显存上升。
- 能说清深度与维度的权衡:通常 CIN 2~4 层、$d$ 与 $D$ 按资源调;与 DNN 分工。
记忆要点
- CIN:向量级显式交叉、层数=阶数;外积+压缩,复杂度随 $m,d,D,L$ 增。
- 深度与维度权衡:CIN 常 2~4 层;$d$、$D$ 大则表达强、成本高。
- 与 DNN 并行,CIN 不必过深;先小规模再按资源与效果调参。