Slot Attention 机制详解本文围绕 Slot Attention 的方法原理展开不讨论论文实验指标。内容依据《Object-Centric Learning with Slot Attention》中的模块结构、Algorithm 1整理。一、为什么需要对象中心表示1. 从场景整体表示到对象集合表示一幅图像通常由多个相对独立的对象构成。例如一个桌面场景中可能包含杯子、书本、电脑和背景。每个对象都有自己的位置、形状、颜色、大小和材质对象之间还可能存在遮挡、接触和相对位置关系。普通 CNN 或 Transformer 能够学习强大的视觉特征但其输出通常属于分布式表示一个对象的信息可能分散在多个空间位置、通道或 token 中而某个局部特征也可能同时混合多个对象的信息。这类表示适合图像分类等整体预测任务但在以下任务中可能不够方便分别描述场景中的各个对象推理对象之间的关系预测对象运动和物理交互进行组合泛化在强化学习中识别目标、障碍物和其他实体在多智能体系统中分别建模不同智能体。对象中心学习希望把场景转换为一个对象集合其中是第k个对象级潜在表示K是用于表示当前场景的 slot 数量。Slot Attention 的核心目标就是建立一个可微映射底层感知特征集合——对象级 slot 集合它不是直接进行目标检测也不要求预先提供每个对象的边界框而是让多个 slots 通过竞争式注意力逐渐对输入特征进行分组。二、Slot Attention 的整体结构Slot Attention 通常放在 CNN encoder 之后其基本流程为图 1Slot Attention 总体结构。左侧是多轮 slot 竞争与更新过程右侧展示了 slots 如何接入对象发现 decoder 或集合预测 MLP。图源为原论文 Figure 1。1. 输入表示假设 CNN 输出的特征图大小为将空间维度展平后得到其中N输入特征数量每个输入特征的维度x_i第i个空间位置的特征向量。Slot Attention 不直接把整幅特征图压缩成一个向量而是输出 个 slots其中Kslot 数量每个 slot 的维度T迭代更新次数第j个 slot 的最终表示。因此Slot Attention 本质上是一个集合到集合的映射输入集合和输出集合的元素数量可以不同即N不需要等于K。三、slot 到底是什么1. slot 是表示容器不是固定类别slot 可以理解为一个等待被内容填充的“对象容器”或“对象文件”。它并不是固定的类别向量训练后保存的某个具体对象slot 1 永远对应红球slot 2 永远对应背景。所有 slots 使用相同的表示格式并且理论上可以绑定输入中的任意对象。例如一张图中包含红球、蓝方块和绿色圆柱设置K4后某次前向传播可能得到换一张图后slot 编号与对象之间的对应关系可以完全改变。因此更准确的表述不是“slot 1 表示什么”而是在当前输入和当前前向传播中某个 slot 最终绑定了什么内容。2. slot 不一定严格等于一个语义对象Slot Attention 提供了促使 slots 对应不同对象的结构归纳偏置但不能从数学上保证每个 slot 都必然表示一个完整语义对象。实际中slot 也可能表示一个完整对象对象的一部分背景区域某种颜色或纹理区域多个相似对象的混合空内容。slot 最终如何分工取决于模型结构、训练目标、数据分布和 slot 数量。四、为什么 slots 从共享高斯分布中采样1. 初始化公式原始 Slot Attention 使用共享、可学习的高斯分布初始化 slots。论文中的简写形式为其中第j个初始 slot共享均值控制各维随机尺度的参数由向量构成的对角矩阵。为了避免“方差”和“标准差”的记号混淆下面单独使用表示逐维标准差则可写为对应的采样过程为其中标准高斯随机向量I单位协方差矩阵逐元素乘法逐维标准差。2. “采样”是不是随机生成数字从实现角度看采样确实会随机生成数字但不是任意生成而是按照指定概率分布生成。首先生成然后对每个维度进行平移和缩放假设某一维的参数为本次生成的标准高斯随机数为则该维的 slot 初始值为因此slot 初始化可以概括为和是训练得到的模型参数才是每次采样产生的随机变量。3. 为什么均值和方差是可学习的若固定使用所有任务都会使用同一个初始化分布。将和设为可学习参数后模型可以根据训练目标自动学习slots 应从表示空间的哪个区域开始哪些维度需要较大随机差异哪些维度应更加稳定什么样的初始化最有利于后续对象分组。训练得到的不是固定 slot 内容而是一套适合当前任务的 slot 初始化机制。4. 为什么所有 slots 共享同一个分布如果每个 slot 使用单独参数那么不同 slot 可能逐渐获得固定身份。例如 slot 1 更容易表示球体slot 2 更容易表示背景。这会破坏 slots 的交换性也会削弱模型面对新对象组合时的泛化能力。共享分布表示这里表示独立同分布同分布所有 slots 遵循相同的概率规则独立每个 slot 得到不同的随机样本。共享分布使所有 slots 具有相同的先验地位没有哪个 slot 天生负责某类对象。5. 为什么不能全部初始化成相同向量假设所有 slots 都初始化为由于它们还共享query 投影GRU 参数MLP 参数attention 计算规则这些 slots 可能产生完全相同的 query、attention 权重和更新结果这样所有 slots 会始终重合无法分别表示不同对象。独立随机采样会为每个 slot 提供微小的初始差异打破这种完全对称状态。随后竞争式注意力会进一步放大差异使不同 slots 逐渐形成分工。五、Slot Attention 核心算法图 2Slot Attention 的核心算法。算法包括输入归一化、slot 初始化、注意力计算、WeightedMean、GRU 更新和残差 MLP。图源为原论文 Algorithm 1。完整计算过程可以划分为下面分别解释每一步。六、输入归一化和 Query-Key-Value 投影1. 输入 LayerNorm首先对输入特征进行归一化其中原始输入特征集合归一化后的输入特征。LayerNorm 主要用于控制不同特征维度的数值尺度使点积注意力更稳定并加快训练收敛。输入归一化通常只需要计算一次因为所有 attention 迭代使用的是同一组输入。2. key 和 value 来自输入输入经过两个不同的线性投影其中key 投影value 投影Dquery-key 公共维度value 维度。通常可以令$D_vD$但二者在概念上不必完全相同。3. query 来自当前 slots在第t轮迭代中先保存上一轮 slots再对 slots 进行 LayerNorm随后产生 query因此三者的来源和作用可以概括为变量来源主要作用Query当前 slots表示每个 slot 当前希望寻找什么Key输入特征用于判断输入与 slot 的匹配程度Value输入特征提供真正被传递给 slot 的内容七、attention 权重如何产生1. Query-Key 点积第i个输入 key 和第j个 slot query 分别为二者点积得到一个标量匹配分数矩阵形式为其中第i个输入特征与第j个 slot 的匹配程度M完整的输入—slot 相似度矩阵缩放因子。缩放是为了避免维度D较大时点积数值过大使 softmax 过早进入饱和区域。2. 为什么向量计算后得到标量权重点积的计算方式为两个D维向量的对应维度相乘后求和最终得到一个标量。因此需要区分三类量attention 权重之所以是标量是因为它表示某个输入特征应以多大比例贡献给某个 slot。八、为什么 softmax 在 slots 维度上进行Slot Attention 的注意力权重为这里固定输入编号i对所有 slot 编号j归一化因此这意味着每个输入特征必须在K个 slots 之间分配自己的归属比例。例如表示第i个输入特征主要交给 slot 1同时少量分配给 slot 2 和 slot 3。1. 为什么这会产生竞争由于某个输入特征分给一个 slot 的比例增加时分给其他 slots 的比例必然减少。因此多个 slots 会竞争解释同一组输入特征。这种竞争是 Slot Attention 形成对象分组的关键。若没有竞争一个输入特征可能被所有 slots 同时完整读取最终各 slots 容易得到相似表示。2. 与普通 attention 的区别普通 cross-attention 常采用也就是每个 query 在所有输入 key 上归一化回答的问题是当前 query 应该从哪些输入位置读取信息Slot Attention 则采用回答的问题是当前输入特征应该由哪个 slot 负责解释因此普通 attention 更强调“信息检索”Slot Attention 更强调“输入分组和职责分配”。九、value 的作用真正被送入 slot 的内容key 和 query 只用于计算匹配程度真正被传递给 slots 的是 value。第i个输入对应的 value 为对于第j个 slot可以先写出未经二次归一化的加权和其中标量 attention 权重value 向量加权后的 value 向量聚合后的向量。因此例如key 可以主要编码适合判断对象归属的位置和轮廓信息而 value 可以同时携带颜色、纹理、大小等内容。attention 权重本身不是对象特征它只是控制 value 传递比例的标量系数。十、为什么 softmax 后还要做 WeightedMean 归一化这是 Slot Attention 最容易混淆的一步。1. 第一次归一化解决“输入属于谁”softmax 后满足也就是每一行和为 1。它解决的是第i个输入特征应该如何分配给不同 slots但它并不保证每个 slot 收到的总权重相同。第j个 slot 收到的总注意力质量为不同 slots 的c_j可能差异很大。2. WeightedSum 存在的问题若直接使用那么 update 的数值尺度会同时受到两类因素影响如果一个 slot 负责较大的对象或区域它可能收到更多输入总权重更大update 的模长也可能更大。另一个 slot 即使正确表示了小对象也可能因为接收输入较少而获得较小 update。这会让“对象内容”和“对象占据多少输入位置”纠缠在一起。3. 第二次归一化解决“slot 如何聚合”Slot Attention 对每个 slot 的 attention 权重再次归一化其中防止分母过小的数值稳定项固定j沿输入维度i归一化。因此最终 update 为矩阵形式为此时每个 slot 得到的是其负责 value 的加权平均而不是加权总和。4. 两次归一化的区别操作归一化方向约束含义Softmaxslots 维度每行和为 1每个输入由哪些 slots 解释WeightedMeaninputs 维度每列和为 1每个 slot 如何平均聚合输入两次归一化不是重复操作。第一次归一化产生 slots 之间的竞争第二次归一化控制每个 slot update 的尺度。5. 小矩阵示例假设 softmax 后的注意力矩阵为每一行之和为 1但两列之和分别为忽略后第二次归一化得到此时第一个 slot 的 update 表示它所负责特征的加权平均内容不会仅因为负责输入更多而自动获得更大模长。十一、GRU 如何更新 slot完成 value 聚合后第j$个 slot 得到 updateSlot Attention 不直接用 update 替换旧 slot而是使用 GRU其中本轮从输入聚合的新信息上一轮 slot 状态融合后的新 slot。1. GRU 的门控过程更新门为重置门为候选状态为最终更新为其中更新门控制吸收多少新信息重置门控制生成候选状态时使用多少旧信息候选 slot 状态Sigmoid 函数。2. 为什么不能直接使用 update 替换 slot若直接令会出现几个问题。首先上一轮已经形成的对象信息会被完全覆盖。当前 update 只是根据本轮 attention 分配得到的新证据不一定包含此前所有信息。其次早期 attention 分配可能并不准确。若直接替换某轮错误聚合可能彻底破坏 slot 表示。最后Slot Attention 的核心是迭代 refinement。slot 在每一轮都形成一个当前对象假设再根据新信息逐步修正而不是每轮从头计算。因此GRU 在这里不主要用于处理时间序列而是作为一个可学习的迭代状态更新函数。3. GRU 是 per-slot 共享的所有 slots 独立使用同一个 GRU参数在所有 slots 之间共享。这样可以保证每个 slot 使用同一种更新规则slot 编号不决定其功能所有 slots 保持共同表示格式模型可以自然处理不同数量的 slots。十二、残差 MLP 与多轮 refinementGRU 更新后Slot Attention 还可以应用残差 MLP该操作类似 Transformer block 中的前馈网络用于对 slot 内部特征进行非线性变换增强表示能力修正 GRU 输出通过残差连接保留原始状态。一次完整迭代可以写为新 slots 会在下一轮重新产生 query因此 attention 分配也会发生变化。整个过程为经过多轮迭代后随机初始化的 slots 会逐渐形成不同职责。十三、Slot Attention 的置换性质1. 对输入顺序置换不敏感输入是一个特征集合若只改变输入特征的排列顺序而不改变其内容输出的对象集合不应发生本质变化。使用置换矩阵表示输入顺序变化则 Slot Attention 对输入满足置换不变性。2. 对 slot 顺序置换具有等变性若交换初始 slots 的顺序最终输出也会按照同样方式交换。原论文给出的性质可以写为其中输入特征的置换矩阵slots 的置换矩阵。这说明 slot 编号本身没有固定语义。若 slot 1 和 slot 2 的初始顺序交换最终只是两个输出 slot 的位置交换整个对象集合表达的内容不变。十四、最终 slot 向量表示什么最终输出为每个 slot 都是一个潜在向量它不是直接可读的标签也不是显式的属性字典。slot 中可能隐含编码对象位置对象大小颜色形状材质纹理边界对象是否存在与下游任务相关的其他信息。具体语义由训练目标决定。若训练目标是图像重构slot 会优先保留有助于重构外观和空间区域的信息。若训练目标是对象属性预测slot 会优先编码颜色、形状、位置、材质等属性。因此Slot Attention 提供的是对象级结构形式而不是预先规定每个维度必须代表什么。十五、训练好的 slot 是不是固定向量不是。需要区分三类变量。类型例子测试新图片时是否变化模型参数CNN、、GRU、MLP、、通常冻结初始 slots每次前向传播重新生成最终 slots随输入图片动态变化训练后真正得到的是一套参数化映射其中包括对于一张新图片模型仍需重新执行因此每张图片都会动态生成自己的 slots。模型冻结不等于 slot 内容固定。冻结的是产生和更新 slots 的参数而不是 slots 本身。十六、总结Slot Attention 到底做了什么Slot Attention 首先从共享、可学习的高斯分布中生成一组没有固定身份的初始 slots随后输入特征生成 key 和 valueslots 生成 query输入与 slots 之间的匹配分数为softmax 在 slots 维度上进行使每个输入特征必须在不同 slots 之间分配归属从而产生竞争。之后WeightedMean 再沿输入维度归一化使每个 slot 获得稳定的 value 加权平均GRU 将新信息与旧 slot 状态融合经过多轮 refinement随机初始化的 slots 逐渐转化为与当前输入有关的对象级潜在表示训练完成后固定的是 CNN、投影层、GRU、MLP 和初始化分布参数而不是某几个固定 slot 向量。每张新图片都会重新生成并更新自己的 slots。因此Slot Attention 的核心价值是提供了一种从底层感知特征到对象级集合表示的可微接口它将“整幅场景的分布式特征”转换为“一组可交换、可独立处理的实体表示”从而为对象发现、属性预测、关系推理、物理建模和控制规划提供结构化输入。