图神经网络---图卷积神经网络

文章目录

  • 一、图卷积神经网络
    • 1.0 为什么要用 GCN,不可以使用CNN?
    • 1.1 GCN 的目的
    • 1.2 GCN的基本思想
    • 1.3 GCN中的名词定义
    • 1.4 GCN的计算方式
      • 1.4.1 Vertex domain 的计算方式
      • 1.4.2 Spectral Domain的计算方式
        • 1.4.2.1 拉普拉斯矩阵的特征分解(谱分解)
    • 1.5 GCN 公式说明
  • 参考资料

一、图卷积神经网络

1.0 为什么要用 GCN,不可以使用CNN?

  • 1)Graph的结构是一种非欧几里得空间的数据(Non Euclidean Structure)【通俗的说:在Graph中每个节点的相邻节点的数目都可能不同】,所以无法直接使用CNN。
  • 2)广义上来说,任何数据都可以建立拓扑关联(谱聚类的思想)。

1.1 GCN 的目的

提取拓扑图的空间特征。

1.2 GCN的基本思想

图神经网络---图卷积神经网络_第1张图片

  • 已知条件
    1)图的结构:节点的连接关系;是否是有向图。
    2)每个节点对应的 Feature
    3)将特征应用于具体任务【比如,在节点分类中是:未知节点中哪些属于已知的类别】

  • 计算过程:
    得到节点特征表示 ⟶ \longrightarrow 类似全连接或卷积的网络提取特征 ⟶ \longrightarrow 得到结果表示

1.3 GCN中的名词定义

  • 1)邻接矩阵【图结构】 A A A
    邻接矩阵的维度是: n × n n × n n×n
    { a i j = 1 表 示 节 点 i 和 节 点 j 存 在 连 接 a i j = 0 无 连 接 \begin{cases} a_{ij} = 1 表示节点 i 和 节点 j 存在连接 \\ a_{ij} = 0 无连接 \end{cases} {aij=1ijaij=0
    图神经网络---图卷积神经网络_第2张图片

    • 1.1)无向图的邻接矩阵是对称的。
  • 2)度矩阵 D D D
    度矩阵的维度是: n × n n × n n×n
    只在主对角线上有值。
    { d i j = d e g ( v i ) i f i = j d i j = 0 其 他 情 况 \begin{cases} d_{ij} = deg(v_i) \qquad if i = j \\ d_{ij} = 0 \qquad 其他情况 \end{cases} {dij=deg(vi)ifi=jdij=0

    • 2.1)无向图出现自循环时,度数 + 1 +1 +1
      这也就是在下图中,节点 1 的度数为 4 的原因。
      图神经网络---图卷积神经网络_第3张图片

1.4 GCN的计算方式

{ v e r t e x   d o m a i n ( s p a t i a l   d o m a i n , 节 点 域 ; 空 间 域 ) s p e c t r a l   d o m a i n ( 谱 域 ) \begin{cases} vertex \ domain(spatial \ domain,节点域;空间域) \\ spectral \ domain(谱域) \end{cases} {vertex domain(spatial domain,)spectral domain

1.4.1 Vertex domain 的计算方式

  • 定义
    找到每个目标节点的所有相邻节点,然后对目标节点进行特征聚合。

  • 存在的问题
    1、如何寻找目标节点的相邻节点?(相对于 CNN 里面的概念就是,如何确定感受野?)
    2、如何处理非欧式空间的数据?(如何处理包含不同数目的相邻节点的特征?)

  • 解决方式
    1、首先,根据路径的长短,确定相邻节点的数量
    2、然后,将相邻节点直接加到目标节点之上。
    图神经网络---图卷积神经网络_第4张图片
    参考论文:Learning Convolutional Neural Networks for Graphs

1.4.2 Spectral Domain的计算方式

  • 定义
    通过Graph 的拉普拉斯矩阵的特征值和特征向量来研究图的性质。

  • 什么是拉普拉斯矩阵(Laplacian)?
    拉普拉斯矩阵的计算过程:
    L = D − A L 是 拉 普 拉 斯 矩 阵 D 是 度 矩 阵 , A 是 邻 接 矩 阵 L = D - A \\ L 是拉普拉斯矩阵 \\ D 是度矩阵,A 是邻接矩阵 L=DALDA
    举个例子,如下图所示:
    图神经网络---图卷积神经网络_第5张图片

  • 常见的拉普拉斯矩阵计算方式:
    { L = D − A → 组 合 拉 普 拉 斯 算 子 ( C o m b i n a t o r i a l L a p l a c i a n ) L = D − 1 2 A D − 1 2 → 对 称 归 一 化 拉 普 拉 斯 算 子 ( S y m m e t r i c n o r m a l i z e d L a p l a c i a n ) L = D − 1 A → 随 机 游 走 归 一 化 拉 普 拉 斯 算 子 ( R a n d o m w a l k n o r m a l i z e d L a p l a c i a n ) \begin{cases} L = D - A \qquad \rightarrow 组合拉普拉斯算子(Combinatorial Laplacian) \\ L = D^{- \frac{1}{2}} A D^{- \frac{1}{2}} \qquad \rightarrow 对称归一化拉普拉斯算子(Symmetric normalized Laplacian) \\ L = D^{-1} A \qquad \rightarrow 随机游走归一化拉普拉斯算子(Random walk normalized Laplacian) \end{cases} L=DA(CombinatorialLaplacian)L=D21AD21(SymmetricnormalizedLaplacian)L=D1A(RandomwalknormalizedLaplacian)

  • 为什么要用拉普拉斯矩阵(Laplacian)?
    1、拉普拉斯矩阵是对称矩阵,可以进行特征分解(谱分解;对角化)
    2、拉普拉斯矩阵只在中心顶点一阶相邻相连的节点上有非 0 元素,其余位置均为 0 。

1.4.2.1 拉普拉斯矩阵的特征分解(谱分解)

  • 注意
    (1)不是所有的矩阵都可以特征分解。【矩阵进行特征分解的充要条件是:n 阶方阵存在 n 个线性无关的特征向量。】
    (2)拉布普拉斯矩阵是半正定矩阵。【半正定矩阵是对称矩阵】(根据下面的性质,可以得到拉普拉斯矩阵一定可以谱分解。)

    • 1) 对称矩阵一定存在 n 个线性无关的特征向量。
    • 2)半正定矩阵的特征值一定是非负的。
    • 3)对称矩阵的特征向量相互正交,即所有的特征向量构成的矩阵为正交矩阵。
    • 4)正交矩阵 若是 A A A 为正交矩阵,则存在 A A T = E A A^T = E AAT=E,也就是 A T = A − 1 A^T = A^{-1} AT=A1
  • 拉普拉斯矩阵的谱分解:

    • L = U λ U − 1 L = U \lambda U^{-1} L=UλU1
    • U U U列向量为特征向量的矩阵。其中 U = ( u 1 → , u 2 → , . . . , u n → ) U = (\mathop{u_1}\limits ^{\rightarrow},\mathop{u_2}\limits ^{\rightarrow},...,\mathop{u_n}\limits ^{\rightarrow} ) U=(u1,u2,...,un)【左乘行,右乘列。 解读:左乘对角矩阵是行变化,右乘对角矩阵是列变换。】
    • λ \lambda λ 是特征值构成的对角矩阵。

1.5 GCN 公式说明

图神经网络---图卷积神经网络_第6张图片

  • 具体的公式可以表示为:
    H l + 1 = σ ( D ~ − 1 2 A ~ D ~ − 1 2 H ( l ) W ( l ) ) H^{l+1} = \sigma(\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)}) Hl+1=σ(D~21A~D~21H(l)W(l))
    对比上述公式可以得到: 图 结 构 特 征 : A ′ = D ~ − 1 2 A ~ D ~ − 1 2 图结构特征:A^{'} = \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} A=D~21A~D~21

  • 1、GNN 逐步计算过程
    A × x ↓ D ~ − 1 A ~ x ↓ D ~ − 1 A ~ D ~ − 1 x ↓ D ~ − 1 2 A ~ D ~ − 1 2 x A × x \\ \downarrow \\ \tilde{D}^{-1} \tilde{A} x \\ \downarrow \\ \tilde{D}^{-1} \tilde{A}\tilde{D}^{-1} x \\ \downarrow \\ \tilde{D}^{-\frac{1}{2}} \tilde{A}\tilde{D}^{-\frac{1}{2}} x A×xD~1A~xD~1A~D~1xD~21A~D~21x

  • 1)为什么需要图结构特征 A ′ A^{'} A
    因为在相同的图节点中,不同的节点连接,就能得到不同的节点特征表示。
    2)图结构特征 A ′ A^{'} A 是固定的吗?
    答:是固定的,因为这代表了图中节点之间的连接,所以是固定的。
    3)图结构特征为什么用 A ′ A^{'} A表示,而不用 A A A
    答: A A A 代表最原始的图结构, A ′ A^{'} A 则是在 A A A 上进行了变化,更有利计算。

  • 2、 A ~ \tilde{A} A~ 得到的过程
    图神经网络---图卷积神经网络_第7张图片
    最直观的节点特征表示: A × x A × x A×x
    但是这种操作存在一个问题:就是不存在目标节点自身的节点特征。

为了解决上述问题:

A ~ = A + λ I \tilde{A} = A + \lambda I A~=A+λI
其中 I I I 表示单位矩阵。

  • 3、 D ~ \tilde{D} D~ 得到的过程
    图神经网络---图卷积神经网络_第8张图片

    相对应的度数矩阵也进行变化

    D ~ = D + λ I \tilde{D} = D + \lambda I D~=D+λI
    其中 I I I 表示单位矩阵。

    图神经网络---图卷积神经网络_第9张图片

  • 4、为什么取逆矩阵?
    神经网络对输入数据非常敏感,一般来说,我们希望对所有的向量进行归一化操作(缩放)。
    在本身的矩阵上乘一个对角线矩阵,就可以减小规模

  • 5、为什么分别左乘 和 右乘 度的逆矩阵?
    左 乘 、 右 乘 , 两 次 归 一 化 { 左 乘 : 表 示 对 邻 接 矩 阵 的 行 信 息 进 行 变 换 右 乘 : 表 示 对 邻 接 矩 阵 的 列 信 息 进 行 变 换 左乘、右乘, 两次归一化 \begin{cases} 左乘:表示对邻接矩阵的行信息进行变换 \\ 右乘:表示对邻接矩阵的列信息进行变换 \end{cases} ,{
    图神经网络---图卷积神经网络_第10张图片
    图神经网络---图卷积神经网络_第11张图片

  • 6、为什么使用 D ~ − 1 2 \tilde{D}^{-\frac{1}{2}} D~21
    为了进一步减少计算规模
    图神经网络---图卷积神经网络_第12张图片

  • 节点分类的公式:
    图神经网络---图卷积神经网络_第13张图片

参考资料

从CNN到GCN的联系与区别——GCN从入门到精(fang)通(qi)

你可能感兴趣的:(Graph,图神经网络学习,机器学习基础知识,图神经网络)