본문 바로가기

NLP/용어정리

[용어정리] BLEU Score

3줄 요약

 

  • N - gram 에 기반하여
  • 기계 번역 결과와 사람이 직접 번역한 결과가 얼마나 유사한지 비교하여
  • 번역에 대한 성능을 측정하는 방법

 

 


 

Bilingual Evaluation Understudy

 

  • bilingual: 2개 언어의 → 입력 언어와 출력 언어를 의미함
  • evaluation: 평가
  • understudy: 검색해보면, '임시대역배우'라고 나온다. 자세히 찾아보지 않았으나, 번역 태스크에서 완벽한 metric 이 존재하지 않다보니 이런 표현을 쓴 것으로 추측된다.

 

잘 번역되었다는 것은 무슨 의미인가?

 

사실 BLEU 를 공부하는 사람들은 나를 포함해 기초 단계에 있는 사람들이다. 나는 무작정 공부하면 다 까먹어서, 왜 이런 기준이 탄생했는지부터 의문을 가져보기로 했다.

 

자, 다음과 같이 번역된 예제가 있다.

 

  • 기계(prediction): 빛이 쐬는 노인은 완벽한 어두운곳에서 잠든 사람과 비교할 때 강박증이 심해질 기회가 훨씬 높았다
  • 사람(reference): 빛이 쐬는 사람은 완벽한 어둠에서 잠든 사람과 비교할 때 우울증이 심해질 가능성이 훨씬 높았다

 

정답과 가깝다, 즉 유사하다는 것

 

'잘 번역되었다'의 기준이 뭔지는 몰라도 사람과 기계의 답이 유사할수록 점수가 높아야 될 것만 같다. 그렇다면, '유사하다'를 정의해야 하는데, 귀찮으니까 동일한 단어의 개수가 많으면 유사도가 높다고 봐도 될 것 같다. 즉, 사람이 번역한 문장과 기계가 번역한 문장에서 겹치는 단어를 기준으로 평가 기준을 세워자는 것이다.

 

  • 기계: 빛이 쐬는 노인은 완벽한 어두운곳에서 잠든 사람과 비교할 때 강박증이 심해질 기회가 훨씬 높았다
  • 사람: 빛이 쐬는 사람은 완벽한 어둠에서 잠든 사람과 비교할 때 우울증이 심해질 가능성이 훨씬 높았다

 

일치하는 걸 밑줄쳤다. 그런데 N - gram 처럼 1개의 단어뿐만 아니라 여러 단어를 묶어서도 측정하면 좋을 것 같다. 당연히 단어 각각이 일치하는 것도 좋지만 여러 단어의 집합 단위로도 유사하면 더 잘 번역된 것으로 볼 수 있기 때문이다.

 

예시: 2 - gram

 

  • 기계: [ '빛이 쐬는', '쐬는 노인은', '노인은 완벽한', '완벽한 어두운곳에서', '어두운곳에서 잠든', '잠든 사람과', '사람과 비교할', '비교할 때', '때 강박증이', '강박증이 심해질', '심해질 기회가', '기회가 훨씬', '훨씬 높았다' ]
  • 사람: [ '빛이 쐬는', '쐬는 사람은', '사람은 완벽한', '완벽한 어둠에서', '어둠에서 잠든', '잠든 사람과', '사람과 비교할', '비교할 때', '때 우울증이', '우울증이 심해질', '심해질 가능성이', '가능성이 훨씬', '훨씬 높았다' ]

 

개수를 세어보면, 총 13개 중 5개가 일치했으므로 5 / 13 이다. 여기선 1 ~ 4 까지 N - gram 을 적용하면 그 값은 다음과 같다.

 

  • 1 - gram: 10 / 14
  • 2 - gram: 5 / 13
  • 3 - gram: 2 / 12
  • 4 - gram: 1 / 11

BLEU score 에선 이 값들을 모두 곱하고 그 개수의 역수의 제곱근을 취한다. 아래와 같다.

 

 

문장의 길이도 평가 대상이다: Brevity Penalty

 

하지만, 뭔가 좀 이상하다. 예컨대, 위 두 문장의 단어 개수가 같아서 망정이지 다를 수도 있다. 즉, 문장의 길이가 다를 수도 있다. 이런 것도 염려를 해야 할까? 나의 짧은 생각으로는 문장 길이는 번역 평가 기준에 큰 영향을 주지 않는다고 생각했다. 하지만 BLEU score 는 이 역시 고려하고 있다. 그 이유는 다음과 같다고 본다.

 

잘못된 예시

 

    • 기계: 나는 너랑 결혼할거야
    • 사람: 나는 너랑 결혼할거야 결혼을 할 예정이다 결혼하자

이렇게 정답만 뱉어서 같은 단어가 있기만 하면 점수가 높게 측정될 수 있기 때문이다. 즉, 최소한의 정답 단어만 뱉어서 높은 점수를 취하는 경우를 막고자 최대한 정답과 유사한 길이로 생성하도록 유도하는 장치다.

 

아직 이해가 안된다고?

 

  • 기계: 나는
  • 사람: 나는 너랑 결혼할거야 결혼을 할 예정이다 결혼하자

 

이렇게 해도 BLEU score 는 만점이 나온다. 물론 ROUGE 같이 recall 기반 지표는 낮게 나오겠지만, 어쨌든 BLEU 가 1글자만 잘 맞추면 만점이 나오니 이건 형편없는 지표가 되버린다. 그러므로 길이가 너무 짧아지는 것에 대한 제재를 걸어야 한다.

 

(길이가 길어지는 건 이미 n-gram 계산하면서 점수가 까이니까 길이가 길어지는 건 이미 점수가 깎이는 셈.)

 

 

그래서 앞에 min 을 곱해준다. 예측한 길이가 짧아질수록 penalty 를 받게 된다.

 

 

여러 번 등장하는 단어에 대하여: Clipping

 

한편, 정당한 평가를 하려는데 방해하는 요인이 뭐가 있을까를 생각해보면, 여러 번 등장해서 쓸데없이 점수를 높이는 경우가 있을 수 있다. 

 

  • 기계: 나는 너를 진심으로 사랑해 사랑해 사랑해 사랑해 사랑해
  • 사람: 나는 너를 누구보다 사랑해

 

무슨 저렇게 말도 안 되는 예시를 가져왔냐고 반문할 수 있는데, 의외로 Generation Model 은 저렇게 반복적으로 똑같은 단어를 생성하는 현상이 자주 일어나며, 그에 대한 논문들도 찾아볼 수 있다. 만약, 저런 경우가 성능 측정에 활용된다면 충분히 과대평가될 수 있다.

 

  • 기계: 나는 너를 진심으로 사랑해 사랑해 사랑해 사랑해 사랑해
  • 사람: 나는 너를 누구보다 사랑해

 

이를 방지하기 위해 사람이 번역한 정답 문장에서 등장하는 만큼만 개수를 세도록 제한하고 있다.

 

(식과 근본적인 정의에 대해 알고 싶으신 분들은 다른 글들을 참고해주세요. 저는 왜 이런 과정을 거쳤는지에 대해 쉽게 설명해보고 싶어 사고의 흐름을 나름 나열해보았습니다.)

 

 

BLEU score 의 단점

 

1. 완전히 같아야만 점수가 올라간다

 

  • 나는 당신과 결혼할 예정이다
  • 난 너랑 결혼할거야

 

내가 올바르게 배웠다면, 위 두 문장의 BLEU score 는 0 이다. 왜냐하면 각각의 단어조차 일치하는 게 없기 때문이다. 하지만 한국인이라면 저 두 문장이 연관성이 없다고 하긴 힘들다.

 

  • 장래희망은 교사입니다
  • 꿈은 선생님입니다

 

위 두 문장은 0 은 아니지만, 교사와 선생님이 같은 말이라는 걸 모른다. 이건 N - gram 의 태생적 한계긴 하다. 그리고 의미론적 유사도를 반영하는 평가 기준을 만든다는 건 매우 까다롭고 어려운 범주에 속한다.

 

2. 만점에 대한 기준이 매우 엄격하다

 

문장이 아예 동일하지 않으면, 절대 1 은 나오지 않는다. 하지만 '번역'이라는 영역은 정답이 단 하나다라고 할 수 없는 영역이다. 사람마다 표현하는 방식이 다양하기 때문이다. 물론 그 다양성을 어느 정도 배제하고 표준적인 번역을 지향해야 하지만, 그조차도 단 하나의 정답만이 존재하는 영역은 아니다. 그러므로, BLEU score 값이 완벽한 척도는 아니라고 생각한다.

 

기회가 된다면 BLEU score 논문을 읽어봐야겠다. 얕은 지식으로 쓴 글이니, 맹신하지 말기를.


참고 자료

 

https://misconstructed.tistory.com/53

 

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

Machine Translation task에서 많이 사용하는 automatic evaluation 방식이다. 해당 논문의 원본은 여기에서 볼 수 있다. 논문의 내용을 다루기 전에 precision, recall, accuracy 에 대한 사전 지식을 가지고 있..

misconstructed.tistory.com

 

https://donghwa-kim.github.io/BLEU.html

 

BLEU Score

BLEU BLEU(Bilingual Evaluation Understudy)score란 성과지표로 데이터의 X가 순서정보를 가진 단어들(문장)로 이루어져 있고, y 또한 단어들의 시리즈(문장)로 이루어진 경우에 사용되며, 번역을 하는 모델에

donghwa-kim.github.io

 

https://ladun.tistory.com/71

 

[Metric] BLEU (Bilingual Evaluation Understudy)

BLUE BLEU(Bilingual Evaluation Understudy) score란 성과지표로 데이터의 X가 순서정보를 가진 단어들(문장)로 이루어져 있고, y 또한 단어들의 시리즈(문장)로 이루어진 경우에 사용되며, 번역을 하는 모델

ladun.tistory.com

 

 

'NLP > 용어정리' 카테고리의 다른 글

[용어 정리] oracle summary  (0) 2022.12.14
[용어정리] METEOR Score  (0) 2022.11.01
[용어정리] perplexity  (0) 2022.10.20
[용어정리] agnostic  (0) 2022.09.14
[용어 정리] Ablation Study  (0) 2022.06.27