Graph Learning笔记 - 长尾分布问题
分享四篇论文入门图神经网络时的学习笔记。
SL-DSGCN
论文:Investigating and Mitigating Degree-Related Biases in Graph Convolutional Networks
来源:2020CIKM
概要
- GCN在图的半监督学习上能取得良好表现,但训练难度大
- 当标签数据有限,GCN在low-degree nodes的更新信息不足,预测表现不佳
- 提出SL-DSGCN(Self-Supervised-Learning Degree-Specific GCN),从模型和数据上减轻关于度的偏差
- 在数据集中验证了SL-DSGCN提高了自我训练GCN能力和低度节点的准确性。
分析问题
-
考虑如何捕捉不同层之间节点的复杂关系 / 如何为低度节点提供信息。
-
使用了 Cora, Citeseer, Pubmed, Reddit 四个数据集,通过可视化分析可以发现预测准确率随着节点度数的变化分布。
-
度数在数据集中并非独立同分布,而度数越大的点往往容易与带标签邻居相邻,可以频繁参与优化过程,这也是GCN在度数大的点性能好的原因之一。
实现过程
Degree-Specific GCN Layer
- SL-DSGCN的核心部分,用来捕捉不同度数节点的差异和相似性
- 传统GCN使用与相邻节点的加权平均来计算特征,该结构将节点的度考虑在内,使度不同的节点在传递消息和更新特征过程有所不同。(也许是特征拼接之后再进行图卷积操作)
- 该层参数由RNN生成,大概是因为度不同的节点通过同一个RNN可以获得不同的度的特征信息,从而在性质相似的点中,特征由度来决定。
Self-Supervised-Training with Bayesian Teacher Network
- Pre-training with the Annotator
teacher-student Network是用一个更宽更复杂,但已经训练好的神经网络(teacher)去训练另一个窄而深的网络(studen)。这篇论文就是使用这种方法生成软标签和不确定分数。
论文里提出带Bayesian teacher network的子监督训练,大概步骤:(1)使用图注释器为未标记的节点生成伪标签。
(2)使用生成的伪标签作为额外的监督,在有标签和无标签的数据上训练学生网络。
(3)使用训练好的学生网络,对图中的所有节点进行预测。
(4)在学生网络产生的预测上训练贝叶斯教师网络。
(5)使用训练好的贝叶斯教师网络来完善由图注释器生成的伪标签。
(6)重复步骤2-5,直到收敛。
- Fine-tuning Student with Uncertainty Scores
训练好的Bayesian teacher network可以计算每个节点的不确定分数,这东西可以给损失函数加权优化收敛,这样可以更好地利用未标记数据来训练。
Training Algorithm
一些思考
- RNN部分应该可以用更优秀的结构来代替了?比方说LSTM和Transformer啥的。
- 在稠密图的表现如何?感觉准度应该差不了多少但是计算会比较慢吧,所以感觉应该要先判断图的性质再考虑是否进入SL-DSGCN结构。
Meta-tail2vec
论文:Towards Locality-Aware Meta-Learning of Tail Node Embeddings on Networks
来源:2020CIKM
摘要
-
提出meta-tail2vec 方法来优化尾部节点嵌入问题
- 对于尾部节点的嵌入问题,采用重建的回归模型来计算。
- 对于网络的局部感知位置问题,提出删边和元学习的方法局部调整
-
在公共数据集中进行大量实验,验证了meta-tail2vec的性能提升
背景
- network embedding
- GNN
分析问题
- 对于没有 丰富结构链接/低度数 的节点,嵌入性能较差
- 一节点的度在网络中变化很大,不是独立同分布
- 某些网络的节点度的特点为长尾分布,即相当一部分节点处于尾部且度数非常低
- 如何在有限的结构信息中学习有效的尾部节点的嵌入向量??
问题的难点
- 尾部节点提供的信息非常少
- 嵌入时需要考虑每个节点的结构位置,在于无法适应每个节点(链接很少的尾部节点),否则会过拟合。
方法
-
对于尾部节点信息稀缺的问题,考虑利用头部节点的嵌入(Oracle embeddings)来训练回归模型并且通过自监督学习重建(视为一个few-shot问题)。利用该模型,可以预测尾部节点的嵌入使其逼近Oracle embeddings。同时,通过删边操作模拟尾部节点的有限信息。
- 在邻居随机选k个(支持集合)断掉,那样尾部节点嵌入学习就可以变成一个few-shot
- 使支持集合来更新先验知识,再用查询节点更新回归模型
- 回归模型可以用来预测尾部节点的嵌入向量,由嵌入器和回归其组成
- 嵌入器将每个节点降维,回归器则将嵌入向量映射到目标值。
-
针对每个节点结构位置问题,采用元学习范式,采用模型无关的MAML(Model-Agnostic Meta-Learning)元学习框架。
- 通过在多个任务上进行梯度下降来学习通用初始化参数,使这些参数快速适应新任务
- 更新后的参数在查询集上预测从而得到嵌入向量。
-
实验是在3个公共数据集上做节点分类和链路预测任务