从0开始的GNN导学课程笔记

诸神缄默不语-个人CSDN博文目录

VX号“PolarisRisingWar”可直接搜索添加作者好友讨论。

更新日志:
2021.11.16 优化公式排版

课程是校内资源,不对外发布,仅作知识整理。
想上这个课可以来浙大读个电子信息的硕士,读了就能上了……

发布博文是因为感觉以这种形式整理笔记算是强迫自己做一个在形式上比较规整的整理。
本人的GNN基础就像是玻璃板子一样脆,所以写得非常详细,但还是有许多不尽不实之处。以后大概会继续往这方面做研究,以后有机会的话继续写笔记。

文章目录

  • 1. 简介
  • 2. 数学与数据结构基础
    • 2.1 线性代数部分
    • 2.2 graph基础部分
  • 3. Graph Filtering卷积
    • 3.1 Spectral-based Graph Neural Networks (GNN)
    • 3.2 Spatial-based GNN
    • 3.3 Spectral Methods vs. Spatial Methods
  • 4. Graph Pooling池化
  • 5. 除本课程外上文未提及的参考资料来源

从0开始的GNN导学课程笔记_第1张图片
1本文会涉及的概念 简单思维导图(没有全部详写)

1. 简介

  1. 表示学习 / Graph Embedding / 特征学习:把图、节点或边映射(投影)到k维隐空间,用该向量来表示原物。
    节点域/空间域
    表示向量
    表示学习的目标:相似节点的表示向量相似
    衡量节点的相似:连通性(离得近)、结构相似性
  2. Why networks?→因为关系是有用的
  3. graph上有监督机器学习的流程图从0开始的GNN导学课程笔记_第2张图片
    2
  4. 机器学习在graph上的经典任务:
    1. node classification节点分类 eg:识别电信诈骗用户
    2. link prediction eg:打电话预测关系;电商异构网络(购买行为)
    3. community detection社区发现
      以上三种的标签/label在节点和边上
    4. graph classification eg:预测化学分子毒性
      GNN主要要解决node classification和graph classification
      node classification和link prediction的模型结构会和graph classification有差异
  5. graph在深度学习上会遇到问题的原因(相比可以用CNN的image等欧式数据)
    1. Arbitrary neighbor size
    2. Complex topological structure
    3. No fixed node ordering

2. 数学与数据结构基础

本课程仅涉及无向图,且边的权非负

2.1 线性代数部分

  • 标量
  • 向量/矢量vector
    • 线性相关 / 线性无关/线性独立
  • 矩阵matrix
  • 矩阵与向量相乘/线性变换(这部分可以参考我之前撰写的《线性代数的本质》第3章笔记理解。大致内容是矩阵是一个线性变换)
    • 从空间上理解
      [ a 00 a 01 a 02 a 10 a 11 a 12 a 20 a 21 a 22 ] [ v 0 v 1 v 2 ] = v 0 [ a 00 a 10 a 20 ] + v 1 [ a 01 a 11 a 21 ] + v 2 [ a 02 a 12 a 22 ] \begin{bmatrix} a_{00} & a_{01} & a_{02} \\ a_{10} & a_{11} & a_{12} \\ a_{20} & a_{21} & a_{22} \end{bmatrix}\begin{bmatrix} v_{0} \\ v_{1} \\ v_{2} \end{bmatrix} = v_{0}\begin{bmatrix} a_{00} \\ a_{10} \\ a_{20} \end{bmatrix} +v_{1}\begin{bmatrix} a_{01} \\ a_{11} \\ a_{21} \end{bmatrix} +v_{2}\begin{bmatrix} a_{02} \\ a_{12} \\ a_{22} \end{bmatrix} a00a10a20a01a11a21a02a12a22v0v1v2=v0a00a10a20+v1a01a11a21+v2a02a12a22
    • 从向量变化的角度理解
    • 如果 v → \overrightarrow{v} v 变化前后仅在长短上发生了缩放,在方向上没有发生变化,则称 v → \overrightarrow{v} v A A A的一个特征向量,缩放幅度 λ \lambda λ v → \overrightarrow{v} v 对应的特征值(特征向量部分直观理解见我之前撰写的《线性代数的本质》第9章笔记)
  • eigen:德语本源、固有
    eigenvector描述了一些矩阵的特性,其运动方式
    多次对向量进行线性变换会使其接近于其最大特征值对应特征向量的方向( A n v → A^{n}\overrightarrow{v} Anv
  • A v → = λ v → A\overrightarrow{v}=\lambda \overrightarrow{v} Av =λv
    v → \overrightarrow{v} v 非零向量时, v → \overrightarrow{v} v 是A的特征向量 λ λ λ特征值
  • 特征分解(上面这个式子看起来就是特征值和特征向量原本意义,下面的式子第一行应该就是上面式子的另一形式,第二行应该也是……我就是这么理解的

    从0开始的GNN导学课程笔记_第3张图片
    3

  • B = M − 1 A M B=M^{-1}AM B=M1AM时,我们说matrix B is similar to matrix A,且此时A和B有相同的特征值
    证明方式:
    一种逻辑:如果A和B的特征多项式(即 d e t ( m a t r i x − λ I ) det(matrix-λI) det(matrixλI) )相等,那么可以证明它们具有相同的特征值。参考百度知道回答:相似矩阵有相同特征值,如何证明各自的特征值重数一样?
    另一种逻辑(解法基本参考上面的链接):按照我的理解来,当 d e t ( B − λ 2 I ) = 0 det(B-\lambda_{2}I)=0 det(Bλ2I)=0 λ 2 λ_{2} λ2是B的特征值,当 d e t ( A − λ 1 I ) = 0 det(A-λ_{1}I)=0 det(Aλ1I)=0的时候 λ 2 λ_{2} λ2是A的特征值,由相似的定义可知 B v → = λ 2 v → = M − 1 A M v → B\overrightarrow{v}=λ_{2}\overrightarrow{v}=M^{-1}AM\overrightarrow{v} Bv =λ2v =M1AMv
    所以此时 d e t ( λ 2 − M − 1 A M ) = 0 det(λ_2-M^{-1}AM)=0 det(λ2M1AM)=0
    d e t ( λ 2 − M − 1 A M ) = d e t ( λ 2 M ‾ − 1 M ‾ − M ‾ − 1 A M ‾ ) = d e t [ M − 1 ( λ 2 I − A ) M ] = d e t ( M − 1 ) d e t ( λ 2 I − A ) d e t ( M ) = d e t ( M − 1 ) d e t ( M ) d e t ( λ 2 I − A ) = d e t ( M − 1 M ) d e t ( λ 2 I − A ) = d e t ( λ 2 I − A ) = 0 \begin{aligned} det(λ_2-M^{-1}AM) & =det(λ_{2}\underline M^{-1}\underline M-\underline M^{-1}A\underline M) \\ & =det[M^{-1}(λ_{2}I-A)M] \\ & =det(M^{-1})det(λ_{2}I-A)det(M) \\ & =det(M^{-1})det(M)det(λ_2I-A) \\ & =det(M^{-1}M)det(λ_2I-A) \\ & =det(λ_2I-A) \\ & =0 \end{aligned} det(λ2M1AM)=det(λ2M1MM1AM)=det[M1(λ2IA)M]=det(M1)det(λ2IA)det(M)=det(M1)det(M)det(λ2IA)=det(M1M)det(λ2IA)=det(λ2IA)=0
    所以 λ 2 λ_2 λ2也是A的特征值,所以A和B的特征值相同

2.2 graph基础部分

  • G G G,节点集合 V V V,节点数 ∣ V ∣ |V| V,边集合 E E E
  • 节点上面存在信号,用以表示节点信息(可以是标量或向量。特征、表示向量可以当作信号)
  • 整个图的信号构成feature matrix
  • 邻接矩阵Adjency matrix(01矩阵,或者可以带权):对称的
  • 度矩阵Degree Matrix:对角矩阵, D j j D_{jj} Djj j j j位置节点的度数(边权和)
  • 拉普拉斯矩阵Laplacian Matrix L = D − A L=D-A L=DA
  • Normalized graph Laplacian  L = I − D − 1 2 A D − 1 2 L=I-D^{-\frac{1}{2}}AD^{-\frac{1}{2}} L=ID21AD21
    (对为什么要用正则化的拉普拉斯矩阵的诠释见后文GCN部分,大致来说就是加了个权)
  • L是描述图中节点信号的差分运算difference operator→对整个图进行一阶导数
    ( L f ) i = [ ( D − A ) f ] i = ∑ j ∈ N i A i j ( f i − f j ) \left( Lf\right) _{i}=\left[ \left( D-A\right) f\right] _{i}= \sum _{j\in Ni}A_{ij}\left( f_{i}-f_{j}\right) (Lf)i=[(DA)f]i=jNiAij(fifj)
    (一度邻居)
    推导过程:
    ( L f ) i = [ ( D − A ) f ] i = [ D f − A f ] i = [ [ d 1 f 1 d 2 f 2 ⋮ d n f n ] − [ a 11 f 1 + a 12 f 2 + … a 21 f 1 + a 22 f 2 + … ⋮ a n 1 f 1 + a n 2 f 2 + … ] ] i = [ [ ∑ j = 1 n a 1 j f 1 ∑ j = 1 n a 2 j f 2 ⋮ ∑ j = 1 n a n j f n ] − [ a 11 f 1 + a 12 f 2 + … a 21 f 1 + a 22 f 2 + … ⋮ a n 1 f 1 + a n 2 f 2 + … ] ] i = ∑ j = 1 n a i j f i − ∑ j = 1 n a i j f j w h i l e   f = [ f 1 f 2 ⋮ f n ] \begin{aligned} \left( Lf\right) _{i} & =\left[ \left( D-A\right) f\right] _{i} \\ & =\left[ Df-Af\right] _{i} \\ & =\left[ \begin{bmatrix} d_{1}f_{1} \\ d_{2}f_{2} \\ \vdots \\ d_{n}f_{n} \end{bmatrix}-\begin{bmatrix} a_{11}f_{1}+a_{12}f_{2}+\dots \\ a_{21}f_{1}+a_{22}f_{2}+\dots \\ \vdots \\ a_{n1}f_{1}+a_{n2}f_{2}+\dots \end{bmatrix}\right]_{i} \\ & =\left[ \begin{bmatrix} \sum^{n}_{j=1}a_{1j}f_{1} \\ \sum^{n}_{j=1}a_{2j}f_{2} \\ \vdots \\ \sum^{n}_{j=1}a_{nj}f_{n} \end{bmatrix}-\begin{bmatrix} a_{11}f_{1}+a_{12}f_{2}+\dots \\ a_{21}f_{1}+a_{22}f_{2}+\dots \\ \vdots \\ a_{n1}f_{1}+a_{n2}f_{2}+\dots \end{bmatrix}\right]_{i} \\ & =\sum ^{n}_{j=1}a_{ij}f_{i}-\sum ^{n}_{j=1}a_{ij}f_{j} \\ while \ f=\begin{bmatrix} f_{1} \\ f_{2} \\ \vdots \\ f_{n} \end{bmatrix} \end{aligned} (Lf)iwhile f=f1f2fn=[(DA)f]i=[DfAf]i=d1f1d2f2dnfna11f1+a12f2+a21f1+a22f2+an1f1+an2f2+i=j=1na1jf1j=1na2jf2j=1nanjfna11f1+a12f2+a21f1+a22f2+an1f1+an2f2+i=j=1naijfij=1naijfj
  • 拉普拉斯矩阵的特性
    • 对称的

    • 半正定
      x T L x = ∑ i , j = 1 n 1 2 A i j ( x i − x j ) 2 ≥ 0 x^{T}Lx=\sum^{n}_{i,j=1}\frac{1}{2}A_{ij}(x_i-x_j)^2\geq 0 xTLx=i,j=1n21Aij(xixj)20
      证明过程:
      x T L x = x T D x − x T A x = ∑ i = 1 n d i x i 2 ( 这 由 D 的 对 角 性 质 得 到 ) − ∑ i , j = 1 n x i x j A i j ( 这 可 以 由 计 算 得 到 ) = 1 2 ( ∑ i = 1 n d i x i 2 − 2 ∑ i , j = 1 n x i x j A i j + ∑ j = 1 n d j x j 2 ) ( 这 跟 上 一 行 是 一 样 的 , 就 是 提 出 了 1 / 2 ) = 1 2 ( ∑ i = 1 n ( ∑ j = 1 n A i j ) x i 2 − 2 ∑ i , j = 1 n x i x j A i j + ∑ j = 1 n ( ∑ i = 1 n A j i ) x j 2 ) ( 由 度 矩 阵 和 邻 接 矩 阵 的 关 系 得 ) = 1 2 ( ∑ i , j = 1 n A i j x i 2 − 2 ∑ i , j = 1 n x i x j A i j + ∑ i j , i = 1 n A j i x j 2 ) = 1 2 ∑ i , j = 1 n A i j ( x i 2 − 2 x i x j + x j 2 ) = 1 2 ∑ i , j = 1 n A i j ( x i − x j ) 2 ≥ 0 \begin{aligned} x^TLx & =x^TDx-x^TAx \\ & =\sum^n_{i=1}d_ix_i^{2}(这由D的对角性质得到)-\sum^n_{i,j=1}x_ix_jA_{ij}(这可以由计算得到) \\ & =\frac{1}{2}(\sum^n_{i=1}d_ix_i^{2}-2\sum^n_{i,j=1}x_ix_jA_{ij}+\sum^n_{j=1}d_jx_j^{2})(这跟上一行是一样的,就是提出了1/2) \\ & =\frac{1}{2}(\sum^{n}_{i=1}(\sum^{n}_{j=1}A_{ij})x_i^2-2\sum^n_{i,j=1}x_ix_jA_{ij}+\sum^{n}_{j=1}(\sum^{n}_{i=1}A_{ji})x_j^2)(由度矩阵和邻接矩阵的关系得) \\ & =\frac{1}{2}(\sum^{n}_{i,j=1}A_{ij}x_i^2-2\sum^n_{i,j=1}x_ix_jA_{ij}+\sum^{n}_{ij,i=1}A_{ji}x_j^2) \\ & =\frac{1}{2}\sum^{n}_{i,j=1}A_{ij}(x_i^2-2x_ix_j+x_j^2) \\ & =\frac{1}{2}\sum^{n}_{i,j=1}A_{ij}(x_i-x_j)^2 \geq 0 \end{aligned} xTLx=xTDxxTAx=i=1ndixi2Di,j=1nxixjAij=21(i=1ndixi22i,j=1nxixjAij+j=1ndjxj2)1/2=21(i=1n(j=1nAij)xi22i,j=1nxixjAij+j=1n(i=1nAji)xj2)=21(i,j=1nAijxi22i,j=1nxixjAij+ij,i=1nAjixj2)=21i,j=1nAij(xi22xixj+xj2)=21i,j=1nAij(xixj)20

    • 特征值非负
      证明半正定矩阵特征值非负:
      以下完整的证明链:从0开始的GNN导学课程笔记_第4张图片

      4

       证明n阶矩阵一定有n个特征值: d e t ( A − λ 1 I ) = 0 det(A-λ_{1}I)=0 det(Aλ1I)=0左边是个n次多项式,必有n个解
       证明实对称矩阵的特征值都是实数(似乎是同济的证法):(共轭是虚数取反)从0开始的GNN导学课程笔记_第5张图片
      5

       证明实对称矩阵可对角化(没完全看懂,但是我寻思应该差不多就是这么回事儿):
      6


       另有一个很全面的也是按照这个顺序来的博文实对称矩阵一定可以对角化,另证明了实对称矩阵属于不同特征值的特征向量正交。这篇博文最后证明也用的是数学归纳法,还是有点没看懂。
       (以下这些未标明来源的图片都截图自该博文)
      证明实对称矩阵属于不同特征值的特征向量正交:

      从0开始的GNN导学课程笔记_第6张图片
      证明实对称矩阵一定可以对角化: 从0开始的GNN导学课程笔记_第7张图片从0开始的GNN导学课程笔记_第8张图片从0开始的GNN导学课程笔记_第9张图片
      总之可以用数学归纳法证明,具体怎么搞等我学好矩阵论再回来研究吧。

      参考证明半正定矩阵特征值非负这一百度知道回答:
      由于上述证明,可知对于实对称阵A,一定存在可逆阵P,使得 P − 1 L P = [ λ 1 λ 2 … λ n ] P^{-1}LP=\begin{bmatrix} λ_1 & & & \\ & λ_2 & & \\ & & \dots & \\ & & & λ_n\end{bmatrix} P1LP=λ1λ2λn
      Y = [ y 1 y 2 ⋮ y n ] Y=\begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n\end{bmatrix} Y=y1y2yn
      X = P Y ⇒ L 的 正 定 性 X T L X ≥ 0 ⇒ ( P Y ) T L ( P Y ) ≥ 0 ⇒ Y T ( P T L P ) Y ≥ 0 ⇒ Y T [ λ 1 λ 2 … λ n ] Y ≥ 0 ⇒ a 1 ∗ y 1 2 + a 2 ∗ y 2 2 + . . . + a n ∗ y n 2 ≥ 0 \begin{aligned} X=PY & \xRightarrow{L的正定性} X^TLX\geq 0 \\ & \Rightarrow (PY)^TL(PY)\geq 0 \\ & \Rightarrow Y^T(P^TLP)Y\geq 0 \\ & \Rightarrow Y^T\begin{bmatrix} λ_1 & & & \\ & λ_2 & & \\ & & \dots & \\ & & & λ_n\end{bmatrix}Y\geq 0 \\ & \Rightarrow a_1*y_1^2+a_2*y_2^2+...+a_n*y_n^2\geq 0 \end{aligned} X=PYL XTLX0(PY)TL(PY)0YT(PTLP)Y0YTλ1λ2λnY0a1y12+a2y22+...+anyn20
      由于列向量Y的任意性,所以A的特征值 a 1 , a 2 , . . . , a n a_1,a_2,...,a_n a1,a2,...,an必须 ≥ 0 \geq 0 0

    • 紫色部分为参考拉普拉斯矩阵的性质一文做的补充(本文还有一个L的零特征值的重数等于图连通子图的个数这一特性,此外对归一化拉普拉斯矩阵用途也做了似乎更多的数学证明。未作了解):
      ①L的行和为0
      ②L的一个特征值为0
      证明:设置一个n维向量 e → = [ 1 1 ⋮ 1 ] \overrightarrow{e}=\begin{bmatrix} 1 \\ 1 \\ \vdots \\ 1\end{bmatrix} e =111,方阵乘 e → \overrightarrow{e} e 即得行和向量。由①知 L e → = 0 → L\overrightarrow{e}=\overrightarrow{0} Le =0 ,于是 L e → = 0 → e → L\overrightarrow{e}=\overrightarrow{0}\overrightarrow{e} Le =0 e ,根据特征值和特征向量的定义可知L的一个特征值为0,且该特征值对应的特征向量之一为 e → \overrightarrow{e} e

    • 有N个正交特征向量,构成N维空间

    • 可以特征分解从0开始的GNN导学课程笔记_第10张图片

      3

3. Graph Filtering卷积

  1. 卷积是一个定义在两个函数(如f和g)上的运算
    h ( t ) = ( f ∗ g ) ( n ) = d e f ∫ f ( τ ) g ( n − τ ) d τ h(t)=(f * g)(n) \overset{def}{=} \int{f(\tau)g(n-\tau)d\tau} h(t)=(fg)(n)=deff(τ)g(nτ)dτ
    n n n是常量, τ \tau τ是自变量, f f f g g g的变量和是常量

  2. 例子1:(翻转相乘)从0开始的GNN导学课程笔记_第11张图片

    3

  3. 例子2:同时丢2个骰子,求和为4的概率(关于n=4的卷积)从0开始的GNN导学课程笔记_第12张图片

    3

  4. 例子3:image上的卷积——卷积后每个位置的结果是九宫格的加权平均
    从0开始的GNN导学课程笔记_第13张图片

    3

    卷积核g
    原始信号f
    卷积在数学上是一个信号处理过程(滤波器、对信号进行平滑的过程)

  5. CNN
    (1)学到局部patterns(通过局部的卷积操作localized convolution filter进行学习,将卷积结果进行层级堆叠,把学到的信息变成一个层次化的多尺度的信息multi-scale hierarchical patterns)
    (2)共享参数

    欧式数据和非欧数据对比:

    1. 欧式数据:平移不变性
    2. 非欧数据无法直接用CNN的原因:
      (1) 没有平移不变性(图上节点没有固定的顺序,更改顺序后邻接矩阵也会剧变)
      (2) 邻居数不一样导致需要不同的卷积核,不能共享参数,因此没法用CNN
  6. 谱方法Spectral Methods:图映射到谱域卷积,再映射回来
    空间方法Spatial Methods:在原空间域上定义卷积操作

  7. 历史发展:谱方法 → \rightarrow 空间方法
    GNN的本质是对图信号进行处理,尝试作卷积

  8. 卷积/滤波:学出节点的表示从0开始的GNN导学课程笔记_第14张图片

    3

  9. General GNN Framework

    1. For node-level tasks从0开始的GNN导学课程笔记_第15张图片
      3
    2. For graph-level tasks从0开始的GNN导学课程笔记_第16张图片
      3

3.1 Spectral-based Graph Neural Networks (GNN)

  1. 信号处理领域:将时域信号投影到频域上,方式是傅里叶变换(后续内容仅借鉴其物理意义,所以我还没搞懂这是个什么玩意)
    公式: f ^ ( ξ ) = ∫ f ( t ) e − 2 π i ξ t d t \hat{f}(\xi)=\int{f(t)e^{-2\pi i\xi t}dt} f^(ξ)=f(t)e2πiξtdt(不用记,不用理解)
    泰勒展开:用多个简单函数的和来近似复杂函数
    将一个时空域的信号拆分成若干个正弦函数的线性组合
    频域空间是由这些正弦函数构成的基向量,信号投影后的坐标就由这些基向量表示(可参考我之前写的线性代数的本质笔记中 第11章:抽象向量空间 部分理解)
    举例来说: f = λ 1 g 1 + λ 2 g 2 f=\lambda_1g_1+\lambda_2g_2 f=λ1g1+λ2g2(2个正弦波)
    傅里叶变换的示意图:(大概就是把一个波拆成很多个正弦/余弦波)从0开始的GNN导学课程笔记_第17张图片

    3

  2. 时域:自变量是时间
    频域:自变量是波动的频率
    空间域:自变量是位置、坐标……
    节点域:描述图像时,自变量是节点

  3. 低频信号、高频信号(image上变化大或小的部分)

  4. Discrete Time Fourier Basis从0开始的GNN导学课程笔记_第18张图片

    3

  5. 泰勒展开

  6. 在图上定义傅里叶变换Graph Fourier Transform

    1. 以拉普拉斯矩阵的n个正交特征向量所张成的空间作为投影到的新空间(Spectral Space)。将这些向量组合,按其对应特征值大小排序,得到矩阵 U U U
      对原图上的信号 f ∈ R n f\in R^n fRn,其Graph Fourier Transform是: f ^ = U T f \pmb{\hat{f}=U^Tf} f^=UTff^=UTff^=UTf
      U T f U^Tf UTf是将 f f f投影到这个空间上(对每个方向的投影都是用该方向向量点积 f f f)。从0开始的GNN导学课程笔记_第19张图片
      3
    2. Graph Fourier inverse transform f = U f ^ \pmb{f=U\hat{f}} f=Uf^f=Uf^f=Uf^从0开始的GNN导学课程笔记_第20张图片
      3

      (此图中间的 U T U^T UT应当为 U U U
    3. 拉普拉斯矩阵特征值代表了图信号的变化频率。特征值越小,表示信号变化越平缓(频率低)
      拉普拉斯矩阵特征向量(基向量)表征了图信号的变化过程
  7. 卷积定理:2个信号的卷积等于这2个信号傅里叶变换后的点积
    f ∗ G g = U ( ( U T f ) ⊙ ( U T g ) ) f*_Gg=U\left( \left( U^Tf\right) \odot \left( U^Tg\right) \right) fGg=U((UTf)(UTg))
    where U U U is the matrix of the eigenvector of the normalized Laplacian matrix L = I − D − 1 2 A D − 1 2 L=I-D^{-\frac{1}{2}}AD^{-\frac{1}{2}} L=ID21AD21, forming the Fourier basis.
    逻辑就是先投影到谱域,点积,再投影回来

  8. g g g:空间域上的卷积核 → 反正卷积也是在谱域上做的,不如直接把 ( U T g ) \left( U^Tg\right) (UTg)整体视作卷积核(谱域上的卷积核)
    在图上做卷积:
    从0开始的GNN导学课程笔记_第21张图片

    3

    (这个对角阵其实直接用一个向量也可以,只是对角阵比较好代)
    G θ G_\theta Gθ做谱域上的卷积核:空间域上的卷积核 g g g是free的→ U T g U^Tg UTg也是free的( θ \theta θ是要学的参数)

  9. 信号 f f f本质上是一个以节点为自变量的函数,将节点投影到实数域空间上
    f : V → R d f:V→R^d f:VRd

  10. Spectral Graph CNN从0开始的GNN导学课程笔记_第22张图片

    3

    Drawbacks of SCNN

    1. Requiring eigen-decomposition of Laplacian matrix
      Eigenvectors are explictly used in convolution
    2. High computational cost
      Multiplication with graph Fourier basis U U U is O ( n 2 ) O(n^2) O(n2)(这个 U U U大概率不稀疏)
    3. Not localized in vertex domain:因为 G θ G_\theta Gθ是free的
      从0开始的GNN导学课程笔记_第23张图片
      3

      如使 G θ ( L ) = L G_\theta(L)=L Gθ(L)=L,则某一点结果不受不直接相连的点的信号影响(L上不直接相连的点就是0)
      如使 G θ ( L ) = L 2 G_\theta(L)=L^2 Gθ(L)=L2,则有影响(不直接相连的点处不再是0了)
      如使 G θ ( L ) = cos ⁡ L G_\theta(L)=\cos L Gθ(L)=cosL,则泰勒展开后一定能得到一个 L N L^N LN。如果图是一个连通图,则图中任一节点都会影响别的节点的信号
    4. 需要学习的参数过多 G G G O ( N ) O(N) O(N) 个参数)
  11. 邻接矩阵的平方 A 2 A^2 A2 A i j 2 A^2_{ij} Aij2是从一个节点 i i i出发,通过长度为2的path/walks可以达到的另一个节点 j j j的路径/走法的数量(也可以说是 i j ij ij之间长度为2的路径的数量)
    对这一知识点的详细介绍见我撰写的cs224w(图机器学习)2021冬季课程学习笔记2,可以通过Ctrl+F搜索“邻接矩阵求幂”关键词跳转到相应位置

  12. 优化:对 G θ G_\theta Gθ限制——必须是拉普拉斯矩阵特征值的一个多项式函数。
    代入后可以发现 U U U都被消掉了( ∵ \because 拉普拉斯矩阵的特征分解: U Λ U = L U\Lambda U=L UΛU=L)→只需要得到图的拉普拉斯矩阵而不需要做特征分解从0开始的GNN导学课程笔记_第24张图片

    3
    从0开始的GNN导学课程笔记_第25张图片
    3

  13. ChebyNet

    1. 只会被K度邻居影响→可以localize
    2. Computational cost O ( N 2 ) → O ( ∣ E ∣ ) O(N^2)→O(|E|) O(N2)O(E)(从 U U U换成比较稀疏的拉普拉斯矩阵)
    3. 用切比雪夫级数来做卷积核的近似(这部分还没看)

3.2 Spatial-based GNN

  1. General Idea: Aggregating neighbor information
  2. h v l + 1 = ∑ u ∈ n e [ v ] h u l h^{l+1}_v=\sum_{u\in ne[v]}h^l_u hvl+1=une[v]hul
    这样聚合后,点本身会失去自己的信息(除非有自环);度数高的节点会获得过高的信号绝对值(会造成梯度爆炸或梯度消失);同时这也没有卷积了
  3. GCN: Graph Convolution Network(ChebyNet的简化:约束K(0或1))
    从0开始的GNN导学课程笔记_第26张图片
    3

    从0开始的GNN导学课程笔记_第27张图片
    3

    renormalization trick: 加自环(否则会节点迷失自我)
    用归一化后的拉普拉斯矩阵原因:用拉普拉斯矩阵会变成邻居信号和,用归一化后的拉普拉斯矩阵会变成加权平均
  4. GCN已经没有卷积了从0开始的GNN导学课程笔记_第28张图片
    3

    这里面没有卷积核了, W W W是对节点特征用linear function做一个变化(feature transformation), W W W是linear function的一个参数
  5. GCN的目标函数是cross entropy从0开始的GNN导学课程笔记_第29张图片
    3
  6. 在实验上,GCN比ChebyNet表现更好(尤其在节点分类问题上),原因:
    • 卷积也可以视作图的filter,ChebyNet考虑了L的k次方,filter: ∑ k = 1 K − 1 θ k L k f \sum^{K-1}_{k=1}\theta_kL^kf k=1K1θkLkf λ \lambda λ大时增长的权重就会变大( L = λ U U − 1 L=\lambda UU^{-1} L=λUU1)。 λ \lambda λ大表示高频信号
    • n o d e   c l a s s i f i c a t i o n \boxed{node\ classification} node classification 时其实不喜欢高频信号(太远了)(信号处理有时高频信号甚至会是噪音)
    • GCN约束K,把高频信号给过滤掉了
    • 因为ChebyNet适用于异常检测
  7. GCN缺点
    1. GCN只能做transdutive learning(训练时需要看到包括测试集的全部数据)
      Inductive learning
    2. GCN不支持mini-batch
    3. GCN没有卷积了
  8. 将CNN普适到图上:从0开始的GNN导学课程笔记_第30张图片
    3

    (第一步受无平移不变性的影响)从0开始的GNN导学课程笔记_第31张图片
    3

    确定一个数,找图上点最像的这么多个点作为邻居(sample一个子图来),这样邻居数量就能确定了。
  9. GraphSAGE从0开始的GNN导学课程笔记_第32张图片
    3

    约束这个邻域一定是一度邻居或二度邻居,走random walk采样获得节点作为邻域
    从0开始的GNN导学课程笔记_第33张图片
    3

从0开始的GNN导学课程笔记_第34张图片

3

  1. GAT Graph Attention Network:主要改进GCN没有卷积的问题(GCN这样的缺点是没权了)
    用attention机制来量化点的相似性(用这个来加权)
    attention matrix就是卷积核
    从0开始的GNN导学课程笔记_第35张图片
    3

3.3 Spectral Methods vs. Spatial Methods

  1. 频域方法是空间域方法的一个子集
  2. 如果显式定义卷积核,就是频域方法(知道投影到了一个什么空间)

4. Graph Pooling池化

  1. 学出图的表示从0开始的GNN导学课程笔记_第36张图片
    3
  2. Graph Coarsening图粗化
    1. 节点聚类,聚成一个supernode→卷积→Pooling→直到只剩下1个节点 ⇒ \Rightarrow 这就是整个图的表示
    2. 聚类可以GNN前做,也可以边GNN边做
    3. DiffPool从0开始的GNN导学课程笔记_第37张图片
      3
  3. Node Selection节点选择
    选出一部分有代表性的节点

5. 除本课程外上文未提及的参考资料来源

  1. 建议学习:线性代数,图谱论,信号处理。课程中提及的模型的原论文
  2. 矩阵的特征分解

  1. 我自己画的 ↩︎

  2. 截图自CS224W 01.intro的slides ↩︎

  3. 截图自本课程 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  4. 也是我自己画的 ↩︎

  5. 唉,这个情况比较尴尬,我忘了我从哪儿复制的这张图了…… ↩︎

  6. 图源为什么实对称矩阵一定能对角化? - hkbv Lu的回答 - 知乎(这个问题下其他回答也可作此问题回答的参考) ↩︎

你可能感兴趣的:(人工智能学习笔记,人工智能,卷积,信号处理,机器学习,深度学习)