Graph Retrieval-Augmented Generation: A Survey
๐ Abstract
The article provides a comprehensive survey of Graph Retrieval-Augmented Generation (GraphRAG), a framework that leverages external structured knowledge graphs to improve the contextual understanding of Large Language Models (LLMs) and generate more informed responses. The paper covers the three main stages of the GraphRAG workflow: Graph-Based Indexing, Graph-Guided Retrieval, and Graph-Enhanced Generation. It discusses the core technologies and training methods within each stage, as well as the downstream tasks, application domains, evaluation methodologies, and industrial use cases of GraphRAG. The article also explores future research directions to inspire further inquiries and advance progress in the field.
๐ Q&A
[01] Graph-Based Indexing
1. What are the two main categories of graph data used in GraphRAG? The two main categories of graph data used in GraphRAG are:
- Open Knowledge Graphs: Including general knowledge graphs (e.g., Wikidata, Freebase, DBpedia, YAGO) and domain-specific knowledge graphs (e.g., CMeKG, CPubMed-KG, Wiki-Movies).
- Self-Constructed Graph Data: Graph data constructed from proprietary or domain-specific sources, such as documents, tables, and other databases.
2. What are the three main indexing methods used in GraphRAG? The three main indexing methods used in GraphRAG are:
- Graph Indexing: Preserving the entire structure of the graph to enable classic graph search algorithms.
- Text Indexing: Converting graph data into textual descriptions to optimize retrieval using text-based techniques.
- Vector Indexing: Transforming graph data into vector representations to enhance retrieval efficiency through vector search algorithms.
3. What are the advantages and disadvantages of the different indexing methods?
- Graph Indexing facilitates easy access to structural information but may be less efficient.
- Text Indexing simplifies retrieval of textual content but may lose some structural information.
- Vector Indexing enables quick and efficient searches but may lose some details. A hybrid approach combining these indexing methods is often preferred to leverage the strengths of each.
[02] Graph-Guided Retrieval
1. What are the three main types of retrievers used in GraphRAG? The three main types of retrievers used in GraphRAG are:
- Non-parametric Retrievers: Based on heuristic rules or traditional graph search algorithms, without relying on deep learning models.
- LM-based Retrievers: Utilizing language models (both discriminative and generative) to process and interpret natural language queries.
- GNN-based Retrievers: Employing graph neural networks to understand and leverage the complex graph structures.
2. What are the three main retrieval paradigms used in GraphRAG? The three main retrieval paradigms used in GraphRAG are:
- Once Retrieval: Aiming to gather all pertinent information in a single operation.
- Iterative Retrieval: Conducting further searches based on previously retrieved information, either in a non-adaptive or adaptive manner.
- Multi-Stage Retrieval: Dividing the retrieval process into multiple stages, with different types of retrievers employed at each stage.
3. What are the different granularities of retrieval in GraphRAG? The different granularities of retrieval in GraphRAG include:
- Nodes: Retrieving individual elements within the graph, such as entities.
- Triplets: Retrieving structured subject-predicate-object tuples.
- Paths: Retrieving sequences of relationships between entities.
- Subgraphs: Retrieving comprehensive relational contexts within the graph. The choice of retrieval granularity depends on the specific task requirements and the trade-off between retrieval content and efficiency.
[03] Graph-Enhanced Generation
1. What are the three main types of generators used in GraphRAG? The three main types of generators used in GraphRAG are:
- GNNs: Directly encoding graph data to leverage the powerful representational capabilities of graph neural networks.
- LMs: Converting the retrieved graph data into formats compatible with language models, such as graph languages and graph embeddings.
- Hybrid Models: Integrating GNNs and LMs, either in a cascaded or parallel paradigm, to combine the strengths of both modalities.
2. What are the different graph formats used to represent graph data for LM-based generators? The different graph formats used to represent graph data for LM-based generators include:
- Graph Languages: Such as adjacency/edge tables, natural language descriptions, code-like forms, syntax trees, and node sequences.
- Graph Embeddings: Utilizing GNNs to encode graph data into vector representations that can be integrated with textual representations.
3. What are the three main categories of generation enhancement techniques used in GraphRAG? The three main categories of generation enhancement techniques used in GraphRAG are:
- Pre-Generation Enhancement: Improving the quality of input data or representations before feeding them into the generator.
- Mid-Generation Enhancement: Adjusting the generation strategies based on intermediate results or contextual cues during the generation process.
- Post-Generation Enhancement: Integrating multiple generated responses to obtain the final output.