GraphRAG (IT)

From Systems analysis Wiki
Jump to navigation Jump to search

GraphRAG — è un paradigma avanzato di Retrieval-Augmented Generation (RAG), in cui al posto della tradizionale ricerca su frammenti di testo isolati (chunk) viene utilizzato un grafo della conoscenza (Knowledge Graph, KG)[1]. La struttura a grafo rappresenta esplicitamente le relazioni tra entità e la gerarchia dei concetti del dominio, consentendo agli LLM di eseguire un'estrazione della conoscenza multi-step e di formulare risposte più contestualizzate e spiegabili[2].

L'approccio GraphRAG dimostra un vantaggio significativo rispetto al RAG classico nella gestione di interrogazioni complesse e multi-hop (multi‑hop), in cui la risposta dipende dalla combinazione di più fatti distribuiti su documenti diversi[3].

Limitazioni del RAG classico e vantaggi del grafo

Il RAG classico, basato sulla ricerca vettoriale su testo non strutturato, presenta una serie di limitazioni fondamentali che diventano critiche negli scenari aziendali complessi:

  • Assenza di relazioni strutturali: Il RAG tradizionale tratta i chunk testuali come unità isolate e non percepisce le relazioni esplicite tra di essi. Ciò lo rende inefficace per le interrogazioni multi‑hop, in cui per rispondere è necessario percorrere una catena di fatti (A→B→C), mentre la ricerca trova solo i nodi iniziale e finale (A e C), mancando quelli intermedi[1].
  • Ambiguità semantica: In ambiti altamente specializzati (medicina, diritto, ingegneria) i termini hanno significati specifici. La ricerca vettoriale, pur cogliendo il tema generale, può interpretare erroneamente il ruolo di un oggetto specifico, portando all'estrazione di contesto non pertinente.
  • Spiegabilità limitata: Il RAG classico fornisce frammenti di documenti, ma non prove esplicite di come tali frammenti siano collegati in una catena logica. GraphRAG, al contrario, rende questo processo trasparente, fornendo come prova il percorso nel grafo e richiedendo che le affermazioni siano ancorate alle fonti (citazione)[4].

GraphRAG risolve questi problemi rappresentando la conoscenza come una rete di entità e relazioni collegate, consentendo al sistema non solo di trovare testo simile, ma di effettuare un'inferenza logica basata su un modello formalizzato del dominio.

Architettura di GraphRAG

La pipeline generale di GraphRAG estende il RAG classico aggiungendo fasi di costruzione e utilizzo del grafo della conoscenza. Si divide in due fasi principali: preparazione offline ed elaborazione online della query.

Fase 1: Ingestione e indicizzazione (offline)

In questa fase i dati sorgente (documenti, database) vengono trasformati in due rappresentazioni complementari: quella a grafo e quella vettoriale.

  1. Estrazione della conoscenza: Dai testi vengono estratti fatti strutturati tramite una pipeline NLP:
    • Named Entity Recognition (NER): Individuazione delle menzioni di entità (persone, organizzazioni, prodotti).
    • Entity Linking (EL): Collegamento delle menzioni a identificatori canonici nel grafo per la disambiguazione (ad esempio, «Mario Rossi» e «M. Rossi» diventano un unico nodo)[5].
    • Relation Extraction (RE): Identificazione delle relazioni tra entità (ad esempio, Azienda Xha acquisitoStartup Y).
  2. Modellazione e archiviazione del grafo: Le triple estratte (soggetto‑predicato‑oggetto) vengono caricate in un database a grafo. La scelta del modello (Property Graph o RDF) dipende dal caso d'uso. È fondamentale memorizzare la provenienza (provenance) di ogni fatto — il riferimento al documento originale e al frammento testuale[3]. Al grafo possono essere aggiunti anche metadati relativi al tempo (valid_from/valid_to) e all'attendibilità (confidence).
  3. Indicizzazione ibrida: In parallelo al grafo viene creato un indice vettoriale per i frammenti testuali originali. Ciò consente di combinare la ricerca strutturale sul grafo con la ricerca semantica sul testo.

Fase 2: Elaborazione della query e generazione della risposta (online)

  1. Analisi della query: La query dell'utente viene analizzata per individuare le entità chiave, che fungono da «punti di ingresso» nel grafo.
  2. Estrazione del sottografo: Invece di cercare singoli chunk, GraphRAG individua il sottografo rilevante — un frammento connesso del grafo attorno ai «punti di ingresso» contenente le informazioni necessarie per rispondere. A tal fine si utilizzano algoritmi come la visita k‑hop o il Personalized PageRank (PPR)[6].
  3. Ricerca ibrida e fusione dei risultati: In parallelo all'estrazione del sottografo viene eseguita una ricerca sull'indice vettoriale e/o lessicale (BM25). I risultati provenienti dal grafo e dal testo vengono combinati e passati alla fase successiva.
  4. Re-ranking: La lista combinata di candidati (nodi del grafo e chunk testuali) viene riordinata tramite un modello più preciso (ad esempio, un cross-encoder) per selezionare le informazioni più rilevanti. Ciò consente di filtrare il rumore e aumentare la precisione[7].
  5. Impacchettamento del contesto e generazione: Il contesto selezionato e riordinato (sottografo e testi) viene trasformato in un formato comprensibile per l'LLM (ad esempio, un elenco di affermazioni con indicazione delle fonti). Questo contesto arricchito viene fornito nel prompt per la generazione della risposta finale.
  6. Tracciamento e citazione: Grazie al collegamento «fatto ↔ fonte» nel grafo, la risposta generata contiene riferimenti precisi ai documenti che supportano ogni tesi. Ciò garantisce elevata giustificabilità e trasparenza.

Tabella comparativa dei componenti

Analisi comparativa dei componenti chiave dell'architettura GraphRAG
Componente/aspetto Varianti di implementazione Pro Contro/rischi Quando è preferibile
Modello del grafo della conoscenza RDF/OWL Ontologia rigorosa, inferenza logica (reasoning), compatibilità con Linked Open Data. Difficile memorizzare attributi di relazione (tempo, fonte) senza entità aggiuntive (reification). Domini semanticamente ricchi con ontologie esistenti; quando è richiesta la deduzione.
Property Graph (Neo4j, ecc.) Flessibilità, proprietà arbitrarie su nodi/archi, elevate prestazioni. Richiede uno schema definito manualmente o rischio di «disordine»; nessuno standard unico. Avvio rapido con dati non strutturati; integrazione con documenti (multi‑model DB).
Estrazione del sottografo k‑hop BFS / DFS Copre tutti i nodi fino alla profondità k, semplice da implementare. «Esplosione» del grafo: crescita esponenziale del numero di nodi; può restituire molto rumore. Grafi di piccole dimensioni o visita a profondità 1–2; strutture gerarchiche.
Personalized PageRank (PPR) Si concentra sui nodi realmente connessi, il rumore viene filtrato[6]. Può tralasciare un nodo distante ma importante (se ci sono pochi percorsi ma è critico). Reti complesse con molti percorsi (grafo sociale, grafo delle citazioni).
Ricerca ibrida Lista combinata (scalar fusion con peso λ) La regolazione dei pesi λ consente di bilanciare precision/recall in base al compito[8]. Un λ fisso non è ottimale per tutti i tipi di query. Nella fase di prototipazione; quando è noto che una fonte è chiaramente più importante.
Cross‑encoder rerank Notevole incremento della precisione; possibilità di considerare relazioni complesse. Aumenta la latenza; richiede dati di addestramento o l'uso di modelli pre-addestrati[7]. Scenari ad alta precisione (diritto, medicina), dove è fondamentale un contesto massimamente rilevante.
Sicurezza dei dati Filtraggio del sottografo (RBAC/ABAC) Controllo granulare (fino al livello di nodo) che esclude perdite di dati. «Zone cieche»: se un nodo importante viene rimosso, la risposta può risultare incompleta. In ambienti aziendali con requisiti di accesso stringenti (PII, GDPR, segreti commerciali).

Tracciamento, fiducia e sicurezza

Uno dei principali vantaggi di GraphRAG è la possibilità di presentare catene di prove trasparenti. Invece di una risposta a «scatola nera», il sistema può mostrare il percorso di ragionamento: «Il fatto A è menzionato in [doc1]. È collegato al fatto B [doc2], e B secondo [doc3] porta a C», — il che aumenta la fiducia dell'utente e semplifica il debug.

Inoltre, la struttura a grafo consente di implementare un controllo degli accessi granulare (RBAC/ABAC). Ogni nodo o arco nel grafo può avere un'etichetta di accesso. Durante l'estrazione del sottografo, il sistema filtra automaticamente i dati a cui l'utente non ha i diritti, garantendo la sicurezza in ambiti sensibili (finanza, HR, medicina).

Valutazione della qualità

La valutazione di un sistema GraphRAG è multifase e include metriche per ciascun componente:

  • Metriche di estrazione della conoscenza: F1‑score per NER e RE, per valutare la qualità della costruzione del grafo.
  • Metriche di estrazione del sottografo: Subgraph Recall@K (proporzione di casi in cui i nodi/archi necessari per la risposta sono inclusi nel sottografo estratto) e Path Precision/Recall per domande multi-hop.
  • Metriche di risposta LLM:
    • Faithfulness / Groundedness: in che misura la risposta si basa strettamente sul contesto fornito.
    • Human evaluation: valutazione da parte di esperti secondo criteri di correttezza, completezza e coerenza.

Per l'automazione della valutazione vengono utilizzati benchmark specializzati (ad esempio, WebQuestionsSP, GrailQA) e framework (ad esempio, RAGAS)[9].

Vedi anche

  • Retrieval‑Augmented Generation (RAG)
  • Grafo della conoscenza
  • Database vettoriale
  • Embedding
  • Agente AI
  • Valutazione e benchmark degli LLM

Bibliografia

  • Zhang, Q. et al. (2025). A Survey of Graph Retrieval‑Augmented Generation for Customized Large Language Models. arXiv:2501.13958.
  • Xu, Z. et al. (2024). Retrieval‑Augmented Generation with Knowledge Graphs for Customer Service Question Answering. arXiv:2404.17723.
  • Hu, Y. et al. (2024). GRAG: Graph Retrieval‑Augmented Generation. arXiv:2405.16506.
  • Nakano, R. et al. (2021). WebGPT: Browser‑assisted Question‑Answering with Human Feedback. arXiv:2112.09332.
  • Yang, R. et al. (2025). KG‑IRAG: A Knowledge Graph‑Based Iterative Retrieval‑Augmented Generation Framework for Temporal Reasoning. arXiv:2503.14234.
  • Song, Y. et al. (2023). Advancements in Complex Knowledge Graph Question Answering: A Survey. DOI:10.3390/electronics12214395.
  • Nogueira, R.; Cho, K. (2019). Passage Re‑ranking with BERT. arXiv:1901.04085.
  • Hsu, H.‑L.; Tzeng, J. (2025). DAT: Dynamic Alpha Tuning for Hybrid Retrieval in Retrieval‑Augmented Generation. arXiv:2503.23013.
  • Lewis, P. et al. (2020). Retrieval‑Augmented Generation for Knowledge‑Intensive NLP Tasks. arXiv:2005.11401.
  • Karpukhin, V. et al. (2020). Dense Passage Retrieval for Open‑Domain Question Answering. arXiv:2004.04906.
  • Sun, H. et al. (2018). Open‑Domain Question Answering Using Early Fusion of Knowledge Bases and Text (GRAFT‑Net). arXiv:1809.00782.
  • Sun, H.; Bedrax‑Weiss, T.; Cohen, W. W. (2019). PullNet: Open‑Domain Question Answering with Iterative Retrieval on Knowledge Bases and Text. arXiv:1904.09537.
  • He, X. et al. (2024). G‑Retriever: Retrieval‑Augmented Generation for Textual Graph Understanding and Question Answering. arXiv:2402.07630.
  • Es, S.; James, J.; Espinosa‑Anke, L.; Schockaert, S. (2024). RAGAs: Automated Evaluation of Retrieval Augmented Generation. ACL:2024.eacl-demo.16.

Note

  1. 1.0 1.1 Zhang, Q., et al. A Survey of Graph Retrieval-Augmented Generation for Customized Large Language Models. arXiv, 2025. arXiv:2501.13958.
  2. Xu, Z., et al. Retrieval-Augmented Generation with Knowledge Graphs for Customer Service Question Answering. SIGIR, 2024. arXiv:2404.17723; DOI: 10.1145/3626772.3661370.
  3. 3.0 3.1 Hu, Y., et al. GRAG: Graph Retrieval‑Augmented Generation. arXiv, 2024. arXiv:2405.16506; также в Findings of NAACL 2025: ACL Anthology.
  4. Nakano, R., et al. WebGPT: Browser‑assisted question‑answering with human feedback. arXiv, 2021. arXiv:2112.09332.
  5. Yang, R., et al. KG‑IRAG: A Knowledge Graph‑Based Iterative Retrieval‑Augmented Generation Framework for Temporal Reasoning. arXiv, 2025. arXiv:2503.14234.
  6. 6.0 6.1 Song, Y., Li, W., Dai, G., Shang, X. Advancements in Complex Knowledge Graph Question Answering: A Survey. Electronics, 2023. DOI: 10.3390/electronics12214395.
  7. 7.0 7.1 Nogueira, R., Cho, K. Passage Re‑ranking with BERT. arXiv, 2019. arXiv:1901.04085.
  8. Hsu, H.‑L.; Tzeng, J. DAT: Dynamic Alpha Tuning for Hybrid Retrieval in Retrieval‑Augmented Generation. arXiv, 2025. arXiv:2503.23013.
  9. Es, S.; James, J.; Espinosa Anke, L.; Schockaert, S. RAGAs: Automated Evaluation of Retrieval Augmented Generation. EACL (System Demonstrations), 2024. ACL:2024.eacl-demo.16; также preprint: arXiv:2309.15217.