MessagePassing分析与说明

1 Motivation

在图神经网络中,如何像在欧式空间一样进行卷积操作,其重要的问题在于如何更新当前位置的信息。
其每个位置(或者叫节点node)的更新方式如下所示。
在这里插入图片描述
这一个式子既可以表达GCN,也可以表达Edge Conv。

2 函数分析

2.1 初始化

初始化默认有:

  1. 聚合方式aggr,默认是add,即上图中的【圆圈+】
  2. 数据流向flow,默认是source to target,是从邻居到中心(问:target to source是从中心到邻居吗)
  3. node_dim定义了沿着哪一维进行传播

2.2 propagate

必须输入edge_index

2.3 message

即上图中的fai函数
x_i表示中心节点central nodes,x_j表示邻居节点neignbouring nodes

2.4 update

即上图的gamma函数

3 GCN实例

在这里插入图片描述

3.1 分析

  1. 这个算子没有gamma函数的步骤,因此不需要update
  2. 在加和处有∪{i},因此需要增加自环self loop
  3. W.t()的部分,由于每一个节点都需要线性变化,所以可以在forward中做掉
  4. 除以中心节点的度和邻居节点的度,然后开根号,必须要在message中做
  5. propagate()会自动调用message()、aggregate()和update()

4 Edge Conv实例

在这里插入图片描述

4.1 分析

  1. 这个算子没有gamma步骤,也不需要update
  2. 在消息传递步骤,同时用到了中心节点和邻居节点,因此需要x_i x_j
  3. aggr要设置为max

你可能感兴趣的:(自动驾驶)