DAG-GNN: DAG Structure Learning with Graph Neural Networks

文章目录

    • 主要内容
    • 代码

Yu Y., Chen J., Gao T. and Yu M. DAG-GNN: DAG structure learning with graph neural networks. In International Conference on Machine Learning (ICML), 2019.

有向无环图 + GNN + VAE.

主要内容

先前已经有工作(NOTEARS)讨论了如何处理线性SEM模型
X = A T X + Z , X = A^TX + Z, X=ATX+Z,
A ∈ R m × m A \in \mathbb{R}^{m \times m} ARm×m为加权的邻接矩阵, m m m代表了有向无环图中变量的数目, Z Z Z是独立的noise. 需要特别说明的是, 在本文中, 作者假设每一个结点变量 X i X_i Xi并非传统的标量而是一个向量 (个人觉得这是很有意思的点, 有点胶囊的感觉), 故 X ∈ R m × d X \in \mathbb{R}^{m \times d} XRm×d, 这里 X i X_i Xi X X X的第 i i i行.

本文在此基础上更进一步, 考虑非线性的情况:

g ( X ) = A T g ( X ) + f 1 ( Z ) , g(X) = A^Tg(X) + f_1(Z), g(X)=ATg(X)+f1(Z),
如果 g g g可逆, 则可以进一步表示为
X = f 2 ( ( I − A T ) − 1 f 1 ( Z ) ) . X = f_2((I - A^T)^{-1}f_1(Z)). X=f2((IAT)1f1(Z)).

为了满足这一模型, 作者套用VAE, 进而最大化ELBO:
L E L B O = E q ϕ ( Z ∣ X ) [ log ⁡ p θ ( X ∣ Z ) ] − D K L ( q ϕ ( Z ∣ X ) ∥ p ( Z ) ) , \mathcal{L}_{\mathrm{ELBO}} = \mathbb{E}_{q_{\phi}(Z|X)}[\log p_{\theta}(X|Z)] - \mathbb{D}_{\mathrm{KL}}(q_{\phi}(Z|X)\| p(Z)), LELBO=Eqϕ(ZX)[logpθ(XZ)]DKL(qϕ(ZX)p(Z)),

整个VAE的流程是这样的:

DAG-GNN: DAG Structure Learning with Graph Neural Networks_第1张图片

  1. encoder:
    M Z , log ⁡ S Z = f 4 ( ( I − A T ) f 3 ( X ) ) , Z ∼ N ( M Z , S Z 2 ) . M_Z, \log S_Z = f_4((I - A^T)f_3(X)), \\ Z \sim \mathcal{N}(M_Z, S_Z^2). MZ,logSZ=f4((IAT)f3(X)),ZN(MZ,SZ2).

  2. decoder

M X , S X = f 2 ( ( I − A T ) − 1 f 1 ( Z ) ) , X ^ ∼ N ( M X , S X 2 ) . M_X, S_X = f_2((I - A^T)^{-1}f_1(Z)), \\ \widehat{X} \sim \mathcal{N}(M_X, S_X^2). MX,SX=f2((IAT)1f1(Z)),X N(MX,SX2).

注: 因为每个结点变量都不是标量, 所以考虑上面的流程还是把 X , Z X, Z X,Z拉成向量 m d md md再看会比较清楚.

此时
D K L ( q ϕ ( Z ∣ X ) ∥ p ( Z ) ) = 1 2 ∑ i = 1 m ∑ j = 1 d { [ S Z ] i j 2 + [ M Z ] i j 2 − 2 log ⁡ [ S Z ] i j − 1 } . \mathbb{D}_{\mathrm{KL}}(q_{\phi}(Z|X)\|p(Z)) = \frac{1}{2} \sum_{i=1}^m \sum_{j=1}^d \{[S_Z]_{ij}^2 + [M_Z]_{ij}^2 - 2\log [S_Z]_{ij} - 1 \}. DKL(qϕ(ZX)p(Z))=21i=1mj=1d{[SZ]ij2+[MZ]ij22log[SZ]ij1}.
仅最大化ELBO是不够的, 因为这并不能保证 A A A反应有向无环图, 所以我们需要增加条件
h ( A ) = t r [ ( I + α A ∘ A ) m ] = m , h(A) = \mathrm{tr}[(I+\alpha A \circ A)^m] = m, h(A)=tr[(I+αAA)m]=m,
具体推导看NOTEARS, 这里 α = c m \alpha=\frac{c}{m} α=mc, c > 0 c>0 c>0是一个超参数, 这个原因是
( 1 + α ∣ λ ∣ ) m ≤ e c ∣ λ ∣ , (1 + \alpha |\lambda|)^m \le e^{c|\lambda|}, (1+αλ)mecλ,
所以合适的 c c c能够让条件更加稳定.

最后目标可以总结为:
min ⁡ ϕ , θ , A − L E L B O s . t . h ( A ) = 0. \min_{\phi, \theta, A} \quad -\mathcal{L}_{\mathrm{ELBO}} \\ \mathrm{s.t.} \quad h(A) = 0. ϕ,θ,AminLELBOs.t.h(A)=0.

同样的, 作者采用了augmented Lagrangian来求解
( A k , ϕ k , θ k ) = arg ⁡ min ⁡ A , ϕ , θ   − L E L B O + λ h ( A ) + c 2 ∣ h ( A ) ∣ 2 , λ k + 1 = λ k + c k h ( A k ) , c k + 1 = { η c k , i f   ∣ h ( A k ) ∣ > γ ∣ h ( A k − 1 ) ∣ , c k , o t h e r w i s e . (A^k, \phi^k, \theta^k) = \arg \min_{A,\phi, \theta} \: -\mathcal{L}_{\mathrm{ELBO}} + \lambda h(A) + \frac{c}{2}|h(A)|^2, \\ \lambda^{k+1} = \lambda^k + c^k h(A^k), \\ c^{k+1} = \left \{ \begin{array}{ll} \eta c^k, & \mathrm{if} \: |h(A^k)| > \gamma |h(A^{k-1})|, \\ c^k, & otherwise. \end{array} \right. (Ak,ϕk,θk)=argA,ϕ,θminLELBO+λh(A)+2ch(A)2,λk+1=λk+ckh(Ak),ck+1={ηck,ck,ifh(Ak)>γh(Ak1),otherwise.
这里 η > 1 , γ < 1 \eta > 1, \gamma < 1 η>1,γ<1, 作者选择 η = 10 , γ = 1 / 4 \eta=10, \gamma=1/4 η=10,γ=1/4.

注: c c c逐渐增大的原因是, 显然当 c = + ∞ c = +\infty c=+的时候, h ( A ) h(A) h(A)必须为0.

注: 作者关于图神经网络的部分似乎就集中在 X X X的模型上, 关于图神经网络不是很懂, 就不写了.

代码

原文代码

你可能感兴趣的:(neural,networks)