SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS 论文/GCN学习笔记
Posted Dodo·D·Caster
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS 论文/GCN学习笔记相关的知识,希望对你有一定的参考价值。
1 前置知识:卷积与CNN
该内容在论文中并没有涉及,但理解卷积和CNN对于GCN的理解有帮助,因为GCN是将CNN推广到新的数据结构:graph上面。
1.1与1.2的内容均来自视频:https://www.bilibili.com/video/BV1VV411478E/?spm_id_from=333.880.my_history.page.click&vd_source=9e34c29511733195fced9735e60f8683
1.1 卷积
卷积公式: ∫ 0 t f ( x ) g ( t − x ) d x \\int _0^t f(x)g(t-x)dx ∫0tf(x)g(t−x)dx
f ( x ) f(x) f(x):在每一个时刻 x x x,都有 f ( x ) f(x) f(x)个蝴蝶煽动翅膀,如3
g ( y ) g(y) g(y):在一个蝴蝶煽动翅膀后, y y y时刻后,该蝴蝶煽动翅膀对引起飓风对影响为 g ( y ) g(y) g(y),如0.5
则在 x x x时刻的3只蝴蝶,经过了 y y y时刻,对 x + y x+y x+y时刻引起飓风的影响为 3 × 0.5 = 1.5 3 \\times 0.5 = 1.5 3×0.5=1.5
假设t时刻发生了飓风,求 0 ~ t 0~t 0~t 时刻蝴蝶煽动翅膀对飓风的影响,则有公式: ∫ 0 t f ( x ) g ( t − x ) d x \\int _0^t f(x)g(t-x)dx ∫0tf(x)g(t−x)dxy由此我们可以得到该问题中卷积的本质:累加过去对现在的影响
1.2 CNN
选取不同的卷积核,用卷积核乘3*3的像素矩阵做卷积,可以得到新的像素点,对图中所有的像素矩阵乘卷积核则可以得到新的图像。
其本质是:累加3*3个像素对目标像素的影响,得到目标像素。
1.3 CNN→GCN
由于graph不同于image,没有固定的结构,邻居的数量亦不相同,故将CNN推广到graph上时,GCN将对像素的卷积操作变成了对节点邻居的卷积操作,累加不同邻居对目标节点的影响,得到新的特征。
2 GCN的数学理论
2.1 图谱卷积公式(K阶近似)
graph上的谱卷积公式:
g θ ⋆ x = U g θ U T x g_\\theta \\star x = U g_\\theta U^T x gθ⋆x=UgθUTx
- g θ g_\\theta gθ:过滤器,可以理解为对特征值的函数
- x x x:信号,可以理解为每个节点的特征信息
-
L
=
I
N
−
D
−
1
2
A
D
−
1
2
=
U
Λ
U
T
L=I_N-D^-\\frac12AD^-\\frac12=U \\Lambda U^T
L=IN−D−21AD−21=UΛUT
- L L L:标准化的图拉普拉斯矩阵
- Λ \\Lambda Λ :特征值矩阵
- U T x U^T x UTx:对 x x x进行图傅里叶变换
由于上式特征矩阵的乘法复杂度为 O ( N 2 ) O(N^2) O(N2),并且对于large graph是 L L L进行特征分解同样在计算上消耗巨大,所以要对 g θ ( Λ ) g_\\theta(\\Lambda) gθ(Λ)用切比雪夫多项式(Chebyshev polynomials)进行K阶近似:
g θ ′ ( Λ ) ≈ ∑ k = 0 K θ k ′ T k ( Λ ~ ) g_\\theta '(\\Lambda) ≈ \\sum_k=0^K\\theta ' _k T_k (\\widetilde \\Lambda) gθ′(Λ)≈k=0∑Kθk′Tk(Λ )
-
Λ
~
=
2
λ
m
a
x
Λ
−
I
N
\\widetilde \\Lambda = \\frac2\\lambda_max\\Lambda - I_N
Λ
=λmax2Λ−IN
- λ m a x \\lambda_max λmax:代表图拉普拉斯矩阵的最大特征值
- θ ′ \\theta ' θ′:切比雪夫系数向量
- T k ( x ) = 2 x T k − 1 ( x ) − T k − 2 ( x ) , T 0 ( x ) = 1 , T 1 ( x ) = x T_k(x)=2xT_k-1(x)-T_k-2(x),T_0(x)=1,T_1(x)=x Tk(x)=2xTk−1(x)−Tk−2(x),T0(x)=1,T1(x)=x:切比雪夫多项式的递归定义
结合两个式子,得到总的谱图公式(复杂度为 O ( ∣ E ∣ ) O(|\\mathcalE|) O(∣E∣),其中 E \\mathcalE E为边的数量):
g θ ⋆ x ≈ ∑ k = 0 K θ k ′ T k ( L ~ ) x g_\\theta \\star x ≈ \\sum_k=0^K\\theta ' _k T_k (\\widetilde L)x gθ⋆x≈k=0∑Kθk′Tk(L )x
- L ~ = 2 λ m a x L − I N \\widetilde L = \\frac2\\lambda_maxL - I_N L =λmax2L−IN
2.2 Layer-wise线性模型
设定参数:
- K = 1 K=1 K=1:也就是切比雪夫采用1阶近似,此时我们可以得到一个线性的公式
- λ m a x ≈ 2 \\lambda _max \\approx 2 λmax≈2:神经网络的参数会在训练的过程中适应这个改变。
这样,我们可以得到简化后的一阶近似线性公式:
g θ ⋆ x ≈ θ 0 ′ x + θ 1 ′ ( L − I N ) x = θ 0 ′ x − θ 1 ′ D − 1 2 A D − 1 2 x g_\\theta \\star x ≈ \\theta_0'x + \\theta_1'(L-I_N)x = \\theta_0'x - \\theta_1'D^-\\frac12AD^-\\frac12x g使用聚类算法进行标签传播学习(Clustering for Semi-Supervised Learning)
Graph-based Semi-Supervised Classification简单总结回顾
论文笔记之:Large Scale Distributed Semi-Supervised Learning Using Streaming Approximation
Deeper Insights into Graph Convolutional Networks for Semi-Supervised Learning
论文笔记:SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS
论文笔记:SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS