Graph Retrieval-Augmented Generation: A Survey

news2024/11/26 6:23:19

最近,检索增强生成(RAG)在解决大型语言模型(llm)的挑战方面取得了显著的成功,而无需再培训。通过引用外部知识库,RAG改进了LLM输出,有效地减轻了诸如“幻觉”、缺乏特定于领域的知识和过时信息等问题。然而,数据库中不同实体之间复杂的关系结构给RAG系统带来了挑战。作为响应,GraphRAG利用跨实体的结构信息来实现更精确和全面的检索,捕获关系知识并促进更准确的上下文感知响应。考虑到GraphRAG的新颖性和潜力,对当前技术的系统回顾是必要的。本文提供了GraphRAG方法的第一个全面概述。我们将GraphRAG工作流形式化,包括基于图的索引、图引导检索和图增强生成。然后,我们概述了每个阶段的核心技术和训练方法。此外,我们还研究了下游任务、应用领域、评估方法和GraphRAG的工业用例。最后,我们探讨了未来的研究方向,以激发进一步的研究和推进该领域的进展。

1 Introduction

GPT-4[116]、Qwen2[170]和LLaMA[24]等大型语言模型的发展引发了人工智能领域的一场革命,从根本上改变了自然语言处理的格局。这些模型建立在Transformer[149]架构上,并在各种广泛的数据集上进行训练,在理解、解释和生成人类语言方面展示了前所未有的能力。这些进步的影响是深远的,涉及各个领域,包括医疗保健[93,154,188]、金融[84,114]和教育[38,157],在这些领域,它们促进了人与机器之间更细微和更有效的交互。

尽管llm具有出色的语言理解和文本生成能力,但由于缺乏特定领域的知识、实时更新的信息和专有知识,llm可能会表现出局限性,这些都不在llm的训练前语料库中。这些差距可能导致一种被称为“幻觉”的现象[53],即模型产生不准确甚至捏造的信息。因此,必须补充法学硕士与外部知识,以减轻这一问题。检索增强生成(retrieval - augmented Generation, RAG)[27,37,51,54,165, 180,187]是一个重要的进化,旨在通过在生成过程中集成检索组件来提高生成内容的质量和相关性。RAG的本质在于它能够动态查询大型文本语料库,将相关的事实知识合并到由底层语言模型生成的响应中。这种整合不仅丰富了回应的上下文深度,而且确保了更高程度的事实准确性和特异性。由于其优异的性能和广泛的应用,RAG得到了广泛的关注,成为该领域的关键焦点。

尽管RAG取得了令人印象深刻的成果,并在各个领域得到了广泛的应用,但它在现实场景中面临着局限性:(1)忽视关系:在实践中,文本内容不是孤立的,而是相互联系的。传统的RAG无法捕获重要的结构化关系知识,这些知识不能仅通过语义相似性来表示。例如,在一个由引文关系链接的引文网络中,传统的RAG方法侧重于根据查询找到相关的论文,而忽略了论文之间重要的引文关系。(2)冗余信息:当按提示连接时,RAG经常以文本片段的形式叙述内容。这使得语境变得过于冗长,导致“迷失在中间”的困境[94]。(3)缺乏全局信息:RAG只能检索文档的一个子集,不能全面地掌握全局信息,因此难以完成诸如Query-Focused Summarization (QFS)等任务。

图检索增强生成(GraphRAG)[25,50,108]作为解决这些挑战的创新解决方案而出现。与传统的RAG不同,GraphRAG从预先构造的图形数据库中检索包含与给定查询相关的关系知识的图形元素,如图1所示。这些元素可能包括用于生成响应的节点、三元组、路径或子图。GraphRAG考虑文本之间的相互联系,从而能够更准确、更全面地检索关系信息。此外,图形数据,如知识图,提供了文本数据的抽象和总结,从而大大缩短了输入文本的长度,减轻了冗长的担忧。通过检索子图或图社区,我们可以访问全面的信息,通过捕获图结构中更广泛的上下文和互连来有效地解决QFS挑战。

在本文中,我们首次对GraphRAG进行了系统的调查。具体地说,我们首先介绍GraphRAG工作流,以及支撑该领域的基础背景知识。然后,我们在第5节、第6节和第7节分别按照GraphRAG过程的主要阶段:基于图的索引(G-Indexing)、图引导检索(G-Retrieval)和图增强生成(G-Generation)对文献进行了分类,详细介绍了每个阶段的核心技术和训练方法。此外,我们还研究了下游任务、应用领域、评估方法和GraphRAG的工业用例。本文阐述了如何在实际环境中使用GraphRAG,并反映了它在不同领域的多功能性和适应性。最后,承认GraphRAG的研究仍处于早期阶段,我们将深入探讨潜在的未来研究方向。这一预言性的讨论旨在为即将到来的研究铺平道路,激发新的研究思路,并促进该领域的进步,最终推动GraphRAG走向更成熟和创新的视野。

我们的贡献可以总结如下:

  • 我们对现有的最先进的GraphRAG方法进行了全面和系统的审查。我们提供了GraphRAG的正式定义,概述了它的通用工作流程,包括G-Indexing、G-Retrieval和G-Generation。
  • 我们讨论了支持现有GraphRAG系统的核心技术,包括G-Indexing、G-Retrieval和G-Generation。对于每个组成部分,我们分析了目前正在探索的模型选择、方法设计和增强策略的范围。此外,我们对比了这些模块中采用的不同培训方法。
  • 我们描述了与GraphRAG相关的下游任务、基准、应用领域、评估指标、当前挑战和未来研究方向,讨论了该领域的进展和前景。此外,我们编制了现有行业GraphRAG系统的清单,提供了将学术研究转化为现实行业解决方案的见解。

Organization. 调查的其余部分组织如下:第2节比较了相关技术,而第3节概述了GraphRAG的一般过程。第5到7节对与GraphRAG的三个阶段相关的技术进行了分类:G-Indexing、G-Retrieval和G-Generation。第8节介绍了检索器和生成器的训练策略。第9节总结了GraphRAG的下游任务、相应的基准测试、应用程序领域、评估指标和工业GraphRAG系统。第10节展望了未来的发展方向。最后,第11节总结了本次调查的内容。

2 Comparison with Related Techniques and Surveys

在本节中,我们将图检索增强生成(GraphRAG)与相关技术和相应的调查进行比较,包括RAG、图LLMs和知识库问答(KBQA)。

2.1 RAG

RAG将外部知识与LLM相结合,以提高任务绩效,整合特定领域的信息,以确保事实和可信度。近两年来,研究人员对RAG进行了大量的综合调查[27,37,51,54,165,180,187]。如Fan等[27]和Gao等[37]分别从检索、生成和增强三个方面对RAG方法进行了分类。Zhao等[187]综述了不同模态数据库的RAG方法。Yu等[180]系统地总结了RAG方法的评价。这些作品提供了当前RAG方法的结构化综合,促进了对该领域更深入的理解,并提出了该领域的未来方向。

从广义上看,GraphRAG可以看作是RAG的一个分支,它从图数据库而不是文本语料库中检索相关的关系知识。然而,与基于文本的RAG相比,GraphRAG考虑了文本之间的关系,并将结构信息合并为文本之外的附加知识。此外,在图数据构建过程中,原始文本数据可能会经过过滤和汇总过程,增强了图数据内部信息的精细化。尽管之前关于RAG的调查已经触及了GraphRAG,但它们主要集中在文本数据集成上。本文的不同之处在于将主要重点放在结构化图形数据的索引、检索和利用上,这代表了对纯文本信息处理的实质性背离,并刺激了许多新技术的出现

2.2 LLMs on Graphs

LLMs由于其出色的文本理解、推理和生成能力,以及他们的泛化和零迁移能力,正在彻底改变自然语言处理。虽然llm主要设计用于处理纯文本和包含复杂结构信息的非欧几里得数据,如图[41,153],但在这些领域已经进行了大量研究[13,28,65,83,92,105,119,120,161,189]。这些论文主要将llm与gnn集成在一起,以增强图数据的建模能力,从而提高下游任务(如节点分类、边缘预测、图分类等)的性能。例如,Zhu等人[189]提出了一种名为ENGINE的高效微调方法,该方法通过侧结构将llm和gnn结合起来,以增强图表示。

与这些方法不同,GraphRAG侧重于使用来自外部图结构数据库的查询来检索相关的图元素。在本文中,我们对GraphRAG的相关技术和应用进行了详细的介绍,这些技术和应用并没有包括在之前的关于graph的llm调查中。

2.3 KBQA

KBQA是自然语言处理中的一项重要任务,旨在基于外部知识库响应用户查询[33,76,77,174],从而实现事实验证、段落检索增强和文本理解等目标。以前的调查通常将现有的KBQA方法分为两种主要类型:基于信息检索(IR)的方法和基于语义解析(SP)的方法。具体来说,基于IR的方法[60,61,102,142,155,168,181]从知识图(KG)中检索与查询相关的信息,并使用它来增强生成过程。而基于SP的方法[12,15,29,40,141,177]为每个查询生成一个逻辑形式(LF),并针对知识库执行它以获得答案。

GraphRAG和KBQA密切相关,基于IR的KBQA方法代表了关注下游应用程序的GraphRAG方法的一个子集。在这项工作中,我们将讨论扩展到KBQA之外,包括跨各种下游任务的GraphRAG应用程序。我们的调查提供了对GraphRAG技术的全面和详细的探索,提供了对现有方法和潜在改进的全面理解。

3 Preliminaries

在本节中,我们将介绍GraphRAG的背景知识,以便更好地理解我们的调查。首先,我们介绍了文本属性图,这是GraphRAG中使用的一种通用的图形数据格式。然后,我们提供了可用于检索和生成阶段的两种类型的模型的正式定义:图神经网络和语言模型。

3.1 Text-Attributed Graphs

3.2 Graph Neural Networks 

3.3 Language Models

语言模型在语言理解方面表现优异,主要分为判别模型和生成模型两类。判别模型,如BERT[22]、RoBERTa[97]和SentenceBERT[129],专注于估计条件概率(y|x),在文本分类和情感分析等任务中很有效。生成模型,包括GPT-3[10]和GPT-4[116],旨在对机器翻译和文本生成等任务的联合概率(x, y)进行建模。这些生成式预训练模型通过利用海量数据集和数十亿个参数,极大地推动了自然语言处理(NLP)领域的发展,促进了大型语言模型(llm)的兴起,在各种任务中表现出色。

在早期阶段,RAG和GraphRAG专注于改进判别语言模型的预训练技术[22,97,129]。近年来,ChatGPT[117]、LLaMA[24]、Qwen2[170]等llm在语言理解方面显示出巨大的潜力,展现出强大的语境学习能力。随后,RAG和GraphRAG的研究转向增强语言模型的信息检索,解决日益复杂的任务和减轻幻觉,从而推动了该领域的快速发展。

4 Overview of GraphRAG

 5 Graph-Based Indexing

图数据库的构建和索引是GraphRAG的基础,图数据库的质量直接影响GraphRAG的性能。在本节中,我们将对图数据的选择或构建以及所采用的各种索引方法进行分类和总结。

5.1 Graph Data

在GraphRAG中使用各种类型的图形数据进行检索和生成。在这里,我们根据数据的来源将这些数据分为两类,包括开放知识图和自构造图数据。

5.1.1 Open Knowledge Graphs.

开放知识图谱是指来自公开可用的存储库或数据库的图形数据[2,7,138,151]。使用这些知识图可以显著减少开发和维护所需的时间和资源。在本次调查中,我们根据它们的范围将它们进一步分为两类,即通用知识图和领域知识图

(1) General Knowledge Graphs.

通用知识图主要存储通用的、结构化的知识,并且通常依赖于全球社区的集体输入和更新,从而确保信息库的全面和不断更新。

百科知识图是一种典型的通用知识图,它包含了大量从人类专家和百科全书中收集的现实世界知识。例如,Wikidata1[151]是一个免费开放的知识库,它存储了维基媒体姊妹项目(如Wikipedia、Wikivoyage、Wiktionary等)的结构化数据。Freebase2[7]是一个广泛的、协作编辑的知识库,它编译了来自各种来源的数据,包括来自维基百科等数据库的个人贡献和结构化数据。DBpedia3[2]通过利用Wikipedia文章中的信息框和类别,表示有关数百万个实体的信息,包括人、地点和事物。YAGO4[138]从维基百科、WordNet和GeoNames收集知识。

常识知识图是另一种类型的一般知识图。它们包括抽象的常识性知识,如概念之间的语义关联和事件之间的因果关系。典型的常识知识图包括:ConceptNet5[91]是一个语义网络,由表示单词或短语的节点构建而成,这些节点通过表示语义关系的边连接起来。ATOMIC[56,131]为事件之间的因果关系建模。

(2) Domain Knowledge Graphs.

正如第1节所讨论的,特定领域知识图对于增强llm解决特定领域问题的能力至关重要。这些KGs提供特定领域的专业知识,帮助模型获得更深入的见解和更全面的理解复杂的专业关系。在生物医学领域,CMeKG6包含广泛的数据,包括疾病、症状、治疗、药物以及医学概念之间的关系。CPubMed-KG7是建立在PubMed广泛的生物医学文献库基础上的中文医学知识数据库。在电影领域,Wiki-Movies[110]从维基百科中提取与电影相关的结构化信息,将关于电影、演员、导演、类型和其他相关细节的数据编译成结构化格式。

此外,Jin等人[66]构建了一个名为GR-Bench的数据集,其中包括跨越学术、电子商务、文学、医疗保健和法律领域的五个领域知识图谱。此外,He等人[47]将ExplaGraphs和SceneGraphs中的三元格式和JSON文件转换为标准图形格式,并从WebQSP中选择需要2跳推理的问题,创建通用图形格式数据集GraphQA,用于评估GraphRAG系统。

5.1.2 Self-Constructed Graph Data.

自构建图形数据促进了专有或特定领域知识的定制和集成到检索过程中。对于不涉及图形数据的下游任务,研究人员通常建议从多个来源(例如,文档,表和其他数据库)构建一个图形,并利用GraphRAG来增强任务性能。通常,这些自构建图与方法的特定设计紧密相关,从而将它们与前面提到的开放域图数据区分开来。

为了对文档之间的结构关系进行建模,Munikoti等[113]提出构建一个异构文档图,捕获多个文档级关系,包括共引、共主题、共会场等。Li等[87]和Wang等[160]根据共享关键词建立文章之间的关系。为了捕获文档中实体之间的关系,Delile等人[20]、Edge等人[25]、gutisamurez等人[43]和Li等人[80]利用命名实体识别工具从文档中提取实体,并利用语言模型进一步提取实体之间的关系,检索到的实体和关系形成知识图。还有一些下游任务的映射方法需要根据任务本身的特征来设计。例如,为了解决专利短语相似度推断任务,Peng和Yang[122]将专利数据库转换为专利短语图。如果专利中出现短语,则建立专利节点与短语节点之间的连接,而专利节点之间的连接则基于引文关系。针对客户服务技术支持场景,Xu等[169]提出将历史问题建模为KG, KG将问题转换为树表示来维护问题内关系,并利用语义相似性和阈值来维护问题间关系。

5.2 Indexing

基于图的索引对于提高图数据库查询操作的效率和速度起着至关重要的作用,它直接影响到后续的检索方法和粒度。常见的基于图的索引方法包括图索引、文本索引和矢量索引。

5.2.1图索引。图索引代表了最常用的方法,保留了图的整个结构。这种方法保证了对于任何给定的节点,它的所有边和邻近节点都是容易访问的。在随后的检索阶段,可以使用经典的图搜索算法,如BFS和最短路径算法来简化检索任务[64,66,102,142,146,175]。

5.2.2文本索引。文本索引涉及将图形数据转换为文本描述以优化检索过程。这些描述存储在一个文本语料库中,在这个语料库中可以应用各种基于文本的检索技术,如稀疏检索和密集检索。一些方法使用预定义的规则或模板将知识图转换为人类可读的文本。例如,Li等人[81],Huang等人[55]和Li等人[86]使用预定义模板将知识图中的每个三元组转换为自然语言,而Yu等人[179]将具有相同头部实体的三元组合并为段落。此外,一些方法将子图级信息转换为文本描述。例如,Edge等人[25]在图上执行社区检测,并使用llm生成每个社区的摘要。

5.2.3向量索引。向量索引将图形数据转换为向量表示,提高检索效率,便于快速检索和有效的查询处理。例如,实体链接可以通过查询嵌入无缝应用,并且可以利用高效的向量搜索算法,如Locality Sensitive hash (LSH)[57]。G-Retriever[47]采用语言模型对图内每个节点和边相关的文本信息进行编码,而GRAG[50]采用语言模型将𝑘-hop自我网络转换为图嵌入,从而更好地保留了结构信息。

Remark. 这三种索引方法各有其独特的优点:图形索引方便了对结构信息的访问,文本索引简化了对文本内容的检索,矢量索引实现了快速有效的搜索。因此,在实际应用中,结合这些索引方法的混合方法通常比单独依赖一种方法更可取。

6 Graph-Guided Retrieval

在GraphRAG中,通过从外部图形数据库提取相关的高质量图形数据,检索过程对于确保生成输出的质量和相关性至关重要。然而,检索图数据面临两个重大挑战:(1)爆炸性候选子图:随着图大小的增加,候选子图的数量呈指数增长,需要启发式搜索算法有效地探索和检索相关子图。(2)相似度测量不足:准确测量文本查询和图数据之间的相似度需要开发能够理解文本和结构信息的算法。

为了应对上述挑战,在优化检索过程方面已经付出了相当大的努力。本调查的重点是研究GraphRAG中检索过程的各个方面,包括检索器的选择、检索范式、检索粒度和有效的增强技术。图3描述了图引导检索的一般体系结构。

 

 6.1 Retriever

在GraphRAG中,各种检索器在处理检索任务的不同方面具有独特的优势。我们根据其基础模型将寻回犬分为三种类型:非参数检索器、基于lm的检索器和基于gnn的检索器。需要注意的是,这里没有考虑预处理步骤中使用的模型,例如查询编码和实体链接,因为这些模型在不同的方法中有所不同,并不是本文的主要焦点。

6.1.1 Non-parametric Retriever.

非参数检索器基于启发式规则或传统的图搜索算法,不依赖深度学习模型,检索效率高。例如,Yasunaga等人[175]和Taunk等人[146]检索包含每个问题-选择对的主题实体的𝑘-hop路径。G-Retriever[47]通过结合边缘价格和优化相关子图提取,增强了传统的prizecollting Steiner Tree (PCST)算法。Delile等[20]和Mavromatis和Karypis[108]首先提取查询中提到的实体,然后检索与这些实体相关的最短路径。这些方法通常涉及实体链接预处理步骤,以便在检索之前识别图中的节点。

6.1.2 LM-based Retriever.

由于具有强大的自然语言理解能力,LMs在GraphRAG中可以作为有效的检索器。这些模型在处理和解释各种自然语言查询方面表现出色,使它们能够在基于图的框架中用于广泛的检索任务。我们主要将LMs分为两类:判别语言模型和生成语言模型。Subgraph retriver[181]训练RoBERTa[97]作为检索器,从主题实体展开,在顺序决策过程中检索相关路径。KG-GPT[71]采用llm生成具体实体的top-𝐾相关关系集。Wold等[164]利用微调的GPT-2生成推理路径。StructGPT[58]利用llm自动调用几个预定义的函数,通过这些函数可以检索和组合相关信息,以辅助进一步的推理。

6.1.3 GNN-based Retriever.

GNN擅长理解和利用复杂的图结构。基于gnn的检索器通常对图数据进行编码,然后根据它们与查询的相似性对不同的检索粒度进行评分。例如,GNN-RAG[108]首先对图进行编码,为每个实体分配分数,并根据阈值检索与查询相关的实体。EtD[90]通过多次迭代来检索相关路径。在每次迭代中,首先使用LLaMA2[148]选择连接当前节点的边,然后使用gnn获得新节点层的嵌入,用于下一轮LLM选择。

Remark. 在检索过程中,非参数检索器表现出良好的检索效率,但由于缺乏对下游任务的训练,可能存在检索不准确的问题。同时,尽管基于lm的检索器和基于gnn的检索器提供了更高的检索精度,但它们需要大量的计算开销。考虑到这种互补性,许多方法提出了混合检索方法,以提高检索效率和准确性。许多方法采用多阶段检索策略,在每个阶段使用不同的模型。例如,RoG[102]首先利用llm生成规划路径,然后从知识图中提取满足规划路径的路径。GenTKGQA[36]使用llm从查询中推断出关键关系和约束,并根据这些约束提取三元组。

6.2 Retrieval Paradigm

在GraphRAG中,不同的检索范式,包括一次检索、迭代检索和多阶段检索,在提高检索信息的相关性和深度方面起着至关重要的作用。一次检索的目的是在一次操作中收集所有相关信息。迭代检索基于先前检索到的信息进行进一步的搜索,逐步缩小到最相关的结果。这里我们进一步将迭代检索分为自适应检索和非自适应检索,区别在于是否由模型决定检索的停止。另一种检索范式是多阶段检索,将检索分为多个阶段。在每个阶段可以使用不同类型的寻回器,以获得更精确和多样化的搜索结果。下面,我们将详细介绍这些类型的检索范式。

6.2.1 Once Retrieval.

一次性检索的目的是在单个查询中检索所有相关信息。一类方法[43,50,81]利用嵌入相似度来检索最相关的信息。另一类方法设计预定义的规则或模式,直接从图数据库中提取特定的结构化信息,如三元组、路径或子图。例如,g - retriver[47]利用扩展的PCST算法来检索最相关的子图。KagNet[88]提取长度不超过𝑘的所有主题实体对之间的路径。Yasunaga等人[175]和Taunk等人[146]提取了包含所有主题实体及其2跳邻居的子图。

此外,在本小节中,我们还包括一些涉及解耦和独立检索的多个检索方法,允许它们并行计算并且只执行一次。例如,Luo等人[102]和Cheng等人[16]首先指导llm生成多条推理路径,然后使用BFS检索器在知识图中依次搜索与每个路径匹配的子图。KG-GPT[71]将原始查询分解为多个子查询,在单个检索过程中为每个子查询检索相关信息。

6.2.2 Iterative Retrieval.

在迭代检索中,使用多个检索步骤,后续搜索取决于先前检索的结果。这些方法旨在通过连续迭代加深对检索信息的理解或完整性。本文进一步将迭代检索分为两类:(1)非自适应检索和(2)自适应检索。我们在下面提供这两类方法的详细总结。

(1) Non-Adaptive Retrieval.

非自适应方法通常遵循固定的检索顺序,并且通过设置最大时间或阈值来确定检索的终止。例如,PullNet[139]通过𝑇迭代检索与问题相关的子图。在每一次迭代中,设计一个检索规则来选择检索到的实体子集,然后通过搜索知识图中的相关边来扩展这些实体。在每次迭代中,KGP[160]首先根据上下文与图中节点的相似度选择种子节点。然后使用llm来总结和更新种子节点的相邻节点的上下文,并在后续迭代中使用。

(2) Adaptive Retrieval.

自适应检索的一个显著特点是让模型自主确定完成检索活动的最佳时机。例如,[42,168]利用LM进行跳数预测,作为结束检索的指示器。还有一组研究人员利用模型生成的特殊标记或文本作为检索过程的终止信号。例如,ToG[142]提示LLM代理探索多个可能的推理路径,直到LLM根据当前的推理路径确定问题可以回答。[181]训练RoBERTa从每个主题实体展开路径。在此过程中,引入一个名为“[END]”的虚拟关系来终止检索过程。

另一种常见的方法包括将大型模型视为代理,使其能够直接生成问题的答案,以表示迭代的结束。例如,[58,60,66,143,158]提出基于llm的智能体在图上进行推理。这些代理可以自主地确定要检索的信息,调用预定义的检索工具,并根据检索到的信息停止检索过程。

6.2.3 Multi-Stage Retrieval.

多阶段检索将检索过程线性地划分为多个阶段,并在这些阶段之间添加诸如检索增强之类的附加步骤,甚至生成过程。在多阶段检索中,不同的阶段可以使用不同类型的检索器,这使得系统能够结合针对查询的不同方面的各种检索技术。例如,Wang等人[159]首先利用非参数检索器提取查询推理链中实体的𝑛-hop路径,然后经过修剪阶段,进一步检索被修剪子图中实体的一跳邻居。OpenCSR[45]将检索过程分为两个阶段。在第一阶段,它检索主题实体的所有1跳邻居。在第二阶段,比较这些相邻节点与其他节点的相似度,选择相似度最高的top-𝑘节点进行检索。GNN-RAG[108]首先使用gnn来检索最可能是答案的顶部𝑘节点。随后,它成对检索查询实体和应答实体之间的所有最短路径。

Remark. 在GraphRAG中,一次检索通常表现出较低的复杂性和较短的响应时间,使其适合需要实时响应的场景。相比之下,迭代检索通常涉及更高的时间复杂度,特别是当使用llm作为检索器时,可能导致更长的处理时间。然而,这种方法通过迭代地精炼检索到的信息并生成响应,可以产生更高的检索精度。因此,检索范例的选择应该基于特定的用例和需求来平衡准确性和时间复杂性。

6.3 Retrieval Granularity检索粒度

根据不同的任务场景和索引类型,研究者设计了不同的检索粒度(即从图数据中检索到的相关知识的形式),可分为节点、三元组、路径和子图。每种检索粒度都有自己的优点,因此适用于不同的实际场景。我们将在下面的章节中介绍这些粒度的细节。

6.3.1 Nodes.

节点允许对图中的单个元素进行精确检索,这对于目标查询和特定信息提取非常理想。一般来说,对于知识图,节点指的是实体。对于其他类型的文本属性图,节点可能包含描述节点属性的文本信息。通过检索图中的节点,GraphRAG系统可以提供有关其属性、关系和上下文信息的详细信息。例如,Munikoti等人[113]、Li等人[87]和Wang等人[160]构建文档图并检索相关通道节点。Liu等[90],Sun等[139]和gutisamurez等[43]从构造的知识图中检索实体。

6.3.2 Triplets.

通常,三元组由主体-谓词-对象元组形式的实体及其关系组成,在图中提供关系数据的结构化表示。三元组的结构化格式允许清晰和有组织的数据检索,使其在理解实体之间的关系和上下文相关性至关重要的场景中具有优势。Yang等[171]检索包含主题实体的三元组作为相关信息。Huang等[55]、Li等[81]和Li等[86]首先使用预定义模板将图数据的每个三元组转换为文本句子,然后采用文本检索器提取相关三元组。然而,直接从图数据中检索三元组可能仍然缺乏上下文的广度和深度,因此无法捕获间接关系或推理链。为了解决这一挑战,Wang等人[152]提出基于原始问题生成逻辑链,并检索每个逻辑链的相关三元组。

6.3.3 Paths.

路径粒度数据的检索可以看作是捕获实体之间的关系序列,增强上下文理解和推理能力。在GraphRAG中,检索路径具有明显的优势,因为它们能够捕获图中的复杂关系和上下文依赖项。

然而,路径检索可能具有挑战性,因为随着图大小的增加,可能的路径呈指数增长,这增加了计算复杂性。为了解决这个问题,一些方法基于预定义的规则检索相关路径。例如,Wang等[159]和Lo和Lim[98]首先在查询中选择实体对,然后遍历在𝑛-hop中找到它们之间的所有路径。HyKGE[64]首先定义了三种类型的路径:路径、共祖链和共现链,然后利用相应的规则来检索这三种类型的路径。此外,一些方法利用模型对图进行路径搜索。ToG[142]提出提示LLM agent对kg进行束搜索,并找到多个可能的推理路径来帮助回答问题。Luo等[102]、Wu等[168]和Guo等[42]首先利用该模型生成忠实的推理计划,然后根据这些计划检索相关路径。GNN-RAG[108]首先识别问题中的实体。随后,提取满足一定长度关系的实体之间的所有路径。

6.3.4 Subgraphs.

检索子图提供了显著的优势,因为它能够捕获图中全面的关系上下文。这种粒度使GraphRAG能够提取和分析嵌入在较大结构中的复杂模式、序列和依赖关系,从而促进对语义连接的更深入的了解和更细致的理解。

为了保证信息的完整性和检索效率,一些方法提出了一种基于规则的初始方法来检索候选子图,然后对候选子图进行进一步的细化或处理。Peng和Yang[122]从自构的专利-短语图中检索专利短语的自我图。Yasunaga等[175]、Feng等[32]和Taunk等[146]首先选择主题实体及其两跳邻居作为节点集,然后选择节点集中同时存在头尾实体的边构成子图。此外,还有一些基于嵌入的子图检索方法。例如,Hu等人[50]首先对图数据库中的所有𝑘-hop自我网络进行编码,然后根据嵌入之间的相似性检索与查询相关的子图。Wen等[163]和Li等[80]根据预定义的规则提取了两种类型的图,包括路径证据子图和邻居证据子图。OpenCSR[45]从几个初始种子节点开始,逐渐扩展到新的节点,最终形成一个子图。

除了上述直接子图检索方法外,还有一些研究提出先检索相关路径,然后从中构造相关子图。例如,Zhang等人[181]训练了一个RoBERTa模型,通过顺序决策过程识别多条推理路径,随后合并来自不同路径的相同实体,从而归纳出最终的子图。

6.3.5 Hybrid Granularties.

考虑到上述各种检索粒度的优缺点,有研究者提出使用混合粒度,即从图数据中检索多个粒度的相关信息。这种类型的粒度增强了系统捕获详细关系和更广泛的上下文理解的能力,从而减少了噪声,同时提高了检索数据的相关性。以往的各种研究都提出利用LLM代理来检索复杂的混合信息。Jin等人[66]、Jiang等人[58]、Jiang等人[60]、Wang等人[158]和Sun等人[143]提出采用基于llm的agent自适应地选择节点、三元组、路径和子图。

Remark. (1)在实际应用中,这些检索粒度之间没有明确的界限,因为子图可以由多条路径组成,而路径可以由多个三元组组成。(2)节点、三元组、路径和子图等各种粒度在GraphRAG过程中提供了独特的优势。在选择粒度时,根据任务的特定上下文,在检索内容和效率之间取得平衡是至关重要的。对于直接的查询或当效率是最重要的时,更细的粒度(如实体或三元组)可以优化检索速度和相关性。相比之下,复杂的场景通常受益于组合多个粒度的混合方法。这种方法确保了对图结构和关系的更全面的理解,提高了生成响应的深度和准确性。因此,GraphRAG在粒度选择方面的灵活性使其能够有效地适应不同领域的不同信息检索需求

6.4 Retrieval Enhancement

为了保证高检索质量,研究人员提出了增强用户查询和检索知识的技术。本文将查询增强分为查询扩展和查询分解,知识增强分为合并和剪枝。这些策略共同优化了检索过程。尽管其他技术,如查询重写[103,106,121,126]在RAG中经常使用,但它们在GraphRAG中应用的频率较低。我们不深入研究这些方法,尽管它们可能适用于GraphRAG。

6.4.1 Query Enhancement.

应用于查询的策略通常涉及预处理技术,这些技术可以丰富信息,以便更好地检索。这可能包括查询扩展和查询分解。

(1) Query Expansion.

由于查询通常长度较短,信息内容有限,查询扩展的目的是通过使用额外的相关术语或概念补充或改进原始查询来改进搜索结果。Luo等[102]利用llm生成以KGs为基础的关系路径来增强检索查询。Cheng等[16]采用SPARQL从Wikidata中获取查询实体的所有别名来增强检索查询,从而捕获同一实体的词法变化。Huang等[55]提出了一种共识视图知识检索方法来提高检索精度,该方法首先发现语义相关的查询,然后对原始查询项重新加权以提高检索性能。HyKGE[64]利用一个大型模型来生成问题的假设输出,将假设输出与查询连接起来作为检索器的输入。

(2) Query Decomposition.

查询分解技术将原始用户查询分解为更小、更具体的子查询。每个子查询通常关注于原始查询的一个特定方面或组件,这成功地减轻了语言查询的复杂性和模糊性。例如,[18,71]将主要问题分解为子句,每个子句代表一个不同的关系,并依次检索每个子句的相关三元组。

6.4.2 Knowledge Enhancement.

检索初始结果后,采用知识增强策略对检索结果进行细化和改进。这个阶段通常包括知识合并和知识修剪过程,以突出显示最相关的信息。这些技术旨在确保检索结果的最终集合不仅全面,而且与用户的信息需求高度相关。

(1) Knowledge Merging.

知识合并检索到的信息支持信息的压缩和聚合,这有助于通过整合来自多个源的相关细节获得更全面的视图。这种方法不仅增强了信息的完整性和一致性,而且减轻了模型中与输入长度约束相关的问题。knowledgegenavigator[42]通过合并节点,并通过三重聚合对检索到的子图进行压缩,提高推理效率。在子图检索[181]中,在检索每个主题实体的top-𝑘路径形成单个子图后,研究人员提出将不同子图中的相同实体合并形成最终子图。Wen等[163]和Li等[80]基于关系对检索到的子图进行合并,将满足相同关系的头实体和尾实体合并为两个不同的实体集,最终形成关系路径。

(2) Knowledge Pruning.

知识修剪包括过滤掉不太相关或冗余的检索信息以改进结果。以前的修剪方法包括两大类:(重新)基于排名的方法和基于llm的方法。(重新)排序方法涉及使用定制的度量或标准对检索信息进行重新排序或优先排序。

其中一行方法引入了更强的重新排序模型。例如,Li等人[81]将每个检索到的三元组与问题-选择对连接起来,并采用预训练的交叉编码器[129]对检索到的三元组重新排序。Jiang等[64]利用FlagEmbedding对文本进行编码,对嵌入模型“bge_reranker_large”返回的top-k文档进行重新排序。

另一类利用查询和检索信息之间的相似性进行排序。例如,Cheng等人[16]基于子图与查询之间的关系和细粒度概念的相似性对候选子图重新排序。Taunk等[146]首先对2跳邻居进行聚类,然后删除与输入查询相似度最低的聚类。Yasunaga等[175]根据预先训练好的语言模型计算出的问题上下文与KG实体节点之间的相关性评分,对检索到的子图进行剪枝。Wang等[159],Jiang等[61],gutisamurez等[43]和Luo等[100]采用个性化PageRank算法对检索到的候选信息进行排序,以便进一步过滤。G-G-E[35]首先将检索到的子图分成几个较小的子图,然后比较每个较小子图与查询的相似度。去除相似度低的子图,并将剩余的较小子图合并为较大的子图。

7 Graph-Enhanced Generation

生成阶段是GraphRAG中的另一个关键步骤,旨在将检索到的图数据与查询集成在一起,以提高响应质量。在此阶段,必须根据下游任务选择合适的生成模型。然后将检索到的图形数据转换为与生成器兼容的格式。生成器将查询和转换后的图形数据作为输入,以生成最终响应。除了这些基本过程之外,生成增强技术可以通过加强查询和图数据之间的交互以及丰富内容生成本身来进一步提高输出。图4描述了本节的组织和图形增强生成的概述。

7.1 Generators

Generators的选择通常取决于手头下游任务的类型。对于判别任务(例如,选择题回答)或生成任务,可以将其表述为判别任务(例如,KBQA),可以利用gnn或判别语言模型来学习数据的表示。然后可以将这些表示映射到与不同答案选项相关联的逻辑,以提供响应。或者,可以使用生成语言模型直接生成答案。然而,对于生成任务,仅使用gnn和判别语言模型是不够的。这些任务需要生成文本,这就需要部署解码器。

7.1.1 GNNs.

由于gnn对图数据的强大表示能力,它们对判别任务特别有效。gnn可以直接对图数据进行编码,捕获图结构中固有的复杂关系和节点特征。然后通过多层感知器(MLP)处理该编码以生成预测结果。这些方法主要利用经典的GNN模型(例如,GCN[74]、GAT[150]、GraphSAGE[44]和Graph Transformers[135]),要么保持原始形式,要么进行修改,以更好地与下游任务保持一致。例如,Sun等人[140]计算相邻节点的PageRank分数,并在消息传递过程中按这些分数加权汇总它们。这种方法增强了中心节点从最相关的相邻节点吸收信息的能力。Mavromatis和Karypis[107]将查询解码为多个向量(指令),并通过使用gnn模拟宽度优先搜索(BFS)来改进指令执行,并使用自适应推理使用kg感知信息更新指令,从而增强指令解码和执行以进行有效推理。

7.1.2 LMs.

LMs具有强大的文本理解能力,这也使它们能够作为生成器发挥作用。在将lm与图数据集成的上下文中,有必要首先将检索到的图数据转换为特定的图格式。这种转换过程确保了LMs能够有效地理解和利用结构化信息。这些格式(将在7.2节中详细说明)对于保留图数据的关系和层次结构至关重要,从而增强模型解释复杂数据类型的能力。一旦对图数据进行了格式化,它就会与查询结合起来,并输入到LM中。

对于只有编码器的模型,如BERT[22]和RoBERTa[97],它们的主要用途是在判别任务中。与gnn类似,这些模型首先对输入文本进行编码,然后利用mlp将其映射到答案空间[55,61,81]。另一方面,编码器-解码器和仅解码器模型,如T5[127]、GPT-4[116]和LLaMA[24],既擅长判别任务,也擅长生成任务。这些模型在文本理解、生成和推理方面表现出色,允许它们直接处理文本输入并生成文本响应[25、64、66、102、108、142、152、159]。

7.1.3 Hybrid Models.

考虑到gnn在表示图数据结构方面的优势,以及LMs对文本的强大理解,许多研究正在探索这两种技术的集成,以产生连贯的响应。本文将混合生成方法分为两种不同的类型:级联范式和平行范式。

(1) Cascaded Paradigm.级联范式

在级联方法中,流程涉及顺序交互,其中一个模型的输出充当下一个模型的输入。具体来说,GNN首先处理图数据,将其结构和关系信息封装成LM可以理解的形式。随后,将转换后的数据输入到LM中,LM然后生成最终的基于文本的响应。这些方法以循序渐进的方式利用每个模型的优势,确保对结构和文本数据的详细关注。

在这些方法中,提示调优[79,82,95,96]是一种典型的方法,其中通常使用gnn对检索到的图数据进行编码。这个编码的图数据随后作为前缀添加到LM的输入文本嵌入中。然后通过下游任务对GNN进行优化,以产生图形数据的增强编码[36,47,50,182]。

(2) Parallel Paradigm.平行范式。

另一方面,并行方法通过同时利用GNN和LLM的功能来运行。在这种设置中,两个模型同时接收初始输入,并协同工作以处理同一数据的不同方面。然后,通常通过另一个模型或一组规则合并输出,以产生统一的响应,该响应集成了来自图形结构和文本内容的见解。

在并行范例中,一种典型的方法包括使用gnn和lm分别编码输入,然后集成这两种表示,或者直接集成它们的输出响应。例如,Jiang等人[59]通过加权求和来汇总gnn和LMs的预测以获得最终答案。Lin等人[88]和Pahuja等人[118]使用注意机制将gnn生成的图表示和lm生成的文本表示结合起来。Yasunaga等人[175],Munikoti等人[113]和Taunk等人[146]直接将图表示与文本表示连接起来。

另一种方法涉及设计集成gnn和LMs的专用模块,使结果表示能够封装结构和文本信息。例如,Zhang等人[184]引入了一个称为GreaseLM Layer的模块,该模块结合了GNN层和LM层。在每一层,该模块使用两层MLP集成文本和图形表示,然后将它们传递给下一层。类似地,ENGINE[189]提出了g - ladder,它通过侧结构将LMs和gnn结合起来,增强了下游任务的节点表示。

Remark.混合模型利用gnn对图形数据的表示能力和LMs对文本数据的表示能力,具有很好的应用前景。然而,有效地整合来自这两种模式的信息仍然是一个重大挑战。

7.2 Graph Formats

当使用gnn作为生成器时,可以直接对图数据进行编码。然而,当使用LMs作为生成器时,图数据的非欧几里得性质带来了挑战,因为它不能直接与文本数据相结合以输入到LMs中。为了解决这个问题,使用图形转换器将图形数据转换为与lm兼容的格式。这种转换增强了LMs的生成能力,使它们能够有效地处理和利用结构化的图信息。在这项调查中,我们总结了两种不同的图形格式:图形语言和图形嵌入。我们用图5中的一个例子来说明这个过程,下面提供了详细的介绍。

7.2.1 Graph Languages.

图描述语言是一种形式化的符号系统,专门用于描述和表示图数据。它规定了一个统一的语法和语义框架,用于描述图中的组件和互连。通过这些语言,用户可以一致地以机器可理解的格式生成、操作和解释图形数据。它们能够定义图架构,规范节点和边的属性,以及实现图结构上的操作和查询。接下来,我们将分别介绍五种类型的图语言:邻接/边缘表、自然语言、代码、语法树和节点序列。

(1) Adjacency / Edge Table.

邻接表和边表是描述图结构的常用方法[30,41,85,153]。邻接表列举了每个顶点的近邻,提供了一种紧凑的方式来表示稀疏图中的连接。例如,KG-GPT[71]将检索到的子图中的三元组线性化,然后将其连接并馈送到llm中。相反,边表详细描述了图中的所有边,提供了一种直接的表示,对于以线性格式处理和分析图特别有用。这两种方法都很简单,容易理解,直观。

(2) Natural Language.

鉴于用户查询通常以自然语言表示,并且考虑到LMs出色的自然语言理解能力,使用自然语言描述检索到的图数据成为一种引人注目的方法。通过将图数据翻译成描述性的、易于理解的语言,LMs可以弥合原始数据表示和用户友好信息之间的差距,促进与数据驱动的应用程序更有效的交互。例如,一些研究人员[55,81]提出预先为每种类型的边缘定义一个自然语言模板,然后根据其类型将每个边缘的端点填充到相应的模板中。Ye等[176]采用自然语言描述中心节点的1跳和2跳相邻节点的信息。Edge等人[25]利用llm为每个检测到的图形社区生成类似报告的摘要。Wu等[168]和Guo等[42]采用LMs重写检索子图的边表,生成自然语言描述。Fatemi等人[30]探索了节点(如整数编码、字母、名称等)和边(如括号、箭头、事件等)的不同表示。Jin等人[66],Jiang等人[58],Jiang等人[60],Wang等人[158],Sun等人[143]通过自然语言将图内不同粒度的信息以对话的形式整合到提示符中。

(3) Code-Like Forms.

考虑到自然语言描述和其他一维序列本身不足以直接表示图数据的二维结构,并且考虑到LMs具有强大的代码理解能力,许多研究人员[41]探索使用类代码格式来表示图结构。例如,Guo等人[41]研究了使用图形建模语言(GML)[48]和图形标记语言(GraphML)[130]来表示图形。这些标准化语言是专门为图形数据设计的,提供了包含节点、边及其相互关系的全面描述。

(4) Syntax Tree.

与图的直接平坦化相比,一些研究[186]提出将图转换为类似于语法树的结构。语法树具有层次结构,作为拓扑图,也保持拓扑顺序。这种方法保留了更多的结构信息,增强了对图的内在属性的理解和分析。这种转换不仅保留了不同图元素之间的关系动态,而且为更复杂的图分析和处理算法提供了便利。GRAPHTEXT[186]提出将中心节点的自我网络转换为图语法树格式。这种格式不仅封装了结构信息,而且集成了节点的特性。通过遍历该语法树,可以获得既维护拓扑顺序又维护层次结构的节点序列。

(5) Node Sequence.

一些研究[14,108]提出通过节点序列来表示图,这些节点序列通常使用预定义规则生成。与自然语言描述相比,这些节点序列更加简洁,并且包含了先验知识,特别是规则所强调的结构信息。Luo等[102]和Sun等[142]将检索到的路径转换成节点序列,并将其输入到LLM中,以提高任务性能。LLaGA[14]提出了两个可以将图转换为节点序列的模板。第一个模板称为邻域细节模板,提供了对中心节点及其周围环境的详细检查。第二种是Hop-Field Overview Template,它提供了节点邻域的概要视图,可以扩展到更广泛的区域。GNN-RAG[108]根据提示将检索到的推理路径以节点序列的形式输入到lm中。

Remark. 好的图形语言应该是完整、简洁和易于理解的。完整性需要捕获图结构中的所有基本信息,确保没有遗漏任何关键细节。简练是指必须保持文本描述的简洁,以避免“中间迷失”现象[94]或超过LMs的长度限制。冗长的输入可能会阻碍LMs的处理能力,可能导致上下文丢失或数据解释被截断。可理解性确保所使用的语言容易被LM理解,从而促进图结构的准确表示。由于不同图语言的特点,它们的选择会显著影响下游任务的性能[30]。

7.2.2 Graph Embeddings.

上述图语言方法将图数据转换为文本序列,这可能导致过于冗长的上下文,产生高计算成本,并且可能超出llm的处理限制。此外,LM目前即使使用图语言也难以完全理解图结构[41]。因此,使用gnn作为嵌入来表示图形是一个很有前途的选择。核心挑战在于将图形嵌入与文本表示集成到统一的语义空间中。如前所述,当前的研究重点是利用即时调优方法。值得注意的是,将图表示馈送到lm中主要是在开源lm中可行的,而不是像GPT-4这样的闭源模型[116]。虽然图嵌入方法避免处理长文本输入,但它们面临其他挑战,例如难以保留精确的信息,如特定实体名称和较差的泛化。

7.3 Generation Enhancement

在生成阶段,除了将检索到的图数据转换为生成器可接受的格式并与查询一起输入生成最终响应外,许多研究者还探索了各种生成增强技术的方法来提高输出响应的质量。这些方法根据其应用阶段可分为三类:代前增强、代中增强和代后增强。

7.3.1 Pre-Generation Enhancement.生成前增强

生成前增强侧重于在将输入数据或表示输入到生成器之前提高它们的质量。事实上,在生成前增强和检索之间并没有明确的界限。在本研究中,我们将检索阶段划分为从原始图中检索知识,并合并和修剪检索到的知识的过程。后续操作被认为是前生成增强。

常用的预生成增强方法主要涉及对检索到的图数据进行语义丰富,以实现图数据与文本查询之间更紧密的集成。Wu等人[168]使用llm重写检索到的图数据,增强了转换后的自然语言输出的自然性和语义丰富性。这种方法不仅保证了图数据转换成更加流畅、自然的语言,而且丰富了图数据的语义内容。相反,DALK[80]利用检索到的图数据重写查询。Cheng等[16]首先利用llm生成推理计划,并根据计划回答查询。Taunk等人[146]和Yasunaga等人[175]旨在通过使gnn学习与查询相关的图表示来增强gnn。他们通过从QA对(或QA对本身)中提取所有名词并将它们作为节点插入到检索的子图中来实现这一点。Mavromatis和Karypis[107]提出了一种方法,在生成之前,将查询的表示分解为称为“指令”的多个向量,每个向量表示查询的不同特征。当应用gnn从检索的子图中学习时,这些指令用作消息传递过程中的条件。此外,还有一些方法可以包含图形数据之外的其他信息。例如,PullNet[139]整合了与实体相关的文档,而MVP-Tuning[55]检索了其他相关问题。

7.3.2 Mid-Generation Enhancement.中期增强

中期增强涉及在生成过程中应用的技术。这些方法通常根据中间结果或上下文线索调整生成策略。TIARA[136]引入了约束解码来控制输出空间并减少生成错误。在生成逻辑表单时,如果受约束的解码器检测到它当前正在生成模式项,它将下一个生成的令牌限制为包含KB类和关系的尝试中存在的选项。与Beam Search相比,该方法保证了生成的模式项在知识图中存在,从而减少了生成误差。还有其他方法调整llm的提示,以实现多步推理。例如,MindMap[163]不仅生成答案,还生成推理过程。

7.3.3 Post-Generation Enhancement.生成后增强

生成后增强发生在初始响应生成之后。生成后增强方法主要涉及对多个生成的响应进行积分以获得最终响应。一些方法侧重于在不同条件或输入下对同一发电机的输出进行积分。例如,Edge等人[25]为每个图社区生成摘要,然后根据摘要生成对查询的响应,然后使用LLM对这些响应进行评分。最终,根据得分降序对响应进行排序,并依次合并到提示中,直到达到令牌限制。随后,LLM生成最终响应。Wang等[152]和Kim等[71]首先将查询分解为若干个子问题,然后为每个子问题生成答案,最后将所有子问题的答案合并得到最终答案。

或者,其他方法组合或选择由不同模型生成的响应。Lin等[88]和Jiang等[59]将gnn和llm产生的输出结合起来,达到协同效应。UniOQA[86]探索了两种生成答案的方法:一种方法是使用Cypher Query Language (CQL)生成查询来执行并获得结果,另一种方法是根据检索到的三元组直接生成答案。最终答案是通过动态选择机制确定的。在EmbedKGQA[133]中,除了学习到的评分函数外,研究人员还基于图结构设计了基于规则的评分。将这两个分数结合起来查找答案实体。Li等人[85]将基于检索到的图数据的答案与法学硕士根据自己的知识生成的答案相结合。

8 Training

在本节中,我们总结了检索的单独训练,生成器,和他们的联合训练。我们根据是否需要明确的培训将以前的工作分为无培训和基于培训的方法。当使用GPT-4[116]等闭源llm作为检索器或生成器时,通常采用免训练方法。这些方法主要依靠精心设计的提示来控制llm的检索和生成能力。尽管llm在文本理解和推理方面具有很强的能力,但Training-Free方法的一个挑战在于,由于缺乏对下游任务的具体优化,结果可能存在次优性。相反,基于训练的方法涉及使用监督信号训练或微调模型。这些方法通过使它们适应特定的任务目标来增强模型性能,从而潜在地提高检索或生成内容的质量和相关性。联合训练检索器和生成器的目的是加强它们的协同作用,从而提高下游任务的表现。这种协作方法利用这两个组件的互补优势,在信息检索和内容生成应用程序中获得更健壮和有效的结果。

8.1 Training Strategies of Retriever

8.1.1 Training-Free.

目前使用的无训练检索器主要有两种。第一种类型由非参数检索器组成。这些检索器依赖于预定义的规则或传统的图搜索算法,而不是特定的模型[146,175]。第二种是利用预训练的lm作为检索器具体来说,一组作品利用预训练的嵌入模型对查询进行编码,并根据查询与图元素之间的相似性直接执行检索[81]。另一组作品采用生成语言模型进行无训练检索。候选图元素(如实体、三元组、路径或子图)作为llm的提示输入的一部分被包括在内。然后,llm利用语义关联根据提供的提示选择合适的图元素[25,66,71,108,142,152,159]。这些方法利用了LMs强大的语义理解能力来检索相关的图元素,而不需要明确的训练。

8.1.2 Training-Based.

训练检索器通常采用自回归方法,将之前的关系路径连接到查询的末尾。然后,模型根据这个连接的输入预测下一个关系[42,168]。

然而,在大多数数据集中,检索内容缺乏真实的基础构成了一个重大挑战。为了解决这个问题,许多方法试图构建基于远程监督的推理路径来指导检索器的训练。例如,Zhang等人[181],Feng等人[31]和Luo等人[102]提取查询中实体与答案中实体之间的所有路径(或最短路径),将其作为检索器的训练数据。此外,Zhang等人[181]还使用关系提取数据集在无监督设置中进行远程监督。还有另一类方法是利用隐含的中间监督信号来训练猎犬。例如,KnowGPT[183]从头部实体开始搜索最优路径,使用尾部实体的发现作为奖励,并使用策略梯度进行训练。NSM[46]采用双向搜索策略,两个检索器分别从头部实体和尾部实体开始搜索。监督目标是确保两个检索器搜索的路径尽可能地收敛。

一些方法认为,远程监督信号或隐式中间监督信号可能包含相当大的噪声,使训练有效的寻回犬具有挑战性。因此,他们考虑采用自我监督的方法进行预训练。SKP[23]预训练DPR (Dense Passage Retrieval)模型[69]。首先,它对子图进行随机抽样,并将抽样的子图转换成段落。随后,它随机屏蔽段落,使用屏蔽语言模型(mask Language model, MLM)训练模型,并采用对比学习,将屏蔽段落和原始段落作为正对进行比较。

8.2 Training of Generator

8.2.1 Training-Free.

免费训练生成器主要迎合闭源LLM或避免高培训成本是必不可少的场景。在这些方法中,检索到的图数据与查询一起被馈送到LLM中。然后,llm根据提示中提供的任务描述生成响应,这在很大程度上依赖于它们理解查询和图数据的固有能力。

8.2.2 Training-Based.

训练生成器可以直接接收来自下游任务的监督信号。对于生成式llm,可以使用监督微调(SFT)来实现微调,其中输入任务描述、查询和图形数据,并将输出与下游任务的基本事实进行比较[47,50,102]。另一方面,对于作为生成器的gnn或判别模型,使用针对下游任务的专门损失函数来有效地训练模型[59,81,146,175,184]。

8.3 Joint Training

联合训练检索器和生成器,同时利用它们的互补优势,提高下游任务的性能。一些方法将检索器和生成器统一到一个模型中,通常是llm,并同时用检索和生成目标训练它们[102]。该方法利用了统一体系结构的内聚能力,使模型能够在单个框架内无缝地检索相关信息并生成一致的响应。

其他方法包括最初分别训练检索器和生成器,然后联合训练技术对这两个组件进行微调。例如,Subgraph retriver[181]采用交替训练范式,其中检索器的参数固定以使用图数据来训练生成器。然后,固定生成器的参数,并利用生成器的反馈来指导检索器的训练。这个迭代过程帮助两个组件以协调的方式改进它们的性能。

9 Applications and Evaluation

在本节中,我们将总结与GraphRAG相关的下游任务、应用程序域、基准和度量以及工业应用程序。表1收集了现有的GraphRAG技术,并根据下游任务、基准测试、方法和评估指标对它们进行了分类。此表作为一个全面的概述,突出显示了GraphRAG技术在不同领域的各个方面和应用程序。

 9.1 Downstream Tasks

GraphRAG应用于各种下游任务(特别是NLP任务),包括Question answer、Information Extraction等。

9.1.1 Question Answering.

QA任务具体包括知识库问答(KBQA)和常识问答(CSQA)。

(1) KBQA。

KBQA作为GraphRAG的基础下游任务。在KBQA中,问题通常属于特定的知识图,而答案通常涉及知识图中实体、关系或实体集之间的操作。该任务测试系统检索和推理结构化知识库的能力,这对于促进复杂的查询响应至关重要。

(2) CSQA。

与KBQA不同,CSQA主要采用选择题的形式。常识性推理通常会提出一个常识性问题以及几个答案选项,每个选项可能代表一个实体的名称或一个语句。目标是让机器利用外部常识性知识图(如ConceptNet)来找到与问题和选项相关的知识,并进行适当的推理并得出正确的答案。

9.1.2 Information Retrieval.

信息检索任务包括实体链接(EL)和关系提取(RE)两大类。

(1)实体链接。

实体链接(Entity Linking, EL)是自然语言处理领域的一项关键任务,它涉及识别文本片段中提到的实体,并将它们链接到知识图中相应的实体。通过利用Graph RAG等系统,可以从知识图中检索相关信息,这有助于准确推断出与文本中提到的内容相匹配的特定实体[167]。

(2)关系提取。

关系抽取(relational Extraction, RE)旨在识别和分类文本中实体之间的语义关系。GraphRAG可以通过使用基于图的结构来编码和利用实体之间的相互依赖关系,从而可以更准确地从不同的文本源中提取关系数据[85,142,143],从而显著增强这一任务。

9.1.3 Others.

除了前面提到的下游任务之外,GraphRAG还可以应用于自然语言处理领域中的各种其他任务,例如事实验证、链接预测、对话系统和推荐系统。

(1) Fact Verification.

事实验证任务通常包括使用知识图谱评估事实陈述的真实性。模型的任务是通过利用结构化知识库来确定给定事实断言的有效性。GraphRAG技术可用于提取实体之间的证据联系,以提高系统的效率和准确性[85,125,142,143]。

(2) Link Prediction.

链接预测包括预测图中实体之间缺失的关系或潜在的连接。GraphRAG通过利用其从图中检索和分析结构化信息的能力来应用于此任务[18,118],通过揭示图数据中的潜在关系和模式来提高预测准确性。

(3)Dialogue Systems.对话系统。

对话系统旨在使用自然语言与人类对话,处理各种任务,如回答问题、提供信息或促进用户交互。通过在基于图形的框架中构建会话历史和上下文关系,GraphRAG系统[3]可以提高模型生成连贯和上下文相关响应的能力。

(4)推荐系统。

在电子商务平台的背景下,用户与产品之间的购买关系自然会形成一个网络图。这些平台中的推荐系统的主要目标是预测用户未来的购买意图,有效地预测该图中的潜在连接[156]。

9.2 Application Domains

GraphRAG将结构化知识图与自然语言处理相结合的能力突出,广泛应用于电子商务、生物医学、学术、文学、法律等应用场景,下面将介绍。

9.2.1 E-Commerce.

电子商务领域的主要目标包括通过个性化推荐和智能客户服务来改善客户购物体验和增加销售额。在这个领域,用户和产品之间的历史交互可以自然地形成一个图形,它隐含地封装了用户的行为模式和偏好信息。然而,由于电子商务平台数量的不断增加和用户交互数据量的不断增加,使用GraphRAG技术提取关键子图至关重要。Wang等[156]将不同类型或不同参数的多个检索器集成在一起,提取相关子图,然后对其进行编码,用于时间用户行为预测。为了提高客户服务问答系统的模型性能,Xu等[169]构建了一个具有问题内关系和问题间关系的过去问题图。对于每个给定的查询,检索过去类似问题的子图,以提高系统的响应质量。

9.2.2 Biomedical.

近年来,GraphRAG技术越来越多地应用于生物医学问答系统,实现了先进的医疗决策性能。在这个领域,每种疾病都与特定的症状有关,每种药物都含有针对和治疗特定疾病的特定活性成分。一些研究人员[20,80]针对特定的任务场景构建知识图谱,而另一些研究人员[64,163,171]则利用开源知识图谱(如CMeKG和CPubMed-KG)作为检索源。现有方法一般从非参数检索器开始进行初始搜索,然后设计方法通过重新排序来过滤检索到的内容[20,64,80,163,171]。此外,一些方法提出使用检索信息重写模型输入以提高生成效率[80]。

9.2.3学术。

在学术研究领域,每篇论文由一个或多个研究人员撰写,并与一个研究领域相关联。作者隶属于机构,作者之间存在合作或共享机构隶属关系等关系。这些元素可以被组织成图形格式。在此图上使用GraphRAG可以促进学术探索,包括预测作者的潜在合作者,识别特定领域的趋势等。

9.2.4文学。

与学术研究类似,可以在文学领域构建知识图谱,节点表示书籍、作者、出版商和系列,边缘标记为“作者”、“出版”和“图书系列”。GraphRAG可以用来增强像智能库这样的实际应用程序。

9.2.5合法。

在法律环境中,案件和司法意见之间存在广泛的引用联系,因为法官在做出新的判决时经常引用以前的意见。这自然会创建一个结构化的图,其中节点表示意见、意见集群、摘要和法院,边缘包含诸如“意见-引用”、“意见-集群”、“clusterdocket”和“摘要-法院”之类的关系。GraphRAG在法律场景中的应用可以帮助律师和法律研究人员进行案例分析和法律咨询等各种任务。

9.2.6他人。

除上述应用外,GraphRAG还应用于其他现实场景,如智能报告生成[128]和专利短语相似度检测[122]。Ranade和Joshi[128]首先构建了一个事件图(Event Plot Graph, EPG),并检索了事件的关键方面,以帮助生成情报报告。Peng和Yang[122]创建了一个专利短语图,检索给定专利短语的自我网络来辅助短语相似度的判断。

9.3 Benchmarks and Metrics

9.3.1 Benchmarks.

用于评估GraphRAG系统性能的基准可以分为两类。第一类是下游任务对应的数据集。我们根据9.1节中的分类总结了基准测试和用它们测试的论文,详细信息如表1所示。第二类包括专门为GraphRAG系统设计的基准测试。这些基准测试通常涵盖多个任务域,以提供全面的测试结果。例如,STARK[166]在涵盖三个领域的半结构化知识库上对LLM检索进行基准测试,包括产品搜索、学术论文搜索和精准医疗查询,以访问当前GraphRAG系统的容量。他等[47]提出了一种针对真实世界文本图的灵活问答基准,名为GraphQA,适用于场景图理解、常识推理和知识图推理等多种应用。图推理基准(Graph Reasoning Benchmark, GRBENCH)[66]是为了便于研究带图的增强llm而构建的,其中包含1740个问题,这些问题可以用10个领域图的知识来回答。CRAG[172]提供了一个结构化的查询数据集,并提供了额外的模拟api来访问底层模拟KGs的信息,以实现公平的比较。

9.3.2Metrics指标。

GraphRAG的评估度量可以大致分为两种主要类型:下游任务评估(生成质量)和检索质量。

(1) Downstream Task Evaluation (Generation Quality).

下游任务评估(生成器质量)。在大多数研究中,下游任务评估指标是评估GraphRAG性能的主要方法。例如,在KBQA中,通常使用精确匹配(EM)和F1分数来衡量回答实体的准确性。此外,许多研究人员使用BERT4Score和GPT4Score来减轻llm生成的实体与基础事实同义但不完全匹配的情况。在CSQA中,准确性是最常用的评估指标。对于像QA系统这样的生成任务,通常使用BLEU、ROUGE-L、METEOR等度量来评估模型生成的文本的质量。

(2) Retrieval Quality Evaluation.

检索质量评价。虽然基于下游任务性能评估GraphRAG是可行的,但直接测量检索内容的准确性带来了挑战。因此,许多研究采用特定的指标来衡量检索内容的精度。例如,当地面真相实体可用时,检索系统面临着检索信息数量和答案覆盖范围之间的平衡。因此,一些研究利用答案覆盖率与检索子图大小之间的比率来评估检索系统的性能。此外,一些研究探索了诸如查询相关性、多样性和忠实度评分等指标,分别评估检索内容与查询之间的相似性、检索内容的多样性和检索信息的忠实度。

9.4 GraphRAG in Industry

在本节中,我们主要关注工业GraphRAG系统。这些系统的特点是依赖于工业图形数据库系统,或者专注于大规模图形数据,具体如下。

GraphRAG(微软)10:该系统使用llm构建基于实体的知识图,并预先生成相关实体组的社区摘要,从而能够捕获文档集合内的本地和全局关系,从而增强以查询为中心的摘要(QFS)任务[25]。项目还可以利用开源的RAG工具包进行快速实现,如LlamaIndex11、LangChain12等

GraphRAG(由NebulaGraph开发)13:该项目是第一个工业GraphRAG系统,由NebulaGraph公司开发。该项目将法学硕士整合到NebulaGraph数据库中,旨在提供更智能、更精确的搜索结果。

GraphRAG(由Antgroup开发)14:该框架是在DB-GPT、知识图谱引擎OpenSPG、图形数据库TuGraph等多个人工智能工程框架的基础上开发的。具体来说,系统首先使用llm从文档中提取三元组,然后将其存储在图数据库中。在检索阶段,它从查询中识别关键字,在图数据库中定位相应的节点,并使用BFS或DFS遍历子图。在生成阶段,检索到的子图数据被格式化为文本,并与上下文和查询一起提交给llm进行处理。

NallM (Neo4j和大型语言模型)框架将Neo4j图形数据库技术与llm集成在一起。它旨在探索和展示Neo4j和法学硕士之间的协同作用,重点关注三个主要用例:知识图的自然语言接口,从非结构化数据创建知识图,以及使用静态数据和法学硕士数据生成报告。

LLM Graph Builder (by Neo4j)16:它是Neo4j开发的一个项目,用于自动构建知识图,适用于GraphRAG的图数据库构建和索引阶段。该项目主要利用llm从非结构化数据中提取节点、关系及其属性,并利用LangChain框架创建结构化知识图谱。

10 Future Prospects

虽然GraphRAG技术已经取得了长足的进步,但它仍然面临着需要全面探索的持久挑战。本节将深入研究普遍存在的障碍,并概述GraphRAG领域未来研究的前景。

10.1 Dynamic and Adaptive Graphs

大多数GraphRAG方法[25,33,76,77,101,174]是建立在静态数据库上的;然而,随着时间的推移,新的实体和关系不可避免地出现。快速更新这些变化既有希望,也有挑战。纳入最新信息对于取得更好的成果和应对需要当前数据的新趋势至关重要。开发动态更新和实时集成新数据的有效方法将大大提高GraphRAG系统的有效性和相关性。

10.2 Multi-Modality Information Integration

大多数知识图谱主要包含文本信息,因此缺乏包含其他形式,如图像、音频和视频,这些形式具有显著提高数据库整体质量和丰富程度的潜力[162]。这些不同模式的结合可以提供对存储知识的更全面和细致的理解。然而,这种多模式数据的整合提出了相当大的挑战。随着信息量的增加,图的复杂性和大小呈指数级增长,使得管理和维护变得越来越困难。这种规模的升级需要开发先进的方法和复杂的工具来有效地处理和无缝地将不同的数据类型集成到现有的图结构中,以确保丰富的知识图的准确性和可访问性。

10.3 Scalable and Efficient Retrieval Mechanisms

工业环境中的知识图谱可能包含数百万甚至数十亿个实体,代表了一个巨大而复杂的规模。然而,大多数当代方法都是为小规模的知识图量身定制的[25],这些知识图可能只包含数千个实体。在大规模知识图谱中高效地检索相关实体仍然是一个现实而重大的挑战。开发先进的检索算法和可扩展的基础设施是解决这一问题的关键,确保系统能够管理大量的数据量,同时保持实体检索的高性能和准确性。

10.4 Combination with Graph Foundation Model

最近,图基础模型[34,104]已经取得了显著的成功,它可以有效地解决广泛的图任务。部署这些模型来增强当前的GraphRAG管道是一个关键问题。图基础模型的输入数据本质上是图结构的,使它们能够比LLM模型更有效地处理这些数据。将这些高级模型集成到GraphRAG框架中可以极大地提高系统处理和利用图结构信息的能力,从而提高整体性能和能力。

10.5 Lossless Compression of Retrieved Context

在GraphRAG中,检索到的信息被组织到包含实体及其相互关系的图结构中。然后,这些信息被转换成法学硕士可以理解的序列,从而形成一个非常长的上下文。输入如此长的上下文有两个问题:llm不能处理非常长的序列,并且在推理过程中大量的计算可能对个人造成障碍。为了解决这些问题,对长上下文进行无损压缩至关重要。这种方法消除了冗余信息,并将长句子压缩成更短但更有意义的句子。它帮助法学硕士捕获上下文的基本部分并加速推理。然而,设计一种无损压缩技术是具有挑战性的。目前的研究[33,77]在压缩和保存信息之间做出了权衡。开发一种有效的无损压缩技术对GraphRAG来说至关重要,但也具有挑战性。

10.6 Standard Benchmarks

GraphRAG是一个相对较新的领域,缺乏统一和标准的基准来评估不同的方法。建立标准基准对这一领域至关重要,因为它可以提供一致的比较框架,促进对各种方法的客观评估,并通过确定优缺点来推动进展。这个基准应该包含不同的和有代表性的数据集、定义良好的评估度量和全面的测试场景,以确保GraphRAG方法的健壮和有意义的评估。

10.7 Broader Applications

目前的GraphRAG应用主要集中在常见的任务上,如客户服务系统[169]、推荐系统[19]和KBQA[33]。将GraphRAG扩展到更广泛的应用,如医疗[70]、金融服务[1]、法律和合规[72]、智慧城市和物联网[137]等,涉及到更复杂的技术。例如,在医疗保健领域,GraphRAG可以通过集成医学文献、患者病史和实时健康数据来支持医疗诊断、患者记录分析和个性化治疗计划。在金融服务中,GraphRAG可以通过分析交易数据、市场趋势和客户概况来进行欺诈检测、风险评估和个性化金融建议。通过集成法律文件、判例法和法规更新,GraphRAG支持全面的法律研究、合同分析和法规遵从性监控,从而使法律和法规遵从性应用程序受益。将GraphRAG扩展到这些多样化和复杂的领域将增强其效用和影响,在各个领域提供更复杂和有针对性的解决方案。

11 Conclusion

总之,本调查提供了对GraphRAG技术的全面回顾,系统地对其基本技术、培训方法和应用场景进行了分类和组织。GraphRAG通过利用来自图数据集的关键关系知识,显著增强了信息检索的相关性、准确性和全面性,从而解决了与传统检索-增强生成方法相关的关键限制。此外,由于GraphRAG代表了一个相对新生的研究领域,我们描绘了基准,分析了当前的挑战,并阐明了该领域未来的研究方向。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2193146.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构与算法篇(图)(持续更新迭代)

目录 一、引言 二、基本概念 三、图的定义 四、图的基本概念和术语 1. 有向图 2. 无向图 3. 简单图 4. 多重图 5. 完全图(也称简单完全图) 6. 子图 7. 连通、连通图和连通分量 8. 强连通图、强连通分量 9. 生成树、生成森林 10. 顶点的度、…

通信工程学习:什么是OSPF开放式最短路径优先

OSPF:开放式最短路径优先 OSPF(Open Shortest Path First,开放式最短路径优先)是一种内部网关协议(IGP),被广泛应用于计算机网络中,特别是在构建大型和复杂的网络时。以下是对OSPF的…

【Linux】进程第三弹(虚拟地址空间)

目录 现象 底层原因 数据不发生修改 数据修改 小总结 地址空间本质 为什么要有地址空间 现象 来看代码&#xff1a; #include <stdio.h> #include <unistd.h> #include <sys/types.h>int val 50;int main() {printf("father process is running…

Kotlin真·全平台——Kotlin Compose Multiplatform Mobile(kotlin跨平台方案、KMP、KMM)

前言 随着kotlin代码跨平台方案的推出&#xff0c;kotlin跨平台一度引起不少波澜。但波澜终归没有掀起太大的风浪&#xff0c;作为一个敏捷型开发的公司&#xff0c;依然少不了Android和iOS的同步开发&#xff0c;实际成本和效益并没有太多变化。所以对于大多数公司来说依然风平…

【数据结构】【链表代码】移除链表元素

移除链表元素 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* removeElements(struct ListNode* head, int val) { // 创建一个虚拟头节点&#xff0c;以处理头节点可能被删除的情况 struct…

ROS/Gazebo/Nav2/MoveIt Pro/RMF学习笔记24-10-06

ROS ROS&#xff08;Robot Operating System&#xff09;系统&#xff0c;尽管严格意义上来说并非一个操作系统&#xff0c;而是一个专为机器人软件开发的开源软件框架集合&#xff0c;它在机器人技术领域中扮演着至关重要的角色。ROS系统的新应用和特性主要体现在以下几个方面…

【Linux】Shell脚本基础+条件判断与循环控制

目录 一、介绍 1. Linux提供的Shell解析器 2. bash和sh关系 3. Centos默认的Shell解析器是bash 二、定义 1. 变量名的定义规则 2. 等号周围没有空格 3. 查看变量 4. 删除变量 5. 正确地定义数组 6. 将局部环境变量提升为全局 7. 正确选择引号 8. 特殊变量名 三…

MES系统与其他系统的集成

一、MES与ERP的集成 1. 实时数据共享 万界星空科技MES系统可以与企业资源计划&#xff08;ERP&#xff09;系统集成&#xff0c;实现双向数据传输。通过实时数据共享&#xff0c;ERP系统能够更准确地进行物料需求计划&#xff0c;并及时更新生产进度和库存信息。 2. 工单管理…

LeetCode讲解篇之322. 零钱兑换

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们可以使用动态规划解决这道题&#xff0c;我们首先定义一个数组&#xff0c;数组中第i个元素表示组成金额 i 的最少硬币个数 我们遍历数组的1 ~ amount号位置&#xff0c;对coins进行遍历&#xff0c;查找选…

短剧小程序短剧APP在线追剧APP网剧推广分销微短剧小剧场小程序集师知识付费集师短剧小程序集师小剧场小程序集师在线追剧小程序源码

一、产品简介功能介绍 集师专属搭建您的独有短剧/追剧/小剧场小程序或APP平台 二、短剧软件私域运营解决方案 针对短剧类小程序的运营&#xff0c;以下提出10条具体的方案&#xff1a; 明确定位与目标用户&#xff1a; 对短剧类小程序进行明确定位&#xff0c;了解目标用户群体…

【最新华为OD机试E卷-支持在线评测】计算三叉搜索树的高度(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…

社会工程学:社工无处不在

目录 社会工程学 社工利用了人的弱点 社会工程学攻击的流程通常可以分为以下几个步骤 以下是一些常见的方式&#xff0c;攻击者可以利用这些方式来收集个人信息 一些常见的攻击方式 钓鱼邮件 宏病毒 网站克隆 防范 社会工程学 介绍&#xff1a; 社会工程学是一种攻击技…

S7-200 SMART 与调试助手之间 Modbus RTU 通信

西门子在 STEP 7-Micro/WIN SMART 中正式推出 Modbus RTU 主站/从站协议库&#xff0c;Modbus RTU 指令位于 STEP7-Micro/WIN SMART 项目树中“指令”文件夹的“库”文件夹中。如图1.Modbus RTU库指令所示。 图1.Modbus RTU库指令 注意&#xff1a; 1. Modbus RTU 主站指令库的…

nginx 负载均衡1

遇到的问题 大型网站都要面对庞大的用户量&#xff0c;高并发&#xff0c;海量数据等挑战。为了提升系统整体的性能&#xff0c;可以采用垂直扩展和水平扩展两种方式。 垂直扩展&#xff1a;在网站发展早期&#xff0c;可以从单机的角度通过增加硬件处理能力&#xff0c;比如 C…

【Redis】持久化(上)---RDB

文章目录 持久化的概念RDB手动触发自动触发bgsave命令的运行流程RDB文件的处理RDB的优缺点RDB效果展示 持久化的概念 Redis支持AOF和RDB两种持久化机制,持久化功能能有效的避免因进程退出而导致的数据丢失的问题,当下次重启的时候利用之前持久化的文件即可实现数据恢复. 所以此…

Alignment与Correspondence,用于量化衡量MLLM中视觉特征的视觉语义对齐与视觉结构程度的方法

Alignment与Correspondence&#xff0c;用于量化衡量MLLM中视觉特征的视觉语义对齐与视觉结构程度的方法 FesianXu 20241006 at Wechat Search Team 前言 在多模态大模型&#xff08;Multimodal Large Language Model&#xff0c; MLLM&#xff09;中&#xff0c;视觉特征就像…

MySQL 篇-深入了解存储引擎、索引(InnoDB 索引结构 B+Tree、索引使用规则)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 存储引擎概述 1.1 存储引擎 - InnoDB 1.2 存储引擎 - MyISAM 1.3 存储引擎 - Memory 1.4 存储引擎 - 选择 2.0 索引概述 2.1 索引结构 2.1.1 索引结构 - B-Tree 2…

Docker:安装 MongoDB 的详细指南

请关注微信公众号&#xff1a;拾荒的小海螺 博客地址&#xff1a;http://lsk-ww.cn/ 1、简述 MongoDB 是一个流行的 NoSQL 数据库&#xff0c;可以在 Docker 容器中轻松安装和运行。本文将介绍如何在 Docker 中安装 MongoDB&#xff0c;并展示如何在 Java 应用中使用 MongoDB…

MySQL事务日志—redo日志介绍

MySQL事务日志—redo日志 事务有4种特性&#xff1a; 原子性、一致性、隔离性和持久性。 那么事务的四种特性到底是基于什么机制实现? 事务的原子性、一致性由事务的 undo 日志事务的隔离性由锁机制和MVCC实现。事务的持久性由redo 日志来保证。 两类日志概述&#xff1a;…

基于猎豹优化算法(The Cheetah Optimizer,CO)的多无人机协同三维路径规划(提供MATLAB代码)

一、猎豹优化算法 猎豹优化算法&#xff08;The Cheetah Optimizer&#xff0c;CO&#xff09;由MohammadAminAkbari等人于2022年提出&#xff0c;该算法性能高效&#xff0c;思路新颖。 参考文献&#xff1a; Akbari, M.A., Zare, M., Azizipanah-abarghooee, R. et al. The…