GNN与LLM
背景
近段时间,因为LLM的卓越表现让越来越多的人把注意力放在了“如何借助LLM来加强GNN”的方向上。这种想法的直觉来源于两方面:第一,从现实的科研、生产需求来讲,GNN的数据集一直是个较大的问题。图数据要求数据以节点、边的形式进行记录,而节点、边还需要尽可能拥有更多的信息。这在现实来看是很难办的,大部分数据集存在这样或那样的毛病,导致训练出的GNN模型有时候会出现在某些数据集上表现很好某些数据集上表现很差的现象。这样得到的GNN首先无法保证能在同类数据集上较好完成任务,其次,更无法实现跨数据集的few-shot甚至zero-shot的预测。恰好,LLM拥有庞大的知识库,这种知识库能够帮助人们“自动”地对数据集进行标签预测、信息获取等。所以,利用LLM对数据集进行优化、对数据信息进一步进行获取从而帮助GNN提升自身表现的想法变得很自然。第二,LLM对GNN能有较大帮助来源于LLM和GNN有类似的“知识体系”。如上篇文章所述,LLM的语言知识空间某种程度上也可以认为是一个图,它的各种语义、知识像图一样通过“联系”、通过边连在一起。所以在处理图这种有大量自身“语义”、自身节点信息,并且有着大量“联系”、大量边的数据时,LLM能够表现较好。
GNN与LLM的结合方向
现在的GNN与LLM的结合模型大致可以分为两类:一类是以LLM为主,一类是以GNN为主。以LLM为主的模型主张通过GNN来充当“知识过滤器”的作用。通过让GNN在数据集上进行特征提取,并把特征处理后输入给LLM让LLM来进行各种下游任务。这类方向的直觉是:通过不断实验,发现LLM本身已经能够对较明确的图信息进行合理的预测,而GNN拥有较好的图数据特征提取能力。在这个方向中,GNN成为了LLM的辅助工具,目的是让人不用承担与LLM进行交流的工作从而自动完成对图信息的预测。
以GNN为主的模型主张还是让GNN来完成对图数据的拟合,让GNN完成预测任务。而如上一段所说,GNN在训练时遇见了标签欠缺、训练过程中预测困难的问题。所以这类方向是让LLM介入GNN的训练过程,比如在过程中为GNN较难辨认的节点进行标签预测,或者是利用数据集中各节点、各边的文本信息来形成可以被嵌入的特征,将这些特征嵌入到GNN的训练过程中、信息传播过程中从而帮助训练。总之,LLM充当了GNN“老师”的作用,负责指导、帮助GNN进行自身的训练拟合。
在GNN与LLM的结合过程中,产生了许多有意思的现象。无监督学习中,想让LLM帮助GNN进行聚类操作,势必会遇见一个问题:如何让LLM与GNN的聚类方式保持一致?比如GNN可能以节点的某些特征进行聚类操作,而交给LLM帮助完成时,LLM却以另一部分文本信息作为聚类依据。监督学习中,LLM又如何帮助GNN进行节点的预测,怎样确保LLM预测出的节点信息是与GNN的理论预期保持一致的?再者,提供特征嵌入帮助GNN进行模型训练的方法,这些嵌入的特征应该呈现什么样子,LLM输出的特征凭什么被GNN所正确理解?LLM又如何合理地从数据集中获取有用的适合GNN的数据?想让GNN帮助LLM进行预测,GNN产生的特征向量又该表现如何,怎样输入LLM?这些问题反应的现象都是同一个:GNN如何与LLM进行对齐。简单来说就是如何让LLM与GNN之间顺利沟通,这里可以作为一个单独的研究点,具体包括LLM对图数据的提取、LLM与GNN的特征空间对齐、LLM的prompt的选择、GNN对图的特征提取、LLM的帮助信息的选择、LLM信息的利用方式的选择等等。总体而言,GNN与LLM的结合方向聚焦在了:如何有效调取LLM的知识、如何让GNN接受利用LLM的知识(或是如何让LLM接受利用GNN)。这刚好对应LLM的输入输出两个方向。
如何构建一个GNN与LLM的综合模型,从哪些地方入手已如上述文字所言。而当我们实际在进行模型的训练时,也会看到一些有趣的现象:倘若我让LLM介入无监督学习聚类的GNN任务,LLM负责处理GNN处理不好的节点。那么当LLM对这些节点进行区分时(假设此时LLM已经与GNN对齐,学会了同样的聚类方式),LLM在此时利用节点信息、边信息、拓扑结构信息进行聚类的操作是否还是无监督的?因为LLM已经知道了聚类的标准,模型所做的不过是给LLM足够的信息让LLM进行聚类,这何尝不是一种分类任务?各个聚类的“标签”是一种隐形标签,它确实存在,并且LLM知道它的存在,所以对于GNN而言它在这个任务中负责无监督的大量节点的分类,LLM则负责无监督学习分类实在无法解决的节点分类。我们在无监督的任务中引入了LLM,LLM的庞大知识使得这个无监督任务在某种程度上可以变为监督任务!无监督和监督在LLM庞大的知识库的影响下边界被模糊化了。那么理论上每个节点都可以让LLM来进行分类,不过是时间开销特别大而已。那么我们可以发现,GNN与LLM谁是主要谁是次要其实并不应该只看作一个理论上谁更好的问题,更应该看作我们如何在有限的资源下将它们作用最大化的问题。再看一个例子:目前很火的半监督学习。GNN的半监督学习中通常涉及到“假标签”的概念。假标签是对于无标签数据而言的,它们是LLM为了帮助GNN进行模型拟合,而针对无标签节点生成的标签。这样我们直觉上也能感觉到:既然LLM已经能够形成标签,那还要GNN干什么?既然LLM的预测结果都能拿来当老师教GNN了,为什么我们还要训练得到GNN?说白了核心矛盾在于LLM的开销太大,很难对每个节点进行预测,并且LLM本身也需要获取拓扑结构进行辅助预测。那么我们可以总结,现在我们依然在采用GNN为主进行预测的理由在于GNN的性能优势,以及GNN在部分同质、平滑的图上优秀的表现。所以,这方面的研究重点成为了如何引入LLM以最小的性能开销换取最大的能力提升。具体表现在:哪些节点被打上假标签,哪些信息被LLM提取整合等等。
上述文字所阐述的是LLM与GNN结合的科研大方向分析,主要涉及做什么、该怎么做的内容。但我们必须知道,我们的所有结论是在LLM已经高性能完全可用的基础上的,实际上很多开源LLM的性能、能力表现依然落后,并且就拿目前市面上能力最强的Chatgpt和开源的Llama来讲,它们依然会存在为GNN打错标签、提取的特征不全面等问题。这些问题是理论落地现实时产生的过程问题,具体涉及到模型的优化、鲁棒性提升等等。在模型落地过程中如何避免错误标签噪音的干扰,如何让LLM只发挥它好的一面,GNN与LLM选取何种方式对齐,损失函数怎么构造来达到最好效果,采用什么方法进行学习等等都是可以研究的子方向。
总之,LLM与GNN相结合的模型,无论是以LLM还是GNN为主,总体方向是明晰的。LLM是作为“存储了世界知识的待唤醒的独立知识库”出现在整体模型之中的,而GNN则凭借它优秀的图数据处理能力承担主要或次要的工作。