2023-12-03 详解GCN公式

本文主要讲解下面公式, 2023-10-18 (二) GCN网络 - 简书 (jianshu.com)

\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}}\

  • D^{-\frac{1}{2}}度矩阵的逆平方根:它是一个对角矩阵,表示每个节点的度(连接的边数)。
  • \tilde{A} 增强邻接矩阵:构建\tilde{A}的方式是在原始邻接矩阵 A 的基础上添加自环,即将对角线元素设为 1,表示每个节点都与自己相连。
  • D^{-\frac{1}{2}} \tilde{A} D^{-\frac{1}{2}} 为归一化之后的邻接矩阵,通常称为对称归一化邻接矩阵。

一: 图的基本组成

  • G: 图
  • A: 是邻接矩阵
  • D: 是各个节点的度, 即度矩阵
  • F: 是每个节点的特征, 即特征矩阵
案例

二: 图卷积的计算法

其实就是邻接矩阵与特征矩阵进行乘法操作,表示聚合邻居信息

计算过程

那么上述的计算过程存在什么问题呢?
光想着别人,没考虑自己呢

解决方法: 只需要在邻接矩阵中加上自己就可以

\tilde{A}=A+\lambda I_N

加上对角矩阵

三: 归一化操作

上述考虑自己后, 还存在什么问题呢?
不能说度矩阵越大, 及某个节点连接的边越多, 通过矩阵乘法得到的结果就越大, 因此需要做个平均, 即对度矩阵进行归一化操作.

解决方法: 对度矩阵求倒数


求倒数

因此, 目前公式变为: \tilde{D}^{-1}(\tilde{A} X) = \left(\tilde{D}^{-1} \tilde{A}\right) X
即对邻接矩阵做行变化(左乘)

还存在什么问题呢?
只进行行变化显然不对, 还需要对列进行变化, 因此公式变为:
\tilde{D}^{-1} \tilde{A} \tilde{D}^{-1} X

为了进行归一化操作, 将公式修改为:
\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}}\

总结

\sqrt{\tilde{D}_{i i} \tilde{D}_{j j}} , 表示分别对行和列完成归一化

\frac{1}{\sqrt{\operatorname{deg}\left(v_i\right)} \cdot \sqrt{\operatorname{deg}\left(v_j\right)}}=\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}}
可以抵消度差异带来的影响。这样,即使节点的度很大,其对邻居的影响也会被相应地减小,以确保在信息传播中度较大和度较小的节点之间不存在过大的差异。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容