AIと拓く創造の余地を、静かに探索する

AIの性能評価はどうする?
~検索の評価指標~

2025.11.20

性能評価はマスト

AIの評価は、AIを導入する目的に合わせて行われます。つまり、その目的が業務時間の短縮であれば何時間短縮できたかで評価されますし、コスト削減であれば削減額で評価されます。しかし、このような評価指標は算出自体が大変であるのはもちろんのこと、使うAI製品・ツールによっても変動するため、比較検討の段階では容易に行うことができません。

AI製品・ツールを導入するにあたり、比較検討を行う場合 、最終評価を念頭に置きつつも、まずはAIの性能を測ることが重要です。その性能によって、AIの導入方針を変えねばならないこともあります。例えば、業務の完全自動化を目指していたものの、そこまでの性能が出ないとわかった場合には、業務支援を目指すこともあります。

本稿では、検索に着目し、その性能評価のための指標について述べます。生成AIを使ったRAG (*1)も、その検索性能が低ければ使い物になりませんから、検索部分の評価は不可欠です。

(*1) RAGに関しては、過去の連載記事をご覧になってください。

検索における正解と評価

検索というタスクを定式化します。まず大量の文書があります。その中から、検索の意図に沿う文書と考えられる候補をいくつか選び出します。最後に、選ばれた文書を、意図に沿っている可能性が高いものから順に並べて検索結果とします。

この意図に沿っている文書のことを正解とします。そうではない文書のことを不正解とします。こうすることで、正解率のようなものを出すことができるのですが、その計算方法は1つではありません。というのも、良い検索結果かどうかは、意図によるからです。

例えば、購買システムの使い方について調べたいときには、購買システムのマニュアルが検索結果の最上位に来ていれば良く、2位以下はどうでもよいと言えます。あるいは、先行技術調査をしたい際には、関連する特許がなるべくたくさん検索結果に出てきてほしく、関連しない文献はなるべく出てこないようにしたいものです。このように意図が異なる以上、評価指標も異なるものを使う必要があります。

正解が1つの場合

Webページの検索においてもそうですが、ユーザは通常、検索結果を上位から順に見ていきます。したがって、正解が1つの場合、最上位に来ていることが最も望ましい結果なのです。したがって、最上位に正解が来ている場合だけを数えて、その割合を出すということで評価することができます(これを正解率としましょう)。

これは実務上、あまりうまくいきません。例えば、検索エンジンAとBを比較したいとします。検索を10回行ったところ、正解率はどちらも0だった、ということが十分あり得るのです。しかしその内実は、Aでは、正解の文書が常に2位~3位に来ているのに対し、Bでは正解は常に10位以下、となっているかもしれません。この場合、Aの方が優れていると言えますが、正解率には反映されません。

そこで、「平均逆順位(MRR:Mean Reciprocal Rank)」を用います。これは、正解の順位の逆数 (*2)を点数として用いる指標です。1位なら1点、2位なら0.5点、と順位が下がるごとに点数が下がるのですが、下がり方が徐々に緩やかになる点が特徴です。つまり、1位と2位の差は大きいが、9位と10位は大して変わらない、ということを点数に織り込ませることができるのです。先の例に当てはめると、検索エンジンAは0.3~0.5点くらいのスコアになるのに対し、Bは0.1以下になり、Aが優れていることが数値ではっきりとわかります。

(*2) ここでは、1を順位で割った値。例:3位なら1/3、7位なら1/7。

正解が複数ある場合

例えば、あるプロジェクトに関する文書を一通り読んでおきたい場合、検索結果にはそのプロジェクトの関連文書がたくさん表示されることが期待されます。検索エンジンCでは1位に関連文書が表示され、2位以降には1つもないとします。他方、検索エンジンDでは、2位、5位、7位に関連文書が表示されるとします。この場合、Dの方が意図に合っていると考えられます。しかし、MRR(平均逆順位)では Cが1.0、Dが0.5となり、Cのスコアが高いのです。

このような場合に適するのは、「Precision@k(P@k)」と呼ばれるスコアです。まず、検索結果の上位何件くらいをチェックするかを決めます。そして、その中に入っている正解の割合を求めます。上位10件をチェックした値のことをP@10と表記します。先ほどの例におけるP@10は、Cが0.1、Dが0.3になり、Dのスコアが高くなります。

関連文書に対する網羅性を重視したい場合は、正解の文書のうち、検索結果の上位k件に出てきた割合である、「Recall@k(R@k)」 を見る方法もあります。しかし、これが適用できるケースはほとんどありません。おびただしい量の文書がある中で、正解である文書すべてを特定しておかねばならないからです。

評価体制も重要

検索の評価はつい感覚に頼ってしまうことも少なくありません。思いついたいくつかのキーワードを入れて試してみて、なんとなくこちらが良い……そういった意見を数人から集めて、決めてしまうというようなやり方です。

この方法のまずい点は2つあります。まず、思い付きのキーワードを入れてしまう点です。検索は意図によって評価指標が異なるため、意図の異なるキーワードを使ってしまうと、評価軸がぶれてしまうのです。ぶれた評価軸をもとに、検索の改善を行おうとしても、うまくいきません。次に、なんとなく良いという漠然とした基準を用いている点です。何が正解として出てくればよいのかをきちんと議論して決めなければ、やはり改善時に効果が測定できません。

評価軸を定めたうえで、継続的な改善に伴う性能向上を測定するためには、検索キーワードと正解の文書の組み合わせを一定数集めた検索評価用データセットの作成が必要です。これを作るには、実際に業務で検索をする方々に協力してもらう必要があります。データセットを作成するためだけに短期間に集中して検索を繰り返す方法もあれば、通常業務の中で時間をかけてデータを収集していく方法もあります。いずれにしても、評価のための体制づくりは、初期に行っておくことが望ましいと言えます。

終わりに

本稿で紹介した検索指標のほかにも、文書の重要度に基づいて評価する指標や全体の文書数が少ない場合に使いやすい指標などがあります。文書の性質、検索の意図、そして評価体制に合わせて、適切な評価指標を選択することが重要です。しっかりした評価基準ができていれば、その後さまざまな検索ツール・製品が出てきたときに容易に比較できるようになり、効果が得やすくなるのはもちろんですが、意思決定の際にも確かな根拠を得ることができるというメリットも出てくるものです。

▼シリーズ記事
生成しないAI、使っていますか?~検索をなんとかする~
生成しないAI、使っていますか?~社内用語をなんとかする~
生成しないAI、使っていますか?~分類でなんとかする~