md_files/科研/草稿.md
2025-03-18 12:46:59 +08:00

82 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

以下是转换为 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 输出。
---
如果需要进一步调整或补充,请告诉我!