本文的主要作者来自香港大学的数据智能实验室 (Data Intelligence Lab@HKU)。第一作者是香港大学的博士后夏良昊,指导老师为黄超教授。香港大学数据智能实验室专注于人工智能和数据挖掘的研究,涵盖大语言模型、图神经网络、信息检索、推荐系统和时空数据挖掘等领域。实验室的研究成果在多个顶级会议上(如 WWW、SIGIR、KDD)获得了诸多荣誉,包括最具影响力论文和最佳论文候选。
AnyGraph 大模型,图模型泛化性的突破,致力于解决以下关键技术挑战:
AnyGraph 的主要特点:
作为一种重要的数据形式,图数据在社交网络、学术网络、交通系统和生物网络等多个领域有广泛应用。图模型,例如图神经网络(GNN),学习图中节点的表征向量,来捕捉结构信息和节点上的特征信息,从而进行准确预测。
近年来,图学习领域取得了显著进展,主要得益于图神经网络(GNNs)的强大功能、一些微调方法的提出、以及最近一些将图数据空间与自然语言空间进行对齐的尝试。然而,当前最先进的图模型在跨领域的泛化性能上仍显不足。
现有方法往往严重依赖繁琐的微调过程,难以应对真实图结构复杂、多样化的特点。这种无法快速无缝适应新图域的能力,阻碍了图学习技术的广泛应用。因此,解决这一挑战,搭建一个具有跨领域、强泛化性能的图基础模型,对于图学习领域至关重要。
为此,研究团队推出 AnyGraph, 首次揭秘图大模型的 Scaling Law。
考虑到图数据的特点,以及受到语言和图像数据基础模型的启发,研究团队致力于解决以下几个关键问题:
为了解决上述问题, AnyGraph 提出了以下关键性技术。
图 MoE 模型
不同图之间巨大的结构和特征差异,促使我们采用一种更 “松散” 的模型架构。AnyGraph 的 MoE 架构使用完全不同的专家模型来处理差异极大的图数据,模型无需在高度耦合的单个神经网络中巧妙地容纳不同数据的建模和处理过程。
具体来说,AnyGraph 的 MoE 架构包含多个图数据专家模型,每个专家模型均能对所有输入的图数据进行处理和预测,但所擅长的领域和模式不同。例如,有的专家模型擅长处理文本 embedding 特征,有的擅长处理图的邻接矩阵特征;有的专家模型擅长处理稠密数据,而有的擅长处理稀疏数据。
为了向每个专家模型分配适合的任务,AnyGraph 设计了一种专家路由机制,在训练和测试过程中,基于专家模型对数据的擅长程度进行匹配。
基于这一 MoE 架构,AnyGraph 对图数据的知识存储在不同的专家模型中,而不同的专家模型不需要进行相互的协调和耦合,从而更容易地容纳图数据之间的巨大差异,解决跨领域情况下的结构和特征异构性问题。
此外,MoE 架构使得 AnyGraph 仅需使用几分之一的模型参数,就可以完成单个大模型具备的训练和预测效果,大大提升了模型的快速适应能力。
下图展示的消融实验中,我们验证了采用单个模型(-MoE)相对于使用 MoE 架构的劣势。
轻量化的图专家路由机制
专家模型路由负责为输入的数据集匹配适合的专家,以进行更准确的预测、以及更适当的专家训练。
受到图自监督学习的启发,我们的图专家路由采用一种自监督损失,来衡量不同专家模型完成不同数据集的能力,以进行匹配。
在不引入额外标签数据的情况下,我们的自监督任务损失可以准确衡量专家模型处理不同图数据的误差程度。在模型调试过程中,我们发现这一自监督路由算法与遍历所有分配情况所得到的最优分配方案相差无几。
下图展示了我们的路由机制对数据集的分配情况,可以看到,相关的数据集总是被分到同样的专家模型中,例如 arxiv-ta, Photo, GReads, Fitness 等使用同样特征空间的数据集,以及 ML1M 和 ML10M 这两个同源数据集。此外,路由算法的准确性,不仅可以在训练数据集上观察到,在下图右半部分中,模型从未见过的测试数据集也可以进行准确路由。这体现了 AnyGraph 路由机制的通用性和模型的泛化性能。
自适应且高效的图专家
结构和特征的异构性,在模型设计的底层带来了诸多挑战,例如模型如何处理不同维度的特征向量、如何处理二维可变长的邻接矩阵、图专家如何设计可以高效处理不同图类型的变换和预测。
我们的图专家模型采用奇异值分解 SVD 方法对邻接矩阵和节点特征矩阵进行了维度统一。同时,这种统一的特征处理过程,具有一定的语义统一性,为跨数据集的零样本预测打下了基础。
由于我们在高层采用了 MoE 架构集成多个预测模型,我们在单个图专家中采用了简单的 MLP 网络,希望所有的建模问题都能通过采用合适的特征变换来解决。这样做大大增强了模型的效率,使 AnyGraph 甚至在训练效率上超过传统的图网络模型。
下图实验对比了 AnyGraph,以及普通的 GCN 方法、预训练方法 GraphCL 三种方法,在不同数据集下测试它们训练 100 个 step 所花费的时间。可以看到,尽管 AnyGraph 采用了更多的参数、更大的模型,但由于单个专家模型的高效性,训练时间与简单的基线方法相近、甚至更少。
此外,文章进一步探究了不同模型在应对新数据时的快速适应能力。下图实验对比了三种方法随着训练步数的增加,在训练数据集上性能的提升曲线。实验对比的方法包括对一个随机初始化的 GCN 模型进行从头训练、对一个预训练的 GraphCL 模型进行微调、以及对预训练的 AnyGraph 进行微调。
首先,可以观察到 AnyGraph 在未经微调时的零样本预测效果远优于两种基线方法。这源于 AnyGraph 出色的跨领域和零样本泛化能力。其次,AnyGraph 的效果曲线更快到达收敛状态,这体现了使用 MoE 架构、选择合适且高效的专家模型进行微调,可以更快地进行模型适应。此外,可以观察到 GraphCL 的预训练在 PPA 数据集上不仅没有为它带来性能的优势,反而对学习新数据造成了负面影响。这体现了图模型进行跨领域迁移的困难,这源于不同领域图数据巨大的异构性。
广泛训练和测试
数据集
AnyGraph 采用了共 38 个数据集进行训练和测试,数据集涵盖了电商、学术网络、生物信息网络、交通网络、网页关联网络、社交网络等多个类别。共包括 14,437,372 个节点和 199,265,688 条边。不同数据集采用的节点特征方法不同,囊括了无节点特征、不同的文本 embedding 方法、词袋特征、类别特征等不同的方法。具体数据集统计信息如下所示
为了更好地观测模型在大规模测试中的性能,我们将测试数据集分为了多个不同的集合。不同集合之间不包含同源数据集,例如收集自同一个网络服务平台;不同集合的数据集之间也不共享特征构建方法,例如同一种文本 embedding 方法,只可能出现在 Link1 和 Link2 两个集合的其中之一。通过这种方式,模型在零样本测试时完全未接触过测试数据的数据源和特征方法,能测试模型更真实的零样本性能表现。
文章提供了两个版本的预训练模型,分别在 Link1 和 Link2 两个集合上训练得到。在零样本测试中,这两个模型只会被用于测试它们未见过的数据集。例如使用在 Link1 上训练的模型测试 Link2 上的表现。在测试 Ecommerce、Academic、Others 这些包括了 Link1 和 Link2 两类数据集的情况时,文章分别采用两个预训练模型,对未见过的数据集进行测试,再整合计算数据集合的整体预测性能。
AnyGraph 的零样本预测性能
AnyGraph 在零样本预测上的效果如下所示:
除了与现有图模型的少样本预测能力进行对比,文章还对比了现有的其他图基础模型,一个是基于文本特征的 GraphGPT,一个是基于结构特征的 OpenGraph。可以看到,在更多数据集的泛化性能测试上,AnyGraph 取得了更好的效果。并且,文章还对比了一个除了文本特征的消融版本 AnyGraph-F,从而验证了 AnyGraph 对结构和文本两种特征均能进行有效的利用。
AnyGraph 的扩展定律
为了探索 AnyGraph 的性能增长是否符合扩展定律(Scaling Law),文章调整了 AnyGraph 的模型参数量和训练数据量。前者通过调整模型的表征维度、网络层数、专家数量,而后者通过从小到大增加训练数据集的数量。
测试效果如下所示,该实验分为对跨领域数据集的测试,以及对单个领域跨数据集的测试。在每个子图的实验中,包含了以下三项:
从结果可以得出以下几点结论:
总结
AnyGraph 框架是一个高效且有效的图基础模型,专为应对不同图数据集中结构和特征异质性的多方面挑战而设计。AnyGraph 采用创新性的专家混合(MoE)架构,并结合动态专家路由机制,使其在跨域泛化能力方面达到了最先进的水平。在 38 个不同的图数据集上进行的广泛实验不仅突显了 AnyGraph 在零样本学习性能上的卓越表现,还证明了其对分布偏移的鲁棒性以及其遵循规模定律的能力,从而随着模型大小和数据量的增加而提高了预测精度。该模型在训练和推理效率上的表现,通过与现有方法的比较得到了验证,进一步巩固了其实际应用性。
文章来源于“机器之心”
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI
【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。
项目地址:https://github.com/InternLM/xtuner