导读
当前,大模型相关工作进展如火如荼,其卓越的文本语境理解能力和编码解码能力备受瞩目。本次分享将探讨是否可以直接利用大模型的强大能力更好地解决图数据和图任务上的问题。
1.
为什么应用大语言模型进行图学习
2.
大语言模型进行图学习的现状概述
3.
大语言模型促进跨领域跨任务的统一图学习
4.
潜在研究方向
5.
问答环节
分享嘉宾|
蒋卓人
浙江大学
“百人计划”研究员
编辑整理|刁震
内容校对|李瑶
出品社区|
DataFun
01
首先要探讨的是为什么可以应用大语言模型进行图学习,将从两个方向来探讨其可行性,第一是大语言模型的能力,第二是图数据本身的特点。
从早期统计的语言模型,到神经网络的语言模型,到预训练语言模型,再到现在的大语言模型,模型能力,尤其是对于文本的编码能力不断增强,其处理下游任务的能力也在随之提升。尤其是大语言模型,已经在一些推理任务上展现出了突破性的效果,因为语言模型规模的不断扩大,加之丰富的语境学习能力,使得之前语言模型在推理方面的欠缺得到了一定程度的弥补。
一些研究人员认为,之前的语言模型的模式是直接让模型去输出结果,忽略了中间的思考过程,而人类在解决数学应用题或者推理问题时,通常会逐步地书写整个解题过程才能得出最终的答案。因此很容易联想到,如果让模型先输出中间的推理步骤,再根据生成的步骤得到答案,是不是就能够提升模型的推理表现。关于这一问题,Google 提出了一种利用思维链的提示方式,称为 Chain-of-Thought
prompting。在 prompt 当中增加一些逻辑的说明,除了将问题输入模型,还将类似题目的一些解题思路和步骤输入模型,使得模型不仅输入最终的结果,还输出一些中间的步骤,可以提升模型的推理能力。
大语言模型在这种问题上有很大潜力,可以去做很多有意思的推理。我们也因此想到,大语言模型是否具有在图任务上的推理能力。
接下来从另一个角度,也就是图数据本身的特征来看,大语言模型为什么能够应用于图学习。
我们发现相当多的图任务和文本是紧密联系的,比如在一个常见的学术场景当中,学者、论文、会议这些节点天然就是以图的形式存在的,他们之间会有各种各样的关系。
另外有一些图数据,可以结合文本信息,使其属性或者特点得到更好的表述。比如分子图就是一个天然的图结构,我们可以使用一些文本来表述其属性,比如苯环是有毒的,水分子是没有毒的,这些文本表述对于我们理解图的属性,或者基于图去做一些预测和推理任务是很有帮助的。因此大语言模型的文本推理能力,可以帮助我们去解决一些图相关的任务。事实上我们现在已有一些工作在利用大语言模型来助力图学习。
02
接下来从两个方面来介绍大语言模型进行图学习的现状,首先来看一下不同的图数据应用场景,接着将介绍图任务中大语言模型所扮演的不同角色。
图数据大致可以分为三类:第一类是不含文本信息的图,称为 Pure Graphs,例如交通图;第二类是其本身有图,可以和一些相关文字放在一起,称为 Text-Paired Graphs,例如蛋白质分子式;第三类是节点本身就蕴含着丰富的文本信息,称为 Text-Attributed Graphs,例如社交媒体网络、学术图谱网络等等。接下来看一下对于这三类图数据,可以怎样应用大语言模型。
(1)Pure Graph
第一类 Pure Graph,没有文本信息,或者没有语义丰富的文本信息,比如交通图、电力传输图,只有拓扑信息。在这种图上主要要去完成的任务,是一些经典的图上的离散数学相关问题,比如分析图的连通性、两个节点之间的最短路径、哈密尔顿路径等拓扑结构上的问题。
针对这类问题,可以转化为问答的方式。通过一些文本去表述图里面有几个节点、节点之间的边是什么样的、有几条边等等,可以向大模型提问比如①和④之间有没有一条边,还可以问联通性问题,或者最短路径问题。在一个无向图中,可以问图中有多少个节点,有哪几条边,边上的权重是多少,让大语言模型直接去解图上的这些问题。
在 Advances in Neural Information Processing Systems 2024 上的一个工作就是用这种策略来直接解 Pure Graph 上的问题。由上图中的对比数据可以看出,直接应用大模型,与 Random guess 相比还是体现出了一定的图的理解能力,尤其结合一些 chief
source 或者 self-consistency 之后,在一些任务上能达到不错的效果。
(2)Text-Paired Graph
针对 Text-Paired Graph,这里介绍 ICML2023 的一个工作,化学分子用图的方式做一个模态编码,文本是用文本的方式去做模态编码,用对比学习去进行训练,通过增强的文本信息增强对化学分子式的表示能力,然后再去解决针对化学分子式的一些特殊任务。
上图是一些测试数据,绿色表示的是最好的情况,总体来看加入的文本信息对图上的这些任务有着很好的增强作用。
(3)Text-Attributed Graph
第三篇是 EACL 2024 上的一个工作,是针对 Text-Attributed Graph,即有着丰富的文本信息的图。这个工作把原本图上的一些结构信息转换成了文本的输入,给到大模型,再让大模型去做推理。与 Pure Graph 不同的地方是,首先它的 node 是作为语言模型的 token,这样可以利用大语言模型加文本表示的结构信息,对节点本身也去进行编码。所以这个框架最后除了可以得出图推理任务的输出以外,还有一些节点的表示。
实验结果表明,在拥有丰富文本信息的图数据集上,利用大模型的方式去编码节点特征,再去理解图结构这样的方式,会比传统的图神经网络模型表现更好,它对大模型的参数有真正的训练,所以理论上让大模型感知到了图本身的一些知识。
对于不同的图数据,语言模型的应用方式是不一样的。
大语言模型在图任务中可以扮演三种角色,分别是 Enhancer/Encoder、Predictor 和 Aligner,接下来将逐一介绍。
(1)LLM as Enhancer/Encoder
在 LLM as Enhancer 或者 Encoder 中,大语言模型是作为一个辅助的角色支持 GNN 完成最终的图推理,对于图本身拓扑结构的理解还是由传统的图神经网络来完成的。
这种方式,又可以分为两种,一种是 Explanation-based,利用大语言模型和 prompt 对输入的文本信息进行增强,得到一个 explanation,把这个 explanation 作为增强后的一个特征,再进行文本的编码,随后喂到图结构里面,再用图神经网络去完成进一步的推理。第二类是 Embedding-based,直接利用大模型把 text 属性做 embedding,喂到图的表示里面,让图神经网络去做推理。
ICLR 2024 上的一个工作,是典型的 Explanation-based 的方式。其中有 title、abstract,有 prediction 和 explanation,把每个节点的文本属性,比如节点的标题和摘要,封装在一个自定义的 prompt 里面,去 query 大语言模型(GPT3.5),生成预测,预测这篇文章属于哪个领域,并生成解释,即为什么得出这样的预测。在有了这些更加丰富的文本信息之后,把所有原始的文本信息以及预测和解释都输入到大语言模型当中做 fine-tune,然后转化成更为丰富的文本节点表示,再把这个文本节点表示放到 GNN 当中,让其去做更好的推测。这样就可以让图神经网络在图任务上取得更好的推理结果。
结果证明这个方式是有效的。
密歇根大学和百度,以及其他几个团队联合在 KDD 上发表的一个工作,是 Embedding-base 方式的一项工作。如上图中所示,黄色是最好的,绿色排名第二,粉色排名第三。在用大语言模型解决图任务时发现,基于微调的大语言模型的 embedding 在标签数量不够多的时候,其表现会很差。
还有一种情况是在 High label ratio 情况下,也就是在有较多标签的情况下,还是传统的预训练 embedding 结合 GNN 的方式会更好一些。从上图中可以看出,主要的优秀的结果都是在 sentence base 的 model 里面。这其实也是很有意思的一个现象,预训练的这些文本并没有加入结构信息,在需要结构信息去做推理的任务上,超过了用图结构信息去微调的这些语言模型。
这一发现给我们的启示是,简单的 fine-tune,比如把图的结构在 fine-tune 阶段让大语言模型来看一下的这种方式可能并不是最好的方式。我们需要找到一个更好的方式,让图的结构信息能够被更好的融合,这是一个很值得我们去深入研究和探索的问题。
(2)LLM as Predictor
第二类角色是大语言模型作为 Predictor,即预测者。顾名思义,大语言模型将直接作为图推理任务的主角,而不再是单纯地帮助我们生成更好的文本表示。这里也分为两种方式,一种是 Flatten-based,是用文本表述一个图结构,把有结构信息的文本输入到大语言模型当中,结合 prompt,最终进行图的推理。第二种是 GNN-based 的方式,一开始还会依赖 GNN 对原始的图和节点做表示,然后把这些图的表示和文本的表示一起输入到大模型里面,让大模型去做推理。
北大、微软还有一些高校团队 2023 年的一个工作叫 Gpt4graph,其本质上就是把图的结构转化为文本表示。其中用一些结构化的标签,脚本语言去描述了一个图,把这个直接喂给大模型,让他去生成一些 context,结合这个 context 和本身的原始输入,输出最终的结果。
实验结果表明,用不同的方式去描述图,对结果会有显著的影响。比如用 GML 的方法去做 size detection,检测图大小,效果是比较好的。在算 degree 的任务上,用 edge list 的方式去表示图会得到比较好的结果。另外,使用 role prompting 方式能够很好地提升模型的性能,因为可以让大语言模型更加关注到特定的关系,或者其中一些节点特殊的属性和角色,从而让模型提取到更有价值的信息,做出更好的预测。
另一个工作是港大和百度团队在 2023 年的一个工作,名为 GraphGPT,其本质上就是基于 GNN 的一种方式。首先用 GNN 对图结构信息进行编码,通过编码后节点的 embedding 嵌入到文本表示当中,喂给大模型做图推理。要让文本模型直接去理解图的 embedding,需要将图的 embedding 和文本的 embedding 做一个对齐,才能获得更理想的效果。
实验结果证明了该方法的有效性。
(3)LLM as Aligner
第三种角色,LLM as Aligner,相比前两种会更复杂一些,对文本模态的数据进行编码时,会利用一些额外的文本信息去做监督信号,促进本身这个图神经网络的学习,从而让结构信息和文本信息进行交互式学习,或者直接把文本学习的神经网络和图学习的神经网络做交叉,还可以利用 GNN 进行知识蒸馏。
一种主流的方式是对比学习,利用节点的表示和文本的表示之间的对应关系去构造对比学习的样本,同步训练图神经网络和大语言模型,实现对齐。
另一种做法是采用蒸馏的方式,明尼苏达大学、亚马逊 UIUC 和 CMU 的一个工作是通过一个 Teacher GNN 和其它一些文本无关的信息,共同更新共享文本编码的函数,捕捉在这些没有标签的文本当中增强的文本信息。这个工作本质上就是通过 Teacher GNN 把一些拓扑结构信息蒸馏到文本表示的架构当中,让学到的增强的文本信息包含一部分拓扑结构信息。
通过上面的介绍可以看到,现在的研究主要还是在对针对不同类别的图数据专门进行了一些设计,来解决一些特定的问题,比如分子图上的问题,或者学术网络富文本的问题等等。而未来我们希望将大语言模型做成统一的框架,直接用其实现跨领域、跨任务的统一的图学习。
03
首先来看一下在大语言模型出现之前的做法。
以 KDD'20 的一个工作为例,这一工作是采用图的对比编码,利用自监督的图神经网络去训练架构,捕捉网络当中通用的拓扑结构的特性,从而实现跨数据集的训练。这类工作的限制是,不同领域中的节点特征是无法对齐的,所以往往会放弃一些节点的特征表示,只用结构特征作为节点特征去进行初始化。
我们团队在今年的 AAAI 上也发表了一项图预训练相关的工作,用文本的自编码器加上一些 motive 的 auto discovery 的机制,来促进数据集之间的知识迁移。但是我们必须承认,这一类方法对于两个领域之间文本特征无法对齐的这种跨领域的情况,是没有办法直接实现数据集上的迁移的。
在大语言模型提出之后,为我们提供了新的尝试途径。这是华盛顿大学和京东以及北京大学 2023 年的一个工作,叫 One for all。在该工作中,模型的输入是包含丰富文本信息的图,以及任务的描述,这二者通过大语言模型嵌入到统一的空间,被转化为带有统一任务表示的提示图,然后再把这个提示图喂给一个单一的 GNN,让 GNN 去做自适应的下游任务的预测。
这一工作解决了跨领域任务中不同领域图数据节点特征不对齐的问题,把所有的特征全部转化为文本,然后用大语言模型去进行编码,这样无论属于哪个领域,最后都能用文本的方式进行编码。
为实现任务上的跨越,设计了如上图所示的结构,引入了任务节点的概念,即 node of interest。这类节点也是用文本对任务去进行表述,这样就可以把任务也转化成文本表示,就实现了对不同任务的兼容,把不同的任务转化成了如图中所示的链接预测的问题。
这一工作在图数据上面都取得了比较好的结果。同时还观察到,用所有的数据集做文本的预训练可以让知识更好地迁移。
另一个是新加坡国立大学的名为 UniGraph 的工作。这个工作是在 One for all 的基础上,把大语言模型和 GNN 做预训练,提出了多种进一步提升的方法,比如针对 few-shot、zero-shot 等等。其本质还是用大语言模型去编码文本化的特征,实现跨数据集的训练特征。在任务上也是类似的,One for all 是直接用任务节点,这里是定义了一个任务子图,本质上都是把任务泛化到文本的可表述的范围之内,从而实现节点、边、图级别任务的统一。
这个工作的效果比 One for all 更优,因为使用了一些 prompt 的技巧。通过数据观察发现,在预训练的时候,并不是数据集越多越好,可能的一个原因是如果图数据之间确实有比较大的不兼容性,存在一些噪声或对立冲突的时候,用太多的数据去做预训练,反倒会降低大语言模型在图数据上的推理能力。
最后是福州大学和 Emory
University 在今年的一个工作。该工作与之前两个工作最大的区别是去掉了 GNN,直接通过 instruction tuning 的方式训练大语言模型做图的任务。很明确的三个步骤,首先用文本去描述图,生成 instruction,最后去做 tuning。
基于语言模型 LLaMA-7B 做了 instruction tuning 之后,效果超过了传统的图模型。需要注意的是,这里的数据集都是 Text-Attributed 的图,即包含了大量丰富文本信息的图数据。而对于 Pure Graph 和 Text-Paired Graph 的效果是不明确的。
04
目前已有的工作,尤其是今年的这些工作,已经在大语言模型促进跨领域跨任务统一图学习方向上迈出了很多坚实的步伐,取得了一些积极的效果。除此之外还有哪些可以深挖的方向呢?首先需要思考的是,目前这种 fine-tune 加 prompt engineering 的方式是不是真的让大模型学到了图里面的拓扑结构信息。
密歇根大学和 UIUC 的一个工作用大模型去直接做了图任务的推理,经过大量实验发现,对于大模型来说有 context 就可以了,context 内部结构怎么描述或者图里的表述是否正确并不重要。在做线性表述的时候,效果不会有很大的差别。所谓线性表述,就是直接把 neighborhood 的文本信息作为输入,让大语言模型做推理,另外就是很规范的、很标准的、很严谨的一个图的表述。
另外,随机做一些重排布,比如把结构打乱,去掉一些二阶邻居,或把一阶邻居的顺序放到随机的一个路径当中,看到的结果是推理效果并没有很大差别。那么大语言模型在这种范式下面做图推理任务时到底依赖的信息是什么?是不是像我们想象的理解了图的拓扑结构。
另外还观察到,大语言模型在 neighborhood 和我们要预测的 ground truth 的节点同质性比较强的时候,预测效果会比较好。还是同样的问题,大语言模型到底是学了这些文本,还是真的理解了这个结构?
研究人员也发现,当目标节点包含的文本不足以让模型做出合理预测时,反倒可以让大语言模型从结构信息当中获益。这显示出大语言模型还是可以去利用这些结构信息的,只是该如何把这部分能力激发出来。
未来的研究方向主要包括两个问题。第一个问题是,是否存在对于所有不同领域图学习都有益的通用的结构特征,这个特征怎么学,大语言模型是否能学到。第二个问题是,对于复杂的拓扑结构特征,怎么让大语言模型能够关注到,而不是只是利用文本 context 上的能力做推测。这将是未来值得继续探究的问题。
05
Q1
:针对
Pure
Graph
,是否可以引入一些更好的文本表述?
A1:对于 Pure Graph 而言,引入一些更好的文本表述一定是对提升效果有帮助的,尤其是在使用大语言模型去解决推理问题的这个路径上。因为大语言模型本身的强项就在于其文本方面的能力。
Q2
:跨领域统一图学习的意义?
A2:在做图神经网络图挖掘的学者看来,我们之前往往要针对特定的领域专门开发一个图的神经网络,存在数据上对不齐,任务上对不齐的问题。如果有一个统一的范式架构,一方面对于研究者来说,是一个很强的研究工具;另外一方面对于用户来说,也有了统一的范式,因此是双方受益的。从目前研究趋势上来看,面向统一的通用的方法越来越受到大家关注。因为我们总是希望找到一个终极的好的方法,能够解决尽量多的问题。
Q3
:怎么结合业务选择?
A3:分享中提到了三种不同的图,以及大语言模型的三种角色,在应用大语言模型时,应根据自身的技术条件和技术积累,选择一个最擅长的最适合的路径来走。重点是要能够解决问题。