Loading

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) ,或者信息传递结构。

相关数学参数

  1. \(x_j^{k-1} \in \mathbb{R}^{F}\)是指节点在\(k-1\)层的节点特征。
  2. \(e_{ij} \in \mathbb{R}^{D}\)是指从节点\(i\)到节点\(j\)的边的特征。
  3. \(\square\) 运算符是指具有可微性,遍历不变性的函数。常见的有max,sum, mean.
  4. \(\gamma\)\(\phi\)等同于微分函数,如常见的MLP.

PyG.Message_Passing 介绍

该类主要包含了三大函数:

  1. 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}\)。所以构建的信息的物理意义可以理解为:在沿着存在于头尾节点之间的边,且调和头尾特征信息的一种综合了头节点,尾节点,边的复合信息

  2. aggerate:聚合函数,观察原始公式可知,聚合函数的目的是获得节点\(j\)周围的邻居相关信息。是聚合邻居特征。

  3. update:对于图中的每一个顶点\(v_j \in V\),更新节点\(j\)的嵌入表示,等于原始论文中的\(\gamma\)函数。

posted @ 2022-10-09 13:23  MarkL124950  阅读(165)  评论(0)    收藏  举报