论文标题:DEEP GRAPH INFOMAX
论文链接:https://arxiv.org/abs/1809.10341
论文来源:ICLR 2019
之前的相关博客:
一、概述
目前主流的无监督图表示学习方法主要依赖于基于随机游走的,然而这一类的方法受到诸多限制。最显著的是,已知的随机游走目标过分强调接近性信息,而牺牲了结构信息,并且方法的效果高度依赖于超参数的选择。本文提出的方法基于互信息估计,依赖于训练一个统计网络作为分类器来区分开组两个随机变量联合分布和边缘分布乘积的样本。本文的方法从Deep InfoMax改进而来,称为Deep Graph Infomax,可以应用在直推式和归纳式的图表示学习任务中。
二、方法
- 无监督图表示学习
- 局部-全局互信息最大化
所有patch表示都被驱动保持与图表示的互信息,这有助于保持patch层级的相似性,举例来说,图中距离较远但是有相同结构特征的节点之间可以建立联系。
- 算法
假设在单图情况下,Deep Graph Infomax的算法流程如下:
下图以一种直观的方式展示了算法的流程:
算法
三、实验
本文对直推式(transductive)和归纳式(inductive)任务都进行了实验,其中既包括单图配置,也包括多图配置,并且主要进行分类任务实验。在实验中DGI在完全无监督的情况下学习表示,然后使用简单分类器(逻辑回归)进行微调。
- 数据集
下表展示了本次实验的数据集配置情况:
数据集
- 实验设置
对于不同类型(直推式、大图归纳式以及多图归纳式)的实验,采用不同的encoder和破坏函数。
- 直推式学习
encoder采用一个一层GCN:
- 大图上的归纳式学习(只有Reddit数据集)
由于GCN的卷积核严重依赖于固定和已知的邻接矩阵,所以在当前配置下采用mean-pooling传播规则的GraphSAGE-GCN:
破坏函数与直推式配置类似,但是将minibatch内每个节点采样得到的子图看做独立的图进行破坏(也就是按照行单独打乱这些子图的特征)。这很可能使得中心节点在负样本图中的特征被替换为采样邻居的特征,从而增加了负样本的多样性。最后在中心节点中得到的patch表示被输入给discriminator。
上述过程如下图所示:
框架
- 多图上的归纳式学习(只有PPI数据集)
对于PPI数据集,受以前成功的监督架构的启发,该配置下的encoder如下:
负样本就是训练集中的其他图,为了增强负样本的多样性,也会对采样到的负样本图的特征进行dropout。另外实验发现,在将学习到的表示提供给逻辑回归模型之前,将它们标准化是有益的。
- Readout, discriminator等
不同的数据集配置采用同样的readout函数和discriminator架构。
Readout函数采用简单的节点特征平均:
另外所有模型使用Glorot initialization初始化,其他具体实验设置参看原文。
- 实验结果
下图展示了在多个数据集上的实验结果:
实验
另外使用t-SNE进行了特征的可视化:
t-SNE