refer
-
space-based 知乎:如何理解GCN
-
spatial-baesed :知乎:万字入门GNN
如何理解GCN-相应笔记
其实一开始最先看的是万字入门,但是后来发现还是得对照着看
-
在vertex domain(spatial domain)和spectral domain
- 后者是GCN的基础
-
这个文章要解决的是为什么要用spectral graph theory 【占坑??】
-
矩阵的谱分解,特征分解,对角化都是同一个概念
-
- 算子是一种变换,这里
Δ
\Delta
Δ是拉普拉斯算子,是一种变换,所以是A,然后我么可以看到特征函数是
e
−
i
w
t
e^{-iwt}
e−iwt,特征向量是
−
w
2
-w^2
−w2 (有的帖子没有写负号,没毛病,对应的吧特征向量反过来就可以2333
- 这里其实也以一种方式揭示了频率和特征值的关联 --> 图上,频率(信息量)就体现在拉普拉斯矩阵(离散拉普拉斯算子)的特征值上了
- 算子是一种变换,这里
Δ
\Delta
Δ是拉普拉斯算子,是一种变换,所以是A,然后我么可以看到特征函数是
e
−
i
w
t
e^{-iwt}
e−iwt,特征向量是
−
w
2
-w^2
−w2 (有的帖子没有写负号,没毛病,对应的吧特征向量反过来就可以2333
-
还能在某个频率下进行傅里叶变换?? 我对傅里叶变换的力量真是一无所知…没毛病,平时推公式的时候没有注意, F ( w ) = ∫ f ( t ) e − i w t d t F(w)=\int{f(t)e^{-iwt}}dt F(w)=∫f(t)e−iwtdt式子中的w是一个常量!
- 怎么特征向量的共轭突然就变回了特征向量?还是说正定矩阵的共轭有什么门道??
-
从傅里叶变换的角度来看,特征值实际上是一种频率,特征值大的就是频率高(信息量大的) (PCA中特征值就是表示信息量的贡献度)。
-
要搞清楚,这里图上的傅里叶变换做的是从空间域(所以f() 的参数是1,2,…,N -> node)变换到频率域( f ^ \hat{f} f^()的参数是w,这里用特征值λ表示)
推广卷积到graph上
-
这里如果没看懂,真的是之前傅里叶变换没学好的锅…- 这里就是利用卷积定理,请注意,
F
−
1
(
f
^
(
w
)
h
^
(
w
)
)
F^{-1}(\hat{f}(w)\hat{h}(w))
F−1(f^(w)h^(w))里面的
f
^
(
w
)
h
^
(
w
)
\hat{f}(w)\hat{h}(w)
f^(w)h^(w)不是点乘,是对位乘
这就是为甚什么下面要把卷积核的傅里叶变换写成对角矩阵形式的原因而不是直接点乘的原因了(这样才是对位乘区别就是,点乘比对位乘还多一个累加压缩的步骤。
- 这里的傅里叶变换都是图上的傅里叶变换,而不是传统的了,所以 h ( t ) h(t) h(t)变成 h ^ ( t ) \hat{h}(t) h^(t)需要跟拉普拉斯矩阵的特征向量进行卷积,而不是和别的
- 这里就是利用卷积定理,请注意,
F
−
1
(
f
^
(
w
)
h
^
(
w
)
)
F^{-1}(\hat{f}(w)\hat{h}(w))
F−1(f^(w)h^(w))里面的
f
^
(
w
)
h
^
(
w
)
\hat{f}(w)\hat{h}(w)
f^(w)h^(w)不是点乘,是对位乘
-
看到这里,分析一下复杂度,大概就能知道为什么要从spacial space转到spectral space上了吧
- 降维啊【??仔细想想似乎没有降…?】。在spacial space上进行错位卷积,就是 O ( n 2 ) O(n^2) O(n2),在频率上面就是O(w*n)【??】,再者可以继续利用FFT降低复杂度至O(nlogn) 【再看下人家的复杂度分析吧??】
三代GCN
- 万字长文对第一代介绍的比较详细 (隐层和输出层是分开来介绍的)
- 个人感觉第一代都不能叫GCN,这里的C应该不是卷积,而是connected,更像是全连接网络(但是由于是局部连接,所以有些权重是0,所以作者提出的是Deep Locally Connected Networks )
- 由于没有卷积核的特性,所以自然无法参数共享
-
- 这个设计确实是很精妙,猜想是从后面反推回去设计的
- 这里对与卷积核的解释也很妙,但是为什么 L i L^i Li就代表 i 跳呢 ??
常用术语
- GSP(graph signal processing)
- Spectral graph theory简单来说,就是借助于图的拉普拉斯矩阵的特征值和特征向量来研究图的性质
- 常用的有三种拉普拉斯矩阵?
- 感觉大家喜欢把 f ^ ( w ) \hat{f}(w) f^(w)解释为F(w) ,好吧
- Hadamard product(哈达马积)
万字入门GNN-相应的笔记
散度、梯度、拉普拉斯算子等介绍
refer提到的矩阵自由度
- 拉普拉斯卷积核的自由度是4
其实就是可以自由变化的矩阵元素个数
- 自由度方向
一维的是 1 和 -1 上,二维的(0,1),(0,-1),(1,0),(-1,0)也可以解释通了
两处归一化的理解
这里
D
−
1
D^{-1}
D−1是用来归一化W矩阵的,1/2是用来归一化自己本身和邻居节点的均值的 [ 并不是所有矩阵都可以这么归一化,这里是因为D是对角矩阵且和W有那样的关系才可以 ]
无偏估计,肯定得归一化 --> E是所有采样取均值
这里的归一化我理解不是让同行元素变成和为1,而是所有元素映射到(0,1)区间之内。
图拉普拉斯矩阵
-
是个半正定的矩阵, e.g. ,
- 邻接矩阵W是
在这里插入图片描述
D矩阵是
,则L=D-W就是
虽然除了对角线元素是正的以外其余元素都是负的,但是要注意半正定矩阵的定义:
所有主子式均为非负的
(当然最常用的判定方式还是 XAX’>=0 , 这里用上面这个判定方式比较直观)简单想下,易证。
- 邻接矩阵W是
-
有个讲解该矩阵性质比较透彻的blog
- 需要好好看下 ,对于万字长文里的公式推导大有裨益。
- 里面有个这个性质,如果正着推理解不了最后一步转换,可以从最后一步反推回倒数第二步,比较好理解( 这是个通用性质,妙 )。
- 另一个基本性质 —— 最小特征值为0(且至少有一个为0) —— 因为行和为0
-
万字长文里还写了一些与图意义相关的性质,还没有仔细推导证明。
-
2.4 Graph Fourier Transformer讲得不是很好,可以参照refer里面第一个link
hesy summary
-
图拉普拉斯矩阵l=D-W是推导出来的
再强调一遍,拉普拉斯矩阵反映了当前节点对周围节点产生扰动时所产生的累积增益,直观上也可以理解为某一节点的权值变为其相邻节点权值的期望影响,形象一点就是 拉普拉斯矩阵可以刻画局部的平滑度 。 -
谱
- 实际上就是对一个信号(视频,音频,图像,图)分解为一些简单元素的线性组合(小波基,图基)。而为了使得这种分解更加有意义,我们可以使得这些分解的元素之间是线性无关的的(正交的)。也就是说这些分解的简单元素可以看作是信号的基。
- 在信号处理中我们最容易想到的谱就是傅里叶变换,它提供了不同频率下的正弦和余弦波作为基,从而我们可以将信号在这些基进行分解。
- 但是当我们讨论图的时候,我们所称的 “谱”指的是对拉普拉斯矩阵L的特征值分解(是不是联想到谱半径就是最大的特征值的说法)。我们可以把拉普拉斯矩阵看作是图上邻接矩阵的一种特殊的正则化形式,而它的特征值分解过程就是我们寻找构造图所需的正交基的过程。【找基】
-
傅里叶变换里面的卷积和CNN里面的卷积一直都不是一起work的概念,也没有交叉,所以不要搞混了,老想岔
补充source
- 这个对万字长文的公式推导有一些补充
对万字长文的思路厘清很有帮助(个人觉得这个思路更适合新手),也有很多跟上文正交的公式细节推导补充,normal cut也有推导,目前用不到,略过了,其余都看完了。
- 这个知乎文章也挺新手入门的感觉
- 这个专栏讲的是刘知远的书
- 19年中文的综述,有空确实可以看下233
- 讲ICLR 2020相关的GNN论文 tl;dr