原文链接https://manasraza.medium.com/create-a-gcn-from-scratch-on-paper-eedca7d896e1
    image.png
    假设我们有一个包含三个节点的简单图。(在上图中)
    他们的邻接矩阵看起来像这样
    0_-MCCD-ITPYn0Qyvh.png

    邻接矩阵
    每个节点的特征说(是)为
    0_B3rzuq2Zy9Pg5m6j.png
    如果我们将特征与邻接矩阵相乘,我们将得到相邻节点的特征列表。
    0_usQ9CNN7uTnxfL5b.png
    0_k-pgNoFD3Gl60wWa.png

    但是我们有一个问题,节点本身的特征没有被包括在内。我们有一个技巧来包括它们。我们将单位矩阵添加到邻接矩阵如下(我们正在添加自循环):
    0_tiAOnj3iHNGMd4C1.png

    0_yz7VeEc8PxzR-9yb.png
    通过添加特征,它们可能会变得未缩放。我们如何处理这个问题?通过使用逆度矩阵(显示节点有多少邻居的矩阵)进行归一化
    0_I__WKeKSMNsRMrwN.png
    0_otTS4Q9W2okokyTK.png
    怎么办?将它与可学习的权重矩阵相乘,使用激活函数,你的 GCN 就准备好了!
    0_k6wu8s8GGeFAF-UK.png
    我们可以做很多调整。

    • 用于相邻特征的聚合函数只是简单的加法,我们可以尝试一些其他的置换不变操作(如果您不希望操作顺序重要,这是一个花哨的术语)。
    • 我们还可以通过使用平方根来改变度矩阵的逆计算方式。

    这里我们只处理单个节点,可以在其上执行分类等各种任务。我们还可以在这个 GCN 层之后添加其他层。