图卷积神经网络入门笔记

图卷积神经网络入门笔记

1CNN

CNN与TCN(时序数据)在欧式数据中获得巨大的成功,如image、text、audio、video,并且应用十分广泛,如图像分类、实体识别、机器翻译等
在这里插入图片描述
在这里插入图片描述

1.1CNN的成功

在于能够学习到局部的稳定的结构,通过局部化的卷积核,并使用层级堆叠,将学习的局部结构变成层次化、多尺度的结构模式

  1. 通过局部卷积过滤层(local convolution filter)能够学习到局部的稳定的结构(local stationary structures)
  2. 多尺度、层次化的结构模式(multi-scale hierarchical patterns)
  3. 参数共享
  4. 具有平移不变性的数学特征
    DCN-.>CNN最重要的一步就是参数共享

2欧式数据网络到非欧数据的迁移

2.1主要困难

  1. 非欧式数据的非规则结构
    格子网络数据:可以使用小patten(3x3,5x5等filter)
    非规则数据:度非常大(幂分布,例如e-mail),无关于卷积直观的定义

2.2目标

==》1.如何定义图像卷积?2.如何定义图像pooling?

3卷积

3.1卷积认识

在这里插入图片描述
卷积是一个关于函数f和g之间的数学运算 ,运算之后产生第三个函数h,h就是f和g做点积之后的积分。
在连续情况下,可以认为是连续信号变化的过程。f就是原始信号,g是卷积核(一般采用局域的信号,如方波),卷积核对原始数据处理之后会得到一个新的信号(比原来的信号更平滑)。卷积操作是通信领域的基本操作,在没有GTRS之前,GSM等模型模拟信号中通信中通常使用卷积对信号实现信号变换,即调制,在接受端做解调,来实现模拟信号的通信。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在离散情况下,每个点是一个像素,整个矩阵就表达了图像的信号。时域信号是关于时间的函数,而图像信号是在格子网络中的一个取值。其卷积核是更小的一个矩阵,通过卷积运算实现对图像的处理。
在这里插入图片描述

小结:

  1. 卷积是一种数学运算
  2. 卷积是对信号的处理的一种方式,使其更加平滑

3.2卷积定义

  1. 谱方法(Spectral Methods):

  2. 空间方法(Spatial Methods):
    在这里插入图片描述

  3. 谱方法是空间方法的子集
    两者之间的区别:

  4. 谱方法在谱域中定义子模板,空间方法在节点域中直接定义子模板

  5. 谱方法需将图上的信号变换到谱域,在谱域中实现卷积的定义之后根据卷积性质变回空间域

  6. 谱域上的卷积核在节点域上并非localized

  7. 空间域定义在一个目标节点的所有领域节点的加权平均
    空间方法由于每个节点的邻居度不同,如何定义大小不一的领域并实现参数共享非常重要的挑战(GCN、GAT都在解决这个问题)

4 Spectral method (谱方法)

4.1图卷积神经网络的输入输出

在这里插入图片描述

  1. V:节点集合,个数为你n=|V|
  2. E:边的集合
  3. W:边上的权重集合
  4. d:,每个节点有一个d维的特征
  5. X:输入的特征矩阵为X,可以看作是一种信号
  6. D:度矩阵,D属于R^|V|x|V是一个对角矩阵,其中对角线元素的值等于邻接矩阵中对应顶点所在行(列)的元素之和。
  7. A:邻接矩阵,A属于R|V|x|V|,元素A(i,j)=1表示顶点vi,vj之间存在边,反正则为o。领接矩阵的对角线元素值为0.
    邻接矩阵的k次方——Ak中元素(i,j)的值.Ak(i,j)等于点vi,vj之间长度为k的walk的数量

4.2拉普拉斯算子

在这里插入图片描述

  1. 拉普拉斯算子定义了图上的导数,刻画图上信号的平滑程度,公式:
    L = D − W L = D - W L=DW
    D   i i   = ∑ j W i j D~ii~= \displaystyle\sum_{j}Wij D ii =jWij
    对角线的度矩阵D减去带权的邻接矩阵W
  2. 标准化的L
    L = I − D − 1 2 W D − 1 2 L = I - D^{-\frac{1}{2}}WD^{-\frac{1}{2}} L=ID21WD21

4.3 图傅里叶变换(Graph Fourier Transform)

  1. Fourier basis of graph G
    根据谱方法的目标,将信息投影到谱域上,使用拉普拉斯矩阵来构造这组基。
    L = U Λ U T L = U\varLambda U^{T} L=UΛUT
    其中U = [u1,…,un], Λ \varLambda Λ=diag([ λ \lambda λ1,…,un])
    Lnxn的n个特征向量是正交的,对应n个基{u}nl=1,l表示第几层。

  2. Graph Fourier Transform
    目标是将X投影到这组基上。
    先以d=1为例,此时输入的信息x可以简单看作是一个n维向量x ∈ \in Rn
    图傅里叶变换:
    x ^ = u T x \widehat{x} = u^{T} x x =uTx
    图傅里叶反变换:
    x = u x ^ x = u \widehat{x} x=ux

4.4 在谱域中定义卷积(Define convolution in spectral domain)

  1. 在信号处理中,有两个定理:两个信号的卷积的傅里叶变换==它们傅里叶变换后的点积,此处也是如此定义:
    x ∗   G y = U ( U T x ) ⊙ ( U T y ) x*\ _{G}y = U(U^{T}x) \odot(U^{T}y) x Gy=U(UTx)(UTy)
    x是输入信号,y是节点域上的卷积核, U T y U^{T}y UTy是谱域上的卷积核。
  2. 令:
    U T y = [ θ 1 , . . . , θ n ] U^{T}y = [\theta_{1},...,\theta_{n}] UTy=[θ1,...,θn]
    g θ = d i a g ( [ θ 1 , . . . , θ n ] ) g_{\theta} = \mathrm{diag}([\theta_{1},...,\theta_{n}]) gθ=diag([θ1,...,θn])
    则:
    x ∗   G y = U ( U T x ) ⊙ ( U T y ) x*\ _{G}y = U(U^{T}x) \odot(U^{T}y) x Gy=U(UTx)(UTy)
    ↓ ↓ \downarrow \downarrow
    x ∗   G y = U g θ U T x x*\ _{G}y = U g_{\theta} U^{T}x x Gy=UgθUTx
  3. 上式看作三步:(1)图傅里叶变换 U T x U^{T}x UTx;(2)使用 g θ g_{\theta} gθ作为filter,在谱域上进行卷积 g θ U T x g_{\theta}U^{T}x gθUTx;(3)图傅里叶逆变换回到节点域 U g θ U T x Ug_{\theta}U^{T}x UgθUTx
    在这里插入图片描述

4.5 谱图卷积神经网络(Spectral Graph CNN)

x k 1 , j = h ( ∑ i = 0 f k ) U F k , i , j U T x k , i x_{k_{1},j} = h \Big( \displaystyle\sum_{i=0}^{f_{k}} \Big)UF_{k,i,j}U^{T}x_{k,i} xk1,j=h(i=0fk)UFk,i,jUTxk,i
x k , i x_{k,i} xk,i: k层的信号(Signals in k-th layer),即输入信息
F k , i , j F_{k,i,j} Fk,i,j:k层的过滤器(Filter in the k-th layer),相当于4.3的 g θ g_{\theta} gθ
如下图所示:
在这里插入图片描述
但该网络面临一下三个困难:

  1. 依赖于Laplacian matrix 的 Eigenvalue decomposition(特征值分解) 复杂度高达 O ( n 3 ) O(n^{3}) O(n3)
  2. 具有较高的计算开销,与图形傅里叶基相乘的U是稠密向量,复杂度为 O ( n 2 ) O(n^{2}) O(n2)
  3. 对某个节点做处理时,其领域不是其相交的节点,而是整个节点域,即非localized

4.6 ChebyNet(parameterizing filter)

为了解决以上难题,2016年出现了多项式逼近参数化的卷积滤波器,如下所示,把谱域的卷积核做了参数化 ,参数化的过程就是使用多项式的函数做近似或者逼近,原来的 θ \theta θ 是自由的卷积核,参数任意,现在变成了 拉普拉矩阵的特征值对应的对角阵的多项式行数。
在这里插入图片描述
那么现在的ChebyNet为:
x ∗   C y = U g β ( Λ ) U T x = ∑ k = 0 K − 1 β k L k x x *\ _{C} y = U g_{\beta}( \Lambda) U^{T}x = \displaystyle\sum_{k=0}^{K-1}\beta_{k}L^{k}x x Cy=Ugβ(Λ)UTx=k=0K1βkLkx
优势: (1)参数个数由原来的自由的n个参数将为k个参数 ;(2)不在依赖 U U U,即不需要做特征分解;(3) L L L是稀疏的,降低计算复杂度
ChebyNet的提出很大程度上解决了以上三个难题。但是鉴于这些问题的来源都是傅里叶变换的基 U U U,我们可以换掉 U U U,克服其不稠密,不具有loacalization,计算复杂度高等等。

4.7 傅里叶基 vs 小波基

在这里插入图片描述
以上图片就是傅里叶变换基与小波基的区别,傅里叶是一个交替变换的函数,而小波变换不是正弦波,只在局部有信号,其他地方都是0的波。其天生具有优势。
在这里插入图片描述
通过换基的操作之后并没有改变图神经网络的结构
在这里插入图片描述
这样我们得到的网络除了基不同与原来没有变化
在这里插入图片描述
参数个数: O ( n 3 ) O(n^{3}) O(n3) ====》》 O ( n ∗ p ∗ q ) O(n*p*q) O(npq)
但是参数依然太多,虽然CNN和RNN中将卷积和特征变换一起完成的,这样造成的参数会成倍增长。那么将图卷积与特征变换分开会发生什么变化?
在这里插入图片描述
参数个数: O ( n ∗ p ∗ q ) O(n*p*q) O(npq) ====》》 O ( n + p ∗ q ) O(n + p*q) O(n+pq)
解耦之后的网络,第一步只做卷积,第二步再进行特征变换, 是参数个数大幅度下降。
实验结果,与ChebyNet对比
在这里插入图片描述
小波基的图卷积神经网络有很好的可解释性
在这里插入图片描述

5 Spatial method (空间方法)

谱方法是空间方法的子集。我们要充分利用CNN、RNN这些经典模型的优势,就将其优点迁移过来,先说一下我们能从标准的CNN中学到什么结构。
在这里插入图片描述
从上图看,分三步。1选择一个节点,确定它的领域;2给它的领域节点编号;3参数共享。只有第一步需要做平移不变性的事情,其他不需要我们进行什么操作。针对第一步,我们用类推的方法来实践
在这里插入图片描述
首先对于每个节点,选择固定个数的节点作为其相邻节点,根据定义的网络邻近度度量,为每一个节点选择固定个数的邻居节点;然后将这些邻居节点进行排序以距离长度为标准,越近排越前;最后选择一个固定大小的窗口做参数共享。

5.1 GraphSAGE

针对以上的步骤,不采用网络邻近度量选择固定个数的邻居节点,而提出以节点为中心随机行走,选出固定个数的邻居节点,之后将邻居节点做聚合拼接,来实现图上的卷积.

  1. 随机行走选这固定个数邻居节点,距离越近选择概论越大:
    a v ( k ) = A G G E R G A T E ( k ) ( h u ( k − 1 ) : u ∈ N ( v ) ) a_{v}^{(k)} = AGGERGATE^{(k)}(h_{u}^{(k-1)}:u\in\natnums(v)) av(k)=AGGERGATE(k)(hu(k1):uN(v))
  2. 聚合该点的所有邻居节点
    h v ( k ) = C O M B I N E ( k ) ( h u ( k − 1 ) , a v ( k ) ) h_{v}^{(k)} = COMBINE^{(k)}(h_{u}^{(k-1)} ,a_{v}^{(k)}) hv(k)=COMBINE(k)(hu(k1),av(k))
    在这里插入图片描述
    图形神经网络的一般框架网络:聚合相邻节点的信息更新中心节点的表示。
    GraphSAGE已经不在追求卷积了,之后诞生了简化版本GCN。

5.2 GCN:Graph Convolution Network

GCN在原论文中是谱方法的引申,但其也是空间方法的起点。其原理是将邻居信息拿过来进行聚合操作就完了,公式如下
Z = f ( X , A ) = s o f t m a x ( A ^ R e L U ( A ^ X W ( 0 ) ) W ( 1 ) ) Z = f(X,A) = softmax(\widehat{A}ReLU(\widehat{A}XW^{(0)})W^{(1)}) Z=f(X,A)=softmax(A ReLU(A XW(0))W(1))
W ( 0 ) , W ( 1 ) W^{(0)},W^{(1)} W(0),W(1)就是特征变换的参数
把目标节点的邻居节点进行聚合,然后加权平均,权重由Laplacian Matrix直接定义,故其权重为非可变参数。不存在可学习的卷积核,所以这里沈华伟认为不能称之为卷积,更像是一种平滑操作或者半监督学习。
在这里插入图片描述

5.3 GAT:Graph Attention Network(GAN已经被生成对抗网络占了)

GAT认为GCN根本就没有卷积,还有参数共享也没有,做参数共享靠的是Laplacian Matrix,而且仅仅用在参数变换中 。故其参数共享只在feature transformation,即 W ( 0 ) , W ( 1 ) W^{(0)},W^{(1)} W(0),W(1)
GAT在GCN的基础上为每个节点增加了 a ⃗ T \vec{a}^{T} a T,该 a ⃗ T \vec{a}^{T} a T收集邻居信息并共享给其他节点的参数,相当于conbine一下,如下式
在这里插入图片描述
每个节点的 a i , j a_{i,j} ai,j都是通过对所有节点的注意得到的,达到所有节点的参数共享,作者自称这种方式为卷积操作。

5.4 MoNet:A general framework for spatial methods

  1. 定义一个核函数,无论是否参数化,其用来以衡量目标节点与其他节点的相似度,
  2. 卷积就是对这些不同相似度定义方式的加权平均
  3. 卷积核是这些核函数的权重在这里插入图片描述
    核函数就是谱方法中的基,空间方法中要选择的邻居节点的相似度表达

6 谱方法与空间方法

6.1 联系与区别

谱方法是空间方法的特例,二者属于包含于关系
在这里插入图片描述
谱方法需要显示地定义核函数,即我们自定义一个空间,然后将目标节点通过某种变换投射到这个空间(傅里叶变换:投影到L矩阵特征向量张开的空间,小波变换:小波基张开的空间)
空间方法不需要知道空间是什么,仅需要知道卷积核。
在这里插入图片描述

  1. Spectral CNN中核矩阵就是 u 1 u 1 T u_{1}u_{1}^{T} u1u1T u 2 u 2 T u_{2}u_{2}^{T} u2u2T…;卷积核的参数就是 θ 1 \theta_{1} θ1 θ 2 \theta_{2} θ2

  2. ChebNet中核矩阵就是 I I I L 1 L^{1} L1 L 2 L^{2} L2 L 3 L^{3} L3…;卷积核的参数就是 θ 0 \theta_{0} θ0 θ 1 \theta_{1} θ1

  3. GCN仅一个参数 I − L I-L IL需要学习, θ \theta θ也不学。为啥比Chebnet好呢?平滑?太深?

6.2 图像信号处理:过滤器

  1. 对信号x在某图上的平滑程度进行测量
    对于节点分类任务,对特征平滑的要求是一致的
    在这里插入图片描述
    λ i \lambda_{i} λi特征值刻画了特征向量关于这个图的平滑程度
  2. Basic filters
    u i u i T u_{i}u_{i}^{T} uiuiT是一组基础滤波器
    每一个滤波器 u T L u i u_{T}Lu_{i} uTLui仅让频率= λ i \lambda_{i} λi的信号通过,图上的卷积操作是这组基础滤波器的线性组合,所以卷积又被称为过滤器。
    x = α 1 u 1 + α 2 u 2 + . . . + α n u n x = \alpha_{1}u_{1}+\alpha_{2}u_{2}+...+\alpha_{n}u_{n} x=α1u1+α2u2+...+αnun
    u i u i T x = α i u i u_{i}u_{i}^{T}x = \alpha_{i}u_{i} uiuiTx=αiui
  3. Combine filters
    基础滤波器的线性组合
    在这里插入图片描述
    L k L^{k} Lk(ChebNet)是线性组合的特殊系数 { λ i k } i = 1 n \{\lambda_{i}^{k}\}_{i=1}^{n} {λik}i=1n
    L k L^{k} Lk决定频率越高的信号其权重越大,所以影响越大,是个高通滤波器。加强高频信号并不利于像分类任务。(ChebNet促进了高频,抑制低频)
  4. GCN只考虑k=0,k=1的情况 ,过滤了高频信号
  5. 低通滤波器
    在这里插入图片描述
    小结:
    在这里插入图片描述
    谱方法是 uniform 滤波器,而GCN和ChebyNet是高通滤波器 ,而GCN是对ChebyNet的低阶近似,仅对k为0,1的信号进行过滤。GraphHeat就是低阶滤波,并使用 e − s L e^{-sL} esL系数来支持高频信号
    在这里插入图片描述

6.3 邻居选择(Neighborhood)

GCN和ChebyNet根据中心点来选择邻居,邻居的选择问题是空间方法的根本问题!!!
而邻居选择依赖于图上定义两个节点相似度的度量
在这里插入图片描述

7 Graph Pooling

7.1 图粗化Graph coarsening(下采样)

  1. 将节点合并到簇中即使用聚类方法,并将每个簇作为一个超级节点,最后获得一个节点
    在这里插入图片描述
  2. 在图卷积神经网络中,节点合并可以预先进行,也可以在训练过程中进行,例如扩散池

7.2 节点选择Node selection

学习一个度量来量化节点的重要性,并根据学习的度量选择多个节点。简单说就是每一层选择一部分节点代表整个信息,关键在于怎么度量节点的重要程度。
在这里插入图片描述
讨论
在这里插入图片描述
真正起作用的是:节点的特征!!!
我们通过graph CNN、motif-based graph CNN等结合的特征确实在一定程度上体现节点的特征
在这里插入图片描述
在这里插入图片描述
B站学习视频链接: link.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值