文章目录
最近看过的相关可解释性的论文
1.(2020ICLR)TabNet: Atentive Interpretable Tabular Learning
解决的问题
- 基于树的方法能够有很好的解释性,但是需要大量的特征工程,以及精度不够高 基于DNN的方法能够有效编码各种格式数据,无需大量特征工程,且能够准确鲁棒地对数据进行处理,能否设计兼顾两者的DNN
想法/创新:
- 提出了一种基于表格的数据的DNN的架构TabNet,学习类似决策树式的映射,使用顺序注意机制从每个决策步中选择最显著的特征用于下游任务
- 能够提供输入的量化每个输入对于输出的贡献,全局可解释性和局部可解释性
之前的论文已经证明DNN可以通过拟合一个函数模拟决策树的学习过程,从而构建一个超平面的决策边界。TabNet基于一个tree-like的函数,通过构成系数Mask确定每个特征的比例,具体而言,TabNet构建了一个sequential multi-step的结构,设计了 instance-wise 的特征选择方法。上图中,第一step选择professional类的特征,第二step选择Investment类的特征。
整个网络由多个step模块构成,每个模块包括一个feature transformer和一个attentive transformer,其中attentive transformer生成mask决定每个特征的重要性,而feature transformer用于特征的提取
M
[
i
]
=
sparsemax
(
P
[
i
−
1
]
⋅
h
i
(
a
[
i
−
1
]
)
)
P
[
i
]
=
∏
j
=
1
i
(
γ
−
M
[
j
]
)
L
sparse
=
∑
i
=
1
N
steps
∑
b
=
1
B
∑
j
=
1
D
−
M
b
,
j
[
i
]
N
steps
⋅
B
log
(
M
b
,
j
[
i
]
+
ϵ
)
M [ i ] = \operatorname { sparsemax } ( P [ i - 1 ] \cdot h _ { i } ( a [ i - 1 ] ) )\\ P [ i ] = \prod _ { j = 1 } ^ { i } ( \gamma - M [ j ] )\\ L _ { \text { sparse } } = \sum _ { i = 1 } ^ { N _ { \text {steps} } } \sum _ { b = 1 } ^ { B } \sum _ { j = 1 } ^ { D } \frac { - M _ { b , j } [ i ] } { N _ { \text {steps} } \cdot B } \log ( M _ { b , j } [ i ] + \epsilon )
M[i]=sparsemax(P[i−1]⋅hi(a[i−1]))P[i]=j=1∏i(γ−M[j])L sparse =i=1∑Nstepsb=1∑Bj=1∑DNsteps⋅B−Mb,j[i]log(Mb,j[i]+ϵ)
其中
M
[
i
]
M [ i ]
M[i]表示第i个step的MASK矩阵,
P
[
i
−
1
]
P [ i - 1 ]
P[i−1]代表先验知识(i step前所有的step的先验),
h
i
h_i
hi代表特征提取器,如果某些特征的
M
[
i
]
M [ i ]
M[i]很大时,那么在下一步,就希望更多的关注于先前没有关注的特征,loss目的是为了保证M的稀疏性
[
d
[
i
]
,
a
[
i
]
]
=
f
i
(
M
[
i
]
⋅
f
)
[ d [ i ] , a [ i ] ] = f _ { i } ( M [ i ] \cdot f )
[d[i],a[i]]=fi(M[i]⋅f)
这里表示split后的两部分,一部分用于本步的决策,一部分作为下一step的输入
可解释性的体现:每个step 的mask都是一种局部解释性,而融合的mask是一种全局解释性,每个输入对于输出的贡献可以通过累加所有step的MASK来得到
M
a
g
g
−
b
,
j
=
∑
i
=
1
N
s
t
e
p
s
η
b
[
i
]
M
b
,
j
[
i
]
/
∑
j
=
1
D
∑
i
=
1
N
s
t
e
p
s
η
b
[
i
]
M
b
,
j
[
i
]
M _ { agg - b , j } = \sum _ { i = 1 } ^ { N _ { s t e p s } } \eta _ { b } [ i ] M _ { b , j } [ i ] / \sum _ { j = 1 } ^ { D } \sum _ { i = 1 } ^ { N _ { s t e p s } } \eta _ { b } [ i ] M _ { b , j } [ i ]
Magg−b,j=i=1∑Nstepsηb[i]Mb,j[i]/j=1∑Di=1∑Nstepsηb[i]Mb,j[i]
和常用的解释性方法对于特征重要程度的对比:
Critical Tinking:
- 通过局部特征选择MASK,通过顺序步长的方式来选择特征,最后融合每个step的特征做出预测
- 虽然MASK矩阵是通过学习到的,是否能够真实反应对于输出的贡献有待考量
2.(2019ICLR)GNNExplainer: Generating Explanations for Graph Neural Networks
解决的问题:
- 同时包含图结构和特征信息会导致模型复杂,无法解释GNN做出的预测
方法和创新
- 对于单一实例,GNNExplainer能够确定一个紧凑的子图结构和节点的部分重要特征,这些特征对于预测起着重要作用
- 对于实例类,能够找到一个子图及节点特征原型来生成简洁一致的解释
方法的具体过程
GNNExplainer目的是为了找到如上图所示的一系列的重要节点信息传播路径(绿色路径)以及学习相应的节点上的特征重要性掩码
- 问题定义
-
定义GNN的主要相关计算:
(1)节点对间的信息 m i j l = MsG ( h i l − 1 , h j l − 1 , r i j ) m _ { i j } ^ { l } = \operatorname { MsG } ( h _ { i } ^ { l - 1 } , h _ { j } ^ { l - 1 } , r _ { i j } ) mijl=MsG(hil−1,hjl−1,rij),其中 h i l − 1 , h j l − 1 h _ { i } ^ { l - 1 } , h _ { j } ^ { l - 1 } hil−1,hjl−1代表上一层节点表示
(2)每个节点聚合邻居信息 M i l = AGG ( { m i j l ∣ v j ∈ N v i } ) M _ { i } ^ { l } = \operatorname { AGG } ( \{ m _ { i j } ^ { l } | v _ { j } \in N _ { v _ { i } } \} ) Mil=AGG({mijl∣vj∈Nvi})
(3)根据聚合的信息和上一层节点的信息生成当前节点的表示 h i l = UPDATE ( M i l , h i l − 1 ) h _ { i } ^ { l } = \operatorname { UPDATE } ( M _ { i } ^ { l } , h _ { i } ^ { l - 1 } ) hil=UPDATE(Mil,hil−1) -
GNN目的是为了学习一个条件概率分布 P Φ ( Y ∣ G c , X c ) P _ { \Phi } ( Y | G _ { c } , X _ { c } ) PΦ(Y∣Gc,Xc),GNN的预测可以被表示为 y ^ = Φ ( G c ( v ) , X c ( v ) ) \hat { y } = \Phi ( G _ { c } ( v ) , X _ { c } ( v ) ) y^=Φ(Gc(v),Xc(v))
GNNExplainer目标是为预测生成一个解释 ( G S , X S F ) ( G _ { S } , X _ { S } ^ { F } ) (GS,XSF), G S G _ { S } GS表示计算图的一个小子图, X S F X _ { S } ^ { F } XSF表示被F mask后的节点特征集
-
单实例解释
首先是对于结构的解释:
max G S M I ( Y , ( G S , X S ) ) = H ( Y ) − H ( Y ∣ G = G S , X = X S ) \max _ { G _ { S } } M I ( Y , ( G _ { S } , X _ { S } ) ) = H ( Y ) - H ( Y | G = G _ { S } , X = X _ { S } ) GSmaxMI(Y,(GS,XS))=H(Y)−H(Y∣G=GS,X=XS)
MI衡量当G和X被限制在 G S 和 X S G_S和X_S GS和XS下预测y概率的改变,由于模型已经训练完成,所以H(Y)是固定的,所以可以将问题转化为最小化条件熵 H ( Y ∣ G = G S , X = X S ) H ( Y | G = G _ { S } , X = X _ { S } ) H(Y∣G=GS,X=XS):H ( Y ∣ G = G S , X = X S ) = − E Y ∣ G S , X S [ log P Φ ( Y ∣ G = G S , X = X S ) ] H ( Y | G = G _ { S } , X = X _ { S } ) = - E _ { Y | G _ { S } , X _ { S } } [ \log P _ { \Phi } ( Y | G = G _ { S } , X = X _ { S } ) ] H(Y∣G=GS,X=XS)=−EY∣GS,XS[logPΦ(Y∣G=GS,X=XS)]
所以新的优化目标:
min G E G S ∼ G H ( Y ∣ G = G S , X = X S ) \min _ { G } E _ { G _ { S } \sim G } H ( Y | G = G _ { S } , X = X _ { S } ) GminEGS∼GH(Y∣G=GS,X=XS)
利用Jensen不等式和凸性假设,我们可以得到:
min G H ( Y ∣ G = E G [ G S ] , X = X S ) \min _ { G } H ( Y | G = E _ { G } [ G _ { S } ] , X = X _ { S } ) GminH(Y∣G=EG[GS],X=XS)
因为在实际中凸假设是不成立的,但是通过实验加入正则项能够达到一个local minimum 且具有良好的解释性,为了实现对于 E G E_G EG的估计将其分解为变分伯努利分布 P G ( G S ) = ∏ ( j , k ) ∈ G c A S [ j , k ] P _ { G } ( G _ { S } ) = \prod _ { ( j , k ) \in G _ { c } } A _ { S } [ j , k ] PG(GS)=∏(j,k)∈GcAS[j,k],所以可用 A c ⊙ σ ( M ) A _ { c } \odot \sigma ( M ) Ac⊙σ(M)来代替 E G E_G EG,这里 M M M是就是我们要学习的Graph Mask. 很多任务只关心部分类的节点及其模型如何对该类进行预测.因此上式可以修正为:
min M − ∑ c = 1 C 1 [ y = c ] log P Φ ( Y = y ∣ G = A c ⊙ σ ( M ) , X = X c ) \min _ { M } - \sum _ { c = 1 } ^ { C } 1 [ y = c ] \log P _ { \Phi } ( Y = y | G = A _ { c } \odot \sigma ( M ) , X = X _ { c } ) Mmin−c=1∑C1[y=c]logPΦ(Y=y∣G=Ac⊙σ(M),X=Xc)与结构方面的解释类似,feature方面的解释也是通过一个mask来决定哪些特征对于预测是重要的:
X S F = { x j F ∣ v j ∈ G S } , x j F = [ x j , t 1 , … , x j , t k ] for F t i = 1 X _ { S } ^ { F } = \{ x _ { j } ^ { F } | v _ { j } \in G _ { S } \} , \quad x _ { j } ^ { F } = [ x _ { j , t _ { 1 } } , \ldots , x _ { j , t _ { k } } ] \text { for } F _ { t _ { i } } = 1 XSF={xjF∣vj∈GS},xjF=[xj,t1,…,xj,tk] for Fti=1
其中 X S F = X S ⊙ F X _ { S } ^ { F } \text = X _ { S } \odot F XSF=XS⊙F, F F F是我们要学习的mask最终联合优化最大化互信息熵:
max G S , F M I ( Y , ( G S , F ) ) = H ( Y ) − H ( Y ∣ G = G S , X = X S F ) \max _ { G _ { S } , F } M I ( Y , ( G _ { S } , F ) ) = H ( Y ) - H ( Y | G = G _ { S } , X = X _ { S } ^ { F } ) GS,FmaxMI(Y,(GS,F))=H(Y)−H(Y∣G=GS,X=XSF)
Critical Thinking:
- 定义了图节点特征计算的过程,为了得到子图和特征子集,使用了互信息熵的概念,通过变分近似,将非凸的图卷积网络能够通过加入正则项进行凸优化,从而在局部最小点能够获得好的解释,其中的方法很类似于之前所说的找到最小充分子集,这里的最小充分子集定义为一个小图及图上节点的特征子集
- 和非GNN相比,思想其实是很相似的,都是通过MASK或者选择出重要特征优化互信息熵(我们选出的这些特征子集对于预测有重要作用)
3.(NIPS2020)Parameter Explainer for Graph Neural Network
解决的问题:
- 解决了上面提到的GNNExplainer存在的问题(1)只能用于单个实例的解释,生成了一个子图和特征子集来提供可解释的解释(2)对于每个实例都要重新训练,这使得在多实例场景中不能成功应用,得到的解释属于local解释不能得到全局的集合的归纳的解释
方法/创新:
- 强调集体性和归纳性,PGEExplainer使用了由图数据建模的生成概率模型,能从观察的数据中发现基础的结构作为解释
- 将底层结构建模为边的分布,解释的图从其中进行采样,为了综合解释多个实例的预测,PGExplainer中的生成过程被一个深度神经网络参数化。由于神经网络参数在被解释实例的总体上是共享的,所以PGExplainer自然适用于为每个实例提供模型级的解释,并提供GNN模型的全局视图。
The PGExplainer:
文献中显示真实生活中的图都有一些基础结构,所以将输入图
G
o
G _ { o }
Go分解为两个子图,
G
o
=
G
s
+
Δ
G
G _ { o } = G _ { s } + \Delta G
Go=Gs+ΔG,其中第一项代表做出重要贡献的子图(即用于说明的子图),剩下的是任务无关的边,同上篇一样,通过最大化预测和
G
s
G_s
Gs的互信息熵来找到
G
s
G_s
Gs:
max
G
s
M
I
(
Y
o
,
G
s
)
=
H
(
Y
o
)
−
H
(
Y
o
∣
G
=
G
s
)
\max _ { G _ { s } } MI ( Y _ { o } , G _ { s } ) = H ( Y _ { o } ) - H ( Y _ { o } | G = G _ { s } )
GsmaxMI(Yo,Gs)=H(Yo)−H(Yo∣G=Gs)
直接优化导致很大的复杂度,假设解释图是吉尔伯特随机图,从原始图中挑选连边是独立的,将G看做一个随机图变量,基于上述假设,图G的概率可以被描述为:
P
(
G
)
=
Π
(
i
,
j
)
∈
E
P
(
e
i
j
)
P ( G ) = \Pi _ { ( i , j ) \in E } P ( e _ { i j } )
P(G)=Π(i,j)∈EP(eij)
一个直接的实例是
P
(
e
i
j
)
P(e_{ij})
P(eij)属于伯努利分布,并且
P
(
e
i
j
=
1
)
=
θ
i
j
P(e_{ij}=1)=\theta_{ij}
P(eij=1)=θij是边存在在G中的概率,在这个放松的条件下:
min
G
s
H
(
Y
o
∣
G
=
G
s
)
=
min
G
s
E
G
s
[
H
(
Y
o
∣
G
=
G
s
)
]
≈
min
Θ
E
G
s
∼
q
(
Θ
)
[
H
(
Y
o
∣
G
=
G
s
)
]
\min _ { G _ { s } } H ( Y _ { o } | G = G _ { s } ) = \min _ { G _ { s } } E _ { G _ { s } } [ H ( Y _ { o } | G = G _ { s } ) ] \approx \min _ { \Theta } E _ { G _ { s } \sim q ( \Theta ) } [ H ( Y _ { o } | G = G _ { s } ) ]
GsminH(Yo∣G=Gs)=GsminEGs[H(Yo∣G=Gs)]≈ΘminEGs∼q(Θ)[H(Yo∣G=Gs)]
重新参数化技巧
将采样过程使用一个确定的方法来近似,将边权重从二值放松为0,1间的连续数值
G
s
≈
G
^
s
=
f
Ω
(
G
o
,
τ
,
ϵ
)
G _ { s } \approx\hat { G } _ { s } = f _ { \Omega } ( G _ { o } , \tau , \epsilon )
Gs≈G^s=fΩ(Go,τ,ϵ)
其中参数为
Ω
\Omega
Ω,温度为
τ
\tau
τ,独立随机变量
ϵ
\epsilon
ϵ,利用二值确定分布作为实例
具体来说,边权重由下式计算:
ϵ
∼
Uniform
(
0
,
1
)
,
e
^
i
j
=
σ
(
(
log
ϵ
−
log
(
1
−
ϵ
)
+
ω
i
j
)
/
τ
)
\epsilon \sim \operatorname { Uniform } ( 0,1 ) , \quad \hat { e } _ { i j } = \sigma ( ( \log \epsilon - \log ( 1 - \epsilon ) + \omega _ { i j } ) / \tau )
ϵ∼Uniform(0,1),e^ij=σ((logϵ−log(1−ϵ)+ωij)/τ)
这段就讲了使用这种分布来近似伯努利分布的合理性,然后可以将优化目标写为:
min
Ω
E
ϵ
∼
Uniform
(
0
,
1
)
H
(
Y
o
∣
G
=
G
^
s
)
\min _ { \Omega } E _ { \epsilon \sim \operatorname { Uniform } ( 0,1 ) } H ( Y _ { o } | G = \hat { G } _ { s } )
ΩminEϵ∼Uniform(0,1)H(Yo∣G=G^s)
在节点分类任务中我们修改条件熵为交叉熵,并使用蒙特卡洛近似
min
Ω
E
ϵ
∼
Uniform
(
0
,
1
)
H
(
Y
o
,
Y
^
s
)
≈
min
Ω
−
1
K
∑
k
=
1
K
∑
c
=
1
C
P
(
Y
o
=
c
)
log
P
(
Y
^
s
=
c
)
=
min
Ω
−
1
K
∑
k
=
1
K
∑
c
=
1
C
P
Φ
(
Y
=
c
∣
G
=
G
o
)
log
P
Φ
(
Y
=
c
∣
G
=
G
^
s
(
k
)
)
\left. \begin{array} { c } { \min _ { \Omega } E _ { \epsilon \sim \operatorname { Uniform } ( 0,1 ) } H ( Y _ { o } , \hat { Y } _ { s } ) \approx \min _ { \Omega } - \frac { 1 } { K } \sum _ { k = 1 } ^ { K } \sum _ { c = 1 } ^ { C } P ( Y _ { o } = c ) \log P ( \hat { Y } _ { s } = c ) } \\ \\ { = \min _ { \Omega } - \frac { 1 } { K } \sum _ { k = 1 } ^ { K } \sum _ { c = 1 } ^ { C } P _ { \Phi } ( Y = c | G = G _ { o } ) \log P _ { \Phi } ( Y = c | G = \hat { G } _ { s } ^ { ( k ) } ) } \end{array} \right.
minΩEϵ∼Uniform(0,1)H(Yo,Y^s)≈minΩ−K1∑k=1K∑c=1CP(Yo=c)logP(Y^s=c)=minΩ−K1∑k=1K∑c=1CPΦ(Y=c∣G=Go)logPΦ(Y=c∣G=G^s(k))
从全局的观点来看图神经网络的解释
Z
=
GNNE
Φ
0
(
G
o
,
X
)
,
Y
=
GNNC
Φ
1
(
Z
)
Z = \operatorname { GNNE } _ { \Phi _ { 0 } } ( G _ { o } , X ) , Y = \operatorname { GNNC } _ { \Phi _ { 1 } } ( Z )
Z=GNNEΦ0(Go,X),Y=GNNCΦ1(Z)
其中Z表示经过GNN得到的node embedding,同时将它作为解释器的输入
Ω
=
g
Ψ
(
G
o
,
Z
)
\Omega = g _ { \Psi } ( G _ { o } , Z )
Ω=gΨ(Go,Z)
具体到实例中,PGExplainer的优化目标是:
min
Ψ
−
∑
i
∈
I
∑
k
=
1
K
∑
c
=
1
C
P
Φ
(
Y
=
c
∣
G
=
G
o
(
i
)
)
log
P
Φ
(
Y
=
c
∣
G
=
G
^
s
(
i
,
k
)
)
\min _ { \Psi } - \sum _ { i \in I } \sum _ { k = 1 } ^ { K } \sum _ { c = 1 } ^ { C } P _ { \Phi } ( Y = c | G = G _ { o } ^ { ( i ) } ) \log P _ { \Phi } ( Y = c | G = \hat { G } _ { s } ^ { ( i , k ) } )
Ψmin−i∈I∑k=1∑Kc=1∑CPΦ(Y=c∣G=Go(i))logPΦ(Y=c∣G=G^s(i,k))
对于节点分类任务
ω
i
j
=
M
L
P
Ψ
(
[
z
i
;
z
j
;
z
v
]
)
\omega _ { i j } = MLP _ { \Psi } ( [ z _ { i } ; z _ { j } ; z _ { v } ] )
ωij=MLPΨ([zi;zj;zv])
对于图分类任务
ω
i
j
=
MLP
Ψ
(
[
z
i
;
z
j
]
)
\omega _ { i j } = \operatorname { MLP } _ { \Psi } ( [ z _ { i } ; z _ { j } ] )
ωij=MLPΨ([zi;zj])
正则化
size和熵限制,budget限制(都是为了使得找到的子图是稀疏的,即是最小贡献子图)
连通限制:
H
(
e
^
i
j
,
e
^
i
k
)
=
−
[
(
1
−
e
^
i
j
)
log
(
1
−
e
^
i
k
)
+
e
^
i
j
log
e
^
i
k
]
H ( \hat { e } _ { i j } , \hat { e } _ { i k } ) = - [ ( 1 - \hat { e } _ { i j } ) \log ( 1 - \hat { e } _ { i k } ) + \hat { e } _ { i j } \log \hat { e } _ { i k } ]
H(e^ij,e^ik)=−[(1−e^ij)log(1−e^ik)+e^ijloge^ik]
思想是在真实场景下,决定性的结构被认为是相互关联的,如果两条边都和节点有连接,那么如果选择了一条边也要选择另一条
H
(
e
^
i
j
,
e
^
i
k
)
=
−
[
(
1
−
e
^
i
j
)
log
(
1
−
e
^
i
k
)
+
e
^
i
j
log
e
^
i
k
]
H ( \hat { e } _ { i j } , \hat { e } _ { i k } ) = - [ ( 1 - \hat { e } _ { i j } ) \log ( 1 - \hat { e } _ { i k } ) + \hat { e } _ { i j } \log \hat { e } _ { i k } ]
H(e^ij,e^ik)=−[(1−e^ij)log(1−e^ik)+e^ijloge^ik]