BLEUスコアのスコアの算出方法はズバリ以下のとおりです $BLEU=BP \cdot exp(\Sigma_{n=1}^{N}w_nlogp_n)$ でスコアを算出します。
簡単に説明するとモデルの出力の1-gram, 2-gram, 3-gram, 4-gramが正解質問(Reference)がどの程度含まれているかを表す指標です
用語の説明をしていきます
$p_n$の定義
$p_n$ はprecisionスコアと呼ばれるもので以下の式で計算される $p_n= \frac{\Sigma_{C\in {Candidates}} \Sigma_{n-gram \in C} Count_{clip}(n-gram)}{\Sigma_{C’\in {Candidates}} \Sigma_{n-gram’ \in C’} Count(n-gram’)}$ で定義される
ここで、$Count_{clip}(n-gram)=min(Count(n-gram), MaxRefCount(n-gram))$ と定義される
$Count(n-gram)$は、Candidateに含まれるn-gramの数を表す .例えば、$Count(1-gram)$は、Candidateに含まれる1-gramの数を表す .
$MaxRefCount(n-gram)$は、candidateに含まれるn-gramがReference文中に観測される回数を表す
例えばCandidateに「the cat sat at chair」、Referenceに「the cat sat on the table」だったら1-gramのときは $Count(1-gram)=5, MaxRefCount(1-gram)=3$となるので $Count_{clip}(n-gram)=3$となる。したがって、このような状況の場合precisionは $p_n=\frac{3}{5}=0.6$となる。
簡単に言えば、precisionは、candidateに含まれるn-gramがreferenceに含まれる割合を表す precisionが高い場合は、n-gram単位でreferenceと単語の一致度が高いということを意味する 一方precisionが低い場合は、n-gram単位でreferenceと単語の一致度が低いということを意味し、関係のない単語が出力されている可能性が高い。
BPとは
BPとは下記の式で定義されます
$ \text{BP} \begin{cases} 1 & c > r \ e^{1-r/c} & c \leqq r \end{cases} $
$c:candidate$の長さ $r:reference$の長さ
例えば、candidateが極端に短い場合$e^{1-r/c}$が0に近くなる。そのときBLEUスコアは低い値を出す。 逆に、candidateが十分に長い場合,c>rのときBPは1であり、その時のBLEUスコアは$BLEU=exp(\Sigma_{n=1}^{N}w_nlogp_n)$で計算することができる
このBPを導入する理由は、Candidateに「the cat」、Referenceに「the cat sat on the table」 などのCandidateの文の長さが短い場合でも、candidateに含まれるn-gramがreferenceに含まれる割合が高くなってしまいます。今回の場合、$precision=1.0$になってしまう。このような場合に罰則としてBPを導入する
例
例えば、正解文として[I have a pen]という文を考える。一方で生成文として[I have pen]という文を考える。
この際に、1-gramのBLEUスコアを考える。 正解文、生成分はそれぞれ{I, have, a, pen}と{I have pen}という2つの集合に分けられる。
1-gramのBLEUスコアは以下の通りに表される $BLEU=BP \cdot exp(logp_n)$
BPの値を考える まず、上式のBPの値を考える。
$$ \text{BP=} \begin{array} 1 & c > r \ e^{1-r/c} & c \leqq r \end{array} $$
の定義より、正解分の長さrは4, 生成分の長さcは3になるので、$BP=e^{1-r/c}=e^{1-4/3}\approx0.716531$
次に$p_n$について考える。 正解分の長さが4、正解文のトークンが生成分に含まれる数は3なので、$p_n=3/4=0.75$になる
したがって、 $BLEU=BP \cdot exp(logp_n)=0.716531 \cdot exp(log(0.75))\approx0.53739825$