DAG-GNN: DAG Structure Learning with Graph Neural Networks
概
有向无环图 + GNN + VAE.
主要内容
先前已经有工作(NOTEARS)讨论了如何处理线性SEM模型
\]
\(A \in \mathbb{R}^{m \times m}\)为加权的邻接矩阵, \(m\)代表了有向无环图中变量的数目, \(Z\)是独立的noise. 需要特别说明的是, 在本文中, 作者假设每一个结点变量\(X_i\)并非传统的标量而是一个向量 (个人觉得这是很有意思的点, 有点胶囊的感觉), 故\(X \in \mathbb{R}^{m \times d}\), 这里\(X_i\)为\(X\)的第\(i\)行.
本文在此基础上更进一步, 考虑非线性的情况:
\]
如果\(g\)可逆, 则可以进一步表示为
\]
为了满足这一模型, 作者套用VAE, 进而最大化ELBO:
\]
整个VAE的流程是这样的:
encoder:
\[M_Z, \log S_Z = f_4((I - A^T)f_3(X)), \\
Z \sim \mathcal{N}(M_Z, S_Z^2).
\]decoder
\widehat{X} \sim \mathcal{N}(M_X, S_X^2).
\]
注: 因为每个结点变量都不是标量, 所以考虑上面的流程还是把\(X, Z\)拉成向量\(md\)再看会比较清楚.
此时
\]
仅最大化ELBO是不够的, 因为这并不能保证\(A\)反应有向无环图, 所以我们需要增加条件
\]
具体推导看NOTEARS, 这里\(\alpha=\frac{c}{m}\), \(c>0\)是一个超参数, 这个原因是
\]
所以合适的\(c\)能够让条件更加稳定.
最后目标可以总结为:
\mathrm{s.t.} \quad h(A) = 0.
\]
同样的, 作者采用了augmented Lagrangian来求解
\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.
\]
这里\(\eta > 1, \gamma < 1\), 作者选择\(\eta=10, \gamma=1/4\).
注: \(c\)逐渐增大的原因是, 显然当\(c = +\infty\)的时候, \(h(A)\)必须为0.
注: 作者关于图神经网络的部分似乎就集中在\(X\)的模型上, 关于图神经网络不是很懂, 就不写了.
代码
DAG-GNN: DAG Structure Learning with Graph Neural Networks的更多相关文章
- 论文解读(soft-mask GNN)《Soft-mask: Adaptive Substructure Extractions for Graph Neural Networks》
论文信息 论文标题:Soft-mask: Adaptive Substructure Extractions for Graph Neural Networks论文作者:Mingqi Yang, Ya ...
- 《Graph Neural Networks: A Review of Methods and Applications》阅读笔记
本文是对文献 <Graph Neural Networks: A Review of Methods and Applications> 的内容总结,详细内容请参照原文. 引言 大量的学习 ...
- 3D Graph Neural Networks for RGBD Semantic Segmentation
3D Graph Neural Networks for RGBD Semantic Segmentation 原文章:https://www.yuque.com/lart/papers/wmu47a ...
- [译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)
译自:http://sebastianruder.com/multi-task/ 1. 前言 在机器学习中,我们通常关心优化某一特定指标,不管这个指标是一个标准值,还是企业KPI.为了达到这个目标,我 ...
- 论文解读(SelfGNN)《Self-supervised Graph Neural Networks without explicit negative sampling》
论文信息 论文标题:Self-supervised Graph Neural Networks without explicit negative sampling论文作者:Zekarias T. K ...
- 论文阅读 Streaming Graph Neural Networks
3 Streaming Graph Neural Networks link:https://dl.acm.org/doi/10.1145/3397271.3401092 Abstract 本文提出了 ...
- 论文解读(LA-GNN)《Local Augmentation for Graph Neural Networks》
论文信息 论文标题:Local Augmentation for Graph Neural Networks论文作者:Songtao Liu, Hanze Dong, Lanqing Li, Ting ...
- 论文解读(GraphSMOTE)《GraphSMOTE: Imbalanced Node Classification on Graphs with Graph Neural Networks》
论文信息 论文标题:GraphSMOTE: Imbalanced Node Classification on Graphs with Graph Neural Networks论文作者:Tianxi ...
- (转)Understanding, generalisation, and transfer learning in deep neural networks
Understanding, generalisation, and transfer learning in deep neural networks FEBRUARY 27, 2017 Thi ...
随机推荐
- 15. Linux提取RPM包文件(cpio命令)详解
在讲解如何从 RPM 包中提取文件之前,先来系统学习一下 cpio 命令.cpio 命令用于从归档包中存入和读取文件,换句话说,cpio 命令可以从归档包中提取文件(或目录),也可以将文件(或目录)复 ...
- 零基础学习java------30---------wordCount案例(涉及到第三种多线程callable)
知识补充:多线程的第三种方式 来源:http://www.threadworld.cn/archives/39.html 创建线程的两种方式,一种是直接继承Thread,另外一种就是实现Runnabl ...
- C++ 素数对猜想
我的解法是先将2到n的所有素数全部列出来,再计算.将全部的素数列出来用了一个叫"埃拉托色尼筛法"的方法. 算法参照这里:https://www.sohu.com/a/2526745 ...
- APK 反编译以及遇到的问题
APK反编译: https://www.cnblogs.com/geeksongs/p/10864200.html 遇到的问题 https://www.jianshu.com/p/55bf5f688e ...
- 集合类——Map集合、Properties属性文件操作
1.Map集合 Collection集合的特点是每次进行单个对象的保存,若要对一对对象来进行保存就只能用Map集合来保存.即Map集合中一次可以保存两个对象,且这两个对象的关系是key = value ...
- SpringSecurity Oauth2.0
1.用户认证分析 上面流程图描述了用户要操作的各个微服务,用户查看个人信息需要访问客户微服务,下单需要访问订单微服务,秒杀抢购商品需要访问秒杀微服务.每个服务都需要认证用户的身份,身份认证成功后,需要 ...
- 聊聊 SpringBoot 中的两种占位符:@*@ 和 ${*}
前言 在 SpringBoot 项目中,我们经常会使用两种占位符(有时候还会混用),它们分别是: @*@ ${*} 如果我们上网搜索「SpringBoot 的占位符 @」,大部分答案会告诉你,Spri ...
- Java(运算符)
运算符 Java语言支持的运算符: 算术运算符:+,-,*,/,%(取余.求余)[模运算],++(自增),--(自减) 赋值运算符:= 关系运算符:>,<,>=(大于等于),< ...
- sctf_2019_easy_heap(off-by-null在2.27的利用)
题目的例行检查我就不放了 将程序放入ida中 漏洞也较为明显 可以看到 if这里多一个null ,明显的off by null 漏洞 程序在最开始的地方给了我们一个很大的空间,并且权限是rwx,所以我 ...
- GoLang设计模式17 - 访客模式
说明 访客模式是一种行为型设计模式.通过访客模式可以为struct添加方法而不需要对其做任何调整. 来看一个例子,假如我们需要维护一个对如下形状执行操作的库: 方形(Square) 圆形(Circle ...