2019  arXiv preprint


Residual or Gate? Towards Deeper Graph Neural Networks for Inductive Graph Representation Learning

  • 一、主要工作
  • 二、研究动机
  • 三、创新点
  • 四、具体思路
  • 训练方法
  • A.有监督学习
  • B.无监督学习
  • 五、理论分析
  • 六、实验效果



Networks for Inductive Graph Representation Learning )

一、主要工作

文章提出了一种用于inductive图表示学习的通用graph neural network class named recurrent graph neural network (RGNN)。 它结合了GNN和recurrent units以避免噪声干扰(称扩展的邻居节点信息为噪声)。

实验结果表明,具有递归单元的GNN模型比具有剩余连接的GNN模型更容易扩展到更深的模型;RGNN模型对来自图结构以及局部特征的噪声信息具有鲁棒性。

RGNN:它使用递归单元将以前的邻域信息压缩到隐藏状态,并在递归邻域扩展过程中成功地捕获有用的信息。

二、研究动机

传统的GNN在聚合邻居信息的时候会传播来自于扩展结点的噪声。
一个直观的想法是,我们可以使用递归单元来模拟model跨层的长期依赖关系。 如果我们把层间的隐藏状态(ht)作为一个观察序列,一个带有好的建模能力的递归单元在理想情况下,可以将以前的图形历史信息压缩为节点状态,并控制应该向新的隐藏状态添加多少信息。

三、创新点

把GNN套入RNN,由此用GCN,GAT结合LSTM,RNN,GRU构造出一系列模型:RGCN-LSTM,RGCN-GRU, RGAT-LSTM, RGAT-GRU。

四、具体思路

RNN的一般模型:

Residual learning是什么 residual representation_递归


RNN对序列输入x给出预测的输出h序列,h称为隐藏状态序列,通过损失函数借助前向或者后向算法计算参数W,U,V,b它们是整个序列共享的,体现了RNN的模型的“循环反馈”的思想。

ht=RNN(h(t-1),xt)

Residual learning是什么 residual representation_机器学习_02


两层RGNN示意图:

An intuitive thought would be can we use recurrent units to model long-term dependency across layers.
If we take hidden states across layers as a sequence of observations, a recurrent unit with good sequence modeling capability can ideally compress previous graph history into node states and control how much information should be added to new hidden states.

Residual learning是什么 residual representation_递归_03


GNNH(l+1)=GNN(Hl,A,Θl)

对应RNN模型,把GNNH(l+1)看作输入xt,以前层压缩的信息Hl(RNN搞出来的序列)看作H(t-1)。

Residual learning是什么 residual representation_机器学习_04


这个RGNN模型的一个直观解释是:

1.在第0层,隐藏状态H0只依赖于节点的局部特征;

2.每个层l来自l-Hop邻域的信息被递归单元压缩成隐状态Hl。

An intuitive view of this RGNN model is that at layer 0 the hidden state h0 is only dependent on the node’s local features, and at each layer l information from l-hop neighbourhood is compressed into the hidden state by a recurrent unit.

我的理解(没画出来的地方和RNN类似,我寻思)

Residual learning是什么 residual representation_深度学习_05

同理,可推出模型RGCN-LSTM,RGCN-GRU, RGAT-LSTM, RGAT-GRU。

RGCN-LSTM对应的公式为:

Residual learning是什么 residual representation_深度学习_06


LSTM对应的公式为:

Residual learning是什么 residual representation_递归_07


对LSTM的简要解释:RNN有梯度消失问题,大佬们通过在原来的RNN模型中加入了三个门单元+两个细胞:输入门+遗忘门+输出门以及随之带来的一堆参数,来解决了这个问题。

这些门相当于一个比率;
细胞状态是个新的隐状态(非伪ht)。

遗忘门f(t),输入门i(t),输出门o(t),他们公式一致,激活函数都为sigmoid,只不过自个儿有自个儿的参数。

Residual learning是什么 residual representation_无监督学习_08


遗忘门f(t):记得上个细胞状态C(t-1)的比率->C(t)// - > 表它作用后得出的结果

输入门i(t):使用伪ht的比率(即a(t),因为它和h(t)公式相同只有参数不同)->C(t)

//伪ht 这么说只是因为好记,我不明白他的意义

Residual learning是什么 residual representation_递归_09


输入门和遗忘门是合作的:

Residual learning是什么 residual representation_机器学习_10

输出门o(t):tanh(C(t))对h(t)的比率:

Residual learning是什么 residual representation_深度学习_11


⊙为Hadamard积:哈达玛积(Hadamard product)是矩阵的一类运算,若A=(aij)和B=(bij)是两个同阶矩阵,若cij=aij×bij,则称矩阵C=(cij)为A和B的哈达玛积,或称基本积 ,就是同阶矩阵对应点相乘得到大小不变的矩阵。LSTM模型整体图:

Residual learning是什么 residual representation_深度学习_12


两个细胞:用于更新ht。

Residual learning是什么 residual representation_深度学习_13


Residual learning是什么 residual representation_无监督学习_14

训练方法

Note that for a large-scale graph with millions of nodes, training for the whole graph becomes unfeasible because of the memory limitation. We use the sampling method proposed in GraphSAGE [7] for batched training. At each training iteration, we first sample a small batch of nodes B0 and then recursively expand Bl to Bl+1 by sampling Sl neighbourhood nodes of Bl . With a GNN of M layers, we get a hierarchy of nodes: B0, B1, …, BM. Representations of target nodes B0 are updated by aggregating node states from the bottom layer
BM to the upper layer B0.
就是说,内存不能承受太大的图规模。所以用和GraphSAGE中一样的批训练。
感觉是这样的:

Residual learning是什么 residual representation_无监督学习_15


Representations of target nodes B0 are updated by aggregating node states from the bottom layer BM to the upper layer B0.

A.有监督学习

Residual learning是什么 residual representation_无监督学习_16


已知一个node:vi的表示为hi,将其映射到分类空间得到Oi,可以推测Oi为一个one-hot vector:[0 0 1]

对二分类问题损失函数为:

Residual learning是什么 residual representation_神经网络_17


对多分类问题损失函数为:

Residual learning是什么 residual representation_无监督学习_18


p.s.同softmax,交叉熵作为损失函数。

B.无监督学习

(不懂不懂我不懂)

一个node:vi的表示为hi,目标是optimize观察到的他的上下文节点vj的概率:

Residual learning是什么 residual representation_无监督学习_19


因为N太大,所以我们可以用K个随机抽样的计算结果进行近似。

Residual learning是什么 residual representation_无监督学习_20


The task turns into distinguishing the context node vj from K

randomly sampled negative nodes.目标转化为区分vj,j∈[1,K],每个采样的点服从于均匀分布uniform distribution~P N (v)。

为节约内存,一个批batch的顶点共享set of negative nodes。

五、理论分析

六、实验效果

都是Inductive实验。
实验设置:
Reddit数据特别大,故用批处理。
Pubmed 只有它是有监督的训练we only test models with the supervised setting on Pubmed
A.有监督学习
 对于Pubmed、Reddit和PPI,我们将隐藏状态的维数分别设置为64、600和1024。 对于基于GAT的模型,我们使用8个h作为Pubmed,5个h作为Reddit,4个h作为PPI。 我们用dropout在[22]Pubmed,PPI; dropout为0.2。 我们将两层GNN模型应用于Pubmed和Reddit,三层GNN模型应用于PPI。 在GNN中的每一层后面都有一个指数 线性单元(EL U)非线性[23]。 模型是用Adam优化器训练的[24]Pubmed的初始学习率为0.01,其他数据集为0.001。 我们在Reddit进行批训练 具有邻域样本大小S1=25和S2=10的IT数据集。 批大小为128。 由于数据集的大小,我们运行了5次模型,并报告了Pubmed和PPI的平均性能。
B.无监督学习
 使用两层GNN模型。 负采样尺寸 negative sampling sizeK为10。 PPI和Reddit的随机行走长度分别为2和3。 其他超参数设置和有监督学习的一样,除了没有在这里用dropout。 在得到无监督学习的节点表示后,我们使用训练节点的表示来训练与GRAPHSAGE[7]相同的downstream linear classifier。

TABLE1:RGCN-LSTM,RGCN-GRU, RGAT-LSTM, RGAT-GRU模型对应的micro-averaged F1 scores(有监督和无监督) 

Residual learning是什么 residual representation_机器学习_21


TABLE2:数据集信息

Residual learning是什么 residual representation_无监督学习_22


FIG:模型深度对性能的影响,用F1衡量。

Residual learning是什么 residual representation_神经网络_23


图ab说明:虽然当深度变大时,GAT-Res和RGAT模型之间的差异变小,但10层GATRES仍然比10层RGAT-LSTM/RGAT-GRU差( 0.985对0.993/0.993)。

说Res在增加深度的表现上不如加了R的GCN。

图cd说明:深层他们都如不如层为2的表现,但是RGCN大概相当于浅层模型。Perturbation Analysis加入噪声,再看它们的效果

Residual learning是什么 residual representation_机器学习_24


在图a和b中,我们观察到具有LSTM和GRU单元的RGNN模型对有噪声的图信息具有更强的鲁棒性,这表明这两个RNN单元中的门有助于信息和避免噪声图信息。 在这种情况下,具有LSTM单元的RGNN通常比具有GRU单元的RGNN工作得更好。

在图c和d中,与具有剩余连接的GNN相比,RGNN模型具有更好的识别噪声特征的能力。 RGCN-LSTM的性能一般优于RGCN-GRU,但p>0.7下降速度快于RGCN-GRU。 RGAT-LSTM和RGAT-GRU的工作原理相似,它们都在很大程度上优于GATRes和GAT。