PyTorch Geometric 消息传递机制
消息传递概念
\[\mathbf{x}_i^{(k)} = \gamma^{(k)} \left( \mathbf{x}_i^{(k-1)}, \square_{j \in \mathcal{N}(i)} \, \phi^{(k)}\left(\mathbf{x}_i^{(k-1)}, \mathbf{x}_j^{(k-1)},\mathbf{e}_{j,i}\right) \right)
\]
将卷积的操作从欧氏空间泛化至非欧空间中,pyG所采用的是空间方法,可以特别的表示为邻居信息的聚合(Neigborhood Aggerating) ,或者信息传递结构。
相关数学参数
- \(x_j^{k-1} \in \mathbb{R}^{F}\)是指节点在\(k-1\)层的节点特征。
- \(e_{ij} \in \mathbb{R}^{D}\)是指从节点\(i\)到节点\(j\)的边的特征。
- \(\square\) 运算符是指具有可微性,遍历不变性的函数。常见的有
max,sum,mean. - \(\gamma\)与\(\phi\)等同于微分函数,如常见的MLP.
PyG.Message_Passing 介绍
该类主要包含了三大函数:
-
message: 对于在edge_index中的每一条边edge, 构建从节点 \(j\) 到节点 \(i\) 的传播信息 , 相当于原函数中的\(\phi\)函数。该信息的构建来源于当前边的信息,在GCN中信息的构建可以表示为:\(\text{deg(j)}\times \text{weight} \times \text{deg(i)}\).关于
message的具体含义,具体可以观察Message Passing论文公式中的该部分\(\phi^{(k)}(\mathbf{x}_i^{(k-1)}, \mathbf{x}_j^{(k-1)},\mathbf{e}_{j,i})\),也正是信息构建函数message所想表达的含义。函数中存在\(x_i\),\(x_j\), \(e_{j,i}\)这三部分的内容,也正意味着构建的信息来源于起节点\(x_j\),尾节点\(x_i\),起尾节点之间的连接边\(e_{j,i}\)。所以构建的信息的物理意义可以理解为:在沿着存在于头尾节点之间的边,且调和头尾特征信息的一种综合了头节点,尾节点,边的
复合信息。 -
aggerate:聚合函数,观察原始公式可知,聚合函数的目的是获得节点\(j\)周围的邻居相关信息。是聚合邻居特征。 -
update:对于图中的每一个顶点\(v_j \in V\),更新节点\(j\)的嵌入表示,等于原始论文中的\(\gamma\)函数。

浙公网安备 33010602011771号