Graph RAGにおけるナレッジグラフ構築とは、テキストコーパスからLLMを用いてエンティティ(人物・組織・概念・技術等)とそれらの間の関係を抽出し、ノードとエッジで構成されるグラフ構造として体系化するプロセスである。抽出されたグラフはコミュニティ検出やクエリ時の情報検索の基盤となる。
Graph RAGにおけるナレッジグラフ構築は、非構造化テキストを構造化された知識表現に変換する中核プロセスである。従来のナレッジグラフ構築がドメイン専門家による手動のオントロジー設計とルールベースの情報抽出に依存していたのに対し、Graph RAGではLLM(大規模言語モデル)を活用して全自動でエンティティと関係を抽出する。
ナレッジグラフの品質がGraph RAG全体の性能を決定づけるため、抽出の精度と網羅性の確保が最重要課題となる。Microsoft Researchの論文では、Gleaning(反復抽出)という独自の手法により、単一パスでは見逃されるエンティティや関係を補完する仕組みが提案されている。
ナレッジグラフは、ノード(エンティティ)とエッジ(関係)で構成されるProperty Graphモデルで表現される。各ノードはエンティティ名・型・説明文の属性を持ち、各エッジはソースエンティティ・ターゲットエンティティ・関係の説明・強度スコアの属性を持つ。
Graph RAGのグラフスキーマは、ドメインに応じて柔軟に設計する必要がある。Microsoft GraphRAGのデフォルト実装では、型指定のないオープンスキーマを採用しているが、実運用では事前に型体系を定義することで抽出精度が向上する。
| エンティティ型 | 説明 | 例 | 用途 |
|---|---|---|---|
| PERSON | 人物・著者・研究者 | Albert Einstein, 田中太郎 | 人物関係の追跡 |
| ORGANIZATION | 企業・研究機関・政府機関 | Microsoft, 東京大学 | 組織間関係の分析 |
| TECHNOLOGY | 技術・アルゴリズム・プロトコル | Transformer, TCP/IP | 技術関連の知識体系化 |
| CONCEPT | 抽象概念・理論・手法 | RAG, 機械学習 | 概念間の関係マッピング |
| PRODUCT | 製品・サービス・ツール |
| GPT-4, Neo4j |
| 製品比較・技術スタック分析 |
| EVENT | イベント・会議・リリース | NeurIPS 2024, v2.0リリース | 時系列分析 |
| LOCATION | 地名・施設 | シリコンバレー, 東京 | 地理的分析 |
関係型は方向性を持ち、ソースエンティティからターゲットエンティティへの意味的な接続を表現する。Graph RAGでは、LLMに関係の説明文を自由記述させるアプローチと、事前定義された関係型に分類させるアプローチの2種類がある。
自由記述アプローチは柔軟性が高いが、類似する関係が異なる表現で抽出されるため後処理での正規化が必要になる。事前定義アプローチは一貫性が高いが、定義されていない関係型を見逃すリスクがある。
Graph RAGのエンティティ抽出では、各テキストチャンクに対してLLMを呼び出し、構造化されたエンティティと関係のリストを出力させる。
Microsoft GraphRAGの抽出プロンプトは、以下の要素で構成される。
Gleaningは、Microsoft GraphRAGが導入した抽出品質向上手法である。初回の抽出結果をLLMに提示し、「見逃されたエンティティや関係はないか」と問い合わせることで、追加のエンティティ・関係を抽出する。このプロセスを設定回数(デフォルト1回)繰り返す。
Gleaningにより再現率は10〜30%向上するが、LLM呼び出し回数が倍増するためコストも比例して増加する。コストと品質のトレードオフを考慮して、Gleaning回数を調整する必要がある。
| Gleaning回数 | 再現率向上(目安) | コスト増加 | 推奨シーン |
|---|---|---|---|
| 0回(なし) | ベースライン | 1.0x | コスト最優先、大規模コーパス |
| 1回 | +15〜25% | 2.0x | 標準(推奨デフォルト) |
| 2回 | +20〜30% | 3.0x | 高品質が必要な場合 |
| 3回以上 | +25〜35%(逓減) | 4.0x+ | 極めて重要なドメイン |
チャンク単位で抽出されたエンティティと関係は、グラフ全体での統合と重複排除が必要である。同一エンティティが異なるチャンクで異なる表現(略称、正式名称、別名等)で出現する場合、これらを同一ノードに統合しなければならない。
エンティティ解決は、以下のステップで行われる。
同一エンティティペア間で複数の関係が抽出された場合、関係の説明文を結合し、強度スコアを合算する。これにより、コーパス内で頻繁に言及される関係ほど高い重みを持つエッジが生成される。
構築されたナレッジグラフの品質は、以下の指標で評価する。
| 評価指標 | 説明 | 目標値 | 測定方法 |
|---|---|---|---|
| エンティティ精度 | 抽出エンティティの正確性 | >85% | サンプル手動検証 |
| エンティティ再現率 | 重要エンティティの網羅性 | >70% | ゴールドスタンダード比較 |
| 関係精度 | 関係の正確性 | >75% | サンプル手動検証 |
| グラフ連結性 | 最大連結成分の割合 | >80% | グラフ分析 |
| 平均次数 | ノードあたりの平均エッジ数 | 3〜10 | グラフ統計 |
低品質なグラフは、コミュニティ検出の結果を劣化させ、最終的な回答品質に直結する。グラフ構築後には必ず品質チェックを行い、必要に応じてプロンプトの調整やGleaning回数の増加で対処する。
| ストレージ | 適用規模 | クエリ性能 | 運用コスト | 推奨用途 |
|---|---|---|---|---|
| Parquetファイル | 〜10万ノード | 低(全件スキャン) | 最低 | PoC・実験 |
| NetworkX(インメモリ) | 〜100万ノード | 高 | 低(メモリ依存) | 中規模バッチ処理 |
| Neo4j | 〜数十億ノード | 高(Cypher最適化) | 中〜高 | 本番運用 |
| Amazon Neptune | 〜数十億ノード | 高 | 高(マネージド) | AWSベース本番運用 |
| Azure Cosmos DB Gremlin | 〜数十億ノード | 中〜高 | 高(マネージド) | Azureベース本番運用 |
可能である。外部ナレッジグラフのエンティティとGraph RAGが抽出したエンティティをEntity Resolutionで対応付けることで、外部知識を補完的に活用できる。ただし、スキーマの違い(Property Graphモデル vs RDFトリプル)の変換が必要になる場合がある。WikidataやDBpediaのエンティティIDを正規化キーとして使用することで、グラフ間の接続精度が向上する。
Microsoft GraphRAG(2024年版)では増分更新機能は限定的である。新規ドキュメント追加時はエンティティ抽出と既存グラフへのマージが可能だが、コミュニティ検出とサマリ生成は再実行が必要になる。大規模コーパスの頻繁な更新がある場合は、変更されたコミュニティのみを再計算するpartial updateの仕組みを独自実装する必要がある。LlamaIndexのPropertyGraphIndexは、より柔軟な増分更新をサポートしている。
LLMが対応する言語であれば原理的にマルチ言語対応が可能である。ただし、エンティティ解決において、同一エンティティが異なる言語で表記される場合(例: Japan / 日本 / 日本国)の統合が課題となる。多言語対応のEmbeddingモデル(multilingual-e5-large等)を使用し、クロスリンガルなエンティティ解決パイプラインを構築することで精度を向上できる。