HOW POWERFUL ARE GRAPH NEURAL NETWORKS? 论文/GIN学习笔记
Posted Dodo·D·Caster
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HOW POWERFUL ARE GRAPH NEURAL NETWORKS? 论文/GIN学习笔记相关的知识,希望对你有一定的参考价值。
对GNN的评估
GNN 通用表达式
聚合:
a v ( k ) = A G G R E A G T E ( k ) ( h u ( k − 1 ) : u ∈ N ( v ) ) a_v^(k)=AGGREAGTE^(k)(\\ h_u^(k-1) : u \\in \\mathcalN(v) \\) av(k)=AGGREAGTE(k)(hu(k−1):u∈N(v))
更新:
h v ( k ) = C O M B I N E ( k ) ( h v ( k − 1 ) , a v ( k ) ) h_v^(k) = COMBINE^(k)(h_v^(k-1),a_v^(k)) hv(k)=COMBINE(k)(hv(k−1),av(k))
GNN 的主要任务
节点分类任务:相同邻域有相同表征,不同的邻域有不同的表征
图分类任务:同构图有相同的表征,非同构图有不同的表征
定义1 multiset的广义定义:允许其元素有多个实例的集合。
multiset是一个二元组 X = ( S , m ) X = (S, m) X=(S,m)
- S 是由不同元素形成的X的基础集合
- m : S → N ≥ 1 m : S \\rightarrow N_\\ge 1 m:S→N≥1 给出了元素的 multiset
举个例子,节点集合是S,每个节点的邻居集合是m
引理2 假设 G1 和 G2 是两个不同构的图。如果对于一个GNN模型 A, G1 和 G2 有着不同的嵌入,那么WL图同构检测也能得到同样的结果。
引理2说明:任何基于聚合的GNN的效果天花板是WL算法。
WL测试:有效且计算高效的检测图同构算法
- 迭代地聚合节点及其邻居的标签
- 哈希聚合的标签为新的标签
- 对比标签,如果在某次迭代中两个图的节点标签不同则不是同构的
定理3 假设 A 是一个GNN模型。如果由足够多的GNN层,A 能够将任何WL算法检测为非同构的图 G1 和 G2 表达为不同的嵌入。同时,这需要满足以下约束:
- A 通过
h
v
(
k
)
=
ϕ
(
h
v
(
k
−
1
)
,
f
(
h
u
(
k
−
1
)
:
u
∈
N
(
v
)
)
)
h_v^(k) = \\phi (h_v^(k-1), f(\\ h_u^(k-1) : u \\in N(v) \\))
hv(k)=ϕ(hv(k−1),f(hu(k−1):u∈N(v))) 迭代地聚合和更新节点特征
- 其中, f f f作用于multiset, ϕ \\phi ϕ是单射的
- A 的 graph-level readout (作用于节点特征 h v ( k ) \\ h_v^(k) \\ hv(k)的multiset) 是单射的
Readout函数:输入节点嵌入生成整图嵌入的函数
定理3说明:如果聚合邻居的函数和graph-level readout函数是单射的,那么GNN的结果可以和WL算法一样好
引理4 假设输入的特征空间 X \\mathcalX X 是可数的,如果 g ( k ) g^(k) g(k) 是由GNN的第k层参数化的函数 (k=1,2,3,…,L, g ( 1 ) g^(1) g(1)定义在有界的multiset X ⊂ X X \\subset \\mathcalX X⊂X 上),那么 g ( k ) g^(k) g(k) 的范围也是可数的 (对于k=1,2,3,…,L)
疑惑:是在讲收敛性吗?
GNN 相比 WL 的优势
- 由于WL算法的节点特征向量本质上是one-hot encodings,因此无法得知子树的相似性。
- 疑问:多次迭代不就可以知道n阶邻居的信息了吗,是因为哈希方法处理特征所以无法有效保存结构信息吗?
- 但满足定理3的GNN模型可以获得图结构的相似性,学习为子树生成低维嵌入。
Graph Isomorphism Network (GIN)
GIN满足定理3,是WL算法的推广,因此取得了一众GNN中最好的判别效果
引理5 假设 X \\mathcalX X 是可数的。那么存在一个函数 f : X → R n f : \\mathcalX \\rightarrow \\R ^n f:X→Rn 使得 h ( X ) = ∑ x ∈ X f ( x ) h(X) = \\sum_x \\in X f(x) h(X)=∑x∈Xf(x) 对于每一个有界的multiset x ⊂ X x \\subset \\mathcalX x⊂X 是唯一的。此外,对于某些函数 ϕ \\phi ϕ ,任何 multiset 函数 g 都可以被分解为 g ( X ) = ϕ ( ∑ x ∈ X f ( x ) ) g(X) = \\phi (\\sum _x \\in X f(x)) g(X)=ϕ(∑x∈Xf(x)) 。
引理5说明:累加聚合器是单射的,是multiset的通用函数
推论6 假设 X \\mathcalX X 是可数的。那么存在一个函数 f : X → R n f : \\mathcalX \\rightarrow \\R ^n f:X→Rn ,对于 ϵ \\epsilon ϵ 的无限个选择 (包含所有无理数) ,对于每一对 ( c , X ) (c,X) (c,X) , h ( c , X ) = ( 1 + ϵ ) ⋅ f ( c ) + ∑ x ∈ X f ( x ) h(c, X) = (1+\\epsilon) \\cdot f(c) + \\sum_x \\in X f(x) h(c,X)=(1+ϵ)⋅f(c)+∑x∈Xf(x) 是唯一的 (其中 c ∈ X , X ⊂ X c \\in \\mathcalX, X \\subset \\mathcalX c∈X,X⊂X)。此外,对于一些函数, ( c , X ) (c,X) (c,X) 上的任何函数都可以被分解为 g ( c , X ) = φ ( ( 1 + ϵ ) ⋅ f ( c ) + ∑ x ∈ X f ( x ) ) g(c, X) = \\varphi ((1 + \\epsilon) \\cdot f(c) + \\sum_x \\in X f(x)) g(c,X)=φ((1+ϵ)⋅f(c)+∑x∈Xf(x))。
推论6在众多聚合方案中提供了一个简单而具体的公式。
GIN 更新公式 - 节点:
h v ( k ) = M L P ( k ) ( ( 1 + ϵ ( k ) ) ⋅ h v ( k − 1 ) + ∑ u ∈ N ( v ) h u ( k − 1 ) ) h_v^(k) = MLP^(k) ((1 + \\epsilon^(k)) \\cdot h_v^(k-1) + \\sum_u \\in \\mathcalN(v) h_u^(k-1)) hv(k)=MLP(k)((1+ϵ(k))⋅hv(k−1)+u∈N(v)∑hu(k−1))
- MLP : 多层感知机
- ϵ \\epsilon ϵ : 可学习的参数或固定值
GIN Readout函数 - 整图:
h G = C O N C A T ( R E A D O U T ( h v ( k ) ∣ v ∈ G ) ∣ k = 0 , 1 , . . . , K ) h_G = CONCAT(READOUT(\\ h_v^(k) | v \\in G \\) | k=0,1,...,K ) hG=CONCAT(READOUT(hv(k)∣v∈G)∣k=0,1,...,K)
通过定理3 和 推论6 可知,如果使用上式作为readout函数(累加相同迭代的所有节点特征作为图的表征),那么它是WL的推广。
GNN方法对比
单层感知机 vs 多层感知机
引理7 存在有限个multiset X 1 ≠ X 2 X_1 \\neq X_2 把一个英语句子中的单词次序颠倒后输出。例如输入“how are you”,输出“you are how”;
把一个英语句子中的单词次序颠倒后输出。例如输入“how are you”,输出“you are how”;
把一个英语句子中的单词次序颠倒后输出。例如输入“how are you”,输出“you are how”;
How about xlogs are missing and xlogs are deleted
1)把一个英语句子中的单词次序颠倒后输出。例如输入“how are you”,输出“you are how”; 编写单元测试进行测试; 用ElcEmma查看代码覆盖率,要求覆盖率达到100