文章目录

  • 主要内容
  • 代码

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} A∈Rm×m为加权的邻接矩阵, m m m代表了有向无环图中变量的数目, Z Z Z是独立的noise. 需要特别说明的是, 在本文中, 作者假设每一个结点变量 X i X_i Xi​并非传统的标量而是一个向量 (个人觉得这是很有意思的点, 有点胶囊的感觉), 故 X ∈ R m × d X \in \mathbb{R}^{m \times d} X∈Rm×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​((I−AT)−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ϕ​(Z∣X)​[logpθ​(X∣Z)]−DKL​(qϕ​(Z∣X)∥p(Z)),

整个VAE的流程是这样的:

  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​((I−AT)f3​(X)),Z∼N(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​((I−AT)−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ϕ​(Z∣X)∥p(Z))=21​i=1∑m​j=1∑d​{[SZ​]ij2​+[MZ​]ij2​−2log[SZ​]ij​−1}.
仅最大化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+αA∘A)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+α∣λ∣)m≤ec∣λ∣,
所以合适的 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. ϕ,θ,Amin​−LELBO​s.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,ϕ,θmin​−LELBO​+λh(A)+2c​∣h(A)∣2,λk+1=λk+ckh(Ak),ck+1={ηck,ck,​if∣h(Ak)∣>γ∣h(Ak−1)∣,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的模型上, 关于图神经网络不是很懂, 就不写了.

代码

原文代码

DAG-GNN: DAG Structure Learning with Graph Neural Networks相关推荐

  1. 【论文解读|AAAI2021】HGSL - Heterogeneous Graph Structure Learning for Graph Neural Networks 图神经网络的异构图结构学习

    文章目录 1 摘要 2 引言 相关工作 3 方法 3.1 特征图产生器 3.1.1 特征相似图 3.1.2特征传播图 3.2 语义图生成器 4 实验 5 结论 论文链接: http://shichua ...

  2. 【2019/ICML】DAG-GNN: DAG Structure Learning with Graph Neural Networks

    原文链接:https://dreamhomes.github.io/posts/202101041501.html 文章链接:https://arxiv.org/abs/1904.10098 源码链接 ...

  3. Iterative Deep Graph Learning for Graph Neural Networks: Better and Robust Node Embeddings

    摘要:在本文中,我们提出了一个端到端的图学习框架,即迭代深度图学习(IDGL),用于联合和迭代地学习图结构和图嵌入.IDGL的关键理论是基于更好的节点嵌入来学习更好的图结构,反之亦然(即基于更好的图结 ...

  4. 【论文解读 ASONAM 2019】Semi-Supervised Learning and Graph Neural Networks for Fake News Detection

    论文题目:Semi-Supervised Learning and Graph Neural Networks for Fake News Detection 论文链接:https://ieeexpl ...

  5. GNN:A Gentle Introduction to Graph Neural Networks

    distill-blog 零基础多图详解图神经网络(GNN/GCN)[论文精读] 什么是图 由点,点链接的边组成的拓扑结构,包括有向图,无向图等.可以用于表示现实生活的物理含义,比如人和人之间的关系, ...

  6. FEW-SHOT LEARNING WITH GRAPH NEURAL NETWORKS翻译

    基于GNN的小样本学习 简介: 我们提出利用基于推理的图模型来研究小样本学习问题,输入图像有标签或者隐藏标签.通过使用消息传播算法,我们定义了一种图神经网络来概述最近提出的几种小样本学习的模型.除了提 ...

  7. Graph Neural Networks: A Review of Methods and Applications(图神经网络:方法与应用综述)

    Graph Neural Networks: A Review of Methods and Applications 图神经网络:方法与应用综述 Jie Zhou , Ganqu Cui , Zhe ...

  8. A Comprehensive Survey on Graph Neural Networks(图神经网络综合研究)

    A Comprehensive Survey on Graph Neural Networks 图神经网络综合研究 Zonghan Wu, Shirui Pan, Member, IEEE, Feng ...

  9. Graph Neural Networks: Graph Structure Learning

    最近研究GNN的应用方面,遇到了很大的瓶颈,所以回归理论,潜心阅读图结构学习的理论知识,也希望给大家在学习时带来帮助,如有错误请私信指正! Graph Neural Networks: Graph S ...

最新文章

  1. php简单文章,php编写简单的文章发布程序
  2. 022-红黑树(三)
  3. Echart---多项柱状图-2D/H5
  4. 通过pgAgent实现PostgreSQL上的自动作业
  5. 静态类和非静态类的主要差别
  6. 中国的 30万 DBA 们来自何方,向何处去?
  7. 网站移动端500错误_PC网站和移动端网站有什么差异?
  8. 【Linux查看tomcat版本】
  9. Qt 学习之路 2(1):序 笔记
  10. 37.go struct 结构
  11. .xls和.xlsx 有什么区别?
  12. 《算法第四版》学习心得一——怎么学算法
  13. 安卓机型app的编译与反编译 apk文件的简单说明与解析
  14. Handing time
  15. matlab画某个变量的全球分布
  16. FPGA零基础学习:数码管驱动设计
  17. 【企业架构】企业架构角色和职责
  18. The 9-th BIT Campus Programming F. 狂乱(背包)
  19. Linux攻关之基础模块七 命令总结
  20. Confluent之Kafka Connector初体验

热门文章

  1. [Python基础04]基本数据类型
  2. python 解析域名_三、域名解析模块(dnspython)
  3. python-图片批量处理大小并删除原图片
  4. pygame按键事件
  5. 科技新品 | 飞利浦新型便携式投影仪;Amazfit三款全新智能手表;SK海力士业界第一款HBM3 DRAM...
  6. 小猪短租携手飞猪:共享住宿首推“先住后付”
  7. 2022 全球程序员薪酬报告出炉,看完我表示严重拖后腿了…
  8. UE4 默认天空球导致MaterialInstanceDynamic动态材质一直增加
  9. 设置 HP Laser 108w网络打印机固定IP地址
  10. LeetCode 2437. 有效时间的数目