AutoInt的多头自注意力,特征间交互的稀疏性诱导?
AutoInt 用 Multi-Head Self-Attention 在特征 embedding 上做交互:把每个特征看成一个「token」,用 attention 学习「哪些特征对之间重要」。设 embedding 矩阵 $\boldsymbol{E} \in \mathbb{R}^{n \times d}$($n$ 个特征、每维 $d$),在 head $h$ 上做 \(\boldsymbol{Q}^{(h)} = \boldsymbol{E} \boldsymbol{W}_Q^{(h)},\quad \boldsymbol{K}^{(h)} = \boldsymbol{E} \boldsymbol{W}_K^{(h)},\quad \boldsymbol{V}^{(h)} = \boldsymbol{E} \boldsymbol{W}_V^{(h)},\) \(\mathrm{Attn}^{(h)}(\boldsymbol{E}) = \mathrm{softmax}\left( \frac{\boldsymbol{Q}^{(h)} (\boldsymbol{K}^{(h)})^\top}{\sqrt{d_k}} \right) \boldsymbol{V}^{(h)}.\) 多头输出拼起来再经线性层得到「交互后的特征表示」,可堆叠多层,最后用 sum pooling 或 concat 等得到样本表示并预测。这样特征与特征之间的权重由 attention 动态学习,不再像 FM 那样固定为两两内积。
「稀疏性」在这里主要指:不是所有特征对都同等重要,attention 学到的权重矩阵往往大部分接近 0、少数突出,即交互集中在少数特征对上。
因此不需要额外加 L1 等正则,softmax + 多头 + 任务目标 就能诱导出「特征间交互的稀疏性」,使模型可解释、且参数利用更集中。
FM 是「所有二阶对都参与、用内积权重」,没有显式的「谁和谁更重要」;AutoInt 用 attention 显式学成对权重,且权重分布往往稀疏,可解释性更好,也适合高维稀疏特征下「只关心少量关键交叉」的场景。
| 返回模块 | 返回总览 |