《Graph Neural Network for Interpreting Task-fMRI Biomarkers》
前言
2019年MICCAI的文章,也是李霄霄大佬组的文章。Individual-level的,不过用的是任务态的核磁数据。
一、模型
上图包含了两个阶段。第一个阶段(上半部分) 是在整个脑网络上训练出分类效果良好的GNN模型;第二个阶段(下半部分)则是将模型在子图上进行验证,并探索哪些区域是ASD的生物标志。
1.图的定义
我看了挺多文章的,只有这篇文章里定义了边的属性。不过在2020年MICCAI的文章中又没有用边的属性。
节点集:
V
=
(
v
1
,
v
2
,
.
.
.
,
v
n
)
T
∈
R
N
×
D
V=(v_1,v_2,...,v_n)^T∈R^{N×D}
V=(v1,v2,...,vn)T∈RN×D,
D
D
D是节点的属性维度。
节点属性: v 1 ∈ R 10 v_1∈R^{10} v1∈R10。度、GLM系数( β 1 \beta_1 β1, β 2 \beta_2 β2, β 3 \beta_3 β3, β 4 \beta_4 β4)、BOLD的均值及标准差、ROI坐标( x x x, y y y, z z z)。
经过Box-Cox变化,使每一维属性呈正态分布。
边集:
E
=
[
e
i
j
]
∈
R
N
×
N
×
F
E=[e_{ij}]∈R^{N×N×F}
E=[eij]∈RN×N×F,
F
F
F为边的属性维度。
边属性:
e
i
j
∈
R
3
e_{ij}∈R^3
eij∈R3。皮尔逊相关系数、偏相关系数、
e
x
p
(
−
r
i
j
/
10
)
exp(-r_{ij}/10)
exp(−rij/10)(
r
i
j
r_{ij}
rij为两个ROI之间的几何距离)。
邻接关系:
a
i
j
=
{
r
,
r
≥
q
0
,
o
t
h
e
r
w
i
s
e
a_{ij}=\begin{cases} r, r \ge q \\ 0, otherwise \\ \end{cases}
aij={r,r≥q0,otherwise。其中
r
r
r代表偏相关系数,
q
q
q则为偏相关系数的第95百分位。
注:这篇文章是随机取ROI内1/3体素的均值作为该区域的时间序列。这样的处理方法可用于样本扩充。
2.GNN
节点更新公式:
其中
σ
(
.
)
\sigma(.)
σ(.)为
R
e
L
U
ReLU
ReLU激活函数;
N
(
i
)
N(i)
N(i)表示节点
i
i
i的一阶邻居;
Θ
∈
R
(
l
)
×
(
l
−
1
)
\Theta∈R^{(l)×(l-1)}
Θ∈R(l)×(l−1)是可学习矩阵;
h
Φ
h_\Phi
hΦ则MLP,将边属性
e
i
j
e_{ij}
eij映射为
d
(
l
)
×
d
(
l
−
1
)
d^{(l)}×d^{(l-1)}
d(l)×d(l−1)矩阵。
池化用的是Top-K的方式:
w
w
w是一个可学习的投影向量;
∣
∣
.
∣
∣
|| .||
∣∣.∣∣是
L
2
L_2
L2范式。吐槽一下这个排版。
然后需要一个Readout层来总结出全局向量
s
s
s。文章中采用了skip-connection的方法来拼接多层的向量
s
(
l
)
s^{(l)}
s(l)。
3.数据敏感性
作者将整个脑网络划分为多个子图,探讨模型对子图的分类效果,并进一步探索每个ROI的重要性,以找到具有标志性的区域。
定义
G
s
=
(
V
s
,
E
s
)
G_s=(V_s,E_s)
Gs=(Vs,Es)为被试
s
s
s,
s
=
1
,
.
.
.
,
S
s=1,...,S
s=1,...,S。将
S
S
S个边属性张量
E
s
E_s
Es中的偏相关系数矩阵拼接成三维张量
τ
∈
R
N
×
N
×
S
\tau∈R^{N×N×S}
τ∈RN×N×S。
第一步,将节点聚成多个簇。这里用到了parafac张量分解方法,对三维张量 τ ∈ R N × N × S \tau∈R^{N×N×S} τ∈RN×N×S进行分解。
a
j
=
b
j
∈
R
N
a_j=b_j∈R^N
aj=bj∈RN,
c
j
∈
R
S
c_j∈R^S
cj∈RS,
R
R
R为秩(簇的数量)。
若
a
j
i
>
m
e
a
n
(
a
j
)
+
s
t
d
(
a
j
)
a_{ji}>mean(a_j)+std(a_j)
aji>mean(aj)+std(aj),则节点
i
i
i属于簇
j
j
j,记为
i
j
i_j
ij。其中
a
j
i
a_{ji}
aji表示向量
a
j
a_j
aj的第
i
i
i个元素。
第二步,计算每个节点的重要程度。记被试
s
s
s的第
j
j
j个子图为
G
s
j
=
(
(
V
s
)
i
j
,
:
,
(
E
s
)
i
j
,
i
j
)
G_{sj}=((V_s)_{i_j,:} , (E_s)_{i_j,i_j})
Gsj=((Vs)ij,:,(Es)ij,ij)。为每个子图计算ECC分数:
c s c_s cs为被试 s s s的真实标签; p ← ( p S + 1 ) / ( S + 2 ) p\gets(pS+1)/(S+2) p←(pS+1)/(S+2),防止除数为0。
节点
k
k
k的重要程度计算如下所示:
节点的得分越高,越可能是生物标志。
二、实验
1.对比实验
2.可视化
假设:GNN模型的分类性能越好,那么找到生物标志的概率就越高。实验仅在训练集上做。
作者将这两个子图作为GNN的输入,重新训练了GNN模型,最终得到的分类准确率为78.9%。
3.鲁棒性
作者用了两个不同的脑谱图以及不同数量的簇重新做了实验,探讨不同的构图方式是否影响网络的可靠性。