BLEU
BLEU(bilingual Evaluation Understudy) score는 input과 output이 모두 sequence로 이루어져 있는 경우 사용하는 지표로서
machine translation과 같은 generation task에 주로 사용됩니다.
$$BLEU = min(1,{output\,length(예측\,문장)\over reference\,length(정답\,문장)})(\prod_{i=1}^4precision_i)^{1\over 4}$$
\((\prod_{i=1}^4precision_i)^{1\over 4}\)은 정답 문장과 예측 문장 사이에 n-gram(1~4)이 겹치는 정도의 기하평균 입니다.
Clipping
이 때, 하나의 단어가 예측문장에 여러번 등장하여 중복계산될 수 있기 때문에, Clipping 작업을 통해 해당단어가 카운팅 되는 횟수는 정답문장에서 등장하는 횟수를 넘지 못하게 합니다.
ex)Clipping
정답문장: "an apple is on the desk"
예측문장: "an an an an apple "
'an'은 정답문장에서 1회 등장 --> 1회 카운팅
before Clipping : 겹치는 횟수 : 5
after Clipping : 겹치는 횟수 : 2
ex)1-gram precision
Clipping 유무에 따른 1-gram precision의 예시입니다.
정답문장: "한화는 10년 안에 우승 할 것이다."
예측문장: "한화는 한화는 한화는 한화는 10년 안에 준우승 할 것이다."
1-gram precision(Clipping X) =\(일치하는\,1-gram\,수\over 모든\,1-gram\,수\) \(=\)\(8\over 9\) 입니다.
1-gram precision(Clipping O) =\(일치하는\,1-gram\,수\over 모든\,1-gram\,수\) \(=\)\(5\over 9\) 입니다.
Brevity Penalty
또한 \(min(1,{output\,length(예측\,문장)\over reference\,length(정답\,문장)})\) term은 문장길이에 대한 과적합을 보정해 줍니다.
비교적 짧은 문장은 결과에 있어 우위를 가져다 줄 수 있기 때문입니다.
이러한 과정을 통하여 BLEU score가 계산됩니다.
종합하여 볼 때, BLEU는 문장의 길이와 단어의 중복을 고려하여 정답문장과 예측문장 사이의 겹치는 정도를 계산하는 지표라고 생각하면 될 것 같습니다.