核心论点:Legacy GAT 做了节点级 pair-wise 聚合,但没有做agent-task 候选边级解码,导致 logits 与任务没有显式对应关系,且不满足任务索引等变性。
---Actor_1 的输入:
$$o_1 = \{\,\underbrace{\text{ego}_1}_{\text{自身状态}},\; \underbrace{\text{tasks}_{1:M}}_{\text{所有任务}},\; \underbrace{\text{others}_{2:N}}_{\text{其他智能体}}\,\}$$Actor_1 的输出:
$$\pi_1 = \text{softmax}(\text{logits}_1), \quad \text{logits}_1 \in \mathbb{R}^{M}$$输出维度 $M$ 正好等于任务数。一个自然的期望是:第 $m$ 维 logits 应该显式表示 "Actor_1 选择 Task_m 的得分"。
Legacy GAT 的端到端流程:
关键中间量:
GATConv 更新公式:
$$h_i^{(l+1)} = \sigma\left( \sum_{j \in \mathcal{N}(i)} \alpha_{ij}^{(l)}\, W^{(l)} h_j^{(l)} \right)$$其中 $\alpha_{ij}$ 是节点 $i$ 对邻居 $j$ 的注意力权重。注意:这是节点级聚合,不是边级打分。
Legacy GAT 输出 logits 的方式:
$$\text{logits}_1 = \text{MLP}\big(\, [\,\text{obs}_1 \;\|\; \underbrace{h_1^{(2)}}_{\text{Actor_1 节点嵌入}} \;\|\; \underbrace{\text{GlobalPool}}_{\text{全图平均}} \,] \big)$$问题在哪里?
换句话说:
$$ \begin{aligned} \text{理想的}: \quad \text{logits}_1[m] &= f(\text{Actor}_1, \text{Task}_m, \text{Context}) \\ \text{实际的}: \quad \text{logits}_1 &= \text{MLP}(\text{Actor}_1\text{的混合特征} + \text{全图平均}) \end{aligned} $$MLP 可以学到任意映射,但这种映射没有被问题的结构所引导。
任务索引等变性(Task-index Equivariance):如果输入中 Task_i 和 Task_j 交换位置,那么输出 logits 的第 $i$ 维和第 $j$ 维也应该交换。
$$\text{swap}(\text{Task}_i, \text{Task}_j) \;\Rightarrow\; \text{swap}(\text{logits}[i], \text{logits}[j])$$Legacy GAT 为什么不满足?
具体表现:
$$ \begin{aligned} \text{输入}: \quad &\text{tasks} = [T_1, T_2, T_3, T_4] \\ \text{输出}: \quad &\text{logits} = [\ell_1, \ell_2, \ell_3, \ell_4] \\ \text{交换后输入}: \quad &\text{tasks} = [T_1, T_4, T_3, T_2] \\ \text{期望输出}: \quad &\text{logits} = [\ell_1, \ell_4, \ell_3, \ell_2] \\ \text{实际输出}: \quad &\text{logits} \approx [\ell_1', \ell_2', \ell_3', \ell_4'] \neq [\ell_1, \ell_4, \ell_3, \ell_2] \end{aligned} $$MLP 可能通过数据拟合部分学到这种对应关系,但没有结构保证,训练困难且泛化差。
Legacy GAT 的失败不是因为没有 attention,而是因为 attention 的结构与动作空间不匹配。
| 组件 | Legacy GAT 做了什么 | 问题 |
|---|---|---|
| Attention | 节点级 pair-wise 注意力 $\alpha_{ij}$ | 聚合后丢失了与具体任务的对应 |
| Pooling | Global Mean Pooling | 对任务排列 invariant,破坏等变性 |
| Decoder | 无结构约束的 MLP | logits[m] 与 Task_m 没有显式关系 |
结果:网络需要同时学习两件事——
第二件事没有结构引导,导致训练不稳定、泛化差。这也是为什么 Legacy GAT 成功率只有 25–72%,且不同 seed 波动很大。
HATT 不输出节点 embedding 再经过 MLP,而是显式地对每条 agent-task 候选边打分。
HATT 的解码器输入:
$$\text{score}_{1,m} = \text{Decoder}(\underbrace{\text{Actor}_1}_{\text{agent context}}, \underbrace{\text{Task}_m}_{\text{task context}}, \underbrace{E_{1m}}_{\text{edge feature}})$$好处:
这正是从 GAT 转向 HATT 的核心原因:不是不要 attention,而是要把 attention 从节点聚合变成边级决策。
下一页:HATT v1.0 基础框架 —— 如何用 Dict 观测和三个 encoder 实现边级解码。