信頼性スコアを活用した ナレッジグラフの改善とアルゴリズム設計
1. はじめに
生成AIやRAGを用いた社内QAエンジンでは、回答の精度や説明性を高めるために、文書やノード・エッジといった知識構造そのものの信頼性を継続的に評価・改善していくことが重要です。この記事では、当社のGraphRAG基盤で取り入れている「信頼性スコア」および「フィードバックアルゴリズム」について紹介します。
2. 信頼性スコアとは?
信頼性スコアとは、ナレッジグラフの各要素(ノード、エッジ、テンプレート)に対して、どの程度信頼できる情報かを数値化したものです。以下の3つの主体による操作をベースに、スコアが付与されます。
管理者
- 作成・更新したKGに高スコア付与
- 検証用に利用した回答履歴に権限情報付きで記録
- 回答履歴を評価
一般ユーザー
- 回答時に自動でスコア付与/評価や行動履歴に基づき調整
LLM
- LLMによる自動構築KGには低スコアで登録
このように、操作主体や入力経路によって信頼性に重みづけを行うことで、LLMによる誤構築やユーザー評価の偏りに対応しながら、構造の精度を段階的に改善します。
3. 精度向上のための改善施策
回答履歴に基づき、ノードやテンプレート単位での「貢献度」や「評価スコア」の時系列データを蓄積しています。たとえば以下のように、いつ・どのテンプレートがどれだけ使われ、どの程度評価されたかを計測し、構造の改善に役立てます。
ノードID | 日時 | 回答数 | 平均評価 | 平均貢献度 | スコア(貢献度 x 評価) |
N1 | 2025/8/8 | 1 | 4.2 | 0.35 | 1.47 |
N2 | 2025/8/8 | 8 | 3.5 | 0.50 | 1.75 |
このスコアは、ノード・エッジ・テンプレート設計そのものの改善判断に直結します。
4. フィードバック活用アルゴリズム
将来的には、信頼性スコアを使って探索と活用のバランスを最適化するアルゴリズム(強化学習的アプローチ)を導入予定です。これは、初期設計の不確かさを許容しながら、データに基づいて構造を進化させる狙いがあります。
マルチアーム・バンディット問題(multi-armed bandit problem, MAB)
信頼性スコアを利用したアルゴリズムを検討するうえで、マルチ・アームバンディット問題を考慮する必要があります。マルチ・アーム、つまり複数台のスロットマシン(アーム)があるときに、どれを選ぶと最も報酬が高くなるのかという問題です。
各アーム(選択肢)にはそれぞれ期待報酬がありますが、開示されていないものとします。この期待報酬を知るには、しばらくそのスロットマシンを利用する必要があります(探索)。しかし、人情としては、これまで使ったスロットマシンのうち、もっとも評価が高かったものばかりを利用したくなるため、経験によって選択肢が偏ることになります。
この傾向によって、本当はもっと良いスロットマシンがあるのに、利用経験がないために期待値を評価できなくなり、より良い結果を得る機会を失うことにつながります。信頼性スコアを利用したフィードバックには、未知の期待値をいかに取り入れるかという観点を考慮することが大切です。
設計方針
- Exploration(探索):新しい情報源・テンプレート・関係を試す(不確実性あり)
- Exploitation(活用):高評価・高実績の構造を再利用して安定性を高める
解決アプローチ案
- ε-greedy法
- 90%の確率で最良のテンプレートを使い(活用)
- 10%の確率で新しいものを試す(探索)
- UCB(Upper Confidence Bound)法
- 報酬期待値に「不確かさ(信頼区間)」を足して評価
- 未使用の構造に探索が向きやすい
- Thompson Sampling
- ベイズ更新で最も報酬確率が高い構造を選択
- 自然な探索・活用のバランスがとれる
5. まとめ
ナレッジグラフを信頼性スコアと時系列データで管理することで、QAエンジンの回答品質と構造設計の両方を改善できます。さらに、マルチアーム・バンディット問題をベースとした探索アルゴリズムを取り入れることで、構造の最適化を動的に進められる未来が見えています。