従来RAGを超える！エンティティ知識グラフで質問応答を革新するGraph RAG

※ この記事は「From Local to Global: A Graph RAG Approach to Query-Focused Summarization」の要約になります。

## この記事を読んでわかること
- GraphRAGアプローチを提案し、LLMsとグラフ技術を組み合わせてコーパス全体からの質問回答を向上させる方法について解説
- GraphRAGは、エンティティ知識グラフとコミュニティ要約を用いて、部分的な回答を統合し、グローバルな回答を生成
- 実験結果によると従来のRAG手法に比べて包括性と多様性の面で大幅に改善された

## この記事を読むと嬉しい人
1. **データサイエンティストやリサーチャー**：大規模なテキストデータセットから効率的に要約を生成し、グローバルな質問に回答する方法に興味がある人。
2. **自然言語処理（NLP）エンジニア**：LLMsとグラフ技術を組み合わせた新しいアプローチを学び、実践に応用したい人。
3. **情報検索および要約システムの開発者**：クエリに焦点を当てた要約(QFS)やRAGシステムの性能向上に関心がある人。

## 従来手法の問題点

1. **RAGの限界**：
   - Retrieval-augmented generation (RAG)は、特定の情報を明示的に取得する場合には有効ですが、コーパス全体に対するグローバルな質問には適していません。これは、グローバルな質問は明示的な情報の取得ではなく、QFSを必要とするからです。

2. **QFS手法のスケーラビリティの欠如**：
   - 従来のQFS手法は、典型的なRAGシステムがインデックス化するような大量のテキストを処理する能力に欠けています。これにより、大規模なテキストコーパスに対する質問に効果的に対応することが困難です。

3. **LLMsのコンテキストウィンドウの制限**：
   - 現代の大規模言語モデル（LLMs）は、コンテキストウィンドウ内に含まれるテキストを要約する能力を持っていますが、非常に大きなテキストコーパスを処理する際にコンテキストウィンドウの限界を超えてしまうことがあります。このため、長いテキストの中間部分で情報が失われるリスクがあります。

## Graph RAG
### Graph RAG とは？

Graph RAG（Graph Retrieval-Augmented Generation）は、LLMsを用いて構築されたエンティティ知識グラフを活用し、QFSを行う手法です。このアプローチは、コーパス全体に対するグローバルな質問に対応するために、以下の二段階のプロセスを用います：
1. ソースドキュメントからエンティティ知識グラフを生成。
2. 密接に関連するエンティティグループごとにコミュニティ要約を事前に生成。

質問が与えられると、各コミュニティ要約を用いて部分的な回答を生成し、最終的にこれらの部分的な回答を統合してグローバルな回答を提供します。

### Graph RAG のメリット

1. **スケーラビリティ**：
   - Graph RAGは、大量のテキストデータを効率的に処理することができます。コミュニティ要約を利用することで、必要な情報を階層的にまとめ、効率的に検索・要約が可能です。

2. **包括性と多様性の向上**：
   - 従来のRAG手法に比べ、Graph RAGは回答の包括性（質問に対する全体的なカバレッジ）と多様性（異なる視点や洞察の提供）の両方において優れたパフォーマンスを示します。

3. **トークンコストの削減**：
   - コミュニティ要約を用いることで、必要なトークン数を大幅に削減できます。特に、ルートレベルのコミュニティ要約は、トークンコストを大幅に抑えながらも高い効率を維持します。

### Graph RAG の手順

1. **ソースドキュメントのテキスト抽出とチャンク分割**：
   - ソースドキュメントからテキストを抽出し、処理可能なチャンクに分割します。チャンクサイズの選定は、抽出精度と効率のバランスを考慮して行います。

2. **テキストチャンクからエレメントインスタンスの抽出**：
   - 各チャンクからエンティティ（ノード）とその関係（エッジ）を抽出します。LLMを使用して、エンティティ名、タイプ、説明、および関係の記述を抽出します。

3. **エレメントインスタンスの要約生成**：
   - 抽出したエンティティと関係を要約し、それぞれを記述するテキストブロックを生成します。これは、複数回のLLM呼び出しを通じて行います。

4. **グラフコミュニティの検出**：
   - 抽出したエンティティと関係を用いて、グラフを構築します。このグラフをコミュニティ検出アルゴリズム（Leidenなど）で解析し、密接に関連するエンティティグループを特定します。

5. **コミュニティ要約の生成**：
   - 各コミュニティについて、エンティティと関係の要約を生成します。これにより、データセット全体の構造と意味を理解するための包括的なレポートが作成されます。

6. **コミュニティ要約を用いた質問応答**：
   - 質問が与えられると、コミュニティ要約をランダムにシャッフルし、所定のトークンサイズのチャンクに分割します。各チャンクについて部分的な回答を生成し、それらを統合して最終的なグローバル回答を生成します。

### Graph RAG の実験結果

Graph RAGの実験結果は以下の通りです：

1. **比較手法**：
   - Graph RAG（C0, C1, C2, C3：異なる階層レベルのコミュニティ要約）
   - テキスト要約法（TS：ソーステキストのマップリデュース要約）
   - ナイーブRAG（SS：従来のRAG手法）

2. **評価基準**：
   - **包括性（Comprehensiveness）**：質問に対する詳細なカバー率
   - **多様性（Diversity）**：回答の視点や洞察の多様性
   - **エンパワーメント（Empowerment）**：回答が読者の理解を助ける度合い
   - **直接性（Directness）**：質問に対する具体的かつ明確な回答の度合い

3. **結果概要**：
   - **包括性と多様性**：Graph RAGはナイーブRAGに対して一貫して高いスコアを示しました。特に、中間レベルのコミュニティ要約（C2）は、包括性と多様性の両方で優れたパフォーマンスを示しました。
   - **トークンコスト**：Graph RAGはソーステキストのマップリデュース要約（TS）に比べて、トークンコストを大幅に削減しました。ルートレベルのコミュニティ要約（C0）は、最も効率的で、トークンコストを97%以上削減しました。
   - **エンパワーメント**：この評価基準では混合結果が得られましたが、Graph RAGは特定の例や引用を含むことで、読者の理解を助ける度合いが高いことが示されました。
   - **直接性**：ナイーブRAGが最も直接的な回答を提供しましたが、これは包括性や多様性とはトレードオフの関係にあります。

### まとめ

Graph RAGは、LLMsとグラフ技術を組み合わせて、コーパス全体からの質問応答を効率的に行う新しいアプローチです。
従来のRAG手法と比較して、質問に対する回答の包括性と多様性を大幅に向上させました。また、トークンコストの削減により、効率的な情報取得と要約が可能となりました。

今後は Graph RAG がRAG界のグローバルスタンダードになっていくのかもしれないですね。

おわり。