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(tx)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 0t 时刻蝴蝶煽动翅膀对飓风的影响,则有公式: ∫ 0 t f ( x ) g ( t − x ) d x \\int _0^t f(x)g(t-x)dx 0tf(x)g(tx)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=IND21AD21=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=0KθkTk(Λ )

  • Λ ~ = 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)=2xTk1(x)Tk2(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θxk=0KθkTk(L )x

  • L ~ = 2 λ m a x L − I N \\widetilde L = \\frac2\\lambda_maxL - I_N L =λmax2LIN

2.2 Layer-wise线性模型

设定参数:

  • K = 1 K=1 K=1:也就是切比雪夫采用1阶近似,此时我们可以得到一个线性的公式
  • λ m a x ≈ 2 \\lambda _max \\approx 2 λmax2:神经网络的参数会在训练的过程中适应这个改变。

这样,我们可以得到简化后的一阶近似线性公式:

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