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的一般模型:
RNN对序列输入x给出预测的输出h序列,h称为隐藏状态序列,通过损失函数借助前向或者后向算法计算参数W,U,V,b它们是整个序列共享的,体现了RNN的模型的“循环反馈”的思想。
ht=RNN(h(t-1),xt)
两层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.
GNNH(l+1)=GNN(Hl,A,Θl)
对应RNN模型,把GNNH(l+1)看作输入xt,以前层压缩的信息Hl(RNN搞出来的序列)看作H(t-1)。
这个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类似,我寻思)
同理,可推出模型RGCN-LSTM,RGCN-GRU, RGAT-LSTM, RGAT-GRU。
RGCN-LSTM对应的公式为:
LSTM对应的公式为:
对LSTM的简要解释:RNN有梯度消失问题,大佬们通过在原来的RNN模型中加入了三个门单元+两个细胞:输入门+遗忘门+输出门以及随之带来的一堆参数,来解决了这个问题。
这些门相当于一个比率;
细胞状态是个新的隐状态(非伪ht)。
遗忘门f(t),输入门i(t),输出门o(t),他们公式一致,激活函数都为sigmoid,只不过自个儿有自个儿的参数。
遗忘门f(t):记得上个细胞状态C(t-1)的比率->C(t)// - > 表它作用后得出的结果
输入门i(t):使用伪ht的比率(即a(t),因为它和h(t)公式相同只有参数不同)->C(t)
//伪ht 这么说只是因为好记,我不明白他的意义
输入门和遗忘门是合作的:
输出门o(t):tanh(C(t))对h(t)的比率:
⊙为Hadamard积:哈达玛积(Hadamard product)是矩阵的一类运算,若A=(aij)和B=(bij)是两个同阶矩阵,若cij=aij×bij,则称矩阵C=(cij)为A和B的哈达玛积,或称基本积 ,就是同阶矩阵对应点相乘得到大小不变的矩阵。LSTM模型整体图:
两个细胞:用于更新ht。
训练方法
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中一样的批训练。
感觉是这样的:
Representations of target nodes B0 are updated by aggregating node states from the bottom layer BM to the upper layer B0.
A.有监督学习
已知一个node:vi的表示为hi,将其映射到分类空间得到Oi,可以推测Oi为一个one-hot vector:[0 0 1]
对二分类问题损失函数为:
对多分类问题损失函数为:
p.s.同softmax,交叉熵作为损失函数。
B.无监督学习
(不懂不懂我不懂)
一个node:vi的表示为hi,目标是optimize观察到的他的上下文节点vj的概率:
因为N太大,所以我们可以用K个随机抽样的计算结果进行近似。
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(有监督和无监督)
TABLE2:数据集信息
FIG:模型深度对性能的影响,用F1衡量。
图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加入噪声,再看它们的效果
在图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。