본문 바로가기
대학원 이야기/논문 리뷰

[논문 리뷰] BLEU: a Method for Automatic Evaluation of Machine Translation (2002 ACL)

by misconstructed 2020. 11. 11.
728x90

Machine Translation task에서 많이 사용하는 automatic evaluation 방식이다.

해당 논문의 원본은 여기에서 볼 수 있다.

논문의 내용을 다루기 전에 precision, recall, accuracy 에 대한 사전 지식을 가지고 있으면 이해하기 훨씬 편하다.

[표-1]


Machine Translation의 결과를 사람이 직접 평가하는 Human evaluation은 정확하지만 비용이 너무 많이 든다는 단점이 있다. 또한, 사람이 직접 평가하기 때문에, 평가하려는 언어에 대한 제한이 발생하게 된다. 마지막으로, 모든 결과를 평가하는데 너무 오랜 시간이 걸린다는 단점이 있는데, 빠르게 기술이 발전하고 변화하는 상황에서 평가에 이렇게 오랜 시간이 걸리는 것은 큰 걸림돌이 될 수 있다. 이러한 문제를 해결하기 위해 이번 논문에서는 automated evaluation 방식인 BLEU (Bilingual Evaluation Understudy) 를 제안한다. 

BLEU는 MT를 통해 생성된 결과와 실제 답안 사이의 특정 길이 단위로 얼마나 일치하는지 확인하는 과정을 거친다. 한 문장에 대한 번역이 여러개 존재할 수 있다. 사람이 직접 평가하는 경우, 서로 다른 번역에 대해서도 좋은 번역과 나쁜/잘못된 번역을 구분할 수 있다. 우리는 MT를 통해 생성된 여러 결과 (candidate) 와 실제로 제대로 번역된 결과 (reference) 사이에 얼마나 유사한지 평가하게 된다. 

[예시-1]

[예시-1]을 보면, MT를 통해 생성된 2개의 결과(candidate1, candidate2)가 존재하고, 실제 번역가에 의해서 번역된 결과(reference1, reference2, reference3)가 존재한다. 이 둘을 비교하는 가장 쉬운 방법은 두 문장 사이의 n-gram 을 비교하는 방식이다. Candidate의 n-gram과 reference의 n-gram을 하나씩 비교해서 몇 개가 일치하는지 확인할 수 있다. 이러한 방식을 [표-1]에서의 precision과 동일하다고 볼 수 있다. (예측한 결과/MT의 결과 중 실제 정답인 비율) 하지만, 이러한 단순한 precision 방식은 [예시-2]와 같은 문제가 발생할 수 있다. 

[예시-2]

[예시-2]의 candidate과 같이 동일한 문자가 반복해서 나타나는 경우가 발생할 수 있다. 이런 문제를 해결하기 위해 modified unigram precision을 제안한다. 

  1. 한 개의 Reference에서 각 단어를 count, 가장 많이 나타난 단어의 횟수를 maximum reference count 라고 한다. 
  2. Candidate에 존재하는 단어 중, Reference에도 나타나는 단어의 횟수를 maximum reference count에 대해서 clip 한다. ( $ min(count, maximum_reference_count) $ )
  3. Clip 된 count 들을 모두 더하고, clip하지 않은 단어들을 모두 더해서 나눠준다.
- [예시-2] 에 대한 modified unigram precision 계산
1. maximum refernce count = 2 
Reference1 에서 "the" 라는 단어가 총 2회로 가장 많이 나타난다.
2. Candidate에서 나타나면서 동시에 reference에 나타나는 단어는 "the" 이다. "the"는 clip 하지 않은 경우 7회, clip한 경우 2회 나타난다.
3. clip한 결과 / clip하지 않은 결과  = 2 / 7

Modified n-gram precision은 여러 문장으로 구성된 multi-sentence test set에 대해서도 계산할 수 있다. 우선, 모든 문장에 대해서 n-gram을 계산 하고, clipped n-gram count 를 candidate n-gram count로 나눠준다. 해당 과정을 식으로 나타내면 다음과 같다. 

[식-1]

Modified n-gram precision을 이용해서 좋은 번역과 잘못된 번역의 차이를 나타나면 다음과 같다. n-gram에서 n의 크기가 커질수록 두 번역의 precision 점수 차이가 커진다는 것을 알 수 있다. (두 번역의 precision 점수 차이는 unigram 일 때보다 4-gram일 때 더 크다.)

[그림-1]

또한, 실제로 번역의 퀄리티에는 큰 차이는 없지만 서로 다르게 번역한 결과들(H1, H2)과 잘못 번역된 결과들(S1, S2, S3) 사이의 차이를 modified n-gram precision을 통해서 확인할 수 있었다. H1과 H2 사이의 작은 차이가 있다는 것을 확인할 수 있고, H1과 S3 사이에는 큰 차이가 있다는 것을 확인할 수 있다. 

[그림-2]

번역의 결과는 원본 reference에 비해 너무 짧거나 길면 안 된다. 문장이 너무 긴 경우, 자주 나타나는 단어의 횟수를 maximum reference count 로 차감하는 방식으로 제한을 주었다. 하지만, 이러한 방식은 문장이 긴 경우만 처리할 수 있고 문장이 너무 짧은 경우는 처리하지 못한다. 

[예시-3]

[예시-3]을 보면, 번역 결과 candidate은 "of the" 라는 말도 안되는 결과를 제공했지만, 여태까지 사용한 방식에 의하면 modified unigram precision은 2/2, modified bigram precision은 1/1 라는 매우 높은 결과를 제공한다. BLEU에서는 문장이 짧은 경우를 처리하기 위해서 sentence brevity penalty를 사용한다. 해당 방식은 reference 문장의 길이를 고려하는데, candidate 문장과 가장 길이가 비슷한 reference 문장의 길이를 best match length 라고 한다. 전체 corpus를 구성하는 모든 candidate 문장에 대해서 best match length를 구해 모두 더해서 전체 corpus의 effective reference length $ r $ 을 구하게 된다. Brevity penalty는 candidate 문장의 길이가 $ c $ 라고 할 때, 다음과 같이 주게 된다. 

[식-2]

최종적인 BLEU 점수는 다음과 같이 구하게 된다. $ w_n $ 은 모두 양수인 weight로, 모든 weight를 더하면 1이 된다. 이번 논문에서는 $ N = 4, w_n = 1 / N $ 으로 지정했다. 

[식-3]

BLEU score는 0에서 1 사이의 값을 갖는다. 아무리 좋은 번역 결과가 있다고 해도, 단어 구성이 조금만 달라도 1점을 받을 수 없기 때문에, 동일한 문장이 아니면 1점을 받은 가능성이 적다. [표-2]는 500개의 문장에 대해 MT를 통한 번역과 실제 사람을 통한 번역의 BLEU score를 나타낸다. [표-3]은 저네 500 문장을 5등분해 동일한 대상을 통해 번역을 했을 경우 결과를 나타낸다. 두 결과를 비교하면 거의 차이가 없다는 것을 알 수 있다. (사용되는 문장과 상관없이 동일한 성능을 제공한다.)

[표-2]
[표-3]

사람이 직접 평가하는 human evaluation과 BLEU score를 비교헤본다. [그림-3]은 monolingual(native) 인 사람이 이전 실험에서 사용한 3개의 MT 번역과 2개의 사람 번역의 결과를 평가한 결과이다. H1과 H2 의 차이는 별로 없지만, H1 과 S3의 차이는 크다는 것을 확인할 수 있다. [그림-4]는 동일한 데이터에 대해 bilingual 인 사람이 평가한 결과다. [그림-3]과 거의 유사한 결과가 나온 것을 확인할 수 있다. 

[그림-3]
[그림-4]

이렇게 사람이 직접 번역은 평가한 결과와 BLEU score를 비교해본다. [그림-5]는 monolingual, [그림-6]은 bilingual 인 사람의 평가 결과와 비교한 그래프이다. 실제 사람이 평가한 결과와 거의 유사하다는 것을 확인할 수 있다. 

[그림-5]
[그림-6]

 

728x90

댓글