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
https://donghwa-kim.github.io/BLEU.html
'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 |