Deep Graph Infomax
论文方向:图像领域
论文来源:2019 ICLR
论文链接:https://arxiv.org/abs/1809.10341
论文代码:https://github.com/PetarV-/DGI
阅读时间:2022年3月7日
摘要
-
DGI 是一种基于图数据结构的表示节点嵌入的无监督方法。
-
最大化局部和全局的互信息(通过图卷积得到的)。
-
DGI 不依赖于随机游走目标,并且很容易适用于直推式学习和归纳式学习。
1 介绍
基于研究的背景以及问题描述,作者的研究目标是什么?
-
将神经网络的方法推广到图结构,是目前机器学习的主要难题,GCN很好的解决了这个问题。但是最成功的的方法往往需要有监督的学习,由于大多数数据都是没有标签的,这使有监督学习面临难题。
-
此外,通常希望从 大规模图 中发现新颖或有趣的结构,因此,无监督图学习对于许多重要任务至关重要.
-
随机游走的方法高度依赖参数的选择
-
目前尚不清楚随机游走目标是否真的提供了任何有用的信号,因为这些编码器已经强制实施了一个归纳偏差,即相邻节点具有相似的表示。
-
工作:在这项工作中,我们提出了一个基于互信息而不是随机游走的无监督图学习的替代目标。
解决上面两个动机:1) 无标签问题;2) 在大规模图上可以拓展的问题
- 在概率论和信息论中,两个随机变量的互信息(Mutual Information, MI)是指变量之间相互依赖性的量度。近年来基于互信息的代表性工作是 MINE。
- MINE 其中提出了一种Deep InfoMax (DMI)方法学习高维数据的表示。DMI训练了一个编码模型来最大化高阶全局表示和输入的局部部分互信息。这鼓励编码器携带存在于所有位置的信息类型(因此是全局相关的),例如类标签的情况。(它依赖于训练统计网络作为来自两个随机变量及其联合分布的样本的分类器边际产品)
2 相关工作
2.1 对学习方法
表示的无监督学习的一个重要方法是训练编码器在捕获感兴趣的统计相关性的表示和不捕获感兴趣的统计相关性的表示之间进行对比。例如,对比方法可以使用评分函数,训练编码器以增加“真实”输入(也就是正例)的分数并降低“假”输入的分数。
DGI在这方面也具有对比性,因为我们的目标是基于对局部-全局对和负采样对进行分类。
2.2 采样策略
对比方法的一个关键实现细节是如何绘制正负样本。之前在无监督图表示学习上的工作依赖于局部对比损失(强制近端节点有相似的嵌入)。
在多种节点分类任务上评估了DGI编码器的好处。在每个任务上,DGI都完全使用无监督的方式去学习局部特征(patch representation),然后去评估这些节点的分类效果。这个过程使用patch representation训练和测试一一个简单的线性(逻辑回归)分类器来完成。
2.3 预测编码
对比预测编码(CPC)是另一种基于互信息最大化的深度表示学习方法。PCP也是对比的,但是使用条件密度的估计(以噪声对比估计的形式)作为评分函数。
然而,与DGI不同的是,CPC和上面的图方法都是预测性的:对比目标有效地训练了输入结构指定部分之间的预测器(例如,在相邻节点对之间或节点与其邻域之间)。DGI的不同之处在于,同时比较一个图的全局/局部部分,其中全局变量是从所有的局部变量计算而来的。
之前唯一侧重于对比图上的“全局”和“局部”表示的作品是通过邻接矩阵上的(自动)编码目标来实现的(Wang et al., 2016),并将社区层面的约束纳入节点嵌入中(Wang et al., 2017)。这两种方法都依赖于矩阵分解式的损耗,因此不能扩展到更大的图。 矩阵分解损失比较大。
3 DGI 方法
作者解决问题的方法/算法是什么?是否基于前人的方法?基于了哪些?
3.1 基于图的无监督学习
假设了一个通用的基于图的无监督机器学习设置。
首先给出图的节点特征, X = { x 1 ⃗ , x 2 ⃗ , . . . , x N ⃗ , } , x i ⃗ ∈ R F \mathbf X = \{\vec{x_1},\vec{x_2},...,\vec{x_N},\}, \vec{x_i}\in\mathbb{R}^F X={x1,x2,...,xN,},xi∈RF,是节点 i i i的属性, F F F是维度, N N N是节点个数。 邻接矩阵A是这些节点的关心信息。假设边没权重,邻接矩阵存储的时 0 0 0 或者 1 1 1。
模型的目的是训练一个encoder,将 ε : R N × F ∗ R N × N → R N × F ′ \varepsilon:R^{N \times F} * R^{N \times N }\rightarrow R^{N \times F'} ε:RN×F∗RN×N→RN×F′,形式化表示为: $\mathbf H = \varepsilon({\mathbf X},{\mathbf A}) = {\vec{h_1},\vec{h_2},…,\vec{h_N}} 最 终 实 现 用 最终实现用 最终实现用F’ 维 度 表 示 每 个 节 点 。 然 后 可 以 检 索 这 些 表 示 , 并 将 其 用 于 下 游 任 务 , 如 节 点 分 类 。 维度表示每个节点。然后可以检索这些表示,并将其用于下游任务,如节点分类。 维度表示每个节点。然后可以检索这些表示,并将其用于下游任务,如节点分类。\vec{h}_i$表示一个节点的high-level的表示。
在这里,重点关注图卷积编码器——一种灵活的节点嵌入体系结构,它通过局部节点邻域的重复聚集生成节点表示。一个关键的结果是产生的节点嵌入 h ⃗ i \vec{h}_i hi,总结了以节点 i i i为中心的图的一个局部信息(一个patch),而不仅仅是节点本身。在接下来的内容中,我们经常将 h ⃗ i \vec{h}_i hi 作为局部特征(patch representations)表示来强调这点。也就是说用 h ⃗ i \vec{h}_i hi表示局部特征。
3.2 局部-全局互信息最大化
我们学习编码器的方法依赖于最大化局部互信息——即,DGI寻求获取节点(即局部)表示,该表示捕获整个图的全局信息内容,由一个汇总向量 s ~ \widetilde{s} s 表示。
为了获得图级别的 summary vector s ~ \widetilde{s} s ,作者提出了 readout函数 R : R N × F → R F R: R^{N×F}→R^F R:RN×F→RF,将得到的patch表示汇总为图级表示$\widetilde s = R(\varepsilon(\mathbf X,\mathbf A)) $。 就是将一堆节点的向量映射为一个向量。
作为最大化局部互信息的指标,使用了一个判别器 discriminator: $\mathcal D:\mathbb{R}^F \times \mathbb{R}^F \to \mathbb{R} $, 例如 D ( h ⃗ i , s ⃗ ) \mathcal{D}(\vec h_i, \vec s ) D(hi,s) 代表着patch-summary对,也就是去判断patch和summary的两个向量的概率分数,如果patch在summary里面的话,这个值应该更高。
给判别器 D \mathcal D D提供的负样本是 ( X , A ) (\mathbf X, \mathbf A) (X,A)的全局表示(summary s ⃗ \vec s s ) 和另一图 ( X ~ , A ~ ) (\widetilde{\mathbf X}, \widetilde{\mathbf A}) (X ,A ) 的局部特征表示(patch representations)。针对多图设置, ( X ~ , A ~ ) (\widetilde{\mathbf X}, \widetilde{\mathbf A}) (X ,A ),可以是其他元素。但是针对单图,需要一个显示的(随机的)curruption函数 C : R N × F × R N × N → C : R M × F × R M × M \mathcal C:\mathbb{R}^{N \times F} \times \mathbb{R}^{N \times N} \to \mathcal C:\mathbb{R}^{M \times F} \times \mathbb{R}^{M \times M} C:RN×F×RN×N→C:RM×F×RM×M 。
负抽样程序的选择将控制特定类型的结构信息,这些信息是作为这种最大化的副产品所希望捕获的。
对于目标,我们遵循Deep InfoMax (DIM, Hjelm等人,2018)的直觉,并使用带有标准二值交叉熵(BCE)损失的噪声对比型目标,==这些样本来自联合(正示例)和 边际(负示例)的乘积。==目标函数:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mFJD2UYh-1647479276200)(C:\Users\WangTao\AppData\Roaming\Typora\typora-user-images\image-20220314230556068.png)]
该方法基于联合和边缘的乘积之间的JensenShannon散度,有效地最大化了 h ⃗ i \vec h_i hi 和 s ⃗ i \vec s_i si之间的互信息。
生成的局部特征patch representation 被驱动以保持与全局图摘要的互信息,这允许在局部水平上发现和保存相似性,例如具有相似结构的角色的遥远节点。注意,这是一个“颠倒”版本的参数由Hjelm et al提出,针对节点分类,我们的目标是为局部特征(也就是节点的向量表示)与图中类似的局部特征建立联系,而不是让全局信息summary包含所有这些相似之处(然而,这两种效应在原则上应该同时发生)。
3.3 THEORETICAL MOTIVATION
现在,我们提供了一些直觉,将我们的鉴别器的分类错误与图表示上的互信息最大化联系起来。…
3.4 DGI 概述
假设单图设置(即提供
(
X
,
A
)
(X, A)
(X,A)作为输入),我们现在总结Deep Graph Infomax
过程的步骤:
- 使用腐蚀函数
corruption function
j进行负采样: ( X ~ , A ~ ) ∼ C ( X , A ) (\widetilde{\mathbf X}, \widetilde{\mathbf A}) \sim \mathcal C(\mathbf X,\mathbf A) (X ,A )∼C(X,A) - 获取局部特征
patch representations
,通过将图输入编码器,得到局部特征 h ⃗ i \vec h _i hi:$\mathbf H = \varepsilon({\mathbf X},{\mathbf A}) = {\vec{h_1},\vec{h_2},…,\vec{h_N}} $. - 将负采样的样本输入编码器,得到局部特征 h ~ ⃗ i \vec{\widetilde h}_i h i: H ~ = ε ( X ~ , A ~ ) \widetilde {\mathbf H} = \varepsilon(\widetilde{\mathbf X},\widetilde {\mathbf A}) H =ε(X ,A )。
- 通过
readout function
函数获取全局表示: s ⃗ = R ( H ) \vec s = \mathcal R(\mathbf H) s=R(H)。 - 通过梯度下降最大化公式1,从而更新 $\varepsilon, \mathcal R, \mathcal D $ 。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2CkwC83T-1647479276202)(C:\Users\WangTao\AppData\Roaming\Typora\typora-user-images\image-20220315214300091.png)]
4 实验
在多种节点分类任务上评估了DGI编码器的好处。在每个任务上,DGI都完全使用无监督的方式去学习局部特征(patch representation),然后去评估这些节点的分类效果。这个过程使用patch representation训练和测试一一个简单的线性(逻辑回归)分类器来完成。
4.1 数据集
实验设置
Conclusion
作者给出了哪些结论?哪些是strong conclusions, 哪些又是weak的conclusions(即作者并没有通过实验提供evidence,只在discussion中提到;或实验的数据并没有给出充分的evidence)?