(bilingual evaluation understudy)
: 기계 번역 결과와 사람이 직접 번역한 결과가 얼마나 유사한지 비교하여, 번역에 대한 성능을 측정하는 방법
만약 한글 문장으로 번역했을 때,
generated sentence
(번역된 문장, 모델의 출력값)과
reference sentence
(참조 문장, 정답(후보) 문장)과의
유사성을 점수로 나타낸 것이 BLEU score
이다.
위의 예시에서 보듯이, 어떠한 문장을 번역했을 때 후보로 나올 수 있는 문장은 정말 많다. 그래서 이
reference sentence
은 generated sentence
와 다르게 여러 개를 정답 문장으로 사용할 수 있다.
즉, 한 개의 generated sentence
에 대하여
여러 개의 reference sentence
을 가질 수 있다.
(reference sentence
에는 여러 후보가 있을 수 있기 때문에, 정답 문장이라 명확히 정의하기는 어렵다.)
BLEU Score 계산과정은 크게 4가지로 나눌 수 있다.
generated sentence
에 reference sentence
의 단어가 있는지 여부만 판단하여 그 개수를 count 해준다.그러나 여기서 2가지 문제가 발생한다.
1)번 같은 경우는 너무나 자명한 이야기이다. 단어 사이의 관게를 정의할 수가 없다.
2)번 같은 경우는 극단적인 예시로, generated sentence
에 동일한 단어가 나오게되면 확률이 1로 예측 문장이 100% 정답이 되는 말도 안되는 상황이 발생한다.
따라서, 이러한 문제점을 개선하기 위해 여러가지 방법을 적용한다.
먼저, 문제 1) 단어의 순서를 고려하지 않음
을 개선하기 위한 방법이다.
위의 예시를 바탕으로 다음과 같이 n-gram에 대한 확률을 기하평균(모두 곱해준 값을, 그 값의 개수에 해당하는 제곱근으로 나누는 것) 해준다.
⭐ 4-gram이 성능이 더 뛰어날텐데 이것만 사용하면 안되는가?
당연히 4-gram 성능이 뛰어날거다.
이에 각 gram별 가중치를 다르게 설정할 수 있다.
모든 가중치의 합은 1이다.
가장 기본적으로 0.25씩 줄 수 있다. 만일, 4-gram에 높은 가중치를 부여하고 싶으면, 이 값을 조정해주면 된다.
>> 가장 우측의 W_n이 가중치에 해당한다.
문제 2) 같은 단어가 연속적으로 나올 때의 문제
를 개선하기 위한 방법이다.generated sentence
의 단어를 count 하던 것을, reference sentence
의 단어들로 count 해준다.이 문장 맞는지 다시한번 확인!!!!!!!!!!!!!!!!!!!!!!!!!!
이로써 약한 유사설을 보이는 번역문장임에도 5/9로 과적합 되던 확률이,
3/9로 하향 조정되는 것을 확인 할 수 있다.
BP
를 곱해준다.BP
는 1
과 예측단어/전체단어
중 더 작은 값을 선택하도록 한다.참고자료
- https://donghwa-kim.github.io/BLEU.html (강추 블로그!!)
- 김기현의 자연어 처리 딥러닝 캠프 파이토치 편