82 lines
2.5 KiB
Markdown
82 lines
2.5 KiB
Markdown
|
以下是转换为 Markdown 格式的内容,公式已用 `$` 或 `$$` 包裹:
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
下面给出一个**最简示例**,只展示 **节点 $A$** 在两层 GNN 里的更新计算过程,并说明它是如何从 2-hop 范围(即节点 $C, D$)间接获得信息。
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
## 图结构与初始特征
|
|||
|
|
|||
|
```
|
|||
|
A
|
|||
|
|
|
|||
|
B
|
|||
|
/ \
|
|||
|
C D
|
|||
|
```
|
|||
|
|
|||
|
- **边**:$A$–$B$,$B$–$C$,$B$–$D$
|
|||
|
- **初始特征 (Layer-0)**:
|
|||
|
- $A^{(0)} = [1.0,\ 0.5]$
|
|||
|
- $B^{(0)} = [0.8,\ 1.2]$
|
|||
|
- $C^{(0)} = [0.3,\ 0.7]$
|
|||
|
- $D^{(0)} = [1.5,\ 0.9]$
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
**第 1 层更新:$A^{(0)} \to A^{(1)}$**
|
|||
|
|
|||
|
1. **节点 $A$ 的 1-hop 邻居**:只有 $B$。
|
|||
|
2. **聚合**(示例:自 + sum 邻居):
|
|||
|
$$
|
|||
|
z_A^{(1)} \;=\; A^{(0)} + B^{(0)}
|
|||
|
\;=\; [1.0,\,0.5] + [0.8,\,1.2]
|
|||
|
\;=\; [1.8,\,1.7].
|
|||
|
$$
|
|||
|
3. **MLP 变换**:用一个两层感知器或线性+激活函数映射 $z_A^{(1)}$ 到 2 维输出:
|
|||
|
$$
|
|||
|
A^{(1)} \;=\; \mathrm{MLP}\bigl(z_A^{(1)}\bigr).
|
|||
|
$$
|
|||
|
- (数值略,可想象 $\mathrm{MLP}([1.8,1.7]) \approx [1.9,1.1]$ 之类。)
|
|||
|
|
|||
|
**结果**:$A^{(1)}$ 包含了 **A** 的初始特征 + **B** 的初始特征信息。
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
**第 2 层更新:$A^{(1)} \to A^{(2)}$**
|
|||
|
|
|||
|
为了让 **A** 获得 **2-hop** 范围($C, D$)的信息,需要**先**让 **B** 在第 1 层就吸收了 $C, D$ 的特征,从而 **B^{(1)}** 蕴含 $C, D$ 信息。然后 **A** 在第 2 层再从 **B^{(1)}** 聚合。
|
|||
|
|
|||
|
1. **节点 B 在第 1 层**(简要说明)
|
|||
|
|
|||
|
- 邻居:$\{A,C,D\}$
|
|||
|
- 聚合:$z_B^{(1)} = B^{(0)} + A^{(0)} + C^{(0)} + D^{(0)}$
|
|||
|
- MLP 变换:$B^{(1)} = \mathrm{MLP}\bigl(z_B^{(1)}\bigr)$。
|
|||
|
- 此时 **B^{(1)}** 已经包含了 $C, D$ 的信息。
|
|||
|
|
|||
|
2. **节点 $A$ 的第 2 层聚合**
|
|||
|
- 邻居:$B$,但此时要用 **B^{(1)}**(它已吸收 C、D)
|
|||
|
- **聚合**:
|
|||
|
$$
|
|||
|
z_A^{(2)} = A^{(1)} + B^{(1)}.
|
|||
|
$$
|
|||
|
- **MLP 变换**:
|
|||
|
$$
|
|||
|
A^{(2)} = \mathrm{MLP}\bigl(z_A^{(2)}\bigr).
|
|||
|
$$
|
|||
|
|
|||
|
**结果**:$A^{(2)}$ 就包含了 **2-hop** 范围的信息,因为 **B^{(1)}** 中有 $C, D$ 的贡献。
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
## 小结
|
|||
|
|
|||
|
- **第 1 层**:A 直接获取 B 的初始特征;B 同时获取 A、C、D 的初始特征。
|
|||
|
- **第 2 层**:A 获取 B 的**新表示**(B^{(1)}),该表示已带有 C、D 信息 → A 间接获得 2-hop 信息。
|
|||
|
- **每层**都进行“聚合 + MLP”**同步更新**,最终 $A^{(2)}$ 就是节点 A 的 2 层 GNN 输出。
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
如果需要进一步调整或补充,请告诉我!
|