今回の論文
今回は、Tianyi Zhang、Varsha Kishore、Felix Wu、Kilian Q. Weinberger、Yoav Artziによる「BERTScore: Evaluating Text Generation with BERT」を取り上げます。2019年4月21日にarXivで初版が公開され、ICLR 2020で発表された論文です。公開元はarXiv、研究分野は自然言語生成の自動評価と文脈付き表現です。記事では原論文のv3本文を参照しています。
選んだ理由は、AIの回答が「模範解答と文字列として違う」ことと「内容が違う」ことを分けて考えるための、具体的な計算方法を示しているからです。生成モデルを改善するときだけでなく、モデル更新や入力圧縮による品質変化を測る土台にもなります。
どんな技術か
BERTScoreは、生成された文章と、人が用意した参照文を比較する評価指標です。両方の文をBERTなどの言語モデルへ別々に入力し、文中の各トークンについて、相手側の文で最も意味が近いトークンを探します。その近さを集約して、適合率・再現率・F1を求めます。
例えば「利用開始には管理者の承認が必要です」と「使い始める前に管理者に許可をもらってください」は、表現が異なっても内容は近いです。これは仕組みを説明するための例であり、実測したスコアではありません。BERTScoreは、文字列の完全一致を超えて、このような対応を捉えることを目指します。
ただし、意味の近さは、事実の正しさや指示を満たしたことの証明にはなりません。BERTScoreは参照文との比較を担う部品として使い、数値や条件の一致は別に確認する必要があります。
課題
生成文には、正しい表現が一つしかないとは限りません。同じ手順の説明でも、語句、語順、文の区切り方は変わります。BLEUやROUGEのように語句の重なりを使う指標では、適切な言い換えが少なく評価されることがあります。
逆の問題もあります。同じ単語が多く含まれていても、主語と目的語、原因と結果、出発地と目的地が逆なら意味は変わります。局所的な単語列だけを照合すると、こうした重要な違いを十分に捉えられない場合があります。
実際の開発では、プロンプトを少し変えただけで回答の書き方が変わります。文字列一致だけを見ていると、有益な変更を品質低下と誤認する可能性があります。一方、人手ですべてを読み直すのは負担です。参照文の内容と生成文の内容を自動で比較し、人が確認すべき例を見つけやすくすることが課題です。
用語解説
- 参照文と候補文
- 参照文は比較の基準となる回答や翻訳、候補文は評価したい生成結果です。BERTScoreは両者の対応を測るため、参照文の品質と対象範囲が評価の前提になります。
- 文脈付き埋め込み
- 周囲の語句を踏まえて計算した、各トークンのベクトル表現です。同じ単語でも文脈によって異なるベクトルになるため、表面上の一致より柔軟な照合ができます。
- コサイン類似度
- ベクトルの方向の近さを測る値です。BERTScoreでは参照側と候補側の全トークン間で計算し、各トークンの最も近い相手を選ぶために使います。
- 適合率・再現率・F1
- 候補側を起点とした照合の平均が適合率、参照側を起点とした平均が再現率です。F1は両者の調和平均です。ここでの値は連続的な類似度の集約であり、正解トークンを数えた割合ではありません。
- IDF(逆文書頻度)
- 多くの文に出る語より、限られた文に出る語を重視する重みです。BERTScoreでは参照文集合から求め、内容を特徴付けるトークンへ評価の比重を寄せるために使えます。
技術の仕組み
文全体を一つにまとめず、トークンごとの表現を残す
まず、同じ事前学習済みモデルとトークナイザで参照文と候補文を処理します。BERT系モデルは、文の中で周囲の情報を取り込んだトークン表現を返します。単語が複数のサブワードへ分割されれば、その単位で比較します。
文章を一つのベクトルにまとめるSentence-BERTの文表現と意味比較に対し、BERTScoreはトークンごとの表現を残します。そのため、文中の各部分に対応先を探し、重要度も個別に変えられます。
評価のたびに生成モデルを学習し直す必要はありません。BERTScore自体も、人手採点を正解として回帰モデルを毎回学習する方式ではありません。ただし論文では、埋め込みを抽出する層をWMT16の検証データで選んでいます。設定選択まで人手評価と完全に無関係という意味ではありません。
全トークン間の類似度から、二方向に最大値を取る
参照文の長さをk、候補文の長さをlとすると、k×l個のコサイン類似度を計算します。ベクトルを長さ1に正規化すれば、内積で求められます。類似度行列をSとすると、重みを付けない計算は次のようになります。
R = 参照側の各トークンについて、候補側との最大類似度を取り、その平均
P = 候補側の各トークンについて、参照側との最大類似度を取り、その平均
F1 = 2 × P × R / (P + R)
Rは「参照文の各部分に、候補文の中で近い表現があるか」を見ます。Pは「候補文の各部分に、参照文の中で近い表現があるか」を見ます。必要情報の欠落はR、参照にない追加はPを下げる方向に働くと考えられますが、誤りの種類を確実に判別する指標ではありません。
各トークンは独立に最大値を選びます。一対一対応を強制せず、同じ相手トークンが複数回選ばれることもあります。また、順番そのものに制約を置く照合ではなく、語順の情報は主に文脈付き表現へ含まれることを期待しています。原論文第3節
IDF重み付けと、スコアの再スケーリング
IDFを使う場合は単純平均を重み付き平均へ変えます。論文は評価用の参照文集合からIDFを計算し、同じ集合で比較する全システムに共通の重みを使います。候補ごとに重みの基準が変わらないことが重要です。
別の工夫が、無関係な文同士でも類似度が高めになる傾向への対処です。論文では、ランダムな文ペアの平均スコアbを言語とモデルごとに求め、スコアsを(s − b) / (1 − b)へ変換します。これは値を読みやすくする線形変換で、同一設定内の順位を良くする追加推論ではありません。
再スケーリング後も、厳密に0〜1へ切り詰められるわけではありません。「0.9なら90%正しい」とは解釈できず、生の値、補正後の値、100倍表示の値を混ぜて比較してはいけません。
実験と結果
論文は、WMTの機械翻訳とCOCOの画像説明を合わせ、363システムの出力を評価しました。重要なのは生成の正解率ではなく、「指標が人間の採点や順位とどれだけ一致するか」を測っている点です。
翻訳では、文ごとの人手判断との相関が改善
WMT18の評価データは149翻訳システム、14の翻訳方向を含みます。システム全体の評価に加え、個々の翻訳文について人手判断とのKendall順位相関を調べています。原論文表4から、IDFなしのF1とBLEUの一部を示します。
| 翻訳方向 | BLEU | BERTScore F1 |
|---|---|---|
| ドイツ語→英語 | 0.415 | 0.550 |
| 英語→ドイツ語 | 0.620 | 0.728 |
| 中国語→英語 | 0.178 | 0.264 |
これらは相関係数であり、正答率や改善率ではありません。少なくともこの評価では、文脈付きトークンの照合が、個々の翻訳の品質差を人手判断に近い形で捉えました。ただし相関は完全ではなく、言語や方向による差もあります。原論文表4
語順を変えた難しい例にも、限界は残る
PAWS-QQPは、単語が似ていても語順の変更などで意味が異なる文ペアを含みます。論文では667件の開発集合を使い、言い換えかどうかをスコアで区別できるか、ROC曲線下面積(AUC)を測っています。
表6では、BLEUが0.527、ROUGE-Lが0.536、BERTScoreのF1が0.685、IDF付きF1が0.693でした。評価指標側は、この言い換え判定データで追加学習していません。一方、QQPとPAWS-QQPで教師あり学習したBERTは0.831です。BERTScoreは単語の重なりだけより頑健ですが、難しい意味の違いを解決しきったわけではありません。原論文第6節・表6
タスクが変わると、有効な集約方法も変わる
COCO 2015の12画像説明システムでは、約5件ずつの参照説明と照合し、各候補について参照間の最大スコアを採用しました。人間の説明と同等以上とされた割合M1とのPearson相関は、IDF付き再現率が0.917、IDFなし再現率が0.888でした。一方、IDFなしF1は0.322です。画像を入力に使う専用評価器Leicは0.939で、BERTScoreを上回ります。
翻訳で安定したF1が、画像説明でも最適とは限りません。BERTScoreは画像自体を見ず、参照説明との対応を計算している点も結果の解釈に関わります。原論文表5
計算量も増えます。論文の速度測定ではGTX 1080 Tiで毎秒192.5文ペア、WMT18英独2,998文に15.6秒でした。比較したSacreBLEUは5.4秒です。GPUを使っても文字列指標より高速になる、という結果ではありません。
何に使える?
以下は、論文の比較方式を実務へ応用する考察です。日本語RAGや業務システムで、原論文が直接検証した成果ではありません。
FAQ回答やRAGのモデル更新を比較する
代表質問と参照回答を固定し、更新前後の生成結果を同じ設定で採点します。回答の言い回しが変わっても、内容の対応をある程度追えるため、文字列一致だけの回帰評価を補えます。平均だけでなく、スコアが下がった回答を並べるとレビュー対象を探しやすくなります。
ただし検索文書をそのまま参照文にすると、質問への回答に不要な部分まで再現することを求めかねません。比較対象は目的に沿った参照回答とし、回答が取得文書に裏付けられるかは別に測ります。その補完には、RAGASの主張分解による根拠性評価という考え方があります。
プロンプト圧縮や軽量モデルの品質を調べる
圧縮前後の入力から得た回答を比較し、出力内容の変化を測る補助指標にできます。省略や言い換えを伴うため、単純な文字一致より柔軟な比較が欲しい場面です。ただし圧縮前の回答も誤っている可能性があるので、正解参照との比較を併用します。
実際に、LLMLinguaのプロンプト圧縮実験でもBERTScoreが使われています。指標の計算方法を理解しておくと、圧縮率と品質を示す表の意味を読み取りやすくなります。
翻訳・商品説明のレビュー候補を選ぶ
参照訳や参照説明がある業務で、生成結果をまとめて比較し、低スコアの例を人が確認する順序付けに使えます。説明の自然さが変わっても内容の対応を追いたい場合に適しています。ただし型番、数量、日付の一致は構造化した検査で別に確かめる必要があります。
開発や事業へのヒント
小さな評価セットを、失敗の種類で育てる
小規模なアプリでも、実際の問い合わせに対する参照回答を少数用意すれば比較を始められます。正常な言い換え、情報の欠落、不要な追記、否定の反転、数値違いといった例を入れ、人の判断とスコアがどこで食い違うかを確かめます。
この確認によって「低スコアをすべて不合格にする」運用から、指標が得意な変化だけを検出する運用へ進めます。数値違いを見逃すなら、数値の一致検査を追加する方が、総合点の閾値だけを調整するより原因に沿った改善になります。
総合点と、改善箇所の診断を分ける
F1を比較の入口にしつつ、PとRも保存します。Rが下がった例では説明の欠落、Pが下がった例では参照外の追記を疑って本文を読みます。これは検査の仮説であり、スコアだけから欠落や幻覚を断定するものではありません。
製品上は、総合点だけを表示するより、参照文、生成文、スコア差、数値検査の結果を一緒に残す方が改善につながります。BERTScoreのトークン対応を調査に使う場合も、その対応は人が付けた正解のアラインメントではありません。
評価設定もバージョン管理する
モデル、抽出層、トークナイザ、IDF用参照集合、再スケーリングの有無、ライブラリの版を記録します。IDF集合を毎回変えると、生成品質が同じでもスコアの基準が変わります。生成モデルの更新と評価器の更新は別の実験として扱うと、変化を説明しやすくなります。
固定の参照文はトークン表現を事前計算できるため、繰り返し評価で再利用する設計も可能です。ただしトークンごとの表現を保存するので、文ベクトル一つの保存よりメモリが必要です。
限界
最も大きい限界は、文脈付き類似度が論理的な同値性を保証しないことです。「申請は必要です」と「申請は不要です」のように一部の違いが結論を変える例や、数値、固有名詞、条件の反転は、独立した検査や人手確認が必要です。一対一対応を強制しないため、繰り返しや情報量の差も完全に扱えるわけではありません。
参照文にも依存します。適切な別解が参照に含まれなければ低く評価される可能性があり、複数参照の最大値を使うと評価条件も変わります。参照が古い、誤っている場合、意味が近い出力を高く評価してしまいます。
計算面では、言語モデルの推論に加え、長さkとl、特徴次元dに対するトークン照合は概ねO(kld)、類似度行列の保存はO(kl)です。エンコーダ内のAttention計算も別に必要です。最大入力長を超える文章は分割や切り詰めが必要になり、その方法によって文脈と評価結果が変わります。
日本語や専門分野への適用では、モデルの語彙と文脈理解を検証する必要があります。多言語モデルが利用可能であることと、個別言語の業務品質を正しく採点できることは別です。原論文の翻訳・画像説明の相関だけで、日本語の長文回答やエージェントのタスク成功率までは判断できません。
よくある質問
Q. BERTScoreが0.9なら、回答は90%正しいですか?
A. いいえ。トークン間の類似度を集約した値であり、正解率ではありません。再スケーリングの有無でも値が変わります。同じ設定と評価集合の下で候補を比較し、事実の正しさは別の検査で測ってください。
Q. 正解回答を用意しなくても使えますか?
A. 標準的なBERTScoreには比較先の参照文が必要です。元資料を代わりに渡すことはできますが、その場合は資料全体との対応を測ることになり、質問へ正しく答えたかとは一致しません。参照回答がないRAGでは、根拠性などの別指標も検討してください。
Q. F1だけを保存すれば十分ですか?
A. 比較の入口には便利ですが、PとRも保存すると失敗例を調べやすくなります。またCOCOの実験では再現率がF1を大きく上回る相関を示しました。自分の評価対象で人手判断との一致を確かめてから、使う集約方法を決めてください。
Q. 日本語の社内FAQに使う場合、何から始めますか?
A. 日本語を扱えるエンコーダを選び、実際の質問・参照回答・生成回答を固定して比較します。特に社内略語、数字違い、否定の反転、正しい言い換えの例を含め、人が付けた良否とスコアの関係を確認してください。英語の閾値をそのまま移すことは避けます。
Q. BERTScoreを上げれば、エージェントも改善しますか?
A. 最終説明が参照文に近づいても、ツール実行やデータ更新が成功したとは限りません。エージェントでは実行結果やテスト成功率を主に測り、BERTScoreは説明文の内容を比較する補助指標として使う設計が考えられます。
今日の学び
この論文は、語句の重なりだけでは、正しい言い換えや語順による意味の違いを評価しにくい課題を扱いました。文脈付きのトークン表現を二方向に照合し、適合率・再現率へ集約することで、人手判断に近い生成文評価を目指しています。
得られるヒントは、AIの改善を測るときに「何と、どの単位で比べるか」を設計することです。内容の類似、事実の一致、根拠性、タスクの成功を分けて測ると、モデルやプロンプトを変更した結果を判断しやすくなります。