문장 생성의 성능평가 지표2 - bleu score

1. precision과 recall의 문제점

 

정답문장에 대해 2개의 모델로 예측문장을 얻었다고 해보자.

 

 

 

두번째 모델로 만든 문장의 경우 모든 단어가 정답문장 단어와 매칭이 되는데 순서가 전혀 맞지 않는다는 것이 문제다.

 

그럼에도 불구하고 precision과 recall은 100%

 

때로는 언어에서 순서는 매우 중요한데 단어만 맞췄다고 완벽한 번역이라고 볼수있을까?

 

precision과 recall, f-measure는 계산방식으로부터 알 수 있겠지만

 

오직 부합하는 단어의 수에만 집중하기 때문에 순서정보를 전혀 반영하지 않는다는 것이 문제다.

 

 

2. introduction

 

bleu score는 순서를 반영하지 않는다는 precision과 recall의 문제점을 개선하고자 등장했다.

 

기계번역의 결과와 사람이 번역한 결과가 얼마나 유사한지 측정하고자 도입했다.

 

precision을 더 중요시했다.

 

‘I love this movie very much’를 번역하면 ‘나는 이 영화를 정말 많이 사랑한다’가 정확한 번역인데

 

‘정말’을 없애 ‘나는 이 영화를 많이 사랑한다’로 번역해도 사람들은 충분히 만족한다.

 

precision 관점에서 100%, recall 관점에서 5/6

 

 

3. 정의

 

기계 번역 결과와 정답 문장 사이에 N-gram 겹치는 단어의 수를 count하여 기계 번역한 단어의 수로 나눈 precision_N

 

N은 1부터 4까지 전부 구한다. 4까지 구하는 이유는 처음 논문에서 제안한 것으로

 

사람들이 자기들이 생각하기에 번역 결과를 평가하는데 최대 n-gram의 수는 N=4라고 생각해서 그런것 같다.

 

그런데 직관적으로도 N이 매우 크면 정답 문장과 기계 번역 결과 사이에 겹칠 확률이 급격히 낮아져 구할 필요가 없어진다.

 

그리고 precision이 맞춘 단어의 수를 예측 문장의 길이로 나눈다는 점에서 예측 문장의 길이가 짧아지면 커진다는 단점이 있다.

 

이것을 보정하기 위한 brevity penalty 요소를 추가한다.

 

brevity penalty는 recall적 요소를 고려했다고도 볼 수 있다.

 

 

 

recall이라는 것은 정답 문장의 단어를 번역할때 단어를 얼마나 가지고 왔는가, 번역문의 길이 요소에 초점을 맞춘 것이라고 볼 수 있다.

 

정답 문장의 단어를 많이 가지고 오지 못해 번역 문장의 길이가 짧아져 precision이 크게 평가 받는경우 brevity penalty에 의해 보정받는다는 것이다.

 

 

4. 예시로 이해하는 계산하는 방법

 

 

 

2-gram의 경우 어떻게 계산하는지 생각해보자. 2개의 연속된 단어쌍을 prediction 1 문장에서 구해보면

 

(half,as) , (as,my), (my,heart), (heart,is), (is,in), (in,obama), (obama,ooh),(ooh,na)로 8개

 

정답 문장에서 2-gram을 구해보면

 

(half,of) , (of,my), (my,heart), (heart,is), (is,in), (in,havana), (havana,ooh),(ooh,na),(na,na) 9개

 

예측문장에서 정답문장과 비교할때 일치하는 gram의 수는 4개

 

(my,heart), (heart,is), (is,in),(ooh,na)

 

 

5. BLEU의 단점

 

일단 위 예시에서 1-gram이 100%인데 score로 0을 준다는 것은 분명 아쉬운 부분

 

BLEU가 오직 n-gram사이 정확히 매칭되는 경우만 count한다는 점이 하나의 아쉬운 부분이다.

 

위에서도 언급했지만 ‘i love this movie very much’를 번역하여 ‘나는 이 영화를 정말 많이 좋아한다.’와 ‘나는 이 영화를 너무 많이 좋아한다.’로 할 수 있다.

 

그런데 (‘정말’,’많이’)와 (‘너무’,’많이’)는 어느정도 비슷하다고 볼 수 있는데 다르다고 count해버리면 아쉬운 부분이다.

 

이것에 주목하여 유사도를 고려하여 구한 ABLEU라는 개선된 score도 있다고 한다.

 

 

6. BLEU score 다른 설명

 

논문에서 처음 제안한 식은 위에서 배운 식과는 조금 다르다.

 

 

 

 

구하는 precision 방식도 다르다.

 

가장 먼저 위에서 배운 precision은 단순 unigram precision인데 예측문장과 정답문장사이 순서에 무관하게 매칭된 단어의 수를 예측문장의 길이로 나눈것이다.

 

 

 

The primary programming task for a BLEU implementor is to compare n-grams of the candidate with the n-grams of the reference translation and count the number of matches. These matches are position independent. The more the matches, the better the candidate translation is. For simplicity, we first focus on computing unigram matches.

 

논문에서는 먼저 단어가 그냥 순서와 무관하게 n-gram에서 단순히 부합하면 부합할수록 더 잘 번역된 것이라고 생각했다. 물론 여기에 큰 문제점이 있다.

 

 

 

the만 내놓아도 위에서 처음 생각한 방식대로는 unigram관점에서 precision은 100%이다.

 

당연히 말이 안된다.

 

이래서 중복 counting을 고려한 modified precision을 생각해야했다.

 

 

 

정답 문장에서 특정 unigram이 몇번 등장했는지 count하고 실제 단순 unigram의 count와 비교하여 최솟값으로 분자를 고친다.

 

이 경우 정답 문장 1번에 대하여 번역문장의 precision은 2/7이 된다.

 

마지막으로 생각하는 한계점은 보정된 unigram 정밀도는 결국 단어의 순서를 고려하지 못한 점이다.

 

 

 

그래서 단어의 순서까지 고려하고싶어서 보정된 n-gram 정밀도를 구한다.

 

방식은 위와 같이 중복 counting을 고려하는 방식으로 계산한다.

 

실제 단순 n-gram 겹치는 count의 수와 정답 문장에서 등장하는 n-gram의 총 수중 최솟값을 쓴다는 것

 

 

 

왜 cat on의 정답 counting이 1인가 생각해봤는데

 

정답 문장이 ref1, ref2로 2개라서 그래

 

ref1에는 cat on이 없지만 ref2에는 cat on이 존재해서 counting 1

 

그리고 ref1과 ref2 각각에 존재하는 건 중복 counting이 아님

 

하나의 정답 문장 내에 중복되어 존재해야 중복 counting

 

그래서 이런 방식으로 여러가지를 고려하고 brevity penalty도 고려하여 구한 방식이 논문에서 제안한 식이었다... 는 점..

 

근데 중요한 것은 계산은 컴퓨터가 해주니까.. 이런 평가 방식이 있다 정도로 이해하면 될듯?

TAGS.

Comments