🧠
Financial RAG Engine 基礎知識
🖥️ 金融端末 Showcase
Domain & Architecture Knowledge RRF / BM25 / TSE Valuation

金融特化型 RAG & 引用一致率監査エージェント 前提基礎知識ガイド

Fundamental Knowledge & Concepts Guide | LLM オーケストレーションと財務工学の交差点


1. はじめに

本システム(financial-rag-agent)は、最先端の生成 AI / LLM オーケストレーション技術と厳密な金融・財務工学のドメイン知識が交差する領域に位置しています。

本書は、本システムの設計意図、ソースコードの内部構造、および評価指標を深く理解し、保守・拡張・評価を行うために必要な前提基礎知識を体系的に解説したエンジニア向け知識ベースです。


2. 金融×LLM システムにおける固有の課題

2.1 なぜ「一般的な RAG」は金融実務で破綻するのか?

一般的な社内文書検索やチャットボットでは、「大体合っている要約」が得られれば及第点とされます。しかし、経済メディア(日経新聞等)の読者や金融機関のディーラー、ファンドマネージャー、経営企画部門を対象とするサービスでは、小さな誤謬が重大な誤認や投資損失、コンプライアンス違反に直結します。

課題項目 一般的な RAG の挙動 金融実務で求められる厳密性 本システムのアプローチ
数値の厳密性 「約5兆円」「大幅な増益」など大雑把に要約 「5兆3529億円」(1円単位、100万円単位の正確性) CJK数値特化トークナイズ + BM25 で厳格に数値を照合
会計期間の識別 2023年3月期と2024年3月期、通期と四半期を混同 会計年度(FY)、第Q(四半期)、本決算の完全な区別 メタデータフィルタリング + 意図分類による Query Rewrite
根拠の透明性 「一般的な情報によれば…」と出所が曖昧 記事ID、開示日時、発表元の完全なトレーサビリティ すべての主張文に対する [doc_X] 引用付与と一致率監査
ハルシネーション 自信満々に架空の数値を創作(10〜20%混入) 許容誤差 0%(ゼロ・ハルシネーション原則) 引用監査不合格時の自己修正(Self-Correction)ループ

3. エージェントオーケストレーション技術の基礎

3.1 従来の Linear Chain と LangGraph(有向グラフ)の相違

初期の LLM アプリケーション(直列パイプライン A → B → C)では、生成された文に幻覚や引用ミスがあってもそのまま出力されてしまいました。実用的な金融エージェントには、監査結果に応じた「循環(Cycles)」、意図に応じた「分岐(Branching)」、単一の信頼できる状態管理(State)が必須です。

flowchart LR
    subgraph 従来の直列パイプライン
        A1["入力"] --> A2["検索"] --> A3["生成"] --> A4["出力 (誤りがあっても止まらない)"]
    end
          
flowchart TD
    subgraph 本システムの_LangGraph_状態マシン
        B1["ユーザー入力"] --> B2["クエリ改写 & 意図分類"]
        B2 --> B3["ハイブリッド検索 (RRF)"]
        B3 --> B4["MCP 財務ツール実行"]
        B4 --> B5["グラウンデッド回答生成"]
        B5 --> B6["文単位引用一致率監査"]
        B6 --> B7{"一致率 >= 70% ?"}
        B7 -- "合格 (PASS)" --> B8["ストリーミング確定 & チェックポイント永続化"]
        B7 -- "不合格 (再試行 < 2回)" --> B5
    end
          

4. Model Context Protocol (MCP) の基礎

4.1 なぜ REST API 直接呼び出しではなく MCP なのか?

  • 疎結合性と再利用性: 財務指標の計算ロジック(PER、PBR、バリュートラップ検出等)を独立した MCP サーバーとして分離することで、CLI、Web UI、LangGraph エージェント、外部システムから同一のツール定義を共有可能。
  • コンテキストの自律的発見: LLM は MCP の提供する JSON Schema 仕様に基づき、どのようなツールが存在し、どの引数を渡すべきかをプロンプト外から標準化された手段で取得・実行。
  • セキュリティと境界防御: LLM エージェントにデータベースへの直接アクセス権や環境変数を与えず、MCP サーバーの境界越しに安全に処理を実行。

5. 金融ドメイン向け検索技術(Information Retrieval)

5.1 スパース検索(BM25) vs デンス検索(Dense Vector)

RAG の検索層において、どちらか一方だけでは金融ドメインの要求を満たせません:

  • スパース検索 (BM25 Okapi): 「7203」「5兆3529億円」など、1文字のブレも許されない完全一致キーワードを確実に上位へ引き上げる。
  • デンス検索 (Dense Vector): 「電動化の行方」という質問に対して、「BEV投資」「電池工場新設」といった意味的同義語・文脈を捉える。

5.2 Reciprocal Rank Fusion (RRF) のメカニズム

BM25 の対数オッズ比スコアと、ベクトルのコサイン類似度はスケールが全く異なります。RRF は「順位(Rank)」のみを用いて頑健に統合します:

📐 RRF 順位融合計算式

RRF(d) = ∑ [ 1 / (k + rank_m(d)) ] (m ∈ {BM25, Dense})

平滑化定数 $k = 60$ を採用。片方の検索器で圧倒的 1 位になったドキュメントを確実に上位へ引き上げます。


6. 引用帰属(Citation Attribution)と評価指標(Eval)

日经新闻社等の採用基準で最も重視されるのが、「引用の精度をどう定義し、どう自動測定するか」です。

指標名 数学的定義 業務的意味
引用一致率 (Consistency Rate) 整合文数 / 引用タグ付き総文数 モデルが根拠として挙げた文献の中に、主張した数値・事実が本当に存在するか。
引用適合率 (Citation Precision) 裏付け正当引用数 / 総引用タグ数 無関係な文献を適当に引用する「見せかけ引用(Ghost Citation)」の排除。
引用再現率 (Citation Recall) 引用済み重要事実数 / 全重要事実数 客観的数値を語っているにもかかわらず根拠を添えない「未根拠記述」の検出。

7. 日本の金融実務・財務指標の基礎知識

7.1 PER / PBR と東証の是正要請

🏢 東京証券取引所の「PBR 1倍割れ是正要請」

2023年春以降、東証はプライム・スタンダード上場企業に対し「資本コストや株価を意識した経営の実現」を強く要請。PBRが1倍を下回る状態は「会社を解散して資産を分けた方がマシ」と投資家に評価されていることを意味し、自社株買い、増配、事業再編を通じた PBR 1倍超えが至上命題となっています。

7.2 ROE「伊藤レポート基準」と TSR

  • ROE(自己資本利益率): 経済産業省の「伊藤レポート(2014年)」以来、日本企業がグローバル投資家を引きつける最低目標ラインとして「ROE 8%以上」が定着。
  • TSR(株主総利回り): 株価の値上がり益(キャピタルゲイン)+ 配当金(インカムゲイン)の総合的な還元率を示す。

7.3 バリュートラップ(Value Trap: 割安の罠)検知アルゴリズム

「PBRが0.6倍で一見割安に見えるが、何年経っても株価が上がらない」企業を自動検知します。

⚠️ 本システムのバリュートラップ判定ルール

if PBR < 0.8倍 and ROE < 5.0%: -> 【Value Trap Risk (割安の罠リスク検知)】

資本収益性が極めて低く、内部留保を溜め込んだまま成長投資や株主還元を怠っている企業に対し、単なる「割安」ではなくリスク警告を発出します。