0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

回帰・生成・検索タスクの評価指標まとめ ― MSEからBLEU/ROUGE、MAP@Kまで

0
Last updated at Posted at 2026-07-03

この記事は、書籍『Kaggleではじめる大規模言語モデル入門』の輪読会で学んだテーマを、自分の言葉で整理・深掘りしたものです。

はじめに

前回の記事では分類タスクの評価指標を整理しました。今回はその続きとして、

  • 回帰 :MSE / MAE / RMSE / RMSLE / 相関係数 / QWK
  • 生成 :BLEU / ROUGE
  • 検索・推薦 :Recall@K / MAP@K
  • そして「 損失関数と評価指標はなぜ一致しないのか

を扱います。NLP のタスクは、突き詰めると分類・回帰・生成・検索/推薦のいずれか(またはその組み合わせ)に帰着することが多く、「このタスクはどれに当たるか?」→「ならば評価指標はこれ」という思考の型を持っておくと、コンペでも実務でも見通しが良くなります。

回帰タスクの評価指標

回帰は連続値を予測するタスクです。分類が「どのラベルか」を当てるのに対し、回帰は「どれくらいか」を当てます。NLP での例を挙げると、

  • レビュー文から評価スコア(★1〜5)を予測する
  • 記事のタイトルから PV 数を予測する
  • 作文から採点スコアを予測する(自動採点)

などがあります。評価指標はどれも「予測値 $\hat{y}_i$ と真の値 $y_i$ のズレの測り方」の違いです。

MSE / MAE / RMSE

\mathrm{MSE} = \frac{1}{n}\sum_{i=1}^{n}\bigl(y_i-\hat{y}_i\bigr)^2, \qquad \mathrm{MAE} = \frac{1}{n}\sum_{i=1}^{n}\bigl|y_i-\hat{y}_i\bigr|, \qquad \mathrm{RMSE} = \sqrt{\mathrm{MSE}}
  • MSE(平均二乗誤差) :誤差を2乗するため、 大きな外れに敏感 。外れ値が1つあるだけで値が跳ね上がる
  • MAE(平均絶対誤差) :誤差を等しく扱うため、 外れ値にロバスト
  • RMSE :MSE の平方根をとることで、 目的変数と同じ単位 で解釈できる(「平均して±3点くらいズレる」のような読み方ができる)

mse-vs-mae.png

誤差 $e$ に対するペナルティの形を比べると、二乗誤差(青)は誤差が大きい領域で急激に立ち上がるのに対し、絶対誤差(オレンジ)は直線的に増えるだけです。
MSE が外れ値に敏感で、MAE がロバストである理由はこの形の違いにあります。

MSE 最小化は平均値の予測、MAE 最小化は中央値の予測に対応する、という性質も覚えておくと使い分けの指針になります。

RMSLE:相対誤差を見る

\mathrm{RMSLE} = \sqrt{\frac{1}{n}\sum_{i=1}^{n}\bigl(\log(1+y_i)-\log(1+\hat{y}_i)\bigr)^2}

対数をとってから RMSE を計算する指標で、 比率(相対誤差)を重視 します。
PV 数の予測のように値のスケールが桁で変わるタスクでは、「100万PVの記事で10万ズレる」より「100PVの記事で10万ズレる」ほうを重く罰したい。
RMSLE はそれを指標に反映できます。

PCC:相関の強さを見る

\mathrm{PCC} = \frac{\sum_{i=1}^{n}(y_i-\bar{y})(\hat{y}_i-\bar{\hat{y}})} {\sqrt{\sum_{i=1}^{n}(y_i-\bar{y})^2}\sqrt{\sum_{i=1}^{n}(\hat{y}_i-\bar{\hat{y}})^2}}

ピアソンの積率相関係数は、予測値と真値の 線形な相関の強さ を測ります。
誤差の絶対量ではなく傾向の一致を見るため、AUC と同様に予測値のスケールに鈍感で、アンサンブルしやすい指標です。

QWK:順序のある離散値の指標

★1〜5 の採点のように 順序のある離散値 の予測は、分類とも回帰とも捉えられます。
ここで使われるのが QWK(Quadratic Weighted Kappa、二次重み付きカッパ係数) です。

ポイントは「★1を★5と間違える」のは「★1を★2と間違える」より重い、という ズレの大きさを2乗で重み付け して一致度を測ることです。
値はおおむね $-1$〜$1$ の範囲をとり、1 で完全一致、0 で偶然の一致と同程度を意味します。
エッセイ自動採点系のコンペで頻出の指標です。

生成タスクの評価指標

生成タスクは、最終的な出力が テキスト であるタスクです。入力は何でもありえます。

入力 出力 タスク例
テキスト テキスト 機械翻訳、要約、質問応答
音声 テキスト 音声認識、議事録作成
画像 テキスト 画像キャプション生成
表データ テキスト 分析レポートの自動生成

正解が一意か、複数か

生成タスクの評価を考えるとき、最初に確認すべきは「正解がほぼ一意に定まるか」です。

タイプ 評価
正解がほぼ一意 音声認識、OCR、数式の書き起こし 正解文字列との一致度で機械的に評価できる
正解が複数存在 翻訳、要約、対話、文章生成 評価指標の設計自体が難しい

「良い要約」や「自然な翻訳」は何通りも存在するため、単純な文字列一致では評価できません。
生成 AI の評価が今も学術的にホットな課題であり続けているのは、この「正解の多様性」が根本原因です。

BLEU と ROUGE:n-gram の重なりで測る

古典的かつ今も広く使われるのが、参照文(人手で用意した正解例)と生成文の n-gram の重なり で測る指標です。

指標 主な用途 ベースの考え方
BLEU 機械翻訳 n-gram の 適合率 (生成文の n-gram のうち参照文にも出る割合)+短すぎる出力へのペナルティ
ROUGE 要約 n-gram の 再現率 (参照文の n-gram のうち生成文がカバーする割合)

なぜ翻訳は適合率で、要約は再現率なのかは、それぞれで起こりやすい失敗を考えると理解しやすくなります。

  • 翻訳の典型的な失敗は「余計なことを言う・でたらめを混ぜる」→ 生成文側の正確さ(適合率)を見たい
  • 要約の典型的な失敗は「重要な情報を落とす」→ 参照文側のカバー率(再現率)を見たい

簡単な例で確認します。参照文と生成文を単語分割したとします。

参照文: 猫 が ソファ で 寝て いる
生成文: 猫 が ソファ で 眠って いる

1-gram で見ると、生成文の6語のうち5語(猫/が/ソファ/で/いる)が参照文に含まれるので適合率は 5/6。参照文の6語のうち5語がカバーされているので再現率も 5/6 です。
しかし「寝て」と「眠って」は意味がほぼ同じにもかかわらず不一致扱いです。
これが表層一致指標の限界で、

  • 言い換えに弱い (同義語を別物として数える)
  • 語順の入れ替えに弱い (n を大きくすると特に)
  • 意味が合っていてもスコアが低く出ることがある

という弱点につながります。
近年は埋め込みベースの BERTScore や、LLM に評価させる LLM-as-a-Judge など、意味レベルの評価手法も広く使われるようになっています。

検索・推薦タスクの評価指標

検索・推薦は、大量の候補から 関連するもの・好みに合うものを上位に並べる タスクです。

  • 検索 :クエリに関連する文書を順位付けする(検索エンジン)
  • 推薦 :ユーザーに合いそうなアイテムを提示する(EC サイトのレコメンド)

LLM の文脈では、 RAG(検索拡張生成)の検索部分 がまさにこのタスクであり、重要度が一気に上がりました。
ユーザーが実際に見るのは上位数件〜数十件だけなので、 上位 K 件の品質を評価する指標 を使います。

Recall@K

\mathrm{Recall@K}=\frac{\bigl|\text{正解アイテム}\cap \text{上位 } K \text{件}\bigr|}{\bigl|\text{正解アイテム}\bigr|}

上位 K 件の中に、正解アイテム全体のうちどれだけが含まれているかを測ります。
K 件以内に入ってさえいれば順位は問わない のが特徴です。
RAG では「後段の LLM が候補の中から必要な情報を選んでくれる」ため、まず Recall@K を確保することが最優先になります。

MAP@K

順位まで評価したいときに使うのが MAP@K(Mean Average Precision at K) です。
1つのクエリに対する AP(Average Precision)を計算し、全クエリで平均します。

AP は「正解を引き当てた各順位における Precision の平均」です。
例として、K=5 の検索結果のうち 1位・3位・4位が正解(正解は全部で3件)だったとします。

順位 正解? その時点の Precision
1 1/1 = 1.00
2 ×
3 2/3 ≈ 0.67
4 3/4 = 0.75
5 ×
\mathrm{AP@5} = \frac{1}{3}\left(\frac{1}{1} + \frac{2}{3} + \frac{3}{4}\right) \approx 0.81

同じ3件の正解でも、順位が 3・4・5位に沈むと AP は $\frac{1}{3}(1/3 + 2/4 + 3/5) \approx 0.48$ まで下がります。
同じものを当てていても、上位に並べたほうが高く評価される ──これが MAP の本質です。
人間が直接結果を見る検索・推薦では、Recall@K より MAP@K のほうが体験に即した指標になります。

損失関数 ≠ 評価指標

最後に、すべてのタスクに共通する重要な論点を扱います。
学習時に最小化する関数(損失関数)と、良し悪しを測る評価指標は、必ずしも一致しません

  • 損失関数 :勾配降下法で学習するため、 微分可能 でなければならない
  • 評価指標 :人間が見たい「良さ」を表せばよく、微分不可能でも閾値依存でも構わない

たとえば F1 は「閾値でラベルに変換 → 混同行列を集計」という離散的な操作を含むため微分できません。AUC も順序に基づく指標なので同様です。

そこで実務では次の構図をとります。

学習(最適化)              評価(採点)
交差エントロピーを最小化  →  F1 / AUC / MAP@K で採点
(微分可能な代理損失)       (本当に見たい指標)

代理の損失で学習したモデルの出力を、 閾値調整や後処理で評価指標に寄せる のが定石です。

たとえば

  • マクロ F1 が指標なら、クラスごとに予測確率の閾値を検証データで最適化する
  • QWK が指標なら、回帰で学習してから区切り位置(★1と★2の境界など)を最適化する

「与えられた評価指標に対して、損失関数と後処理をどう設計するか」は Kaggle 的な工夫のしどころであり、同時に実務でも効く汎用スキルです。

まとめ

  • 回帰指標は「ズレの測り方」の違い。外れ値に敏感な MSE、ロバストな MAE、単位が解釈しやすい RMSE、相対誤差の RMSLE、順序付き離散値の QWK
  • 生成タスクは「正解が一意か複数か」で難易度が激変する。BLEU(翻訳・適合率)/ ROUGE(要約・再現率)は手軽だが言い換えに弱い
  • 検索・推薦は上位 K 件を評価する。含まれていればよい Recall@K、順位まで見る MAP@K。RAG の検索品質評価にも直結
  • 損失関数は微分可能な「代理」であり、評価指標とは別物。閾値調整・後処理で評価指標に寄せる

次回はテーマを変えて、テキストを数値ベクトルに変換する伝統的手法(BoW から word2vec まで)の進化を追います。

参考

シリーズの他の記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?