RAG・検索基盤

検索評価とは|元の語で測ったら4つの構成が全部同じ46.7%、言い換えで測ったら33.3%から53.3%に開いた

検索評価とは何をする作業なのか問いの選び方で結論は変わるのかどの指標で決めればよいのか

検索の構成を変えたとき、良くなったかどうかは数字で比べないと分かりません。ところが、比べ方そのものに落とし穴があります。

4つの構成を測ったところ、元の語で聞いた問いでは全部が同じ46.7%でした。言い換えで聞くと33.3%から53.3%まで開きます。

この記事の要点

  • 元の語で測ると4つの構成が全部46.7%で差が出ない
  • 言い換えで測ると33.3%から53.3%に開く
  • 元の語では適合率とnDCGで勝者が分かれた
  • 問いの集め方を決めずに測ると比べたつもりで比べていない

元の語で測ったら4つの構成が全部同じ46.7%、言い換えで測ったら33.3%から53.3%に開いた

4つの構成を2種類の問いで実際に測りました。元の語では差が出ず、言い換えでは20ポイント開きます。

検索評価で何が結論を左右するのかを、実際に測って確かめました。用意したのは4つの構成と、性質の違う問い5件ずつです。

検索も評価も本当に実行しています。構成の中身も問いも正解もコードに書いてあり、そこを変えれば結果も変わります。

javascript
const configs = {
  '語の一致だけ':      (q) => overlap(q).map((x) => x.i),
  'BM25':             (q) => bm25(q).map((x) => x.i),
  'BM25+並べ直し':    (q) => { /* 上位6件を語の近さで並べ直す */ },
  'BM25+言い換え補完': (q) => bm25(expand(q)).map((x) => x.i),
};
text
元の語で聞いた場合(問い 5件)

構成                  適合率@3  再現率@3   nDCG@3
語の一致だけ                  46.7%     90.0%    65.2%
BM25                    46.7%     90.0%    77.5%
BM25+並べ直し               46.7%     90.0%    69.8%
BM25+言い換え補完             46.7%     90.0%    77.5%

  適合率で選ぶなら: 語の一致だけ
  nDCGで選ぶなら:   BM25
  指標で結論が分かれる

言い換えで聞いた場合(問い 5件)

構成                  適合率@3  再現率@3   nDCG@3
語の一致だけ                  33.3%     60.0%    48.1%
BM25                    40.0%     70.0%    54.2%
BM25+並べ直し               40.0%     70.0%    54.2%
BM25+言い換え補完             53.3%     90.0%    78.8%

  適合率で選ぶなら: BM25+言い換え補完
  nDCGで選ぶなら:   BM25+言い換え補完
  指標で結論が一致する

上の表の適合率の列を見てください。4つとも46.7%で並んでいます。この問いでは、どの構成を選んでも同じという結論になります。

差が出ない問いで測っている

再現率も4つとも90.0%です。2つの指標が、4つの構成をまったく区別していません

理由は問いの性質にあります。文書の言葉づかいをそのまま使った問いでは、どの構成でも同じ文書が上位に来ます。差が出ないのは構成が同等だからではなく、問いが差を引き出せていないからです。

言い換えで測ると開く

下の表では33.3%から53.3%まで開きました。20ポイントの差です。同じ4つの構成を、同じ指標で測っています。

違うのは問いだけです。利用者が文書の言葉づかいを知らずに聞いた場面を再現すると、言い換えを補う構成が明確に強いという結論になります。

上の表では勝者が分かれた

もうひとつ見ておきたいのが、上の表の結論です。適合率で選ぶと「語の一致だけ」、nDCGで選ぶと「BM25」になりました。

適合率が並んでいるので、先頭に来たものが選ばれただけです。差のない指標で順位を付けると、意味のない勝者が出ます。指標の性質はnDCGの記事で扱っています。

差が出ないのは構成が同等だからではない。問いが引き出せていない。

元の語で聞く・語の一致だけ適合率@346.7上位から外れた分53.3100%言い換えで聞く・語の一致だけ33.366.7100%言い換えで聞く・言い換え補完53.346.7100%問い5件ずつでの実測。元の語で聞いた場合は4構成すべてが46.7%で並んだ。
図1 ── 問いの種類ごとの、上位3件の適合率
出典Elasticsearch Reference「Ranking evaluation」2026-08-18 確認
It is important to note that one set of document ratings is needed per test query, and that the relevance judgements are based on the information need of the user that entered the query.
原文Elasticsearch Reference「Ranking evaluation」 この内容の有効期限2027-02-18

検索評価とは何をする作業なのか

問いと正解の組をそろえ、構成ごとに同じ指標で測ります。正解を用意する作業が本体になります。

検索評価は、問いと正解の組を用意して、構成ごとに同じ指標で測る作業です。手を入れた結果が良くなったかを判定するために置きます。

そろえるもの

  1. 問い。実際に入力されたものを集める
  2. 正解。問いごとに、どの文書が答えかを決める
  3. 指標。適合率、再現率、順位を見るもの
  4. 構成。比べたいもの。2つ以上

手間がかかるのは2番目です。Elasticsearchの説明でも、検索の要求に対する文書の関連度を表す評価の集合が必要だとされています。

正解は問いごとに要る

同じ文書でも、問いが違えば正解かどうかが変わります。同じ文書では、試験の問いごとに1組の評価が必要で、関連度の判断はその問いを入力した利用者が何を必要としていたかにもとづくと明記されています。

つまり文書に「重要」といった印を付けても評価にはなりません。問いとの組で決まります

いつ測るか

測る場面は決まっています。構成を変える前と後です。前を測っていなければ、後の数字が良いのか悪いのか判定できません。

並べ直しを入れて数字が下がった例はリランキングの記事で扱っています。前を測っていたから、下がったと分かりました。

余談 問いを2種類そろえる

測ってみて効いたのは、文書の言葉づかいと同じ問いと、違う問いを分けて用意することでした。前者だけだと4つの構成が横並びになり、何も判断できません。後者を足した時点で、初めて20ポイントの差が見えました。

出典Elasticsearch Reference「Ranking evaluation」2026-08-18 確認
A set of document ratings that represent the documents' relevance with respect to a search request.
原文Elasticsearch Reference「Ranking evaluation」 この内容の有効期限2027-02-18

検索評価でよくある失敗と、その直し方

差の出ない問いで測り、横並びの数字から勝者を選ぶことです。問いを見直さないと解けません。

検索評価の失敗は、測っているのに何も分かっていないという形で起きます。数字は出ているので、失敗したことに気づきにくくなります。

横並びから勝者を選ばない

前の節の上の表では、適合率が4つとも46.7%でした。この状態で「いちばん良い構成」を選ぶと、順番が先頭のものが選ばれるだけです。

実際、その表では適合率で「語の一致だけ」が選ばれています。下の表では最下位の構成です。

差が出ないときにやること

  1. 問いを見直す。差が出る場面を含んでいるか
  2. 指標を足す。順位を見る指標なら差が出ることがある
  3. 構成の差を確かめる。本当に同じ結果を返しているのか
  4. 件数を増やす。同じ性質の問いを増やしても差は出ない

4番目が効かないことは、前の節が示しています。5件を50件にしても、性質が同じなら4つとも46.7%のままです。

指標の意味を取り違えない

指標の読み方にも注意が要ります。Elasticsearchでは、上位k件に関連する結果がいくつ入ったかを測る指標が用意されていると説明されています。

前の節の表でも、再現率は元の語で90.0%、言い換えで60.0%から90.0%と動いています。適合率が横並びでも、再現率では差が出ていました。1つの指標だけを見ると、この差も見落とします。

数字が出ていても、差が出ていなければ何も分かっていない。

充足 2 / 4差が出る問いを含んでいる元の語だけだと4構成が46.7%で並ぶ。言い換えで20ポイント開いた指標を複数並べて見ている適合率が横並びでも、再現率とnDCGでは差が出ていた横並びの数字から勝者を選んでいる適合率で選ばれた構成が、別の問いでは最下位だった差が出ないので件数を増やしている同じ性質の問いをいくら増やしても差は出ない。種類を変える4構成・問い5件ずつでの実測にもとづく。問いの種類を変えると結論が入れ替わった。
図2 ── 検索評価の点検項目
出典Elasticsearch Reference「Ranking evaluation」2026-08-18 確認
Recall at K (R@k) This metric measures the total number of relevant results in the top k search results.
原文Elasticsearch Reference「Ranking evaluation」 この内容の有効期限2027-02-18

よくある質問

なぜ元の語では差が出ないのですか
文書の言葉づかいをそのまま使った問いでは、どの構成でも同じ文書が上位に来るためです。この計測では上位3件の顔ぶれが変わりませんでした。
どんな問いを集めればよいですか
実際に利用者が入力した語です。文書の言葉づかいと違う語で聞かれている問いこそ、構成の差が出る場面になります。
指標が食い違ったらどうしますか
測っているものが違うだけです。上位に出したいならnDCG、上位3件に不要な結果が混じるのを避けたいなら適合率を見ます。
何件の問いを用意すればよいですか
件数より中身です。この計測は5件ずつですが、種類を分けたことで差が見えました。同じ性質の問いを増やしても差は出ません。

まとめ

  • 検索評価は構成を同じ問いで測って比べる作業
  • 元の語で測ると4構成が全部46.7%
  • 言い換えで測ると33.3%から53.3%
  • 結論を決めるのは問いの選び方

今日から始められること

  1. 利用者が実際に入力した語を集める
  2. 文書の言葉づかいと同じ問いと、違う問いに分ける
  3. 構成ごとに、両方の問いで測る
  4. 差が出なかったほうの問いは、評価に使わない

実務で組んだ検索評価のワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る