生成AIにおける評価スコア算出手法の一覧
生成タスクにおける評価は単に「正解ラベルと一致しているか」ではありません。
正解も出力形式も多様であるため、評価指標もその他のタスク(分類・回帰など)に比べてたくさんあります。
それぞれの手法にメリットデメリットが存在しますので、紹介します。
1. BLEU
Bilingual Evaluation Understudyの略。
古くから使われているメジャーな指標であり、計算が軽量で実装も容易なためよく使用される手法。
方法は元々のテキストと生成したテキスト間のn-gram(1単語ずつ、2単語ずつ...)の一致率に基づいてスコアを算出します。
特にPrecision(適合率) に焦点を当てており、生成文のn-gramのうち、元の文に含まれるn-gramの割合を計算をします。
翻訳や要約といった、元の文と共通点が近いようなタスクで効果的です。
しかし表現の多様性を考慮できず、語順が違うだけでも評価としては下がってしまいます。
また、同じ意味で違う表現をしている時、似たような語彙に置き換えてる時にも評価が下がる傾向があります。
逆に不自然な文なのに語句の一致率が高ければスコアが高くなってしまうため注意が必要です。
2. ROUGE
Recall-Oriented Understudy for Gisting Evaluationの略。
生成文と元の文との間で一致するn-gram、連続する単語のシーケンス、または単語の集合の数をカウントすることで評価をする手法。
ROUGE-N(n-gramの一致を見る)、ROUGE-L(Longest Common Subsequenceベース)などバリエーションがいくつかあります。
以下の三つの指標を用いて計算を行います。
- Recall...元の文のn-gramのうち、生成文に含まれるn-gramの割合
- Precision...生成文のn-gramのうち、元の文に含まれるn-gramの割合(つまりRecallの逆)
- F1スコア...RecallとPrecisionの調和平均を算出したもの
n-gramの一致度をベースにスコアを出すので、直感的かついろんなタスクにも効果的です。
しかしBLEU同様に文脈や言い回しが変わってしまうと十分な評価がしにくくなってしまいます。
BLEUがPrecision(適合率)を重視しているのに対し、ROUGEはRecall(再現率)を重視していると言われます。
そのため「情報の網羅性(元の文に含まれる語句(n-gram)をどれだけ拾えてるか)」を重視した指標を算出するため、無駄に長い要約文の方がスコアが高くなってしまいがちです。
ROUGEのスコアだけに囚われて過剰に長い要約文を出してしまうような生成AIにならないようにすることが大事です。
3. METEOR
Metric for Evaluation of Translation with Explicit ORderingの略。
BLEUやROUGE同様に生成文と元の文の一致度を計算しますが、単に一致だけではなくて同義語や語順の違いも考慮したスコアを出してくれるのが大きな特徴です。
以下の要素を組み合わせることでそれを実現しています。
- 単語の一致...生成文と元の文で一致する語句をカウント
- 同義語の一致...同義語辞書を使用して同じ意味の語句をカウント
- 語形変化の一致...語幹解析を使用して語形変化が一致する語句をカウント
- 語順の考慮...最長一致部分列(LCS)を使用して語順の一致度を評価
方法は
- 再現率と適合率を算出
- 二つから調和平均を計算してFスコアを算出(この時再現率を重視させる重みつけをする)
- 語順の違いを考慮するためチャンクペナルティを適用し、文が大きく並び替えられていたらペナルティを付与
- Fスコアにペナルティを適用して最終的なMETEORスコアを算出
BLEUやROUGEより優れているように見えますが、同義語辞書が豊富に揃ってないと同義語マッチしにくくなってしまうので辞書依存になってしまいます。
また実装も複雑で計算コストも高いです。
4. BERTScore
Bidirectional Encoder Representations from Transformers Scoreの略。
生成文と参照文を大規模言語モデル(BERT)でベクトル化して、その類似度を算出します。
語順や言い回しを変えても、意味的な類似度を捉えてくれるのが大きな特徴で文脈を考慮したスコアを出すことができます。
異なる単語列でも類似の意味であれば高いスコアを出してくれます。
同義語や言い換えを簡単に評価できる点で、単純なn-gramベースの指標(BLEUやROUGE)に比べて柔軟なのがメリットです。
デメリットとして大規模言語モデルを活用するため計算のコストが高いのと、コサイン類似度を基にしているので評価結果の解釈が直感的ではありません。
5. QAGS
Question Answering based Generations Scoreの略。
生成されたテキストがどれだけ事実に忠実か(ファクトの正確性) を評価するための手法。
BLEU
やROUGE
といった、語彙の一致率・類似性といった表層的な評価ではなくて、「元の文章と事実整合性が取れているか」を評価することができます。
方法は
- 生成文から自動で質問を生成
- 生成文と元の文の両方から回答を抽出
- 生成文から作成した回答と元の文から生成した回答がどのくらい一致するかを比較
- 回答内容がほぼ同じであれば事実に忠実、一致しなければ要約文は誤ってる可能性が高いとする
上記を複数回行い、最終的にスコアを出します。
文字単位ではなく事実に基づいて評価するためハルシネーションを検出しやすいという利点があります。しかし質問を生成する際に要点を掴んだ質問文を生成できてないと意味がありません。
また、生成する質問の数もそれなりに必要です。
つまり質問生成モデル(QAモデル)の性能への依存度が高いのが少し欠点です。
6. Distinct-n
生成AIモデルが単調で繰り返しの多い文を出力するのを避けるために導入された指標で、単語の重複率を低減して、より多様な出力が求めれる際に活用する手法です。
ですのでChatbot・物語の生成・クリエイティブな発想など「多様性」が求められるタスクで有用です。
そもそもDistinct-n
とは生成文の中に含まれるユニークなn-gramの数を全体のn-gramで割った値を指します。つまり同じ単語があると値としては低くなって、豊富なバリエーションの単語があると高くなります。
実装も簡単で、色々な表現の生成をすることができるユーザー体験に富んだ生成AIモデルの作成に効果的です。
しかし肝心な「文の意味、正確性」を考慮しないため、スコアは高いんだけど文脈的に間違っているテキストが生成される可能性もあります。
あとは「多様性」が高いことが必ずしも良いことではないケースもあって、要件によっては定型的な表現でも十分な場合だってあるためこの指標だけを当てにはしない方がいいです。
人間評価
※こちらは自動評価手法ではありません。
どこまで数学的に、自動的に評価を行なったとしても完璧に評価指標を出すことはできません。
最終的には人の目で確認が必要になってきます。
「情報の正確さ」「情報の過不足」「自然さ」「読みやすさ」などを5段階で評価してもらいます。
どのように評価していくのが良いか
まずはいろんな観点の自動評価手法を用いて、多面的な評価を行う。
- 文字列一致ベースでの評価...BLEU、ROUGE、METEOR
- 意味ベースでの評価...BERT
- 事実、整合性での評価...QAGS
- 多様性での評価...Distinct-n
複数の手法でそれなりに安定したスコアが出てきたら、人による評価で細かい表現や言い回し、事実が記載されているか、専門用語が誤ってないかをチェックする。
まとめ
- BLEU...情報が欠落しても良いから無駄な情報を生成させたくない時
- ROUGE...冗長でも良いから重要な用語を欠落させたくない時
- METEOR...同義語辞書が豊富にあってBLEUより高い精度出したい
- BERTScore...意味的な類似性が求められる時
- QAGS...語句の一致より文の事実が重要な時
- Distinct-n...多種多様な表現で出力したい時
- 人間評価...コストは一番かかるが間違いない
Discussion