논문을 작성하면서 다양한 Metric을 사용하였는데, 사용한 Metric에 대해서 간단하게 usage 위주로 정리해보려고 한다.
Huggingface API Document와 원본 논문들을 참조하였다.
BLEU (BiLingual Evaluation Understudy)
BLEU는 생성된 문장과 참조할 문장(Human generated) 사이의 얼마나 많은 n-grams가 겹치는지에 대한 precision의 기하평균으로 정의된다.
precision으로 정의되기 때문에 짧은 문장일수록 점수를 높게 받는 경향이 있으며, 이를 보정하기 위해 문장 길이에 advantage를 주는 (짧을 수록 penalty를 주는) Brevity Penalty를 적용한다.
정의 자체는 0과 1사이의 값이지만, 주로 100을 곱해 BLEU Score 라고 한다.
아래는 Google Cloud에서 제공하는 BLEU Score에 대한 Interpretation Guide 이다.
BLEU의 구현체로 많은 사람들이 NLTK Package를 사용하지만, NTLK에 포함된 BLEU Metric은 Original BLEU Paper와 비교했을 때 Tokenization 등 구현 부분에 다소 차이가 있다. BLEU Metric은 Tokenization을 어떻게 하느냐에 따라서 크게 달라지므로 현재 Machine Translation 에서는 NLTK 의 BLEU를 사용하지 않는다.
대신, 현재는 거의 모든 Language Generation Paper에서 sacreBLEU라는 구현체를 이용하여 BLEU Score를 측정한다. (사실상의 표준이다.) sacreBLEU는 원본 BLEU Paper를 그대로 구현하였다.
GLEU (Google BLEU)
Google에서 제시한 BLEU의 보완 버전으로 n gram들의 precision과 recall 중에서 최솟값을 사용하는 Metric이다. 현재는 잘 보이지 않는다.
METEOR (Metric for Evaluation of Translation with Explicit ORdering
METEOR는 Unigram들의 precision과 recall의 조화 평균으로 정의된다.
BLEURT
BLEURT는 PLM인 BERT를 사용한 Metric으로, BLEU와 METEOR등의 Metric의 Human Evaluation과 corresponding 하지 않다는 문제점에서 출발한다.
사전 학습한 BERT를 Human Evaluation으로 Fine-tuning 하여 Human Evaluation을 훌륭하게 모델링한 Metric이라 할 수 있다.