这篇主要是关于图神经网络的概念理解的问题。
在读论文中存在许多预训练模型优化的相关论文,但预训练的过程与下游任务在EVALUATION中往往使用相同的数据集来验证效果,部分论文也没有探讨transability的问题。
数据集
预训练阶段和下游任务阶段使用的数据集可以是相同的,即数据集A。在预训练阶段,无监督学习任务通常会利用数据集A生成训练样本,而在下游任务阶段,利用数据集A进行有监督或半监督学习任务的训练。
预训练模型
在预训练阶段,主要目标是学习到具有良好表示能力的模型。通常采用的是无监督学习或自监督学习的方式,使用未标记的数据集进行训练。预训练的目标是尽可能地捕捉数据中的潜在结构和特征,而不是针对具体的下游任务进行优化。(这里也会使用label mask的方式进行学习,其中label mask率也是比较模型性能的重要方法)
task head
pre-train,fine-tune(预训练+调优)已经取得的非常好效果,尤其是在小样本学习中。一个完整GNN模型可以表示为:
数据集----->输入层---->隐藏层----->输出层
而预训练的过程可以理解为只完成了以下工作
数据集----->输入层---->隐藏层
而任务头作为输出层用来获得想要的输出,最简单的任务头也是一个(FC+SoftMax)。
接下来我们训练task head(fine-tune过程):fine-tune中一般会冻结pre-train模型的部分层的中的参数,留下一部分层的权重参数用来更新(注:图任务的模型都是很浅的,一般pre-train,fine-tune效果不行很好)。这里我们假设:我们对结果是一个3分类,数据经过pre-train模型得到embedding的dim是100。这是不满足节点分类的需求的,我们最终需要的embedding的dim应该是3,所以我们需要使用一个task head将其降成3维,并在训练过程中不断学习更新task head中的参数。
参数变化:
模型参数:预训练阶段和下游任务阶段在模型参数的初始化上有所不同。在预训练阶段,模型参数通常是通过在数据集A上进行无监督学习获取的。而在下游任务训练阶段,这些预训练的参数被用作初始参数,并通过在数据集A上进行有监督学习任务的训练而微调。