ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [NLP] BLEU Score(Bilingual Language Evaluation Understudy)
    ML&DL 이야기/ML 2024. 2. 16. 17:55

    기계번역에서 자주사용되는 지표인 BLEU는 연속된 단어의 조합인 문장을 1:1 비교하지 않고, 연속된 단어의 정확도를 측정하고자 하는 방식이다. 

    그 전에 Precision과 Recall에 관해 알아보자.

    본 내용은 https://amber-chaeeunk.tistory.com/94 을 바탕으로 작성하였습니다

    Precision & Recall

     

    우선 기본적인 Precision  & Recall에 관한 정의를 보기 위해 2*2 matrix를 그려보자. 

    각 Case를 보면 

    • True Positive(TP) : 실제 True인 정답을 True라고 예측 (정답)
    • False Positive(FP) : 실제 False인 정답을 True라고 예측 (오답)
    • False Negative(FN) : 실제 True인 정답을 False라고 예측 (오답)
    • True Negative(TN) : 실제 False인 정답을 False라고 예측 (정답)

    이 있다. 그럼 이를 바탕으로 Precision과 Recall에 관해 정의하면 다음과 같다. 

     

    Precision의 경우 모델이 True라고 예측한 것 중에 실제 True인 것의 비율이다. 즉 아래와 같이 정의된다. 

    Recall의 경우 실제 True 중 모델이 True라고 예측한 것의 비율이다. 

    마지막으로 Accuracy는 False를 False라고 옳게 예측한 것의 비율도 따지는 것으로 수식은 아래와 같다.

    Now in NLP...?

    이제 문장에서, NLP에서 위의 정의들이 어떻게 적용되는지 확인해보자.

     

     

    Precision은 모델이 True라고 예측한 것 중 실제 정답의 비율임으로,  reference와 같은 단어의 개수(Corrected word)를 predicted한 단어의 개수로 나눈다. 

    즉, 위의 예시에서는 

    일 것이다. 

    Recall의 경우, 실제 True 중 맞춘 정답의 비율임으로 reference, 주어진 데이터의 단어의 수를 분모로 둔다. 

    하지만 위에서 일반적으로 사용했던 지표들에 결점은 바로 문장의 어순을 고려하지 못한 것이라는 것이다. 단순히 작성된 단어가 맞는 것과, 어순에 맞게 단어가 작성된 것은 다르다. 

     

    위의 그림 처럼, Model 2의 문장은 아예 다른 의미임에도 불구하고 모든 단어를 포함하고 있기에 지표상으로 성능이 좋게 나오게 된다. 

    BLEU Score(Bilingual Language Evaluation Understudy)

    이를 해결하기 위해 기계번역에서는 BLEU score를 사용한다. 즉, 단어를 1:1로 비교하는 것이 아닌 n개의 연속된 단어를 비교하여 순서를 고려한다. 

    또한 Predicted 된 값을 더 중요하게 여기기에(번역된 결과가 더 중요), Precision방식을 사용한다. 

     

    출처: https://wikidocs.net/31695

    BLEU의 수식은 다음과 같은데, n-gram을 이용, 1,2,3,4 ..  n gram의 precision에 대해 평균(몇개의 gram까지 할지는 임의로, 각 n-gram에 관한 정밀도의 가중치도 임의)을 구한 후 짧은 문장에 관해 penalty를 추가한다. 이것이 Brevity Penalty이다.

    이는 짧은 문장의 경우 단어가 맞을 가능성이 당연히 올라가기에 이를 penalty로 추가하는 것이다. 

    BP의 경우 c가 r보다 큰 경우, 즉 reference보다 predict한 문장이 긴 경우 1(no penalty), 아닌 경우는 Candate와 가장 길이 차이가 작은 Refence의 길이를 선택하여  Brevity Penalty를 준다. 

     

    결론적으로 BLEU score는 ngram을 이용해 어순을 고려한 정밀도를 측정가능하게끔한 지표이다. 정도로 이해하면 될거 같다. 

Designed by Tistory.