Zenn
🔖

モデルの品質を数値化 - BLEU、METEOR、ROUGE-L、CIDEr、SPICE、BERTScoreについて!

に公開

はじめに

自然言語処理(NLP)の分野は日々進化を続けています。翻訳、要約、画像キャプション生成など、さまざまなタスクでAIモデルが活躍する一方で、「その性能をどう評価するのか?」という課題は常に重要です。モデルの出力が「良い」のか「悪い」のかを数値で示すためには、タスクによって適切な評価指標が求められます。
例えば、「BERTScore」という指標は私自身も知っており、よく耳にしますが、それ以外にも「BLEU」「METEOR」「ROUGE-L」「CIDEr」「SPICE」など多くの評価指標が存在します。それぞれ何が違うのか?どんな場面で使えばいいのか?本記事では、これら6つの評価指標について、その特徴や具体例を解説します!

評価指標って何?

評価指標とは、簡単に言えばNLPモデルが生成したテキスト(例: 翻訳文や要約文)がどれだけ「正しい」または「自然」なのかを測るための基準のことを示します。これらの指標は、モデルの出力と正解データを比較し、その一致度や品質を数値化します。ただし、それぞれの指標には得意分野や限界があります。

それぞれの評価指標について

BLEU(Bilingual Evaluation Understudy)

BLEUは、機械翻訳の分野で最も古くから使われている評価指標です。生成されたテキストと参照テキスト間でn-gram(一連の単語列)の一致率を測ります。nを小さく設定すると単純な単語一致を見るため計算が高速になるが、意味的な情報が少なくなります。一方で、nを大きく設定すると文脈や構造的な情報を捉えることができるが、計算コストが増大します。

特徴

  • メリット
    計算が簡単で、翻訳タスクで使いやすい。
  • デメリット
    意味や文法の正確性を考慮しないため、単語が一致していても不自然な翻訳に高スコアを与える場合がある。
  • スコア範囲
    0 ~ 1

計算式

BLUE= \frac{\text{生成文と参照文で一致したn\text{-}gram数}}{\text{生成文のn\text{-}gram数}}

具体例

  • 生成文
    The cat is on the mat.
  • 参照文
    The cat sat on the mat.

例えば2-gram(n=2)とすると、隣り合う2つの単語が一致するかどうかを評価する。5つの候補(「The cat」、「cat is」、「is on」、「on the」、「the mat」)の中で、3つ(「The cat」、「on the」、「the mat」)が一致するため、計算式からBLUE=3/5=0.6と計算できる。

METEOR (Metric for Evaluation of Translation with Explicit ORdering)

METEORはBLEUよりも柔軟性が高く、同義語や語形変化も考慮します。単語レベルで一致を確認し、ステミング(語形変化の統一)や同義語マッチングを行い、精度(Precision)と再現率(Recall)の調和平均(Fスコア)を用いてスコアを算出します。

特徴

  • メリット
    BLEUよりも人間評価との相関性が高く、同義語や語順の違いにも柔軟に対応できる。
  • デメリット
    計算コストが高く、アルゴリズムが複雑である。
  • スコア範囲
    0 ~ 1

計算式

精度(Precision): P = \frac{\text{生成文と参照文で一致した単語数}}{\text{生成文の単語数}}
再現率(Recall): R = \frac{\text{生成文と参照文で一致した単語数}}{\text{参照文の単語数}}
加重調和平均(F値): F_{\text{mean}} = \frac{10 \cdot P \cdot R}{P + 9R}
単語順序ペナルティ : \text{penalty} = 0.5 \cdot \left( \frac{\text{順序不一致単語数}}{\text{一致単語数}} \right)^3
METEOR = F_{\text{mean}} \cdot (1 - \text{penalty})

具体例

  • 生成文
    The dog happily ran under the tree.
  • 参照文
    The happy dog ran under a tree.

一致単語は「The」、「dog」、「ran」、「under」、「tree」の5種類である。
したがって計算式からP=5/7≒0.7143、R=5/7≒0.7143、Fmean≒0.7143、penalty=0.5・(8/125)=0.032、METEOR=0.7143・(1-0.032)=0.6912となる。

ROUGE-L (Recall-Oriented Understudy for Gisting Evaluation - Longest Common Subsequence)

ROUGE-Lは、生成されたテキストと参照テキスト間の最長共通部分列(LCS: Longest Common Subsequence)に基づいて評価を行います。要約タスクでよく使用される指標で、文全体の構造的な一致度を測定します。

特徴

  • メリット
    文全体の流れや構造を評価できるため、要約タスクとの相性が良い。
  • デメリット
    意味的な正確性や文法の正確性は考慮されない。
  • スコア範囲
    0 ~ 1

計算式

R_{\text{LCS}} = \frac{\text{LCS長}}{\text{参照文の単語数}}
P_{\text{LCS}} = \frac{\text{LCS長}}{\text{生成文の単語数}}
ROUGE-L = \frac{(1 + \beta^2) \cdot R_{\text{LCS}} \cdot P_{\text{LCS}}}{R_{\text{LCS}} + \beta^2 \cdot P_{\text{LCS}}}

\beta は再現率を重視するための重み付け係数であり、通常 \beta=1とすることが多い。

具体例

  • 生成文
    The cat was under the bed.
  • 参照文
    The tiny little cat was found under the big funny bed.

生成文と参照文を比較すると「The」、「cat」、「was」、「under」、「the」、「bed」が順序を保って一致しているので、LCS長は6になる。
したがって計算式からRLCS=6/11≒0.5455、PLCS=6/6=1.0、ROUGE-L≒0.7059と計算できる。

CIDEr (Consensus-based Image Description Evaluation)

CIDErは、画像キャプション生成タスク向けに設計された指標で、生成文と参照文間のTF-IDFベースのn-gram類似度を測定します。

特徴

  • メリット
    キャプション生成タスクで人間評価との相関性が高く、重要単語を強調して評価できる。
  • デメリット
    他分野への適用が難しく、計算コストが高い。
  • スコア範囲
    0 ~ 無限大

計算式

\text{CIDEr}_n = \frac{1}{M} \sum_{j=1}^{M} \frac{\boldsymbol{g}(c) \cdot \boldsymbol{g}(s_j)}{\|\boldsymbol{g}(c)\| \|\boldsymbol{g}(s_j)\|}
\begin{aligned} & c: \text{生成キャプション} \\ & s_j: \text{参照キャプション(} j = 1, 2, \dots, M \text{)} \\ & \boldsymbol{g}(c): \text{生成キャプションのTF-IDFベクトル} \\ & \boldsymbol{g}(s_j): \text{参照キャプションのTF-IDFベクトル} \end{aligned}
\text{TF-IDF}(w) = \text{TF}(w) \cdot \log\left( \frac{N}{\text{DF}(w)} \right)
\begin{aligned} & \text{TF}(w): \text{単語} w \text{の文書内出現回数(非正規化)} \\ & N: \text{全参照キャプション数} \\ & \text{DF}(w): \text{単語} w \text{が出現する参照キャプション数} \end{aligned}

具体例

  • 生成文
    A man cycling on a street.
  • 参照文1
    A man riding a bike on the street.
  • 参照文2
    A person cycling down a road.

まず、TF-IDFスコアを計算すると下記の表のようになります。

単語 DF(出現文数) 生成キャプションのTF-IDF 参照1のTF-IDF 参照2のTF-IDF
man 1
\log\left(\frac{2}{1}\right) \approx 0.693
0.693
0
cycling 1
0.693
0
0.693
street 1
0.693
0.693
0
riding 1 0
0.693
0
person 1 0 0
0.693

続いて、計算式のΣ以降で定義されているコサイン類似度を計算します。

  • 生成文と参照文1に関して
\begin{aligned} \text{類似度} &= \frac{\boldsymbol{g}(c) \cdot \boldsymbol{g}(s_1)}{\|\boldsymbol{g}(c)\| \|\boldsymbol{g}(s_1)\|} \\ &= \frac{(0.693 \times 0.693) + (0.693 \times 0.693)}{\sqrt{0.693^2 + 0.693^2 + 0.693^2} \cdot \sqrt{0.693^2 + 0.693^2}} \\ &= \frac{0.480 + 0.480}{\sqrt{1.440} \cdot \sqrt{0.960}} \\ &= \frac{0.960}{1.200 \times 0.980} \\ &\approx 0.816 \end{aligned}
  • 生成文と参照文2に関して
\begin{aligned} \text{類似度} &= \frac{\boldsymbol{g}(c) \cdot \boldsymbol{g}(s_2)}{\|\boldsymbol{g}(c)\| \|\boldsymbol{g}(s_2)\|} \\ &= \frac{0.693 \times 0.693}{\sqrt{0.693^2 + 0.693^2 + 0.693^2} \cdot \sqrt{0.693^2}} \\ &= \frac{0.480}{\sqrt{1.440} \cdot 0.693} \\ &= \frac{0.480}{1.200 \times 0.693} \\ &\approx 0.577 \end{aligned}

したがってCIDEr=(0.816+0.577)/2≒0.6965となる。

SPICE (Semantic Propositional Image Caption Evaluation)

SPICEは、生成キャプションと参照キャプション間の意味的整合性を評価する指標であり、オブジェクト・属性・関係性をグラフ構造で解析し、意味的な正確性を測定します。

特徴

  • メリット
    人間の意味理解に近い評価が可能で、画像キャプション生成タスクで高い信頼性を発揮。
  • デメリット
    構文解析とグラフマッチングの計算コストが高い。
  • スコア範囲
    0 ~ 1

計算式

SPICE = F_1 = \frac{2PR}{P + R}
\begin{aligned} P &= \frac{\text{生成キャプション内の一致要素数}}{\text{生成キャプションの全要素数}} \\ R &= \frac{\text{生成キャプション内の一致要素数}}{\text{参照キャプションの全要素数}} \end{aligned}

具体例

  • 生成文
    A red apple and a banana on the table.
  • 参照文
    A red apple is on a wooden table.

まずは生成文の要素数を計算すると以下のようになる。

  • オブジェクト: apple, banana, table → 3要素
  • 属性: red(apple) → 1要素
  • 関係: on(apple, table), on(banana, table) → 2要素

合計: 3 + 1 + 2 = 6要素

続いて参照文の要素数を計算すると以下のようになる。

  • オブジェクト: apple, table → 2要素
  • 属性: red(apple), wooden(table) → 2要素
  • 関係: on(apple, table) → 1要素

合計: 2 + 2 + 1 = 5要素

生成文の要素と参照文の要素で一致しているものは「apple」,「table」,「red(apple)」,「 on(apple, table)」の4つであるため、P=4/6≒0.6667、R=4/5=0.8となる。したがってSPICE=(2・0.6667・0.8)/(0.6667+0.8)≒0.7273と計算できる。

BERTScore

BERTScoreは、事前学習済み言語モデル(BERT)の文脈埋め込みを用いて、生成文と参照文の意味的類似度を測定します。

特徴

  • メリット
    文脈やパラフレーズを考慮でき、人間評価との相関性が非常に高い。
  • デメリット
    計算リソースを多く消費し、解釈が難しい。
  • スコア範囲
    -1 ~ 1(通常は正規化され0 ~ 1)

計算式

\begin{aligned} \text{適合率(P)} &= \frac{1}{|y|} \sum_{y_i \in y} \max_{x_j \in x} \boldsymbol{y_i}^\top \boldsymbol{x_j} \\ \text{再現率(R)} &= \frac{1}{|x|} \sum_{x_j \in x} \max_{y_i \in y} \boldsymbol{x_j}^\top \boldsymbol{y_i} \\ BERTScore = F_1 &= \frac{2PR}{P + R} \end{aligned}
\begin{aligned} &\boldsymbol{x_j}: \text{参照文のトークン埋め込みベクトル} \\ &\boldsymbol{y_i}: \text{生成文のトークン埋め込みベクトル} \\ &|x|: \text{参照文のトークン数} \\ &|y|: \text{生成文のトークン数} \end{aligned}

具体例

  • 生成文
    She bought sneakers for $30 and a hat.
  • 参照文
    She purchased affordable shoes costing $30.

以下の表に生成文と参照文のトークンレベルのコサイン類似度を示します。

トークンペア(生成文 ↔ 参照文) コサイン類似度
bought ↔ purchased 0.91
sneakers ↔ shoes 0.85
$30 ↔ $30 0.99
hat ↔ (一致なし) 0.00

このコサイン類似度を用いて、P=(0.91+0.85+0.99)/4≒0.6875、R=(0.91+0.85+0.99)/3≒0.9176となる。したがってBERTScore≒(2・0.6308)/1.6024≒0.786と計算できる。

まとめ

今回紹介した6つの評価指標のまとめになります。

指標 得意タスク 評価の焦点 メリット デメリット
BLEU 機械翻訳 n-gramの一致率 計算が高速・シンプル 意味や文脈を無視
METEOR 翻訳・要約 同義語・語順の柔軟性 人間評価との相関性が高い 計算コスト高
ROUGE-L 要約 文構造(LCS) 文の流れを評価 意味的詳細を無視
CIDEr 画像キャプション TF-IDFベースのn-gram類似度 重要単語を強調 他分野への適用が困難
SPICE 画像キャプション 意味的整合性(オブジェクト) 人間らしい評価が可能 計算コストが極めて高い
BERTScore 翻訳・要約 文脈的類似度 パラフレーズを考慮・高精度 解釈が難しくリソース消費大

おわりに

評価指標を選ぶ際には、タスクの特性や目的に応じて最適な指標を選択することが重要だと思います。ただし、どの指標も万能ではなく、それぞれに得意分野と限界があります。そのため、複数の指標を組み合わせて総合的に評価する必要があります。本記事が、みなさんの研究や開発における評価指標選びの一助となれば幸いです。

ヘッドウォータース

Discussion

ログインするとコメントできます