本篇博客要分享的是使用「图神经网络」 解决「小样本」 分类问题的5个模型,每个模型都分享了单独的博客笔记,并从这些模型中总结出实现 图神经网络小样本网络 需要从哪几个方面考虑,以及后续学习路线应该如何安排。
目录
- GNN
- Taxonomy
- Structure
- Basic GNN
- Few-shot:Meta-Learning
- 模型一:2019.11:Meta-GNN
- 动机
- 方法
- 取样本
- 元训练
- 元测试
- 模型二:2020.10:AwGCN
- 介绍
- 方法
- 模型三:2020.12:EGNN-Proto
- 介绍
- 方法
- 模型四:2018.02:Few-shot GNN
- 方法
- 小结
- 模型五:2021.02:GDN
- 动机
- 方法
- 总结
在之前学习的深度学习模型中,比如说CNN,DNN等,他们的输入都是在欧式空间定义的图片或者文字,图神经网络中的图是具有结构信息的graph,定义在非欧式空间。
下图右侧是欧式空间中常见的一些神经网络的方法,比如说卷积神经网络,这种卷积的思想对应着图神经网络中的图卷积,他有两种实现的方法,分别是空间方法和谱方法。欧式空间中注意力机制的思想对应到非欧式空间就形成了图注意力网络(Graph Attention Networks),相应的还有 自编码器 对应到图自编码器( Graph Autoencoders),GAN 对应 图生成网络( Graph Generative Networks)
下面以一个最基础的gnn来介绍一下处理步骤。
在介绍完图神经网络和元学习之后,下面要介绍的这篇文章讲的就是在图上的元学习
- 题目:Meta-GNN: On Few-shot Node Classification in Graph Meta-learning
- 链接:https://dl.acm.org/doi/pdf/10.1145/3357384.3358106
- 笔记:【论文分享】GNN+小样本文本分类方法:Meta-GNN: On Few-shot Node Classification in Graph Meta-learning
- 源码:https://github.com/AI-DL-Conference/Meta-GNN
- 会议:CIKM (CCF-B)
- 时间:2019年11月
- 特点:GNN+元学习
元学习作为一种模仿人类智能的可能方法最近受到了极大的关注,现有的元学习方法大多是在欧式空间中解决图像和文本等小样本学习问题。然而,将元学习应用于非欧式的研究很少,最近提出的图神经网络(GNN)模型不能有效地解决graph上的小样本学习问题。
本篇提出了一个针对小样本结点分类的通用图元学习框架。
训练步骤:
对于每一个小任务,将支持集送入Meta-GNN,计算交叉熵损失。
L T i ( f θ ) = − ( ∑ x i s , y i s y i s log f θ ( x i s ) + ( 1 − y i s ) log ( 1 − f θ ( x i s ) ) ) \mathcal{L}_{\mathcal{T}_{i}}\left(f_{\boldsymbol{\theta}}\right)=-\left(\sum_{\boldsymbol{x}_{i s}, y_{i s}} y_{i s} \log f_{\boldsymbol{\theta}}\left(\boldsymbol{x}_{i s}\right)+\left(1-y_{i s}\right) \log \left(1-f_{\boldsymbol{\theta}}\left(\boldsymbol{x}_{i s}\right)\right)\right) LTi(fθ)=−(∑xis,yisyislogfθ(xis)+(1−yis)log(1−fθ(xis)))
然后我们执行参数更新,在任务Ti中使用一个或几个步骤的简单梯度下降(为了简单起见,后续只描述一个梯度更新)
θ i ′ = θ − α 1 ∂ L T i ( f θ ) ∂ θ \theta_{i}^{\prime}=\theta-\alpha_{1} \frac{\partial \mathcal{L}_{\mathcal{T}_{i}}\left(f_{\theta}\right)}{\partial \boldsymbol{\theta}} θi′=θ−α1∂θ∂LTi(fθ)
α1为任务学习率,训练模型参数以优化fθ ’ 在元训练任务中的性能。更具体地说,元目标如下:
θ = arg min θ ∑ T i ∼ p ( T ) L T i ( f θ i ′ ) \boldsymbol{\theta}=\underset{\theta}{\arg \min } \sum_{\mathcal{T}_{i} \sim p(\mathcal{T})} \mathcal{L}_{\mathcal{T}_{i}}\left(f_{\theta_{i}^{\prime}}\right) θ=θargmin∑Ti∼p(T)LTi(fθi′)
也就是说,每个任务都使用在自己的任务上进行一次梯度更新得到 θ ′ \theta_^{′} θi′,最终会得到多个 θ ′ \theta_^{′} θi′,优化的最终目的是找一个最优的,使得每一个 θ ′ \theta_^{′} θi′在自身的任务上损失最小。
对于元测试,我们只需要将新的小样本学习任务支持集的节点输入到元Meta-GNN中,并通过一个或少量梯度下降步骤更新参数θ '。因此,在查询集上可以很容易地评估Meta-GNN的性能。
由于本方法是直接在graph数据集上分类,虽然将元学习引入到了graph上,但是却有很多问题没有回答,比如说:对于非graph的数据
- 结点特征如何表示?
- 边特征如何表示?
- 图如何构建?
这些问题在后面的文章中都有很好的回答。并且在后序的文章中,在得到graph之后,用元学习的方法来训练图模型,已经成为一种默认的方式。
- 题目:Few-Shot Learning With Attention-Weighted Graph Convolutional Networks For Hyperspectral Image Classification
- 链接:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9190752
- 笔记:【论文分享】小样本图片分类方法:AwGCN:Few-Shot Learning With Attention-Weighted Graph Convolutional Networks
- 源码:-
- 会议:ICIP (CCF-C)
- 时间:2020年10月
- 特点:用CNN学习节点特征,用CNN+自注意力机制学习边特征,节点标签通过GCN传播。
分类任务:
贡献:
- 题目:Few-Shot Text Classification with Edge-Labeling Graph Neural Network-Based Prototypical Network
- 链接:https://aclanthology.org/2020.coling-main.485.pdf
- 笔记:【论文分享】小样本文本分类方法 EGNN-Proto:Few-Shot Text Classification with Edge-Labeling Graph Network-Based Proto
- 源码:-
- 会议:COLING (CCF-B)
- 时间:2020.12
- 特点:BERT学习文本嵌入,通过edge-labeling graph neural network改进prototypical network
动机:
贡献:
这里的prototypical network 以及 EGNN 都是之前的文章提出来的比较有影响力的模型。
1. Text Embedding
2. EGNN
3. Prototypical network
- 题目:Few-shot Learning With Graph Neural Networks
- 链接:https://arxiv.org/pdf/1711.04043.pdf
- 笔记:【论文分享】☆ 经典小样本GNN模型:Few-shot Learning With Graph Neural Networks【CNN+相似性度量+GCN】
- 源码:https://github.com/vgsatorras/few-shot-gnn
- 会议:ICLR
- 时间:2018.02
- 特点:这是一篇很经典的小样本+GNN文章,网上能找到的对它的阅读笔记也有很多,一度成为后续众多模型的baseline。虽然时间有点久了,但是还是有很多值得学习的地方。
可能会发现,上面提到的相似性度量模块并没有在下面这个框架图中体现,这是因为这是嵌入GNN中的一部分,是随着gnn的训练过程不断更新的,下面我们来看gnn的具体结构。
下面来看一下相似性度量模块与神经网络的详细结构
相似性度量模块:
图卷积模块:
接下来我想对前面提到的四个模型进行一个小结。用图神经网络来处理小样本问题,对于这里的神经网络,可以从四个方面来讨论。分别是:
对于以上提到的四个模型,可以分别将其每个部分进行分类总结:
接下来就是最后一篇文章啦,我为什么把最后这篇文章单独拿出来讲呢?因为它是专门针对于异常检测而提出来的模型,对我更加有借鉴意义。其次时间比较新
- 题目:Few-shot Network Anomaly Detection via Cross-network Meta-learning
- 链接:https://arxiv.org/pdf/2102.11165.pdf
- 笔记:【论文分享】★★★ 小样本网络异常检测方法 GDN:Few-shot Network Anomaly Detection via Cross-network Meta-learning
- 源码:-
- 会议:WWW(CCF-A)
- 时间:2021.02
- 特点:本文提出了一种新的图神经网络系列:图偏差网络(GDN),它可以利用少量标记的异常来加强网络中异常节点和正常节点之间统计上的显著偏差;为所提出的GDN配置一种新的跨网络元学习算法,通过从多个辅助网络传输元知识来实现少镜头网络异常检测。广泛的评估证明了所提出的方法在少量或甚至一次网络异常检测的有效性。
下图展示的就是这篇文章的两个点,首先提出一个图偏差网络(GDN),然后再基于GDN进行跨网络的训练,提出了Meta-GNN模型。
下图的左侧是本文提出来的新的神经网络,图偏差网络GDN。右侧是对GDN进行跨网络训练得到Meta-GDN。
GDN包括以下三个关键部分:
_ :结点 _ 的异常值;
_ 和 _ :学习的权重矩阵和权重向量;
_ 和 _ :偏置项。
_是采样的r个异常分数的标准差。Yi是结点的ground-truth,也就是标准答案。我们可以一起来分析一下这个损失函数:
vi为异常节点时,yi=1,这个损失函数会使得 该异常节点的异常得分与产生至少的较大正偏差
Vi为正常结点时,yi=0,这个损失函数会使得 正常节点的异常得分尽可能接近
用一句话概括一下:异常结点的异常分数,应该落在该高斯分布右侧远离均值区域
正常结点的异常值,应该落在高斯分布的均值附近。
这就是对异常值的一个优化
到这一步,我已经讲完了这篇文章的第一个点,也是提出了一个将graph映射为了标量异常分数的神经网络GDN,接下来我要讲的是这篇文章的第二个大的点,也就是跨网络来训练GDN。
上面这张图是本文对Meta-GDN的描述,下面这张图是今天分享的第一篇文章,Meta-GNN的描述。在我看来这两张图简直是一摸一样,总结一句话就是用元学习的策略来训练模型。可能是我的理解有错误,目前我是对这篇文章的第二个点保持怀疑态度的,因为所谓的跨网络,其实就是在网络数据集上随机抽取子图,构成元学习的支持集和查询集,进行元训练,这是在19年就有过的想法。如果后面有新的理解,我会在下一次讨论班再解释一下。
这篇博客要分享的几个模型到这里就已经全部介绍完毕了,博主想根据这篇文章总结一下用「图神经网络」 解决「小样本」问题需要从哪几个方面考虑,以及后续学习路线应该如何安排。
对于我目前有限的了解,对小样本模型的训练和测试,一定需要使用元学习。这是目前可以明确的。那么剩下的就是要思考:
因此下一步的学习计划应该分为两大步骤:
【很重要的一些话】:
由于这篇文章是博主在研究方向内的调研,前后也花了两个星期,虽然不能保证内容全部正确,但是私心是不愿意被搬运的,如果设置为vip文章,最低也要花98块钱才能看到,大家都是穷学生,这实在是太过分了啊!!!csdn你这里❤欠我的拿什么还啊!!所以,如果你看到了这里,说明你的研究方向和博主相似,如果这篇文章对你有一丢丢的帮助,给一个免费的一键三连吧