
Year:2023
Conference:NeurIPS
Address:https://arxiv.org/abs/2305.12600
Introduction
上下文学习是语言模型的一种新颖且最引人注目的能力之一。它指的是预训练模型在预测时仅通过几个示例提示就能直接执行新颖和多样化的任务,无需更新模型权重。例如,一个人可以使用自然语言描述新任务(例如,问答、机器翻译或代码生成),并用几个提示示例向语言模型展示,然后语言模型直接执行任务,无需任何模型训练或微调。

然而,如何使上下文学习能够适用于多样的图机器学习任务,例如识别社交网络中的虚假信息传播者和在线电子商务网站上的产品推荐,仍然是一个未被探索且具有挑战性的问题。一个针对图的上下文学习器应该能够在新图上解决新任务。例如,在训练了亚马逊购买图之后,能够在Spotify上给出音乐产品推荐。
two challenges:
挑战1:如何制定和表示图上的节点、边和图级别的任务,使用统一的任务表示,使模型能够在无需重新训练或参数调整的情况下解决多样化的任务。换句话说,关键挑战是:图机器学习任务的自然语言提示的类比是什么?
挑战2:如何设计模型架构和预训练目标,使模型能够在统一任务表示中跨多样化的任务和多样化的图实现上下文学习能力。
现有的图预训练方法只旨在学习一个好的图编码器,并需要微调以适应不同任务,而现有的图上的元学习方法只旨在同一图内跨不同任务泛化。另一方面,实现上下文学习需要解决更困难的设置,即在不进行微调的情况下跨图和任务泛化。针对上面的两个挑战,作者提出一个通用的方法用于图上分类任务:
(1) 提示图prompt graph——一种上下文图任务表示
提示图以提供一种统一的方式来表示多样化的节点、边和图级别的机器学习任务。提示图首先对要进行预测的输入节点/边进行上下文化(包括提示示例和查询),然后将它们与额外的标签节点连接起来,使得提示示例与查询相互连接。这种统一的表示能够将多样化的图机器学习任务指定给同一个模型,而不考虑图的大小。

(2) 多样化上下文图系统预训练PRODIGY(Pretraining Over Diverse In-Context Graph Systems)——在提示图上进行预训练的上下文学习器的框架。
PRODIGY设计了模型架构和预训练目标,使得模型被预训练以解决广泛范围内的任务和图,并且可以开箱即用。首先设计一个图架构,利用图神经网络学习节点/边表示,并使用注意力机制在提示图上进行通信。此外提出一系列在提示图上的上下文预训练目标,特别是包括一个新颖的自监督预训练任务——邻居匹配(分类节点或边属于哪个邻域)。
Preliminary
Classification Tasks over Graphs
定义一个图,其中 V、E、R 分别代表节点集、边集和关系集。一条边 由 u∈V、 r∈R 和v∈V 组成。
给定一个类别集合 Y,一个标准的分类任务是预测每个输入 x∈X 的标签 y ∈ Y。节点级别的分类任务与之类似,但每个输入是图 G 中的一个单独节点,即 X =V,并且有整个图 G 的额外辅助信息。例如,在由作者和论文组成的引文网络中,节点级别的分类任务可能是预测每位作者的主要机构。类似地,边级别的分类任务是预测由任意一对节点形成的潜在边的最佳标签,即 X =V ×V。
由于本篇文章对不同级别的任务感兴趣,所以设计了一个统一的表述,其中输入X的空间由图组成,即 。对于节点分类任务,只包含需要进行预测的输入节点,即 和 ;对于边分类任务,它包含节点对,即和。
Few-shot Prompting
作者为图上的分类任务定义了一种基于上下文的学习设置,这些任务通过少量样本提示(few-shot prompting)来实现。
对于下游的一个m路分类任务的k-shot 提示,使用少量的输入-标签对作为任务规范的提示示例,使得对于每个类别 y∈Y,都有 k 个带有标签 y 的输入-标签对。同时向模型提供一组查询 。
图上的分类任务与语言和其他模态的一个重要区别是,由于所有输入数据点都是来自更大的源图G的节点/边/子图,这个图包含了关键信息,并为输入提供了上下文,例如,要预测输入节点的局部邻域。因此,除了S和Q,还需要在提示中包含源图G。
鉴于上述信息作为提示,预训练的模型应该能够通过上下文学习直接输出Q中每个数据点的预测标签。因此,如何将信息表述为统一且高效的输入形式,构成了一个独特的挑战,并影响着模型架构。
Prompt Graph Representation
提示图由数据图(data graphs)和任务图(task graph)组成。提示图通过数据图中的上下文捕获输入数据和标签之间的关系,以及任务图中的数据节点和标签节点。
data graphs
为了从G中收集更多关于的信息,从而不必显式地表示整个G,首先在G中对S和Q中的每个数据点进行上下文化(contextualization),以形成数据图。在这里,通过在G中采样的k跳邻域来构建数据图,即,其中,,Neighbor是一个函数,返回中每个节点的i跳邻居。
task graph
为了更好地捕捉输入与标签之间的连接和关系,接着构建任务图。对于前一阶段的每个数据图,有数据节点代表每个输入;对于每个标签,有标签节点。因此,总的来说,任务图包含个数据节点(个提示示例和n个查询)和m个标签节点。
对于查询集,由于不知道每个图的标签,从所有标签节点到查询集中的每个数据点添加单向边,即每个查询数据节点将连接到所有标签节点;对于提示示例,我们将每个数据节点连接到所有标签节点,其中与真实标签的边被标记为T,其他边被标记为F。
Methodology
到目前为止,对于图上的少量样本提示分类任务,已经定义了一个提示图表示,它捕获了提示示例、查询和标签之间的关系。现在需要设计一个预训练策略,可以预训练一个能够进行上下文学习的通用模型。
作者提出一个在预训练图上通用的预训练框架PRODIGY,由两个主要部分组成:提示图上的模型架构和上下文预训练目标。下面分别介绍。
Message Passing Architecture over prompt graph
模型架构包含两个子模块:
Data graph Message Passing
首先,我们应用一个消息传递图神经网络(GNN)模块,该模块学习每个 中节点的表示 E:
其中d是嵌入的维度,可以以多种方式实现,例如使用图卷积网络(GCN)或图注意力网络(GAT)。
为了从每个数据图读取单个嵌入,使用另一个聚合步骤来汇总节点嵌入。对于节点分类任务,采用要预测的单个输入节点的更新节点表示,即:
对于链接预测任务,拼接想要预测链接的节点对,对所有节点表示进行最大池化,并在最后添加一个线性投影层,将嵌入大小转换回d:
其中 || 表示拼接, 是一个可学习的权重矩阵,b 是可学习的偏置项。
Task graph Message Passing
在之前的步骤中,S和Q中的不同数据点之间没有通信。现在希望通过任务图上的消息传递在它们之间进行通信。在任务图上应用另一个图神经网络以获得数据节点和标签节点的更新表示:
其中H是每个节点获得的嵌入。数据节点的初始嵌入是,标签节点的嵌入可以初始化为随机高斯分布,或者使用关于标签的额外可用信息。每条边还有两个二进制特征,表示(1)边是来自示例还是查询以及(2)边的类型是T(真实标签)还是F(错误标签)。对于,使用基于注意力的图神经网络,其中每个节点在每一层对其他节点执行注意力操作。
Prediction Read Out
最后,通过计算查询图表示和标签表示之间的余弦相似度来读取分类逻辑值:
在多个轮次执行这两个消息传递步骤,以实现之间的更多通信并学习更好的表示。
In-context Pretraining Objectives
为了预训练模型以便在上下文中解决下游图任务,提出一组上下文预训练目标。使用与下游任务图独立的大型预训练图来预训练图模型,以便模型可以直接应用于下游任务的上下文学习。
将每个预训练目标以上下文学习的方式制定。大多数先前的图预训练目标只预训练一个共享的图编码器来执行各种任务,并带有特定任务的头部,因此它们需要针对每个下游任务的另一个特定任务的头部进行微调。相比之下,PRODIGY以提示图形式构建上下文预训练任务,并预训练模型以相同的一组权重在上下文中解决多样化的任务,以便它可以直接在下游任务中进行上下文学习。
上下文预训练目标涉及三个组成部分:(1)预训练任务生成,包括少量样本提示和相应的标签(2)将生成的少量样本提示转换为提示图格式并进行增强(3)在生成的提示图上的预训练损失。
Pretraining Task Generation
本文提出了两种从预训练图生成少量样本提示(few-shot prompts)的预训练任务的方法:邻居匹配和多任务。
Neighbor Matching
给定预训练图,构建自监督的上下文预训练任务,目标是分类节点属于哪个局部邻域,每个局部邻域由属于该邻域的示例节点定义。直观地说,从预训练图中采样多个子图作为局部邻域,如果一个节点在采样的子图中,我们称它属于该局部邻域。
表示一个生成m路邻居匹配任务的采样器,其中每个任务包括一个k个样本的提示(,)以及查询的标签。为了简化符号,在中包含与输入配对的标签:
具体来说,首先从预训练图中采样m个节点,每个采样的节点对应一个类别:
对于每个采样的节点/类别,从它的l跳邻居中采样k个不同的节点。这些k个节点作为标签的示例。同时为每个标签额外采样⌈n/m⌉个节点,以形成查询集:
通过这样的方式,我们构建了一个邻居匹配预训练任务样本,格式为少量样本提示。上述邻居匹配任务生成过程特别适用于下游任务也是节点分类的情况。当下游任务是链接预测时,也可以相应地将上述邻居匹配任务适应到边。

Multi-task
对于某些,有时,可以进一步利用这些信号进行监督预训练。类似于邻居匹配,关键是以少量样本提示和相应标签的格式构建这样的监督预训练任务。
具体来说,对于节点分类任务,首先从整个标签集中采样m个标签。然后,对于每个标签,直接采样k个节点作为支持样本,并采样⌈n/m⌉个具有这些标签的节点作为查询样本。
然后便构建了一个具有少量样本提示的任务。对于链接预测,可以直接使用边类型函数作为f,有了这个f,就可以直接采样m个边类型,并以类似上述的方式构建预训练任务。
这种监督预训练目标的好处是,它可以直接类似于下游任务的格式,与邻居匹配目标相比,后者可能只作为一个替代品。然而,如果f不是的一部分,例如某些预训练图可能不存在的节点分类标签,它需要额外的标签。
Prompt graph generation with augmentation
在获得了两种任务(邻居匹配和多任务)的少量样本提示和标签之后,需要构建预训练的提示图。受对比学习启发,增加一个额外的增强步骤来增强数据图。
这里具体展示如何在从生成的少量样本提示构建提示图的过程中采用图增强技术。首先仍然对提示示例和查询中的每个样本采样k跳邻居子图:。然后采用以下两种增强技术来创建增强的数据图,包括(1)节点丢弃,和(2)节点特征掩码。对于节点丢弃,从k跳邻居子图中随机丢弃节点,并将剩余的图作为。对于节点特征掩蔽,随机将一部分节点的特征掩蔽为零值,以创建。使用提示示例和查询中的每个数据点的增强数据图,就可以相应地构建任务图。将数据图与任务图结合起来,就得到了针对少量样本提示的增强提示图。
Pretraining Loss
最后,在生成的提示图上使用交叉熵损失函数对模型进行预训练:

其中,是模型在和生成的上产生的logit,是在中对应的标签。MT(多任务)项也类似。
Experiments
Experimental Setup
Datasets
对于预训练,使用两个数据集:MAG240M(一个大规模的引用网络,包含1.22亿个节点和13亿条边)以及Wiki(一个知识图谱,包含480万个节点和590万条边)。模型预训练完成后,在4个图上评估其上下文学习能力:arXiv、ConceptNet、FB15K-237、NELL。对于arXiv,下游任务是n-way节点分类任务,预测论文类别。对于知识图谱数据集(ConceptNet、FB15K-237、NELL),下游任务是n-way关系类型分类任务,预测连接两个输入节点的关系。
Evaluation
每个下游分类数据集都有其原始的训练、验证和测试分割。为了模拟下游任务中标记数据有限的情况,从每个类别的训练分割中随机选择10个节点(或边)作为已知标签的提示示例。然后,通过从这些可用示例中随机选择k个示例来构建测试分割中的测试节点(或边)的k-shot提示。这样能够测试模型学习上下文关系并在真正有限的已知标签上执行分类任务的能力。默认情况下,在实验中使用k=3个提示。
Methods and Baselines
考虑PRODIGY的三个版本:1)PG-NM,它使用邻居匹配任务进行预训练;2)PG-MT,它采用多任务预训练;3)完整的PRODIGY,它结合了前两种方法。为了增强数据,对每种方法都使用DropNode和MaskNode增强,每个节点的概率为0.5。在实验中考虑了三个基线进行比较:1)NoPretrain,它使用与预训练模型相同架构的随机初始化模型;2)Contrastive,它采用标准的对比学习方法,使用上述增强,并使用硬编码的最近邻算法适应上下文学习设置。具体来说,通过比较查询的预训练嵌入与每个类别的示例输入的平均嵌入来对查询进行分类。3)Finetune,它在对比学习预训练的图编码器上训练一个额外的线性分类头,遵循标准实践。
In-Context Learning Results

(1)**PRODIGY在上下文学习表现上表现出色。**结果表明,PRODIGY在这种设置中一致性地超越了所有其他基线。在arXiv上,它在所有方式上都实现了最高的平均准确率,与最好的基线对比学习相比平均提高了28.6%,最高可达48%。在知识图谱(KGs)上,PRODIGY也平均比对比学习高出12.2%。与需要额外在下游任务上进行训练的微调(Finetune)相比,PRODIGY也展现出相似甚至更好的性能。在arXiv上,可以看到平均77.7%的提升。这可以归因于PRODIGY中包含的多样化预训练任务,这使得模型能够避免过度拟合特定任务,并在上下文中学习。
(2)**自监督预训练PG-NM连接不同任务。**特别是,尽管模型是针对与下游任务不同的任务进行预训练的,纯自监督预训练方法PG-NM在arXiv上的上下文学习性能显著高于基线。这一优势可以通过在更大规模的未标记数据集上进行预训练来进一步利用。另一方面,PG-MT遵循直接类似于下游任务格式的监督预训练目标。在知识图谱上,与完整的PRODIGY相比,PG-MT有时甚至能够更好地适应下游任务。然而,PG-MT在arXiv上的表现可能较差,可能是由于多样性不足。将两者组合在一起的完整 PRODIGY 实现了多样化,因此在两个领域中都能实现最佳性能。
(3)**优于在测试图上训练的元学习方法。**最后,在下游测试图arXiv上,将PG-NM的上下文学习性能与最先进的元学习方法TENT进行了比较。,因为TENT是在arXiv的训练标签上进行训练的,所以仅评估在测试标签上的平均3种分类任务的性能。尽管PG-NM在预训练期间从未在任何论文类别分类任务上进行过训练,但它的准确率达到了69.07%,超过了TENT的65.13%。这展示了在大量数据上进行自监督预训练相比于在有限的标记数据上进行监督元学习的强大能力。
Ablations

除了PG-NM和PG-MT,还对自监督目标PG-NM的各种配置进行了消融研究。消融研究结果表明,将所有这些元素一起使用可以获得最高性能。具体来说,如“无属性”(No-Attr)列所示,属性预测对PG-NM的性能影响最大,因为移除它会导致所有方式的平均性能下降7%。如“无增强”(No Aug)列所示,移除Dropnode和Zeronode增强平均会导致所有方式的性能下降3%。如“无属性,增强”(No Attr, Aug)列所示,同时移除属性预测和增强会导致性能下降,这与单独移除属性预测相似,大致也是所有方式下降7%。此外,还可以发现将样本数量从默认的3个减少到1个,会导致所有方式的平均性能下降3.5%。
Evaluation using different numbers of in-context examples

通过分析提示样本数量变化时的性能来研究PRODIGY从上下文中学习的能力。可以看出,随着提示样本数量的增加,PG模型与基线之间的差距增大。这支持了PRODIGY模型能够通过推理提示样本的共同特征更有效地学习未知任务的假设。
Scaling with Data Size

最后,作者探讨了模型如何随着更多预训练数据的增加而扩展。上图展示了在arXiv上的5种分类设置下的结果。可以看出,对比学习基线很快达到饱和,并且随着预训练数据的增加,其性能出现波动。相反,PRODIGY随着预训练数据的增加持续显示出性能的改善。
Conclusion
PRODIGY是一个创新的框架,它首次实现了在图上的上下文学习。这个框架允许预训练模型通过提示图(prompt graph)来无缝执行新图上的新分类任务。提示图连接了提示示例和查询,使得预训练模型能够直接在未见过的图上通过上下文学习执行新的下游分类任务。在节点和边分类任务中,使用PRODIGY预训练的模型显著超越了其他基线模型的性能,包括那些采用微调(finetuning)的模型。这一成果展示了PRODIGY在图上的上下文学习任务中的优势,特别是在处理引文网络和知识图谱等任务时,PRODIGY的平均上下文学习准确率比对比预训练基线高出18%,并且比标准微调高出33%。
如何学习AI大模型 ?
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓
CSDN粉丝独家福利
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
👉1.大模型入门学习思维导图👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)

👉2.AGI大模型配套视频👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。


👉3.大模型实际应用报告合集👈
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

👉4.大模型落地应用案例PPT👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)

👉5.大模型经典学习电子书👈
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)


👉6.大模型面试题&答案👈
截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习
CSDN粉丝独家福利
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈
1196

被折叠的 条评论
为什么被折叠?



