こんにちは。マネックス・ラボでAI関連の仕事をしている、佐藤です。

2025年8月11日〜13日にラスベガスで開催された、Ai4に参加してきたので、そのときに聞いたセッションの一つ、「The GraphRAG Advantage: Providing Enterprise-Grade Knowledge to AI Agents and LLMs」について紹介したいと思います。
このセッションを選んだ理由は、社内でベクトルベースのRAGを試しているのですが、いまいち精度が出ず、何か改善のヒントになれば、と思ったからです。
スピーカーはNeo4jのシニアデベロッパーの方で、倫理や安全性にも興味があり、学校や非営利団体での講演も行なっているという方でした。Ai4では他のセッションでも、教育に関わっている人や、ハッカソンで優勝した方など、積極的に活動されている方が多い印象を受けました。
内容をつらつらと書きつつ、セッション全体を通して感じたことを書いてみます。

セッションで話していた内容
- ナレッジグラフとは、現実世界のエンティティ(人やモノ)の関係を表現したもの。
- 普通のRAGは、データソースをチャンクに分け、埋め込みモデルを使用してインデックスする。検索する時は、Top-Kだけを取得する。
- GraphRAGではグラフベースの検索結果を混ぜる。
- 検索エンジンとして使うのであれば、GraphRAGは要らない。
- 異なるデータソースの情報を集約するのであれば、GraphRAGを使うことで精度を上げられる。
- ベクトルDBの特徴について。
- ベクトルDBは、メタデータとベクトルしか使えず、構造化データを扱えない。
- ベクトルDBは埋め込みに対しての検索はできるが、ドメイン固有のコンテキストが欠けることがある。堅牢ではない。
- ベクトルの類似性は、関連性とはイコールではない。
- ベクトル検索の結果は、説明しづらい。他のソースに比べて、検索されたチャンクを選んだ理由がわからない。誤った結果を返した場合に、それを修正することが難しい。運用する途中で補正することが困難。
- GraphRAGはベクトルベースのRAGを置き換えるものではなく、両方を使うことが有益。これにより、両方の利点を活かせる。
- GraphRAGの利点を一旦まとめると下記のとおり。
- 1.正確性、
- 2.開発が容易なこと
- 3.説明が可能で管理できること。
- 正確性について。ベクトルベースに比べて、ナレッジグラフを加えることで、精度が格段に上がった。(スライドでは精度(accuracy)が3倍と書いていたが、下記のペーパーを見ると、ベクトルベースと比べた場合ではなさそうなので、後で調べたい)
- 開発が容易になる理由。「りんごとオレンジは果物」という表現をするとき、グラフであれば関係性を明示的に表現することができる(りんごは果物、オレンジは果物)。一方で、ベクトル表現をする場合、数値の羅列であり、暗黙的である。りんご、オレンジ、果物それぞれがベクトルで表現されるだけ。LLMの出力元を追跡するときに、グラフ表現のほうが容易であり、開発がしやすい。また、説明もしやすい。
- 他のペーパーの紹介。
- LinkedInのカスタマーサポートでの導入例の紹介。問題の解決時間が28.6%減少した。
- 「Retrieval-Augmented Generation with Knowledge Graphs for Customer Service Question Answering」
- https://arxiv.org/abs/2404.17723
- Microsoftの研究結果についての紹介。
- 「From Local to Global: A Graph RAG Approach to Query-Focused Summarization」
- https://graphrag.com/appendices/research/2404.16130/
- LinkedInのカスタマーサポートでの導入例の紹介。問題の解決時間が28.6%減少した。
- AI Agentに対するナレッジグラフの利点
- AI Agentについて。エージェントは、LLMを使って、目標に向かって行動するアプリケーション。推論することで、次に行うべき行動を決める。ToolCallやAPIを使って、LLMに行動を実行させることができる。エージェントはツールを選び、一度実行を止める。そしてツールを実行し、その結果をLLMにフィードバックし、停止するまでサイクルを続ける。
- エージェントに対しては、MCPでナレッジグラフを組み合わせることが、ゴールデンスタンダード。
- MCPと組み合わせることで、ナレッジグラフのスキーマもコンテキストとして与えられる。さらにGraphRAGについて知りたい場合は、下記のドキュメントが参考になる。
セッションを聞いての感想
- たしかに、ベクトル表現だと中間的な表現の一致までしか検索できないように感じるので、明示的な検索が行えるナレッジグラフはRAGの精度を上げるのに寄与しそうではある。この、「感じる」というあたりが、セッションでも話していた暗黙的であることからくる問題でもあるように思う。
- 一方で、正確な表現ができるナレッジグラフも、100%の正確なグラフを構築できれば、RAGの精度向上に寄与するのは間違いないと思う。一方で、ナレッジグラフを100%の精度で作るのは難しいので、NLPやLLMを使って、どれくらいの精度でエンティティと関係を抽出できるかが鍵になりそう。特に、日本語でどこまで精度を上げられるかは試してみないとなんともいえない。
- ナレッジグラフが誤っていた場合に、利用者のフィードバックを利用して、それを補正するプロセスをシステムに組み込めれば、日々精度を上げていくようなアプローチができそうである。
- ベクトルベースの場合、ドメイン固有の情報が欠けることがあるというのは、LLMがドメイン固有の知識を持っていない場合にそうなりうるのかなと予想している。他のセッションでも、埋め込みモデルをドメイン固有のデータを使ってファインチューニングをすることで、RAGの精度を上げられるという話をしていた。
次のAi4セッション紹介記事はこちら
Ai4旅行記記事はこちら
Ai4とは?という方はこちら

佐藤 俊介マネックス・ラボ