原文链接https://manasraza.medium.com/create-a-gcn-from-scratch-on-paper-eedca7d896e1
假设我们有一个包含三个节点的简单图。(在上图中)
他们的邻接矩阵看起来像这样
邻接矩阵
每个节点的特征说(是)为
如果我们将特征与邻接矩阵相乘,我们将得到相邻节点的特征列表。
但是我们有一个问题,节点本身的特征没有被包括在内。我们有一个技巧来包括它们。我们将单位矩阵添加到邻接矩阵如下(我们正在添加自循环):
通过添加特征,它们可能会变得未缩放。我们如何处理这个问题?通过使用逆度矩阵(显示节点有多少邻居的矩阵)进行归一化
怎么办?将它与可学习的权重矩阵相乘,使用激活函数,你的 GCN 就准备好了!
我们可以做很多调整。
- 用于相邻特征的聚合函数只是简单的加法,我们可以尝试一些其他的置换不变操作(如果您不希望操作顺序重要,这是一个花哨的术语)。
- 我们还可以通过使用平方根来改变度矩阵的逆计算方式。
这里我们只处理单个节点,可以在其上执行分类等各种任务。我们还可以在这个 GCN 层之后添加其他层。