Paper Information

Title:Variational Graph Auto-Encoders
Authors:Thomas Kipf, M. Welling
Soures:2016, ArXiv
Others:1214 Citations, 14 References

1 A latent variable model for graph-structured data

  VGAE 使用了一个 GCN encoder 和 一个简单的内积 decoder ,架构如下图所示:

  

  Definitions:We are given an undirected, unweighted graph  $\mathcal{G}=(\mathcal{V}, \mathcal{E})$  with  $N=|\mathcal{V}|$  nodes. We introduce an adjacency matrix  $\mathbf{A}$  of  $\mathcal{G}$  (we assume diagonal elements set to $1$ , i.e. every node is connected to itself) and its degree matrix  $\mathbf{D}$ . We further introduce stochastic latent variables  $\mathbf{z}_{i}$ , summarized in an  $N \times F$  matrix  $\mathbf{Z}$ . Node features are summarized in an  $N \times D$  matrix  $\mathbf{X}$ .

  Inference model:使用一个两层的 GCN 推理模型

    $q(\mathbf{Z} \mid \mathbf{X}, \mathbf{A})=\prod_{i=1}^{N} q\left(\mathbf{z}_{i} \mid \mathbf{X}, \mathbf{A}\right) \text { with } \quad q\left(\mathbf{z}_{i} \mid \mathbf{X}, \mathbf{A}\right)=\mathcal{N}\left(\mathbf{z}_{i} \mid \boldsymbol{\mu}_{i}, \operatorname{diag}\left(\boldsymbol{\sigma}_{i}^{2}\right)\right)$

  其中:

    • $\boldsymbol{\mu}=\operatorname{GCN}_{\boldsymbol{\mu}}(\mathbf{X}, \mathbf{A})$  is the matrix of mean vectors  $\boldsymbol{\mu}_{i} $; 
    • $\log \boldsymbol{\sigma}=\mathrm{GCN}_{\boldsymbol{\sigma}}(\mathbf{X}, \mathbf{A})$; 
def encode(self, x, adj):
hidden1 = self.gc1(x, adj)
return self.gc2(hidden1, adj), self.gc3(hidden1, adj) mu, logvar = self.encode(x, adj)

  GCN 的第二层分别输出 mu,log $\sigma$ 矩阵,共用第一层的参数。

  这里 GCN 定义为:
    $\operatorname{GCN}(\mathbf{X}, \mathbf{A})=\tilde{\mathbf{A}} \operatorname{ReLU}\left(\tilde{\mathbf{A}} \mathbf{X} \mathbf{W}_{0}\right) \mathbf{W}_{1}$

  其中:

    • $\mathbf{W}_{i}$ 代表着权重矩阵
    • $\operatorname{GCN}_{\boldsymbol{\mu}}(\mathbf{X}, \mathbf{A})$ 和 $\mathrm{GCN}_{\boldsymbol{\sigma}}(\mathbf{X}, \mathbf{A})$ 共享第一层的权重矩阵 $\mathbf{W}_{0} $
    • $\operatorname{ReLU}(\cdot)=\max (0, \cdot)$
    • $\tilde{\mathbf{A}}=\mathbf{D}^{-\frac{1}{2}} \mathbf{A} \mathbf{D}^{-\frac{1}{2}}$ 代表着  symmetrically normalized adjacency matrix

  至于 $z$ 的生成:

def reparameterize(self, mu, logvar):
if self.training:
std = torch.exp(logvar)
eps = torch.randn_like(std)
return eps.mul(std).add_(mu)
else:
return mu z = self.reparameterize(mu, logvar)

  Generative model:我们的生成模型是由潜在变量之间的内积给出的:

    $p(\mathbf{A} \mid \mathbf{Z})=\prod_{i=1}^{N} \prod_{j=1}^{N} p\left(A_{i j} \mid \mathbf{z}_{i}, \mathbf{z}_{j}\right) \text { with } p\left(A_{i j}=1 \mid \mathbf{z}_{i}, \mathbf{z}_{j}\right)=\sigma\left(\mathbf{z}_{i}^{\top} \mathbf{z}_{j}\right)$

  其中:

    • $\mathbf{A}$ 是邻接矩阵   
    • $\sigma(\cdot)$ 是 logistic sigmoid function.  
class InnerProductDecoder(nn.Module):
"""Decoder for using inner product for prediction.""" def __init__(self, dropout, act=torch.sigmoid):
super(InnerProductDecoder, self).__init__()
self.dropout = dropout
self.act = act def forward(self, z):
z = F.dropout(z, self.dropout, training=self.training)
adj = self.act(torch.mm(z, z.t()))
return adj self.dc = InnerProductDecoder(dropout, act=lambda x: x) adj = self.dc(z)

  Learning:优化变分下界 $\mathcal{L}$ 的参数 $W_i$ :

    $\mathcal{L}=\mathbb{E}_{q(\mathbf{Z} \mid \mathbf{X}, \mathbf{A})}[\log p(\mathbf{A} \mid \mathbf{Z})]-\mathrm{KL}[q(\mathbf{Z} \mid \mathbf{X}, \mathbf{A}) \| p(\mathbf{Z})]$

  其中:

    • $\operatorname{KL}[q(\cdot) \| p(\cdot)]$ 代表着 $q(\cdot)$  和  $p(\cdot)$ 之间的 KL散度。  
    • 高斯先验 $p(\mathbf{Z})=\prod_{i} p\left(\mathbf{z}_{\mathbf{i}}\right)=\prod_{i} \mathcal{N}\left(\mathbf{z}_{i} \mid 0, \mathbf{I}\right)$  

   Non-probabilistic graph auto-encoder (GAE) model

  计算表示向量 $Z$ 和重建的邻接矩阵 $\hat{\mathbf{A}}$

    $\hat{\mathbf{A}}=\sigma\left(\mathbf{Z Z}^{\top}\right), \text { with } \quad \mathbf{Z}=\operatorname{GCN}(\mathbf{X}, \mathbf{A})$

2 Experiments on link prediction

  引文网络中链接预测任务的结果如 Table 1 所示。

  

  GAE* and VGAE* denote experiments without using input features, GAE and VGAE use input features.

论文解读(VGAE)《Variational Graph Auto-Encoders》的更多相关文章

  1. 论文解读《Bilinear Graph Neural Network with Neighbor Interactions》

    论文信息 论文标题:Bilinear Graph Neural Network with Neighbor Interactions论文作者:Hongmin Zhu, Fuli Feng, Xiang ...

  2. 论文解读《Cauchy Graph Embedding》

    Paper Information Title:Cauchy Graph EmbeddingAuthors:Dijun Luo, C. Ding, F. Nie, Heng HuangSources: ...

  3. 论文解读(GraphMAE)《GraphMAE: Self-Supervised Masked Graph Autoencoders》

    论文信息 论文标题:GraphMAE: Self-Supervised Masked Graph Autoencoders论文作者:Zhenyu Hou, Xiao Liu, Yukuo Cen, Y ...

  4. 论文解读(KP-GNN)《How Powerful are K-hop Message Passing Graph Neural Networks》

    论文信息 论文标题:How Powerful are K-hop Message Passing Graph Neural Networks论文作者:Jiarui Feng, Yixin Chen, ...

  5. 论文解读(SR-GNN)《Shift-Robust GNNs: Overcoming the Limitations of Localized Graph Training Data》

    论文信息 论文标题:Shift-Robust GNNs: Overcoming the Limitations of Localized Graph Training Data论文作者:Qi Zhu, ...

  6. 论文解读(LG2AR)《Learning Graph Augmentations to Learn Graph Representations》

    论文信息 论文标题:Learning Graph Augmentations to Learn Graph Representations论文作者:Kaveh Hassani, Amir Hosein ...

  7. 论文解读(GCC)《Efficient Graph Convolution for Joint Node RepresentationLearning and Clustering》

    论文信息 论文标题:Efficient Graph Convolution for Joint Node RepresentationLearning and Clustering论文作者:Chaki ...

  8. 论文解读(AGC)《Attributed Graph Clustering via Adaptive Graph Convolution》

    论文信息 论文标题:Attributed Graph Clustering via Adaptive Graph Convolution论文作者:Xiaotong Zhang, Han Liu, Qi ...

  9. 论文解读(DGI)《DEEP GRAPH INFOMAX》

    论文标题:DEEP GRAPH INFOMAX 论文方向:图像领域 论文来源:2019 ICLR 论文链接:https://arxiv.org/abs/1809.10341 论文代码:https:// ...

随机推荐

  1. spring boot 配置静态路径

    一  前言 最近有个项目,需要上传一个zip文件(zip文件就是一堆的html压缩组成)的压缩文件,然后后端解压出来,用户可以预览上传好的文件. 查看资料,spring boot对静态文件,可以通过配 ...

  2. 【多线程与高并发原理篇:1_cpu多级缓存模型】

    1. 背景 现代计算机技术中,cpu的计算速度远远高于主内存的读写速度.为了解决速度不匹配问题,充分利用cpu的性能,在cpu与主内存之间加入了多级缓存,也叫高速缓存,cpu读取数据直接从高速缓存中读 ...

  3. 通过 call/cc 给 Ice 实现 Coroutine

    前两天给 Ice 加了 call/cc, 为此还重构了一波, 实现 call/cc 还是因为看了轮子哥的大专系列( 里边说提供 continuation 语言实现 Coroutine 起来很轻松, 后 ...

  4. Linux 下 Git版本升级

    一.下载需要安装的版本号 wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.24.0.tar.gz 二.安装需求 yum ...

  5. oracle数据库表导出

    寻找一个测试table,清空,将需要导出的表导入表中的任意一列,写导出语句,导出. EXPDP USERID='user/account@orcl11 as sysdba' schemas=temp ...

  6. Java并发杂谈(一):volatile的底层原理,从字节码到CPU

    volatile的特性 volatile是Java中用于修饰变量的关键字,其主要是保证了该变量的可见性以及顺序性,但是没有保证原子性:其是Java中最为轻量级的同步关键字: 接下来我将会一步步来分析v ...

  7. C# Control.BeginInvoke、synchronizationcontext.post、delegate.BeginInvoke的运行原理

    背景 用到的知识点 1.windows消息机制 备注:鼠标点击.键盘等事件产生的消息要放入系统消息队列,然后再分配到应用程序线程消息队列.软件PostMessage的消息直接进入应用程序线程消息队列, ...

  8. C# mutex互斥锁构造

    概念 Mutext 出现的比monitor更早,而且传承自COM,当然,waitHandle也是它的父类,它继承了其父类的功能,有趣的是Mutex的脾气非常的古怪,它 允许同一个线程多次重复访问共享区 ...

  9. 计算机网络-IP篇

    目录 IP 基本认识 IP地址 IP 地址的分类 公有 IP 地址与私有 IP 地址 IP 地址与路由控制 IP 分⽚与重组 IPv6 基本认识 IPv4 ⾸部与 IPv6 ⾸部 IP协议 DNS A ...

  10. Oracle数据库巡检

    转至:https://blog.51cto.com/sf1314/2123068 select inst_id,status,count(*) from gv$session group by ins ...