Graph Learning笔记 - 长尾分布问题

本文是关于图神经网络在处理长尾分布问题的笔记,涉及SL-DSGCN、Meta-tail2vec、TNGNN和Cold Brew四个方法。SL-DSGCN通过Degree-Specific GCN Layer和Bayesian Teacher Network改进GCN的低度节点性能。Meta-tail2vec利用元学习解决尾部节点嵌入问题。TNGNN提出Transferable Neighborhood Translation解决尾部节点信息缺失。Cold Brew通过结构嵌入和教师-学生模型处理孤立点的噪声邻居问题。
摘要由CSDN通过智能技术生成

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

GitHub - smufang/meta-tail2vec: Implementation of meta-tail2vec published in CIKM 2020 paper “Towards Locality-Aware Meta-Learning of Tail Node Embeddings on Networks”.

摘要

  • 提出meta-tail2vec 方法来优化尾部节点嵌入问题

    • 对于尾部节点的嵌入问题,采用重建的回归模型来计算。
    • 对于网络的局部感知位置问题,提出删边和元学习的方法局部调整
  • 在公共数据集中进行大量实验,验证了meta-tail2vec的性能提升

背景

  • network embedding
  • GNN

分析问题

  • 对于没有 丰富结构链接/低度数 的节点,嵌入性能较差
  • 一节点的度在网络中变化很大,不是独立同分布
  • 某些网络的节点度的特点为长尾分布,即相当一部分节点处于尾部且度数非常低
  • 如何在有限的结构信息中学习有效的尾部节点的嵌入向量??
问题的难点
  • 尾部节点提供的信息非常少
  • 嵌入时需要考虑每个节点的结构位置,在于无法适应每个节点(链接很少的尾部节点),否则会过拟合。

方法

  • 对于尾部节点信息稀缺的问题,考虑利用头部节点的嵌入(Oracle embeddings)来训练回归模型并且通过自监督学习重建(视为一个few-shot问题)。利用该模型,可以预测尾部节点的嵌入使其逼近Oracle embeddings。同时,通过删边操作模拟尾部节点的有限信息。

    • 在邻居随机选k个(支持集合)断掉,那样尾部节点嵌入学习就可以变成一个few-shot
    • 使支持集合来更新先验知识,再用查询节点更新回归模型
    • 回归模型可以用来预测尾部节点的嵌入向量,由嵌入器和回归其组成
    • 嵌入器将每个节点降维,回归器则将嵌入向量映射到目标值。
  • 针对每个节点结构位置问题,采用元学习范式,采用模型无关的MAML(Model-Agnostic Meta-Learning)元学习框架。

    • 通过在多个任务上进行梯度下降来学习通用初始化参数,使这些参数快速适应新任务
    • 更新后的参数在查询集上预测从而得到嵌入向量。
  • 实验是在3个公共数据集上做节点分类和链路预测任务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RWLinno

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值