图神经网络一大堆最新论文(一)
- Boost then Convolve: Gradient Boosting Meets Graph Neural Networks. 2021[2]
这篇文章的主要提出了一种结合GBDT和GNN的网络架构以及对应的训练策略,来解决节点的特征向量异构的问题:GBDT处理节点的异构特征,GNN处理图结构特征。
整体的结构特征也比较简单,重点其实在于它的训练策略。可以对比一下一种比较直接的训练策略:先训练GBDT来得到处理后的节点特征向量,再使用GNN来处理图结构特征。作者就提出了一种联合训练的策略:X是节点特征,f^i (X)是第i轮迭代生成的GBDT,g_θ (G,X^’)是GNN网络。对于每一轮迭代:
- 首先训练一个新的GBDT,如果是第一轮,loss就是Y与f^1 (X)的差值,否则,loss就是上一轮GNN优化后的X_new^'与f^i (X)的差值;
- 接着训练GNN,在这里GNN训练的输入是之前所有GBDT输出结果之和,loss就是Y与g_θ (G,X^’)的差值,但是这里训练的参数包括GNN的参数θ和输入X^’,以便得到X_new^'来训练下一轮的GBDT。
ps. 这个图(Figure 1)其实有点错误,右侧不应该是一个New tree,而应该是一个New GBDT。
- Combining Label Propagation and Simple Models Out-performs Graph Neural Networks. 2020[3]
这篇文章就比较有意思了,作者对GNN的有效性提出了质疑,仅仅使用MLP(忽略图结构特征)加上两项简单的后处理(标签传播),就能够在主流数据集中达到或接近GNN的最好结果。
作者先完全忽略图结构特征,使用MLP训练一个基于节点特征向量的标签预测模型,预测得到图中每个节点的标签;然后使用两项被称为Correct and Smooth的标签传播策略进行后处理,得到最终预测的节点标签。整个过程的核心就是两项标签传播策略:通过优化相关损失来“修正”MLP预测的标签(Residual Propagation),“平滑”最终预测的标签(Prediction Correlation)。具体过程涉及到标签传播相关内容,我讲不清楚,有兴趣可以去看原文。
- Network embedding with completely-imbalanced labels. 2020[4]
这篇文章主要想要解决的问题是图嵌入中标注数据标签不平衡的问题,即部分标签的标注数据很少、甚至没有,这种情况下图嵌入也应该通过图拓扑结构学到它们的信息。
作者提出了两套模型:RSDNE和RECT。RSDNE主体部分基于DeepWalk的矩阵分解模型,并且在这个基础上加入了两项自定义的loss:同类节点的相似性和不同类节点的不相似性,两者同样采用的矩阵形式实现。作者在训练策略上也做了一些设计,DeepWalk的矩阵分解形式的优化参数包括节点嵌入矩阵U和上下文表示矩阵H,而作者在定义同类节点的相似性loss时引入节点近邻矩阵S,于是作者交替优化这三个参数矩阵来达到优化三个loss的目的。RECT的主体部分是基于GCN的,然后作者在GCN的输出基础上加入了一层全连接后,将节点表示再通过DeepWalk的矩阵分解模型得到更新后的节点表示,当时作者并没有想到很好的方案将这两个训练过程迥异的方案结合起来,最后还是分开训练,先训练GCN,在训练矩阵分解,最后将GCN和矩阵分解的结果合起来作为节点的最终表示。
- Contrastive multi-view representation learning on graphs. 2020[5]
这篇文章主要借鉴了视觉领域的一些Auto-Encoder(对比方法)的想法来进行图上面的无监督Embedding。在视觉领域经常会对图像做一些加噪、扭曲、旋转裁剪等操作,以期待Encoder-Decoder能够将图像“还原”或者Embedding的结果“相似”,从而得到Encoder图像的表示。作者借鉴了这种思路,通过对原临接矩阵和扩散矩阵(两个视图)进行采样得到同节点的子图,设计了一个Encoder学到节点和子图的表示向量,约束它们之间“相似”得到节点和子图的向量表示,就可以顺利地用到下游任务当中了。
下面这张图其实画得有点奇奇怪怪的,首先原图A的基础上得到扩散图B,然后在其中一个图上进行采样得到节点和边组成子图S_1,同时在另一张图中取出对应的节点和节点之间的边组成子图S_2;接下来两个子图分别经过各自的多层GNN(论文使用的GCN)后,经过同样参数的MLP得到各自节点的表示N_1和N_2;再然后各自子图GNN的所有节点的所有层输出,通过同一个求和池化操作后接入同样的MLP,从而得到各自子图的向量表示G_1和G_2,最后的loss就在两边的节点向量表示和子图向量表示之间产生,即N_1和G_2的loss加上N_2和G_1的loss,计算loss采用的是互信息(mutual information)。
总的来说这篇论文算是图像领域的Auto-Encoder方法在图Embedding领域的一项尝试,整个过程里面模型的选型主要靠作者的直觉和尝试,尝试的方向很不错,实验效果也很好。
- Deep Graph Contrastive Representation Learning. 2020[6]
这篇文章的基本思路和上一篇基本一致,都是生成两个不同的视图,然后约束两个视图中节点表示“相近”,从而无监督地得到节点的Encoder。不同之处在于,这篇文章使用移除边(Removing edges)和掩盖节点特征(Masking node features)两种手段,生成了两个“损坏”的视图。并且提出了一种独特的损失函数计算方式,作者也花了很大的篇幅介绍他提出的损失函数与互信息损失函数(Mutual Information)和三元损失函数(Triplet Loss)的关系。这篇比较偏理论,提出的方法也都尽量与已有方法靠了下边,给出了方法提出的“理由”。
作者生成视图使用了两种方法:移除边,即以一定的概率移除掉原始图中的边;掩盖节点特征,以一定的概率将节点的一部分特征变为0。作者将这两种方法与DropEdge和Dropout进行了一下类比,并没有严格的证明。作者提出的损失函数与通常的损失函数也大同小异,约束两个视图相同节点表示相近的同时,还约束了同一视图中不同节点表示不同,以及不同视图中不同节点表示的不同。值得一提的是,作者花了不少的篇幅来证明这个损失函数与互信息损失函数和三元损失函数的关系:作者提出的损失函数是互信息的一个下界,而且恰好有一篇论文[7]说明了严格的互信息并不是一个好的Encoder损失函数,而另一方面该损失函数还可以转化为经典的三元损失函数,颇具戏剧性。
[1] https://github.com/dmlc/dgl
[2] Ivanov S, Prokhorenkova L. Boost then Convolve: Gradient Boosting Meets Graph Neural Networks[J]. arXiv preprint arXiv:2101.08543, 2021.
[3] Huang Q, He H, Singh A, et al. Combining Label Propagation and Simple Models Out-performs Graph Neural Networks[J]. arXiv preprint arXiv:2010.13993, 2020.
[4] Wang Z, Ye X, Wang C, et al. Network embedding with completely-imbalanced labels[J]. IEEE Transactions on Knowledge and Data Engineering, 2020.
[5] Hassani K, Khasahmadi A H. Contrastive multi-view representation learning on graphs[C]//International Conference on Machine Learning. PMLR, 2020: 4116-4126.
[6] Zhu Y, Xu Y, Yu F, et al. Deep graph contrastive representation learning[J]. arXiv preprint arXiv:2006.04131, 2020.
[7] Michael Tschannen, Josip Djolonga, Paul K. Rubenstein, Sylvain Gelly, and Mario Lucic. On Mutual Information Maximization for Representation Learning. In ICLR, 2020.
- 点赞
- 收藏
- 关注作者
评论(0)