sgr-interview-300

第 37 题:AutoInt的多头自注意力,特征间交互的稀疏性诱导?

题目

AutoInt的多头自注意力,特征间交互的稀疏性诱导?


完整讲解

一、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、少数突出,即交互集中在少数特征对上。

  1. Softmax 的竞争:$\mathrm{softmax}(\cdot)$ 对每一行做归一化,大 logit 会被放大、小 logit 被压小,天然倾向于产生「少数大权重、多数小权重」的分布,相当于对 attention 权重做了稀疏化(相对均匀分布而言)。
  2. 多头:不同 head 可以关注不同子集的特征对(如 head1 关注用户–物品、head2 关注上下文–物品),每个 head 内部仍是「少数对重要」,整体上交互矩阵是块状或结构化稀疏
  3. 训练目标:若任务是 CTR 等,只有少数特征组合真正驱动标签,梯度会鼓励模型把 attention 集中在这些对上,其余对的权重被压低,学习到的交互自然稀疏

因此不需要额外加 L1 等正则,softmax + 多头 + 任务目标 就能诱导出「特征间交互的稀疏性」,使模型可解释、且参数利用更集中。

三、与 FM 的对比

FM 是「所有二阶对都参与、用内积权重」,没有显式的「谁和谁更重要」;AutoInt 用 attention 显式学成对权重,且权重分布往往稀疏,可解释性更好,也适合高维稀疏特征下「只关心少量关键交叉」的场景。


面试要点


记忆要点

返回模块 返回总览