少样本图学习(few-shot learning on graph)知识背景

Few-Shot Learning on Graph

    • 少样本学习简介
    • 少样本图学习简介
    • 1.Support Set和Query Set(针对单个任务)
      • (1)Support Set(支持集)
      • (2)Query Set(查询集)
    • 2.Base Data和Novel Data(针对整个数据集)
      • (1)Base Data/Classes(基类数据)
      • (2)Novel Data/Classes(新类数据)

少样本学习简介

少样本学习(FSL)旨在从现有任务中学习广义经验,以形成可转移的先验知识,用于具有有限标注数据的新任务。它通常采用元学习(mete-learning)框架,其执行情景学习(episodic learning)以训练和优化模型。具体来说,给定一组任务 T T T及其数据集,在元训练(meta-training)阶段,目标是学习在 T T T中的所有任务中有效工作的参数 θ ∗ \theta* θ
θ ∗ = a r g m i n θ ∑ T i ∼ p ( T ) L ( D T i , θ ) \theta^*=\underset{\theta}{argmin}\sum_{T_i\sim p(T)}^{}L(D_{T_i},\theta) θ=θargminTip(T)L(DTi,θ)
其中, p ( T ) p(T) p(T)表示任务的分布, D T i D_{T_i} DTi是任务 T i T_i Ti的数据, L L L表示下游任务的损失函数。
在元测试(meta-testing)阶段, θ ∗ \theta^* θ作为初始化参数(元知识,meta-knowledge),其进一步快速地适应于新任务 T j T_j Tj
θ ∗ ∗ = L ( D T j , θ ∗ ) \theta^{**}=L(D_{T_j},\theta*) θ∗∗=L(DTj,θ)
需要注意的是, D T j D_{T_j} DTj仅包含有限的标注数据。

少样本图学习简介

少样本图学习(few-shot learning on graph,FSLG)是少样本学习的一个分支,旨在通过少量标注数据来实现图表示学习(graph representation learning)。典型的FSLG问题包括三个主要的图挖掘任务(graph mining tasks):少样本节点分类(FSNC)、少样本关系预测和少样本图级分类。
现有的FSNC问题是典型的有监督学习问题,可以看作是“ N N N-way K K K-shot”节点分类问题,其中新任务的训练数据集是由 N × K N×K N×K个节点组成, N N N是类的个数,每个类有 K K K个节点。
FSLG模型中使用的FSL方法通常分为两类:

  • 基于度量的方法(metric-based):通过学习信息丰富的特征空间来利用其先前学习的知识快速适应新任务,学习查询数据(query data)和支持数据(support data)之间的任务特定的相似性度量;
  • 基于优化的方法(optimization-based):学习良好的初始化基础学习器,其可以快速微调或调整,从而快速适应新的少样本梯度计算任务。

在少样本图学习中,理解【Support/Query Set】和【Base/Novel Data】这两组概念非常重要,它们是元学习(Meta-Learning)框架的核心术语。

1.Support Set和Query Set(针对单个任务)

这是元学习中任务(Task)级别的划分,描述**单个少样本任务(N-way K-shot)**内部的数据划分。一个少样本任务由Support Set和Query Set共同定义。简单来说,它们在同一个任务/小数据集内,Support Set用于学习,Query Set用于测试。

(1)Support Set(支持集)

作用:提供任务的示例,模型利用这些样本学习任务本身;
数据量:包含很少的标注样本(如每个类1/3/5个样本);
目的:模型根据Support Set快速适应这个特定任务。

(2)Query Set(查询集)

作用:用于评估模型在该任务上的泛化性能。
数据量:通常比Support Set多一些,但也是该任务的新样本(未在Support Set中出现过)。
目的:在模型利用Support Set适应任务后,用Query Set测试其学习效果。模型的预测结果在Query Set上计算损失/准确率。

2.Base Data和Novel Data(针对整个数据集)

这是数据集级别的宏观划分,描述整个模型训练和评估范式所使用的数据来源。训练时只用Base Data,测试时只用Novel Data,并且Novel Classes的样本完全来自与Base Classes不同的类别,即 C = C b a s e ∪ C n o v e l , C b a s e ∩ C n o v e l = ∅ C=C_{base}\cup C_{novel},C_{base}\cap C_{novel}=\varnothing C=CbaseCnovel,CbaseCnovel=,一般来说, C b a s e C_{base} Cbase中的标签数量丰富,但 C n o v e l C_{novel} Cnovel中的标签数量很少。

  • 在训练阶段,只用Base Data C b a s e C_{base} Cbase,并将其组织成无数个小样本任务(每个任务包括Support Set和Query Set),模型在这些模拟任务上学习“如何快速使用Support Set学会新任务并在Query Set上做好”。
  • 在测试阶段,只用Novel Data C n o v e l C_{novel} Cnovel,从中采样一批测试小样本任务。对于每个测试任务:模型只能看到该任务的Support Set进行快速适应,然后在该任务的Query Set上做预测并评估性能。

(1)Base Data/Classes(基类数据)

作用:用于学习训练元学习模型的核心能力(如特征提取器、比较器、优化器)。
数据量:通常是一个大的数据集,包含丰富的样本和类别;
目的:让模型学会**“如何快速学习新任务”**的元知识。模型在Base Classes上训练时,会模拟在Novel Classes上的少样本学习任务,即使用Base Classes的类别构造大量N-way K-shot任务。

(2)Novel Data/Classes(新类数据)

作用:用于评估模型在面对全新类别时的小样本学习能力;
数据量:包含新类别的少量样本;
目的:测试模型能否利用在Base Data上学到的元知识,仅用Novel Classes提供的少量样本快速学习,并在该新类别的Query Set上表现良好,模型在训练阶段从未见过这些类别。

整个训练过程 (Meta-Training)
├── ​Base Data​ (所有基类数据)
│ ├── 采样大量模拟小样本任务 (Episodes)
│ │ ├── Task 1:
│ │ │ ├── ​Support Set​ (来自基类的K-shot样本,用于任务内训练)
│ │ │ └── ​Query Set​ (来自基类的样本,用于任务内评估计算loss)
│ │ ├── Task 2:
│ │ │ ├── Support Set
│ │ │ └── Query Set
│ │ └── … (无数个任务)
│ └── 模型利用这些任务学习元知识
└── 模型不接触任何Novel Data

整个测试过程 (Meta-Testing/Evaluation)
├── ​Novel Data​ (所有新类数据)
│ ├── 采样一批测试小样本任务 (Episodes)
│ │ ├── Test Task 1:
│ │ │ ├── ​Support Set​ (来自新类的K-shot样本,用于任务内适应)
│ │ │ └── ​Query Set​ (来自新类的样本,用于评估最终性能)
│ │ ├── Test Task 2:
│ │ │ ├── Support Set
│ │ │ └── Query Set
│ │ └── … (多个任务)
└── 汇报在这些新类任务Query Set上的平均性能

你可能感兴趣的:(网络空间安全,学习,机器学习,人工智能)