文章信息
1. 摘要
提出了一个图元学习框架-图原型网络(GPN)。通过构建一个半监督的节点分类任务池来模拟真实的测试环境,GPN能够在一个属性网络上执行元学习,并推导出一个高度一般化的模型来处理目标分类任务。大量的实验证明了GPN在少镜头节点分类方面具有优越的能力。
2. introduction
节点分类问题的流行方法通常遵循监督或半监督范式,这通常依赖于所有节点类[47]的足够的标记节点的可用性。尽管如此,在许多真实世界的属性网络中,大部分节点类只包含有限数量的标记实例,从而呈现了节点类标签的长尾分布。由于标记训练数据的缺乏,现有的节点分类算法无法用这些少镜头节点类[31,44,47]学习有效的模型。因此,研究少镜头设置下属性网络的节点分类问题是具有挑战性但迫切的。
近年来,在少镜头学习(FSL)方面取得了很多研究进展,以解决任务(如分类),只有少数标记的例子。一般来说,FSL模型学习从具有大量标记数据的类中采样的不同元训练任务,并且可以自然地从看不见的类中推广到新任务(即元测试任务)。这种元学习过程使该模型能够适应以往经验中的知识,并在FSL问题上取得了重大进展。具体来说,暹罗网络[19]、匹配网络[40]、关系网络[37]试图通过在共享度量空间中比较查询实例和标记实例来进行预测。这些学习比较方法由于其简单性和有效性而流行起来。
尽管它们取得了卓有成效的成功,但对属性网络的少量学习在很大程度上仍未被探索,主要是因为以下两个挑战:(i)构建这些元训练任务的过程依赖于数据是独立和同分布的假设(i.i.d.),这在属性网络上是无效的。除了传统的文本或图像数据外,属性网络还位于非欧几里得空间中,并对节点之间的内在依赖性进行编码。直接嫁接现有的方法是不可能捕获底层数据结构的,这使得嵌入的节点表示的表达性降低。因此,如何在属性网络中发挥元学习的力量是从数据中提取元知识必不可少的;(ii)大多数现有的FSL方法只是简单地假设所有标记的例子对于描述其所属类具有同等的重要性。然而,忽略标记节点的个体信息量将不可避免地限制模型在真实属性网络上的性能:一方面,由于标记数据是ϟ,这使得FSL模型非常容易受到噪声或异常值的影响因为标记的数据严重限制了[33,45];另一方面,它与一个节点的重要性可能在很大程度上偏离另一个节点的事实背道而驰。直观地说,社区中的那些中心(核心)节点应该是更具有代表性的[46]。因此,如何捕获每个标记节点的信息量,是在归属网络上建立一个有效的少镜头分类模型的另一个挑战。
为了解决上述挑战,我们提出了图原型网络(GPN),这是一个图元学习框架,用于解决归属网络上的少镜头节点分类问题。GPN不是直接对节点进行分类,而是试图学习一个可转移的度量空间,其中通过找到最近的类原型来预测节点的标签。所提出的框架由两个基本组件组成,它们无缝地一起工作,以学习每个类的原型表示。具体来说,GPN中的网络编码器首先通过图神经网络(GNNs)将输入网络压缩为表达节点表示,以捕获属性网络的数据异质性。同时,开发了另一个基于gnn的节点评估器,通过利用来估计每个标记实例的信息量在网络中编码的附加信息。通过这种方式,GPN获得了高度健壮的和具有代表性的类原型。此外,GPN通过对半监督节点分类任务池进行元学习,逐步提取属性网络上的元知识,进一步在目标少镜头分类任务上获得更好的泛化能力。
3. related work
GNN的就不赘述了。 关注few shot learning
分两类
少镜头学习(FSL)的目标是基于以往的经验,用数量有限的例子来解决新的任务。一般来说,现有的FSL模型可分为两大类:
基于(1)优化的方法,它侧重于学习在少镜头例子[11,21,24,32]上给定梯度的模型参数的优化。其中一个例子是基于LSTM的元学习器[32],它旨在学习有效的参数更新规则来训练神经分类器。MAML[11]学习的是适合于不同的FSL任务的参数初始化,并与任何经过梯度下降训练的模型兼容。MetaSGD[21]在元学习中更进一步,主张在一步内学习权重初始化、梯度更新方向和学习速率。Snail[24]是另一种结合时间卷积和软注意来学习最优学习策略的模型。然而,这一工作通常需要微调的计算代价。
基于(2)度量的方法,它试图学习跨不同任务[22,33,35,37,40]的查询和支持集之间的可泛化的匹配度量。例如,匹配网络[40]学习一个具有注意网络的加权最近邻分类器。原型网络[35]通过取支持示例的平均向量来计算每个类的原型,并通过计算查询实例的欧氏距离来对查询实例进行分类。Ren等人[33]提出的原型网络的扩展考虑标记和未标记数据用于少镜头学习。关系网络[37]训练一个辅助网络来学习每个查询和支持集之间的非线性度量。值得一提的是,由于我们的方法的简单性和有效性,它也遵循了这个模式。近年来,少图形学习[2,47]受到越来越多的研究关注。然而,这些方法同样对待支持的例子,使模型对噪声或异常值[7]不稳定。
4. 方法
4.1 Episodic Training on Attributed Networks
遵循流行的情景训练范式[40]。具体来说,GPN在大量的情节中 学习 不同 的元训练任务,而不仅仅是在目标元测试任务上学习。情景训练的关键思想是通过从𝐶𝑡𝑟𝑎𝑖𝑛中采样节点来模拟真实的测试环境。训练环境和测试环境之间的一致性减轻了分布差距,提高了模型的泛化能力。具体来说,在每一集里,我们都构建了一个𝑁-way𝐾-shot元训练任务: 这里的参考文献 40 (Matching networks for one shot learning. --NIPS 2016)
support set S𝑡 and query set Q𝑡 of the meta-trainingtask T𝑡 are sampled from 𝐶𝑡𝑟𝑎𝑖n. 支持集S𝑡包含来自每个类的𝐾个节点,而查询集Q𝑡包含从每个𝑁类的其余部分采样的𝑀个查询节点; 整个训练过程是基于一组𝑇元训练任务T𝑡𝑟𝑎𝑖𝑛={T𝑡}𝑇𝑡=1。对模型进行训练,使每个元训练任务T𝑡中查询集Q𝑡的预测损失最小化,并逐段进行直至收敛。通过这种方式,模型逐渐通过这些元训练任务收集元知识,然后可以自然地推广到具有不可见类𝐶𝑡𝑒𝑠𝑡的元测试任务T𝑡𝑒𝑠𝑡={S,Q}。
与传统的构建情景训练池的监督元训练任务[12]不同,本文采样𝑁-way𝐾-shot标记节点,并将其余节点掩码为未标记节点。这样,创建一个具有部分标记的属性网络的半监督元训练任务。通过考虑标记和未标记数据及其依赖关系,能够在元学习过程中学习更多的具有表现性的节点表示。
4.2 Network Representation Learning
首先是堆叠多层GNN 来获得long-range dependencies
这里进行 原型计算 prototype computation
基于 Snell, J., Swersky, K., and Zemel, R. Prototypical networks for few-shot learning.NIPS(2017). 作者计算出原型
遵循原型网络[35]的思想,它鼓励每个类集群的节点围绕一个特定的原型表示。在形式上,类原型可以通过以下方式进行计算:
S𝑐表示𝑐类的标记例子集,Proto是原型计算函数。例如,在普通的原型网络[35]中,每个类的原型都是通过取属于该类的所有嵌入式节点的平均值来计算的:
简单来说:就是 每类的所有节点embedding 计算均值。 这样有多少类,就有多少个原型prototype
4.3 Node Importance Valuation
尽管它很简单,但直接将嵌入式支持实例的平均向量作为原型可能不能为我们的问题提供有希望的结果.因为他忽略了 每个节点的 不同重要性,且由于标签的数据很稀少,导致 FSL模型高度噪声敏感 因此,改进这些类原型对于构建一个健壮和有效的FSL模型尤为重要。
为了获得每个标签节点不同的重要性,采用Estimating node importance in knowledge graphs using graph neural networks. 19KDD的方法,通过邻居来 判断节点重要性。通过一个 score aggregation layer 来获得节点的 importance。
其中,𝑠𝑙𝑖为第𝑙层节点𝑣𝑖的重要性得分(𝑙=1,……,𝐿)。𝛼𝑙𝑖𝑗是节点𝑣𝑖和节点𝑣𝑗之间的注意权重,通过一个共享的注意机制来计算它:
为了计算初始重要性评分𝑠𝑖0,我们使用了一个评分层来压缩节点特征。我们的得分层是一个具有tanh非线性的前馈层。具体来说,节点𝑣𝑖的初始得分的计算方法为:
上面这个过程就是 通过 节点邻居和节点自身的importance score 计算出attention, 每个节点的 importance score 是上一层节点邻居的 importance score 和attention乘积之和。 第一层(0)的 importance score 是每个节点的 属性经过转化+bias 后 tanh求得 (式子8)。
Centrality Adjustment.
节点的重要性与其在图中的中心性呈正相关。考虑到节点𝑣𝑖的内度测度(𝑖)是其中心性和受欢迎度的常用代理,我们将节点𝑣𝑖的初始中心性𝐶(𝑖)定义为:
其中,𝜖是一个很小的常数。为了计算最终的重要性得分,我们对最后一层的估计得分𝑠𝐿𝑖应用中心性调整,并应用如下s型非线性如下:
通过这种方式,节点评估器通过利用网络中编码的附加信息来调整支持集中被标记的示例的重要性。
4.4 Few-shot Node Classification
在我们计算出每个支持节点的重要性分数后,我们首先使用softmax函数对这些分数进行归一化:
其中𝛽𝑖表示每个支持节点𝑣𝑖的归一化权值,则细化的原型可以直接计算:
从公式 6-11 都是为了 修改式子 5, 本文声称 简单的 均值不行。 因此每个节点对于 这个类别的原型 的贡献不同,为了计算出来 每个节点的贡献。 采用了 attention机制。 每层节点的importance 都是 取决于邻居(第一层自身属性)。 此外,中心性调整是 由于 考虑节点 的重要性 是和 节点本身的入度 是正相关的。 用这个 度 来确定节点的 重要性。 和attention计算出来的重要性 一起考虑。 因此最终node valuator 输出 每个节点的 重要性。 那么 5式 修改为 12式。
因此,模型可以调整集群位置,以更好地表示支持集和未标记集中的示例。这些学习到的原型为查询节点𝑣𝑖∗的类标签定义了一个预测器,它根据查询节点𝑣𝑖∗和每个原型之间的距离为每个类𝑐分配一个概率:
选用和文献 35 相同的 度量 平方欧氏距离
在情景训练框架下,每个元训练任务的目标是最小化查询集的预测和地面真相之间的分类损失。具体来说,训练损失可以定义为分配正确的类标签的平均负对数似然概率:
通过最小化上述损失函数,GPN能够为一个特定的元训练任务学习一个通用的分类器。训练集是通过从辅助类集𝐶𝑡𝑟𝑎𝑖𝑛中随机选择一个类的子集,然后在每个类中选择一个节点的子集作为支持集,其余节点的子集作为查询集。在经过大量的元化训练任务后,其泛化性能将在测试片段上进行测试,对于每个测试集,我们使用我们的GPN为提供的支持集S产生的预测器来将Q中的每个查询节点分类为最有可能的类:ˆ𝑦𝑖∗=argmax𝑐𝑝,𝑐|𝑣𝑖∗)。
4.5 时间复杂度分析
分为两个部分 一个是 encoder 类似gcn 的复杂度。 另一个式 node valuator 。这里说 和 edge 是有关的,因为v远远大于边, 。感觉是 和节点 线性相关的吧。
5. 实验
作者说那三个 类别太少了 不适合 FSL :: 其主要原因是,FSL模型通常需要在许多不同的分类任务上进行测试,而这些数据集只包含有限的节点类。
对比方法: 作者说 后三个基于小样本学习的方法,按照文献 47 CIKM的方法来在节点分类上测试 Meta-gnn: On few-shot node classification in graph meta-learning