第 38 题:FiBiNET的Squeeze-Excitation,与CV中SE-Net的输入维度差异处理?
题目
FiBiNET的Squeeze-Excitation,与CV中SE-Net的输入维度差异处理?
完整讲解
一、CV 里 SE-Net 的 Squeeze-Excitation
SE(Squeeze-and-Excitation)在 CV 中作用在通道维:对特征图 $\boldsymbol{X} \in \mathbb{R}^{H \times W \times C}$,先 Squeeze(对空间维 $H \times W$ 做全局池化)得到 $C$ 维向量 $\boldsymbol{z}$,再 Excitation(两层 FC:$C \to C/r \to C$,中间用 ReLU)得到 $C$ 个通道权重,最后用这些权重对原特征图逐通道 scale。即输入是 3D(高×宽×通道),Squeeze 压掉空间维,得到 1D 通道向量,维度从 $H \times W \times C$ 变成 $C$。
二、FiBiNET 里的 SE 用在什么上
FiBiNET 在双线性特征交互之后,对「交互结果」做双线性权重的重标定。具体地,会得到一组向量(例如每个 field 对对应一个向量,或每个特征一个向量),把这些向量在「某个维度」上排成矩阵,例如形状为「特征数 × 隐维」或「field 对数 × 隐维」。此时没有空间维 $H \times W$,只有「样本内特征/field 数」和「隐维」两维,即输入是 2D(如 $F \times D$ 或 $n \times d$),而不是 3D 特征图。
三、输入维度差异怎么处理
- CV SE:Squeeze 对 $(H,W)$ 池化 → 得到长 $C$ 的向量;Excitation 的 FC 输入/输出维都是「通道相关」的 $C$。
- FiBiNET SE:没有空间维,只有「特征/field 维」和「隐维」。两种常见做法:
- 在「特征/field 维」上 Squeeze:对「隐维」那一维做池化(如 mean/max),把每个特征/field 压成一个标量,得到长 $F$(或 $n$)的向量,再经 FC $F \to F/r \to F$ 得到每个特征/field 的权重,对原 2D 张量按「特征/field」这一维做 scale。这样 Squeeze 压的是隐维,Excitation 在「特征/field 数」这一维上做,和 CV 里「压空间、权通道」是对偶的。
- 在「隐维」上做 SE:若把「特征/field 维」视作「通道」,则对特征/field 维做 Squeeze 得到 $D$ 维向量,再 $D \to D/r \to D$ 得到隐维各维的权重,对隐维做 scale。即把 2D 的 (特征数×隐维) 中的「特征数」当空间、「隐维」当通道,和 CV 的 (H×W×C) 对应。
无论哪种,核心都是:CV 输入 3D,压空间得通道权;FiBiNET 输入 2D,要选「压哪一维、权哪一维」,选「压隐维、权特征」或「压特征、权隐维」取决于你是想强调「哪些特征/field 重要」还是「哪些隐维重要」,实现时维度与 FC 的 in/out 与之一致即可。
四、小结
FiBiNET 的 SE 与 CV 的 SE-Net 思想相同(Squeeze 聚合、Excitation 学权重、再 scale),输入形状不同(2D 特征矩阵 vs 3D 特征图),通过「选定哪一维当空间、哪一维当通道」并相应做池化与 FC,即可复刻 SE 的「压缩–激励」流程。
面试要点
- 能说清 CV 中 SE:Squeeze 对空间 $H\times W$ 池化得 $C$ 维,Excitation 为 $C\to C/r\to C$,再对通道 scale。
- 能说明 FiBiNET 输入是 2D(如特征数×隐维),无空间维;需选定「压哪一维、权哪一维」。
- 能举例:压隐维权特征(得「哪些特征重要」),或压特征权隐维(得「哪些隐维重要」),与 CV 的「压空间权通道」对偶。
记忆要点
- CV SE:3D 输入,压 (H,W) 得 C 维,Excitation 权通道。
- FiBiNET SE:2D 输入,压一维、权另一维;压隐维权特征 / 压特征权隐维 二选一。
- 思想一致,维度处理不同:选好「谁当空间、谁当通道」即可。