文章目录
前置知识
欧式空间
图像数据 n维空间
非欧式空间数据
社交网络,交通网络
转换学习:未标记的数据是测试数据
归纳学习:未标记的数据不是测试数据
本文提出了一种图卷积网络(graph covolutional networks, GCNs),
传统卷积算法在图结构数据上的一个变体,可以直接用于处理图结构数据。
GCN 是谱图卷积(spectral graph convolution) 的局部一阶近似
GCN的另一个特点
模型规模会随图中边的数量的增长而线性增长。
GCN 可以用于对局部图结构与节点特征进行编码。
关于监督
监督学习
输入数据有标签
无监督学习
输入数据无标签
例子
你小时候见到了狗和猫两种动物,有人告诉你这个样子的是狗、那个样子的是猫,你学会了辨别,这是监督学习;
你小时候见到了狗和猫两种动物,没人告诉你哪个是狗、哪个是猫,但你根据他们样子、体型等特征的不同鉴别出这是两种不同的生物,并对特征归类,这是无监督学习。
你小时候见到了狗,父母就会告诉我们这个是狗,也就是label,但是我们在一生中会看到很多种狗,我们会根据之前的知识去推断出来它是狗,这时是没有标签的,所以人类学习的过程就是半监督学习)
图嵌入(Graph Embedding,也叫Network Embedding)
作用
图嵌入是将属性图转换为向量或向量集
GNN 图神经网络
应用于图结构数据上的神经网络
为每个节点学习 低维度的向量表示
多层感知器
输入层:
输入数据。
隐藏层:
首先它与输入层是全连接的,
假设输入层用向量X表示,则隐藏层的输出就是f(W1X+b1),W1是权重(也叫连接系数),
b1是偏置,函数f 可以是常用的sigmoid函数或者tanh函数:
输出层:
隐藏层到输出层可以看成是多类别逻辑回归(softmax回归),
所以输出层的输出就是softmax(W2X1+b2),X1表示隐藏层的输出f(W1X+b1)。
H ( 0 ) = X ( 1 ) , l = 0 ( 输 入 层 ) H^{(0)} =X^{(1)} ,l=0 \\(输入层) H(0)=X(1),l=0(输入层)
H ( 𝑙 ) = α ( 𝑋 ( 𝑙 ) 𝑊 ( 𝑙 ) + 𝑏 ( 𝑙 ) ) , 1 ≤ 𝑙 < L H^{(𝑙)} = \alpha(𝑋^{(𝑙)} 𝑊^{(𝑙)} + 𝑏^{(𝑙)}),1≤𝑙<L H(l)=α(X(l)W(l)+b(l)),1≤l<L
H H ( 𝑙 ) = α ( 𝑋 ( 𝑙 ) 𝑊 ( 𝑙 ) + 𝑏 ( 𝑙 ) ) , 𝑙 = L ( 输 出 层 ) HH^{(𝑙)} =\alpha(𝑋^{(𝑙)} 𝑊^{(𝑙)} + 𝑏^{(𝑙)}),𝑙=L\\(输出层) HH(l)=α(X(l)W(l)+b(l)),l=L(输出层)
H ( 𝑙 ) = 𝑋 ( 𝑙 + 1 ) 𝑊 ( 𝑙 ) 第 l 层 的 权 值 𝑏 ( 𝑙 ) 第 l 层 的 偏 置 H^{(𝑙)} = 𝑋^{(𝑙+1)}\\ 𝑊^{(𝑙)} 第l层的权值\\ 𝑏^{(𝑙)} 第l层的偏置 H(l)=X(l+1)W(l)第l层的权值b(l)第l层的偏置
图上的消息传递
聚合邻居节点的消息
图上的特征转换
利用MLP进行非线性变换, 降低结点特征的维度
GNN模型
输入 $G=(V,E,A,X,Y) $
V
=
V
L
∪
V
U
V =V_L \cup V_U
V=VL∪VU: 结点集
E
E
E: 边集
A
∈
R
n
×
n
A∈R^{n×n}
A∈Rn×n: 邻接矩阵
X
∈
R
(
n
×
c
)
X∈R^{(n×c)}
X∈R(n×c):结点特征矩阵 n为结点数 c为特征数量
Y
∈
R
(
n
×
p
)
Y∈R^{(n×p)}
Y∈R(n×p):节点已知标签矩阵 n为结点数 p为类别数量 c > p
输出 Y ^ \widehat{Y} Y 结点的预测标矩阵
GCN公式中符号的含义
G
=
(
V
,
E
)
G=(V,E)
G=(V,E)表示图,
V
,
E
V,E
V,E表示结点集和边集,
u
,
v
∈
V
u,v \in V
u,v∈V表示中
G
G
G的结点,
(
u
,
v
)
∈
E
(u,v) \in E
(u,v)∈E表示图中的边
预设G是N*N的邻接矩阵
A
A
A表示
G
G
G的邻接矩阵
D
D
D表示
G
G
G的度矩阵
L
L
L表示
G
G
G的拉普拉斯矩阵,
L
\mathcal{L}
L表示图的归一化拉普拉斯矩阵
I
I
I是对角矩阵
对角线上的值为1
L = D − A L=D-A L=D−A
关于 L L L和 L \mathcal{L} L计算化简
L ( u , v ) = { d v i f u = v ( 对 角 线 ) − 1 i f ( u , v ) ∈ E ( 存 在 边 ) 0 o t h e r ( 不 存 在 边 ) L(u,v)=\left\{ \begin{aligned} d_v && if u=v &&(对角线)\\ -1 && if(u,v) \in E &&(存在边)\\ 0 && other &&(不存在边) \end{aligned} \right. L(u,v)=⎩⎪⎨⎪⎧dv−10ifu=vif(u,v)∈Eother(对角线)(存在边)(不存在边)
L ( u , v ) = { 1 i f u = v & d v ≠ 0 − 1 d v d u i f ( u , v ) ∈ E 0 o t h e r w i s e \mathcal{L}(u,v) =\left\{ \begin{array}{rcl} 1 & & if u=v \& d_v\neq0\\ -\frac{1}{\sqrt{d_v}\sqrt{d_u}} & & if(u,v) \in E\\ 0 & & otherwise\\ \end{array} \right. L(u,v)=⎩⎨⎧1−dvdu10ifu=v&dv=0if(u,v)∈Eotherwise
L = D − 1 2 L D − 1 2 = I N − D − 1 2 A D − 1 2 \mathcal{L} = D^{-\frac{1}{2}}L D^{-\frac{1}{2}} = I_N - D^{-\frac{1}{2}} A D^{-\frac{1}{2}} L=D−21LD−21=IN−D−21AD−21
关于输入的实际表达
A A A表示 G G G的邻接矩阵
0 1 1 0
1 0 1 0
1 1 0 1
0 0 1 0
A 2 A^2 A2 结点的2阶邻居
结点3的的2阶邻居为结点2,结点1
A ~ = A + I N \widetilde{A} = A + I_N A =A+IN
1 1 1 0
1 1 1 0
1 1 1 1
0 0 1 1
I I I是对角矩阵
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
D D D表示 A A A的度矩阵
2 0 0 0
0 2 0 0
0 0 3 0
0 0 0 1
$ I_N - D^{-\frac{1}{2}} A D^{-\frac{1}{2}} = \mathcal{L}$ 图的归一化拉普拉斯矩阵
1 0 0 0 - 0 1/2 1/s(6) 0
0 1 0 0 1/2 0 1/s(6) 0
0 0 1 0 1/s(6) 1/s(6) 0 1/s(3)
0 0 0 1 0 0 1/s(3) 0
D ~ \widetilde{D} D 表示 A ~ \widetilde{A} A 的度矩阵
3 0 0 0
0 3 0 0
0 0 4 0
0 0 0 2
L L L表示 G G G的拉普拉斯矩阵,
2 -1 -1 0
-1 2 -1 0
-1 -1 3 -1
0 0 -1 1
出现的原因
谱图卷积
谱卷积图上的谱卷积可以定义为图的特征
x
∈
R
N
x \in R^N
x∈RN 与滤波器
g
θ
=
d
i
a
g
(
θ
)
(
θ
∈
R
N
)
g_θ = diag(θ) ( θ \in R^N)
gθ=diag(θ)(θ∈RN)在傅里叶域的乘积:
谱
卷
积
=
g
θ
∗
x
=
U
g
θ
U
T
x
,
(
3
)
谱卷积= g_θ * x = Ug_θU^Tx, \ (3)
谱卷积=gθ∗x=UgθUTx, (3)
U
U
U是归一化的拉普斯矩阵
L
(
u
,
v
)
=
I
N
−
D
−
1
2
A
D
−
1
2
=
U
Λ
U
T
\mathcal{L}(u,v)= I_N - D^{-\frac{1}{2}} A D^{-\frac{1}{2}} = U\Lambda U^T
L(u,v)=IN−D−21AD−21=UΛUT 的特征向量矩阵
Λ
\Lambda
Λ是特征值矩阵
x
x
x 后续也为图的结点的特征
U
T
x
U^Tx
UTx 是 信号
x
x
x的 图傅里叶变换
g
θ
g_θ
gθ 是
L
\mathcal{L}
L 的特征向量函数
g
θ
(
Λ
)
g_θ(\Lambda )
gθ(Λ)
优化
图 谱卷积来说,其计算代价无疑是很大的
(1) 使用 U 进行矩阵乘法运算的计算复杂度为 O(N^2) ;
(2)计算大图的拉普拉斯矩阵 L 的特征分解需要很大的计算量。
为了减少计算代价,使用切比雪夫多项式
T
k
(
x
)
T_k(x)
Tk(x)的
K
K
K阶截断 获取
g
θ
(
Λ
)
g_θ(\Lambda )
gθ(Λ) 的近似
g
θ
′
(
Λ
)
≈
∑
K
=
0
K
θ
K
′
T
k
(
Λ
~
)
g_{θ'}(\Lambda ) \approx \sum^K_{K=0} θ'_K T_k(\widetilde{\Lambda})
gθ′(Λ)≈K=0∑KθK′Tk(Λ
)
Λ ~ = 2 λ m a x Λ − I N \widetilde{\Lambda} = \frac{2}{\lambda_{max}}\Lambda - I_N Λ =λmax2Λ−IN 的最大特征值(即谱半径)缩放后的 特征向量矩阵
K K K是切比雪夫多项式的阶数
$θ’ \in R^K $表示一个切比雪夫向量。
T
k
(
x
)
=
2
x
T
k
−
1
(
x
)
−
T
k
−
2
(
x
)
T_k(x) = 2xT_{k-1}(x) - T_{k-2}(x)
Tk(x)=2xTk−1(x)−Tk−2(x),初始条件
T
0
(
x
)
=
1
,
T
1
(
x
)
=
x
T_0(x) = 1, T_1(x) = x
T0(x)=1,T1(x)=x
使用切比雪夫多项式
T
k
(
x
)
T_k(x)
Tk(x)的
K
K
K阶截断 获取
g
θ
(
Λ
)
g_θ(\Lambda )
gθ(Λ) 的近似
g
θ
′
g_θ'
gθ′
谱
卷
积
=
g
θ
∗
x
=
U
g
θ
U
T
x
≈
g
θ
′
∗
x
=
U
∑
K
=
0
K
θ
K
′
T
k
(
Λ
~
)
U
T
x
=
∑
K
=
0
K
θ
K
′
U
T
k
(
Λ
~
)
U
T
x
谱卷积= g_θ * x= U_{g_θ}U^Tx \approx \\ g_θ' * x = U\sum^K_{K=0} θ'_KT_k(\widetilde{\Lambda})U^Tx = \\ \sum^K_{K=0} θ'_KUT_k(\widetilde{\Lambda})U^Tx
谱卷积=gθ∗x=UgθUTx≈gθ′∗x=UK=0∑KθK′Tk(Λ
)UTx=K=0∑KθK′UTk(Λ
)UTx
又
T
k
(
Λ
~
)
T_k(\widetilde{\Lambda})
Tk(Λ
) 是
Λ
~
\widetilde{\Lambda}
Λ
的K阶多项式
且 U Λ ~ K U T = ( U Λ ~ U T ) k = L ~ K U\widetilde{\Lambda}^KU^T = (U\widetilde{\Lambda}U^T)^k = \widetilde{\mathcal{L}}^K UΛ KUT=(UΛ UT)k=L K,
且
L
~
=
2
λ
m
a
x
L
−
I
N
\widetilde{L} = \frac{2}{\lambda_{max}}\mathcal{L} - I_N
L
=λmax2L−IN ,
Λ
~
=
2
λ
m
a
x
Λ
−
I
N
\widetilde{\Lambda} = \frac{2}{\lambda_{max}}\Lambda - I_N
Λ
=λmax2Λ−IN
g
θ
′
∗
x
=
∑
K
=
0
K
θ
K
′
U
T
k
(
Λ
~
)
U
T
x
=
∑
K
=
0
K
θ
k
′
U
Λ
~
K
U
T
x
≈
∑
K
=
0
K
θ
k
′
L
~
K
x
=
∑
K
=
0
K
θ
k
′
T
k
(
L
~
)
x
(
5
)
注
意
,
U
T
k
(
Λ
~
)
U
T
≈
T
k
(
L
~
)
g_θ' * x =\\ \sum^K_{K=0} θ'_K UT_k(\widetilde{\Lambda})U^T x= \\ \sum^K_{K=0} θ'_k U\widetilde{\Lambda}^KU^T x \approx \\ \sum^K_{K=0} θ'_k \widetilde{L}^K x = \\ \sum^K_{K=0} θ'_k T_k(\widetilde{L}) x (5)\\ 注意 , UT_k(\widetilde{\Lambda})U^T \approx T_k(\widetilde{L})
gθ′∗x=K=0∑KθK′UTk(Λ
)UTx=K=0∑Kθk′UΛ
KUTx≈K=0∑Kθk′L
Kx=K=0∑Kθk′Tk(L
)x(5)注意,UTk(Λ
)UT≈Tk(L
)
通过这两步近似,可以发现,谱图卷积不再依赖于整个图,而只是依赖于距离中心节点 K 步之内的节点(即 K阶邻居)。
进一步优化 Layer-wise线性模型
近似的谱图卷积虽然可以建立起
K
K
K 阶邻居的依赖,
却仍然需要在$ \widetilde{L}$ 上进行
K
K
K阶运算。
为了降低运算代价,进一步简化了该运算,即限定
K
=
1
K=1
K=1。
谱图卷积可以近似为$ \widetilde{L}$ (或
L
\mathcal{L}
L)的线性函数。
只能建立起K
(
K
=
1
)
(K=1)
(K=1) 阶邻居的依赖。
对于这一问题,可以通过堆积多层图卷积网络建立
K
K
K 阶邻居的依赖。
优势
在建立 K > 1阶邻居的依赖时,不需要受到切比雪夫多项式的限制。
为了再进一步简化运算,在GCN的线性模型中,本文定义
λ
m
a
x
≈
2
\lambda_{max} \approx 2
λmax≈2 。
则图谱卷积的一阶线性近似:
g
θ
′
∗
x
≈
∑
K
=
0
K
θ
k
′
T
k
(
L
~
)
x
.
(
5
)
g
θ
′
∗
x
≈
θ
0
′
x
+
θ
1
′
(
L
−
I
N
)
x
=
θ
0
′
x
−
θ
1
′
D
−
1
2
A
D
−
1
2
x
g_θ' * x \approx \sum^K_{K=0} θ'_k T_k(\widetilde{\mathcal{L}}) x. \ (5)\\ g_θ' * x \approx θ'_0x + θ'_1(\mathcal{L}-I_N)x = θ'_0x - θ'_1 D^{-\frac{1}{2}} A D^{-\frac{1}{2}}x
gθ′∗x≈K=0∑Kθk′Tk(L
)x. (5)gθ′∗x≈θ0′x+θ1′(L−IN)x=θ0′x−θ1′D−21AD−21x
该公式中仅有两个参数
θ
0
′
θ'_0
θ0′与
θ
1
′
θ'_1
θ1′ 。
若需建立 c 阶邻居上的依赖,可以通过设置 c 层这样的滤波器(
g
θ
g_\theta
gθ)来实现。
在实际的过程中,可以通过对参数进行约束来避免过拟合,并进一步简化运算复杂度。
令 $ θ = θ’_0 = -θ’_1$,则有
g
θ
′
∗
x
≈
θ
0
′
x
−
θ
1
′
D
−
1
2
A
D
−
1
2
x
g
θ
′
∗
x
≈
θ
(
I
N
+
D
−
1
2
A
D
−
1
2
)
x
g_θ' * x \approx θ'_0x - θ'_1 D^{-\frac{1}{2}} A D^{-\frac{1}{2}}x \\ g_θ' * x \approx θ (I_N + D^{-\frac{1}{2}} A D^{-\frac{1}{2}})x
gθ′∗x≈θ0′x−θ1′D−21AD−21xgθ′∗x≈θ(IN+D−21AD−21)x
I
N
+
D
−
1
2
A
D
−
1
2
I_N + D^{-\frac{1}{2}} A D^{-\frac{1}{2}}
IN+D−21AD−21的矩阵表示 的 特征值范围为[0,2]
这意味着,当不停地重复该操作时(网络非常深时),可能会引起梯度爆炸或梯度消失。
为了减弱这一问题,本文提出了一种 renormalization trick(重整化技巧):
$$
I_N + D^{-\frac{1}{2}} A D^{-\frac{1}{2}}\rightarrow \widetilde{D}^{-\frac{1}{2}} \widetilde{A} \widetilde{D}^{-\frac{1}{2}} \
其中 \widetilde{D} = \sum_j \widetilde{A}_{ij} 且
\widetilde{A} = A + I_N
$$
$ \widetilde{D}^{-\frac{1}{2}} \widetilde{A} \widetilde{D}^{-\frac{1}{2}} $ 的特征值范围为[0,1]
当图中每个节点的表示不是单独的标量,而是一个大小为
C
C
C 的向量时,可以使用其变体进行处理:
Z
=
D
~
−
1
2
A
~
D
~
−
1
2
X
Θ
Z = \widetilde{D}^{-\frac{1}{2}} \widetilde{A} \widetilde{D}^{-\frac{1}{2}} X\Theta
Z=D
−21A
D
−21XΘ
Θ ∈ R C ∗ F \Theta \in R^{C*F} Θ∈RC∗F表示参数矩阵, Z ∈ R N ∗ F Z \in R^{N*F} Z∈RN∗F为相应的卷积结果。
每个节点的节点表示被更新成了一个新的 F F F维向量,该 F F F维向量包含了相应的一阶邻居上的信息。
图卷积神经网络
经过以上的推导,得到了图卷积神经网络的(单层)最终形式
Z
=
D
~
−
1
2
A
~
D
~
−
1
2
X
Θ
H
(
l
+
1
)
=
σ
(
D
~
−
1
2
A
~
D
~
−
1
2
H
(
l
)
W
(
l
)
)
.
(
2
)
(
矩
阵
形
式
)
Z = \widetilde{D}^{-\frac{1}{2}} \widetilde{A} \widetilde{D}^{-\frac{1}{2}} X\Theta \\ H^{(l+1)} = σ (\widetilde{D}^{-\frac{1}{2}} \widetilde{A} \widetilde{D}^{-\frac{1}{2}} H^{(l)}W^{(l)}). \ (2) \\ (矩阵形式)
Z=D
−21A
D
−21XΘH(l+1)=σ(D
−21A
D
−21H(l)W(l)). (2)(矩阵形式)
A
~
=
A
+
I
N
\widetilde{A} = A + I_N
A
=A+IN
D
~
i
i
=
∑
j
A
~
i
j
\widetilde{D}_{ii} = \sum_j \widetilde{A}_{ij}
D
ii=∑jA
ij
D
~
−
1
2
A
~
D
~
−
1
2
\widetilde{D}^{-\frac{1}{2}}\widetilde{A} \widetilde{D}^{-\frac{1}{2}}
D
−21A
D
−21 表示
A
~
\widetilde{A}
A
的归一化
$H^{(l+1)} \in R^{NF} $ 表示下一层结点的特征, 初始输入$ H^0 = X $ ,
F
F
F为结点的特征个数(维度),
N
N
N为结点数,
X
X
X为初始的 NF。
W
(
l
)
W^{(l)}
W(l) 表示我们要学习的参数、要训练的参数;
l
l
l 层的网络权值,该层仅起到特征映射的作用;
α
\alpha
α为相应的激活参数,如
s
o
f
t
m
a
x
(
0
,
.
)
=
R
e
L
U
(
.
)
softmax(0,.) = ReLU(.)
softmax(0,.)=ReLU(.)
H ( l ) W ( l ) H^{(l)}W^{(l)} H(l)W(l) 相当于给 l l l 层的所有节点的embedding做了一次线性变换,左乘以邻接矩阵表示对每个节点来说,该节点的特征表示为邻居节点特征相加之后的结果。
作用
因为线性模型的表达能力不够,引入激活函数是为了添加非线性因素。
为了解决线性不可分的问题
f ( H ( l ) , A ) = σ ( A H ( l ) W ( l ) ) ( 优 化 前 ) f(H^{(l)}, A) = \sigma(AH^{(l)}W^{(l)}) \\ (优化前)\\ f(H(l),A)=σ(AH(l)W(l))(优化前)
问题
- A A A 的对角线为0,这样下一层节点特征相当于其邻居特征之和,该节点自己的特征没有加入计算中,因此作者使用$ \widetilde{A} = A + I_N$使得对角线元素变为1
解决
- $\widetilde{A} $ 没有经过归一化,这样相当于直接对自己和邻居进行特征求和,会改变数据分布,因此要对 $\widetilde{A} $ 进行归一化处理,使得每一行加起来都为1。处理方式: D ~ − 1 2 A ~ D ~ − 1 2 \widetilde{D}^{-\frac{1}{2}}\widetilde{A} \widetilde{D}^{-\frac{1}{2}} D −21A D −21
模型
对于一个大图(例如“文献引用网络”),我们有时需要对其上的节点进行分类。
然而,在该图上,仅有少量的节点是有标注的。此时,我们需要依靠这些已标注的节点来对那些没有标注过的节点进行分类,此即半监督节点分类问题。
在这类问题中,由于大部分节点都没有已标注的标签,因此往往需要使用某种形式的图正则项对标签信息进行平滑(例如在损失函数中引入图拉普拉斯正则(graph Laplacian regularization)):
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GreX7vKF-1654075063378)(C:\Users\sherlock\AppData\Roaming\Typora\typora-user-images\image-20220412210419959.png)]
L = L 0 + λ L r e g , w i t h L r e g = ∑ i , j A i j ∣ ∣ f ( X i ) − f ( X j ) ∣ ∣ 2 = f ( X ) T ∆ f ( X ) . ( 1 ) \mathcal{L} =\mathcal{L_0} + λ\mathcal{L_{reg}} ,\ with \ \mathcal{L_{reg}}= \sum_{i,j} A_{ij}||f(X_i) − f(X_j )||^2 = f(X)^T∆f(X). \ (1) L=L0+λLreg, with Lreg=i,j∑Aij∣∣f(Xi)−f(Xj)∣∣2=f(X)T∆f(X). (1)
L
0
\mathcal{L_0}
L0 表示有监督的损失,
f
(
.
)
f(.)
f(.)可以是一个类似于神经网络的可微函数。
λ
\lambda
λ表示一个权值因子,
X
X
X 则是相应的节点向量表示。
∆
=
D
−
A
∆ = D -A
∆=D−A 表示未归一化的图拉普拉斯矩阵。
这种处理方式的一个基本假设是:相连的节点可能有相同的标签。然而,这种假设却往往会限制模型的表示能力,因为图中的边不仅仅可以用于编码节点相似度,而且还包含有额外的信息。
流程
GCN轮文使用了一个两层的GCN进行节点分类。模型结构图如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dgjJILab-1654075063379)(C:\Users\sherlock\AppData\Roaming\Typora\typora-user-images\image-20220414171358728.png)]
其具体流程为:
-
首先获取节点的特征表示 X X X 并计算归一化后邻接矩阵 A ^ = D ~ − 1 2 A ~ D ~ − 1 2 \widehat{A}= \widetilde{D}^{-\frac{1}{2}} \widetilde{A} \widetilde{D}^{-\frac{1}{2}} A =D −21A D −21
-
将其输入到一个两层的GCN网络中,得到每个标签的预测结果:
H ( l + 1 ) = σ ( D ~ − 1 2 A ~ D ~ − 1 2 H ( l ) W ( l ) ) . ( 2 ) Z = f ( X , A ) = s o f t m a x ( A ^ R e L U ( A ^ X W ( 0 ) ) W ( 1 ) ) ( 9 ) ( 双 层 G C N ) H^{(l+1)} = σ (\widetilde{D}^{-\frac{1}{2}} \widetilde{A} \widetilde{D}^{-\frac{1}{2}} H^{(l)}W^{(l)}). \ (2) \\ Z = f(X, A) = softmax(\widehat{A} ReLU(\widehat{A}XW^{(0)})W^{(1)} ) \ (9)\\(双层GCN) H(l+1)=σ(D −21A D −21H(l)W(l)). (2)Z=f(X,A)=softmax(A ReLU(A XW(0))W(1)) (9)(双层GCN)
W ( 0 ) ∈ R C ∗ H W^{(0)} \in R^{C*H} W(0)∈RC∗H 为第一层权值矩阵
作用 用于将节点的特征表示映射为相应的隐层状态。
W ( 1 ) ∈ R H ∗ F W^{(1)} \in R^{H*F} W(1)∈RH∗F 为第二层权值矩阵
作用 用于将节点的隐层表示映射为相应的输出( [公式] 对应节点标签的数量)
最后将每个节点的表示通过一个激活函数,如 s o f t m a x softmax softmax函数,即可得到每个标签的预测结果。作用
因为线性模型的表达能力不够,引入激活函数是为了添加非线性因素。
为了解决线性不可分的问题
对于半监督分类问题,使用所有 有标签节点上的期望交叉熵作为损失函数:
L = − ∑ l ∈ Y L ∑ f = 1 F Y l f l n Z l f . ( 10 ) \mathcal{L} = - \sum_{l∈\mathcal{Y} _L}\sum^F_{f=1}Y_{lf}lnZ_{lf}. \ (10) L=−l∈YL∑f=1∑FYlflnZlf. (10)
其中, Y L \mathcal{Y} _L YL 表示有标签的节点集。
通过GCN模型生成的 结点的预测标签矩阵 Y ^ \widehat{Y} Y 和 已知的结点标签 计算loss
通过loss,使用优化器完成反向传播,获得grad。
优化器通过grad,更新权重矩阵、偏置等可学习的参数,优化模型
优化器
就是在深度学习反向传播过程中,指引损失函数(目标函数)的各个参数往正确的方向更新合适的大小,使得更新后的各个参数让损失函数(目标函数)值不断逼近全局最小。
反向传播
我们从模型得到的结果与结点的真正label的进行对比误差计算loss,再送回网络进行训练,降低误差,使我们能得到一个较好的模型。
缺点
第一,GCN需要将整个图放到内存和显存,这将非常耗内存和显存,处理不了大图;
第二,GCN在训练时需要知道整个图的结构信息
第三,GCN不可以Inductive Learning