🧘

データソースを俯瞰してデータ取得する手法『Meta Knowledge RAG』について

2024/10/03に公開


https://arxiv.org/abs/2408.09017

サマリー

メタ認知RAG(Meta Knowledge RAG)は、データ前処理によってドキュメントをクラスタリングし、データベース全体を俯瞰した検索を実現する手法です。この手法により、検索の精度や再現率、回答の網羅性、深さ、関連性、特異性を大幅に向上させることができます。

問題意識

データソース全体の分布の把握不足

従来のRAG(Retrieval-Augmented Generation)システムは、データソース全体の分布を正確に把握していないため、文書全体にわたる深い推論が難しいという課題がありました。

チャンク分割による文脈の喪失

文書をチャンクに分割する際、セマンティックな文脈が保持されないため、チャンクが大きいほど文脈の正確性が失われます。その結果、次の検索段階に影響を与え、特定のユースケースに適したチャンク戦略の選択が非常に困難になります。

曖昧なユーザークエリ

ユーザーのクエリは一般的に短く曖昧であり、語彙のミスマッチや複数の文書が必要なほど複雑な場合があります。これにより、ユーザーの意図を正確に捉えることが難しく、最も適切な文書を特定するのが困難です。

手法

  1. ドキュメントの事前処理: チャンク分割したドキュメントに対して、カテゴリ(メタデータ)とQ&Aを生成します。さらに、メタデータに基づいたサマリーも生成しておきます。
  2. 質問のベクトル化: 生成したQ&Aの質問を埋め込みベクトルを使用してベクトル化します。
  3. クエリの拡張: ユーザーはクエリと質問のカテゴリ(メタデータ)を入力します。入力されたクエリとメタデータに基づいて、いくつかのサブクエリを生成し、クエリの拡張を行います。
  4. ベクトル検索: 入力クエリと生成したサブクエリを使用して、事前にベクトル化した質問群に対してベクトル検索を行います。
  5. 最終応答の生成: 入力クエリ、生成したサブクエリ、取得したコンテキストを元に、最終的な回答を生成します。

成果

この手法を用いることで、以下の評価指標において性能の向上が期待できます。

  • Recall(リコール): 取得された文書に含まれる主要で関連性の高い情報のカバー範囲を評価します。
  • Precision(精度): 関連する文書と関連しない文書の比率を評価します。
  • Specificity(特異性): 最終的な回答がクエリにどれだけ正確に焦点を当てているかを評価します。質問に対して明確で直接的な情報が提供されているかを確認します。
  • Breadth(網羅性): 質問に関連するすべての重要な側面や領域がどれだけカバーされているか、包括的な概要が提供されているかを評価します。
  • Depth(深さ): 詳細な分析や洞察を通じて、どれだけ徹底的な理解を提供しているかを評価します。
  • Relevancy(関連性): 最終的な回答が対象や文脈のニーズや関心にどれだけ適しているかを評価します。質問に直接的に適用可能で本質的な情報を提供し、不要な詳細を省いているかを確認します。

まとめ

メタ認知RAGは、データソース全体を俯瞰し、ユーザーのクエリに対して最適な回答を提供するための強力な手法です。ドキュメントの事前処理とクエリの拡張、ベクトル検索を組み合わせることで、検索の精度と効率を大幅に向上させることができます。

Discussion