©PaperWeekly 原创 · 作者|刘昊东
学校|电子科技大学硕士生
研究方向|推荐系统,表示学习
Kipf 与 Welling 16 年发表的「Variational Graph Auto-Encoders」提出了基于图的(变分)自编码器 Variational Graph Auto-Encoder(VGAE),自此开始,图自编码器凭借其简洁的 encoder-decoder 结构和高效的 encode 能力,在很多领域都派上了用场。
本文将先详尽分析最早提出图自编码器的「Variational Graph Auto-Encoders」这篇论文,将从以下几个角度进行分析:
VGAE 的思想
没有变分阶段的 GAE 的 encoder、decoder 阶段
有变分阶段的 VGAE
如何从确定分布再到从分布中采样
实验效果分析
然后会再介绍两篇关于如何应用图自编码器的文章。
Variational Graph Auto-Encoders
论文标题:Variational Graph Auto-Encoders
论文来源:NIPS 2016
论文链接:https://arxiv.org/abs/1611.07308
1.1 论文概览
先简单描述一下图自编码器的 intention 和用途:获取合适的 embedding 来表示图中的节点不是容易的事,而如果能找到合适的 embedding,就能将它们用在其他任务中。VGAE 通过 encoder-decoder 的结构可以获取到图中节点的 embedding,来支持接下来的任务,如链接预测等。
VGAE 的思想和变分自编码器(VAE)很像:利用隐变量(latent variables),让模型学习出一些分布(distribution),再从这些分布中采样得到 latent representations(或者说 embedding),这个过程是 encode 阶段。
然后再利用得到的 latent representations 重构(reconstruct)出原始的图,这个过程是 decode 阶段。只不过,VGAE 的 encoder 使用了 GCN,decoder 是简单的内积(inner product)形式。
下面具体讲解变分图自编码器(VGAE)。先讲 GAE,即图自编码器(没有变分)。
1.2 图自编码器(GAE)
统一规范,规定几个 notation 如下:
图用 表示,其中 表示节点集合, 表示边集合
: 邻接矩阵
: 度矩阵
: 节点数
: 节点的特征(features)维度
表示节点的特征矩阵
: embedding 维度
: 节点的 embedding
1.2.1 Encoder
GAE 使用 GCN 作为 encoder,来得到节点的 latent representations(或者说 embedding),这个过程可用一行简短的公式表达:
将 GCN 视为一个函数,然后将 和 作为输入,输入到 GCN 这个函数中,输出 , 代表的就是所有节点的 latent representations,或者说 embedding。
如何定义 GCN 这个函数?kipf 在论文中定义如下:
其中, , 和 是待学习的参数。
简言之,这里 GCN 就相当于一个以节点特征和邻接矩阵为输入、以节点 embedding 为输出的函数,目的只是为了得到 embedding。
1.2.2 Decoder
GAE 采用 inner-product 作为 decoder 来重构(reconstruct)原始的图:
上式中,