Graph-BERT 论文解读:模型结构与公式细节
Graph-BERT 是一种基于 Transformer 的图神经网络,旨在解决传统 GNN 模型中的过平滑 (over-smoothing) 和悬置动画 (suspended animation) 问题。本文详细介绍其模型结构和核心公式。
1. 模型整体架构
Graph-BERT 的整体架构包括以下五部分:
- Linkless Subgraph Batching:从全图中采样无连接的局部子图。
- Node Input Vector Embeddings:生成节点的初始特征表示。
- Graph Transformer-based Encoder:通过多头注意力机制对节点上下文信息进行编码。
- Representation Fusion:对节点的多层表示进行融合。
- Functional Component:根据任务目标生成最终输出。
2. Linkless Subgraph Batching
Graph-BERT 从全局图中采样无连接的子图来处理大型图。具体步骤:
-
子图定义:
- 给定节点 ( v_i ),根据亲密度矩阵 ( S ) 选择与 ( v_i ) 亲密度最高的 ( k ) 个节点 ( \Gamma(v_i) )。
- 子图定义为 ( g_i = (V_i, \emptyset) ),其中 ( V_i = {v_i} \cup \Gamma(v_i) )。
-
公式:
S = α ⋅ ( I − ( 1 − α ) ⋅ A ˉ ) − 1 S = \alpha \cdot (I - (1-\alpha) \cdot \bar{A})^{-1} S=α⋅(I−(1−α)⋅Aˉ)−1- ( S ):节点间的亲密度矩阵。
- ( \bar{A} = A D^{-1} ):归一化的邻接矩阵。
- ( \alpha ):平衡因子(通常取 ( 0.15 ))。
这种采样方式允许模型在大规模图数据上实现高效并行化。
3. 节点输入向量嵌入 (Node Input Vector Embeddings)
Graph-BERT 为每个节点生成以下四种特征嵌入:
-
Raw Feature Vector Embedding (原始特征嵌入):
- 将节点的原始特征 ( x_j ) 嵌入共享特征空间。
e j ( x ) = Embed ( x j ) , e j ( x ) ∈ R d h × 1 e_j^{(x)} = \text{Embed}(x_j), \quad e_j^{(x)} \in \mathbb{R}^{d_h \times 1} ej(x)=Embed(xj),ej(x)∈Rdh×1
- 将节点的原始特征 ( x_j ) 嵌入共享特征空间。
-
Weisfeiler-Lehman Absolute Role Embedding (WL 绝对角色嵌入):
- 使用 WL 算法为节点分配角色代码 ( \text{WL}(v_j) ),并通过正弦和余弦函数生成嵌入。
e j ( r ) = Position-Embed ( WL ( v j ) ) e_j^{(r)} = \text{Position-Embed}(\text{WL}(v_j)) ej(r)=Position-Embed(WL(vj))
e j ( r ) = [ sin ( WL ( v j ) 1000 0 2 l d h ) , cos ( WL ( v j ) 1000 0 2 l + 1 d h ) ] e_j^{(r)} = \left[ \sin\left(\frac{\text{WL}(v_j)}{10000^{\frac{2l}{d_h}}}\righ
- 使用 WL 算法为节点分配角色代码 ( \text{WL}(v_j) ),并通过正弦和余弦函数生成嵌入。