AI・機械学習
上級

引用検証(インヨウケンショウ)

LLMが生成した引用(出典情報)が実際に正しいかを自動的に検証するプロセス。引用先URLの存在確認、引用先コンテンツと回答内容の整合性チェック、引用の網羅性評価などを含み、ハルシネーテッド・シテーション(架空の引用)を検出・排除する。

0 回閲覧
0 いいね

引用検証とは

引用検証(Citation Verification)は、LLMが出力した引用情報の正確性を自動的に検証する技術プロセスである。LLMは実在しないURLや論文タイトルを「もっともらしく」生成する能力を持つため、引用が付いているからといって信頼できるとは限らない。この問題は「ハルシネーテッド・シテーション(Hallucinated Citation)」と呼ばれ、引用検証はその対策として不可欠な後処理パイプラインとなっている。

引用検証の3段階

Stage 1: 存在検証(URL/文献の実在確認)

引用先のURL・DOI・論文タイトルが実在するかを確認する。

  • URL検証: HTTP HEAD/GETリクエストで200応答を確認。リダイレクト先の最終URLも記録
  • DOI検証: CrossRef API(https://api.crossref.org/works/{doi})でメタデータ取得
  • 論文タイトル検証: Semantic Scholar API / Google Scholar で論文の存在を検索
  • 書籍検証: Open Library API / Google Books API でISBN・タイトル照合

検出される問題:

  • 完全に架空のURL(ドメインは実在するが該当ページが存在しない)
  • 著者名や年号が微妙に異なる論文タイトル(GPT系モデルに多い)
  • 存在するが内容が異なるURL(ドメインだけ正しく、パスが架空)

Stage 2: 整合性検証(内容の一致確認)

引用先のコンテンツを取得し、LLMの回答中の該当箇所と意味的に整合しているかを検証する。

手法:

  • NLI(自然言語推論): 回答文をPremise、ソース文をHypothesisとしてEntailment/Contradiction/Neutralを判定
  • セマンティック類似度: 回答文とソースチャンクの埋め込みベクトルのコサイン類似度を計算
  • ファクトチェック特化モデル: Google Research の FActScore、Meta の SAFE など

判定基準(実用上の閾値):

NLI判定類似度スコア判定結果
Entailment (確率>0.8)cos>0.85検証OK
Neutral (確率>0.5)0.65<cos<0.85要確認(部分一致)
Contradiction (確率>0.5)cos<0.65引用不適切(矛盾・無関係)

Stage 3: 網羅性検証(引用漏れの検出)

回答中の検証可能な主張のうち、引用が付与されていないものを検出する。

手法:

  • Claim Decomposition: 回答を個別の主張に分解し、各主張に対する引用の有無をチェック
  • Citation Gap Detection: 数値データ、固有名詞、統計情報を含む文で引用がないものをフラグ

自動検証パイプラインの構成

LLM回答(引用付き)
  ↓
[1] URL/DOI 存在チェック
  ↓ (存在しない → ハルシネーテッド・シテーション警告)
[2] ソースコンテンツ取得(Webスクレイピング/API)
  ↓
[3] NLI判定(回答文 vs ソース文)
  ↓ (Contradiction → 引用不適切警告)
[4] Citation Gap 検出
  ↓ (未引用の主張 → 追加引用候補を検索)
[5] 検証済み回答を出力

主要な評価フレームワークとツール

ツール/フレームワーク開発元手法対象
FActScoreMIT/Google主張分解 + Wikipedia検証人物伝記
SAFEGoogle DeepMindSearch-Augmented Factuality Evaluator一般Q&A
TRUEGoogle ResearchNLIベース帰属判定要約・Q&A
ALCEStanford NLPCitation Precision/Recall引用付き回答
MiniCheckUW小型NLIモデル(7B)コスト重視の検証
Vectara HHEMVectaraHughes Hallucination Evaluation Modelエンタープライズ

実装上の考慮点

パフォーマンスとコスト

  • URL存在チェック: 1件あたり100〜500ms(並列化で10件/秒程度)
  • NLI判定: 文ペアあたり10〜50ms(GPUモデル使用時)
  • 全体パイプライン: 引用10件の回答で2〜5秒の追加レイテンシ

スケーリング戦略

  • 同期検証: ユーザーに回答を返す前に全引用を検証(レイテンシ増大)
  • 非同期検証: 回答を先に返し、検証結果を後から更新(UX重視)
  • 段階的検証: Stage 1(存在チェック)のみ同期、Stage 2-3は非同期

信頼度スコアの表示

検証結果をユーザーに伝える方法として、引用ごとに信頼度を色分け表示するアプローチがある。

  • 緑: 検証OK(Entailment + URL存在)
  • 黄: 部分一致(Neutral)
  • 赤: 検証NG(Contradiction または URL不在)

FAQ

Q1: 引用検証のコストを抑えるには?

A1: Stage 1(URL存在チェック)は低コストで実装可能なため、まずこれだけ導入するのが費用対効果が高い。Stage 2のNLI判定はMiniCheck(7Bパラメータ)を使えばGPUコストを1/10に削減可能。全主張でなく数値・固有名詞を含む文のみ検証する選択的アプローチも有効。

Q2: 引用検証は日本語でも精度が出る?

A2: 英語に比べると精度は若干落ちる。多言語NLIモデル(mDeBERTa-v3-base等)の日本語性能はEN比で5〜10ポイント低い傾向。日本語ソースのWebスクレイピングも文字コードやJavaScript描画の問題で取得失敗率が高い。日本語特化のファクトチェックモデルは2026年時点でまだ研究段階。

Q3: 引用検証を通過しても誤情報の可能性はある?

A3: ある。ソース自体が誤っている場合(偽情報サイト、古い情報、誤報)は検証を通過しても回答が不正確になる。ソースの信頼性評価(ドメイン権威性スコア、発行日チェック、著者情報確認)を組み合わせることで、この問題を緩和できる。