Actor_1 的输入是自身观测、所有任务、所有其他智能体:
$$o_1 = \{\,\text{ego}_1,\; \text{tasks}_{1:M},\; \text{others}_{2:N}\,\}$$输出是选择每个任务的 logits,softmax 后得到动作分布:
$$\pi_1 = \text{softmax}(\text{logits}_1) \in \mathbb{R}^{M}$$其中 $M$ 是任务数,$\text{logits}_1$ 的每一维对应选择一个任务的分数。
对节点 $i$(例如 Actor_1),GATConv 的更新规则为:
$$h_i^{(l+1)} = \sigma\left( \sum_{j \in \mathcal{N}(i)} \alpha_{ij}^{(l)}\, W^{(l)} h_j^{(l)} \right)$$注意力系数由节点特征和边特征共同决定:
$$\alpha_{ij} = \text{softmax}_j \left( \text{LeakyReLU}\left( a^\top \left[\, W h_i \;\|\; W h_j \;\|\; E_{ij} \,\right] \right) \right)$$其中:
task - agent 或 -similarity);由于图是全连接的,Actor_1 的邻居为所有任务和所有其他智能体:
$$\mathcal{N}(1) = \{\,\text{Task}_1, \dots, \text{Task}_M\,\} \cup \{\,\text{Agent}_2, \dots, \text{Agent}_N\,\}$$因此 Actor_1 的更新特征是所有任务和所有其他智能体的加权平均:
$$h_1^{(l+1)} = \sigma\left( \sum_{k=1}^{M} \alpha_{1,k}^{\text{task}}\, W h_k^{\text{task}} + \sum_{n=2}^{N} \alpha_{1,n}^{\text{agent}}\, W h_n^{\text{agent}} \right)$$理想的 Actor_1 应该输出:
$$\text{logits}_1[m] = f(\text{Actor}_1, \text{Task}_m, \text{Context})$$但 Legacy GAT 实际做的是:
$$h_1^{(2)} \approx \text{GlobalPool}(\text{all agents}, \text{all tasks})$$然后:
$$\text{logits}_1 = \text{MLP}\big(\, [\,\text{obs}_1 \;\|\; h_1^{(2)}\,] \,\big)$$如果 PPT 上只放最核心的两个公式:
GATConv 更新:
$$h_i^{(l+1)} = \sigma\left( \sum_{j \in \mathcal{N}(i)} \alpha_{ij}\, W h_j \right)$$Actor_1 在 Legacy GAT 中的邻居:
$$\mathcal{N}(1) = \{\text{所有任务}\} \cup \{\text{所有其他智能体}\}$$