有向图卷积网络简介
有向图卷积网络(Directed Graph Convolutional Network),简称DGCN,源于2020年的论文"Directed Graph Convolutional Network";初次了解会给人一种感觉:这可能就是在GCN上的小修改,但其实背后暗藏重大创新,在2018年出现GCN前,我们就已经知道,Graph分为有向与无向,不管是什么样的图,总能用邻接矩阵表达,也能得到度矩阵,在该论文出现之前,我们其实完全可以认为用GCN就能胜任有向或无向图数据;但经过论文的描述,事实证明作者的想法确实有所道理;
比如现在有一个有向图:
- 首先可以看出,边具备方向,另外,边具有粗细,这是带有权重的边;如果简单思考,这应该可以用图注意力网络GAT来做,可以对边施加注意力;
- 回忆GraphSAGE中的一阶邻居,二阶邻居,现在要补充一个新概念:一阶邻近,二阶邻近;比如节点1和节点3称为一阶邻近,节点1和节点2称为二阶邻近(因为它们共享节点4,5,6);所以论文认为,对于有向图,不应当只考虑邻居,还要考虑邻近;
从邻近研究,有以下图:
图a为原图,四个图中,以节点1作为主要研究对象,图b中节点4是节点1的一阶邻近,图c.i与图c.ii都是描述二阶邻近,对于图c.i,节点1和节点2是二阶邻近,对于图c.ii,节点1和节点3也是二阶邻近,但不同之处在于节点1和节点2称为二阶入度邻近,节点1和节点3称为二阶出度邻近;
Directed Graph Convolutional Network
针对有向图的一阶邻近表达,论文提出一阶邻近矩阵
A
F
A_{F}
AF:
A
F
(
i
,
j
)
=
A
s
y
m
(
i
,
j
)
A_{F}(i,j)=A^{sym}(i,j)
AF(i,j)=Asym(i,j)
其中,
A
s
y
m
A^{sym}
Asym是邻接矩阵
A
A
A的对称形式,在有向图中,
A
s
y
m
(
i
,
j
)
A^{sym}(i,j)
Asym(i,j)元素取值规则为:
- 不存在一条边从节点 v i v_{i} vi到节点 v j v_{j} vj,或者从节点 v j v_{j} vj到节点 v i v_{i} vi,则 A s y m ( i , j ) = 0 A^{sym}(i,j)=0 Asym(i,j)=0;
- 只要存在一条边从节点 v i v_{i} vi到节点 v j v_{j} vj,或者从节点 v j v_{j} vj到节点 v i v_{i} vi,则 A s y m ( i , j ) = 1 A^{sym}(i,j)=1 Asym(i,j)=1;
注意:如果图是带权的,邻接矩阵 A A A的元素将不局限与0和1,所以 A s y m A^{sym} Asym的值也不局限于0和1;
针对有向图的二阶邻近表达,论文提出了二阶入度邻近矩阵
A
S
i
n
A_{S_{in}}
ASin,和二阶出度邻近矩阵
A
S
o
u
t
A_{S_{out}}
ASout:
A
S
i
n
(
i
,
j
)
=
∑
k
A
k
,
i
A
k
,
j
∑
v
A
k
,
v
,
A
S
o
u
t
(
i
,
j
)
=
∑
k
A
i
,
k
A
j
,
k
∑
v
A
v
,
k
A_{S_{in}}(i,j)=\sum_{k}\frac{A_{k,i}A_{k,j}}{\sum_{v}A_{k,v}},A_{S_{out}}(i,j)=\sum_{k}\frac{A_{i,k}A_{j,k}}{\sum_{v}A_{v,k}}
ASin(i,j)=k∑∑vAk,vAk,iAk,j,ASout(i,j)=k∑∑vAv,kAi,kAj,k
其中,
A
m
,
n
A_{m,n}
Am,n表示原图邻接矩阵
(
m
,
n
)
(m,n)
(m,n)处的元素;
对有向图分别进行三种变换:
Z
F
=
D
~
F
−
1
2
A
~
F
D
~
F
−
1
2
X
Θ
Z_{F}=\widetilde{D}_{F}^{-\frac{1}{2}}\widetilde{A}_{F}\widetilde{D}_{F}^{-\frac{1}{2}}X\Theta
ZF=D
F−21A
FD
F−21XΘ
Z
S
i
n
=
D
~
S
i
n
−
1
2
A
~
S
i
n
D
~
S
i
n
−
1
2
X
Θ
Z_{S_{in}}=\widetilde{D}_{S_{in}}^{-\frac{1}{2}}\widetilde{A}_{S_{in}}\widetilde{D}_{S_{in}}^{-\frac{1}{2}}X\Theta
ZSin=D
Sin−21A
SinD
Sin−21XΘ
Z
S
o
u
t
=
D
~
S
o
u
t
−
1
2
A
~
S
o
u
t
D
~
S
o
u
t
−
1
2
X
Θ
Z_{S_{out}}=\widetilde{D}_{S_{out}}^{-\frac{1}{2}}\widetilde{A}_{S_{out}}\widetilde{D}_{S_{out}}^{-\frac{1}{2}}X\Theta
ZSout=D
Sout−21A
SoutD
Sout−21XΘ
其中,
Θ
\Theta
Θ为基于参数{
W
,
b
W,b
W,b}的线性变换操作(即GCN在没有激活函数下的表达形式),和GCN一样,
A
~
x
=
A
x
+
λ
I
\widetilde{A}_{x}=A_{x}+\lambda I
A
x=Ax+λI,
D
~
x
=
D
x
+
λ
I
\widetilde{D}_{x}=D_{x}+\lambda I
D
x=Dx+λI,
x
∈
{
F
,
S
i
n
,
S
o
u
t
}
x\in\left\{F,S_{in},S_{out}\right\}
x∈{F,Sin,Sout};
对于邻近矩阵
A
x
∈
R
n
×
n
A_{x}\in\mathbb{R}^{n\times n}
Ax∈Rn×n对应的度矩阵
D
x
D_{x}
Dx,其中
x
∈
{
F
,
S
i
n
,
S
o
u
t
}
x\in\left\{F,S_{in},S_{out}\right\}
x∈{F,Sin,Sout},其计算规则为(与GCN中的度矩阵计算规则一样):
D
x
(
i
,
i
)
=
∑
j
n
A
x
(
i
,
j
)
D_{x}(i,i)=\sum_{j}^{n}A_{x}(i,j)
Dx(i,i)=j∑nAx(i,j)
关于度矩阵的计算,不管是有向图,还是无向图,带权还是不带权,标准地,都可以通过邻接矩阵
A
∈
R
n
×
n
A\in\mathbb{R}^{n\times n}
A∈Rn×n得到度矩阵
D
D
D:
D
(
i
,
i
)
=
∑
j
n
A
(
i
,
j
)
D(i,i)=\sum_{j}^{n}A(i,j)
D(i,i)=j∑nA(i,j)
Directed Graph Convolutional Network的架构为:
综上,有向图卷积层模型
Y
~
=
f
(
X
,
A
)
\widetilde{Y}=f(X,A)
Y
=f(X,A)为:
Y
~
=
C
o
n
c
a
t
[
R
e
L
U
(
D
~
F
−
1
2
A
~
F
D
~
F
−
1
2
X
Θ
(
0
)
)
,
α
R
e
L
U
(
D
~
S
i
n
−
1
2
A
~
S
i
n
D
~
S
i
n
−
1
2
X
Θ
(
0
)
)
,
β
R
e
L
U
(
D
~
S
o
u
t
−
1
2
A
~
S
o
u
t
D
~
S
o
u
t
−
1
2
X
Θ
(
0
)
)
]
\widetilde{Y}=Concat[ReLU(\widetilde{D}_{F}^{-\frac{1}{2}}\widetilde{A}_{F}\widetilde{D}_{F}^{-\frac{1}{2}}X\Theta^{(0)}),\alpha ReLU(\widetilde{D}_{S_{in}}^{-\frac{1}{2}}\widetilde{A}_{S_{in}}\widetilde{D}_{S_{in}}^{-\frac{1}{2}}X\Theta^{(0)}),\beta ReLU(\widetilde{D}_{S_{out}}^{-\frac{1}{2}}\widetilde{A}_{S_{out}}\widetilde{D}_{S_{out}}^{-\frac{1}{2}}X\Theta^{(0)})]
Y
=Concat[ReLU(D
F−21A
FD
F−21XΘ(0)),αReLU(D
Sin−21A
SinD
Sin−21XΘ(0)),βReLU(D
Sout−21A
SoutD
Sout−21XΘ(0))]
其中,
α
\alpha
α和
β
\beta
β是可学习的参数,如果考虑对其进行全连接变换,再用softmax输出类别概率,模型延伸为:
Y
^
=
s
o
f
t
m
a
x
(
R
e
L
U
(
Y
~
Θ
(
1
)
)
)
\widehat{Y}=softmax(ReLU(\widetilde{Y}\Theta^{(1)}))
Y
=softmax(ReLU(Y
Θ(1)))
论文在Cora-ML数据集上对GCN和DGCN的表现进行了可视化:
可视化的对象是单层图神经网络输出的特征,用非线性的降维方法将高维特征降维至二维,再将已知的节点类别标记成不同的颜色;
DGCN分为只考虑一阶邻近和一阶邻近二阶邻近都考虑的情况,从可视化结果中看,DGCN确实具备更强的特征变换能力,得到比GCN更简单的分布,从而有利于样本分类;
Discuss GNN
现在的GNN处于萌芽阶段,有很多方向等待人类探究,如果稍微观察,容易发现目前GNN的做法总是基于信息传递,信息聚合,信息更新三个步骤,也许研究如何让信息传递,聚合,更新变得更加合理和高效对于GNN是目前较为重要的工作;
GNN相比曾经热火多年的CNN,GNN的发展速度远没有CNN的发展迅猛,CNN从萌芽到爆发式增长也就经历了两三年时间,也许我们也应该考虑改变GNN的模式,从而获得CNN一样的迅速发展;
在大多数论文中,GNN总是在借鉴CNN的思想,而CNN专注于图像领域,GNN应该注重到其他更高级的领域,我们是否应该考虑打破借鉴的规则,让GNN具有专属于它的灵魂: