자연어처리에 있어서 다른 평가 지표에 가장 기본이 되는 것은 다른 task와 마찬가지로 Precision
, Recall
, F1-score
이다. 따라서 해당 평가 지표들이 자연어처리에서 어떤 의미를 가지는지 간단하게 살펴본 이후 Precision
, Recall
, F1-score
를 차용하는 자연어처리에서의 평가 지표들을 살펴보자.
위의 Confusion Matrix를 바탕으로 Precision
과 Recall
을 계산하면 다음과 같다.
일반적으로 Precision
과 Recall
은 서로 반비례를 갖기 때문에 뒤 지표를 종합적으로 평가하기 위해 F1-score
를 사용한다.
그렇다면 자연어처리에 있어
Precision
과Recall
은 무엇을 의미할까?
자연어처리에 있어서 아래 예시처럼 전체 문장이 아니라 고정된 위치에서 생성된 개별 토큰을 정답 토큰과 비교할 경우, 시퀀스 데이터의 특성상 처음 토큰이 기존 정답과 다르게 생성될 수 있으며 이로 인해 이후에 생성되는 토큰 역시 연쇄적으로 기존 정답과 다르게 생성될 수 있다.
따라서 개별 토큰이 아니라 전체 문장에 대해서 예측을 평가하기 위한 방법이 필요하고 이를 위해 기본적으로 Precision
과 Recall
을 사용할 수 있다. Precision
과 Recall
을 자연어처리에서 활용할 때는 다음과 같이 나타낼 수 있다.
Reference : Admiral Lee Sun-shin is our nation's hero
Candidate : Admiral Yi Sun-shin is hero
위의 예시는 "이순신 장군은 우리의 영웅입니다"를 영어로 번역하는 작업의 Reference와 Candidate이다. 각각에 대해서 Precision
과 Recall
을 구해보자.
Precision
과 Recall
모두 토큰이 등장한 순서와는 관계없이 일치하는 토큰의 수에 따라 계산되는 것을 확인할 수 있다. 이는 Precision
과 Recall
을 차용하는 다른 자연어처리 평가 지표의 단점이 되기도 한다.
Perplexity
는 문장의 길이로 정규화된, 문장을 생성할 확률의 역수로서 완성될 때까지의 선택된 토큰들의 누적된 확률을 기반으로 계산한 값이다.Perplexity
는 당혹감, 혼란 등 단어가 가진 의미 그대로 모델이 토큰을 생성할 때 얼마나 헷갈렸는지를 나타내는 지표로, Perplexity
가 낮을수록 모델이 덜 헷갈린 상태로 확신을 가지고 토큰을 생성했다고 할 수 있다. 즉 낮을수록 언어 모델의 성능이 좋은 것이다.Precision
의 관점에서 수치화한 지표로, Perplexity
와 달리 값이 클수록 성능이 더 좋음을 의미한다.Recall
이 떨어져도) 문장의 의미가 유사할 수 있지만, 문장에 없는 단어가 오역되어 생성되면(Precision
이 떨어지면) 영향이 클 수 있기 때문에 Recall
이 아닌 Precision
을 차용했다.BLEU
는 크게 n-gram
에 해당하는 부분과 Brevity Penalty
에 해당하는 부분으로 나눌 수 있다.BLEU
는 문맥이나 의미 정보에 대한 평가가 어렵다는 한계를 지닌다.Brevity Penalty
는 Reference가 짧을 경우 제대로 번역이 이루어지지 않아도 높은 Precision
을 보이는데, 이처럼 문장 길이에 대해서 과적합되는 것을 방지하기 위해 Candidate 문장의 길이가 Reference 문장의 길이보다 짧을 경우 1 이하의 값을 곱하여 Precision
을 낮게 보정한다.Recall-Oriented Understudy for Gisiting Evaluation
의 약자로, 주로 요약이나 기계 번역 등의 생성 성능을 평가하기 위한 지표이며 목표로 하는 문장(Reference)과 모델이 생성한 문장(Candidate)이 일치하는 정도를 수치화한 지표이다.ROUGE
에서는 Recall
의 관점에서 수치화한 지표이지만 Precision
을 사용하기도 한다. 이는 BLEU
와 유사하긴 하지만 BLEU
는 Brevity Penalty
의 제약이 존재하며 기하평균을 사용한다는 차이가 존재한다.ROUGE-N
은 unigram, bigram, trigram 등 문장 간 중복되는 n-gram을 비교하는 지표이다. 정답 문장을 Gold, 예측 문장을 Pred라고 하고 아래의 예시 문장에 대해서 ROUGE-N
을 구해보자.
Gold : the cat was under the bed
Pred : under the bed there was the cat
ROUGE-1
Gold : [the], [cat], [was], [under], [the], [bed]
Pred : [under], [the], [bed], [there], [was], [the], [cat]
Gold와 Pred의 겹치는 unigram의 수는 [the], [cat], [was], [under], [the], [bed] 총 6개이다. 따라서 Precision
과 Recall
을 구하면 다음과 같다.
ROUGE-2
Gold : [the cat], [cat was], [was under], [under the], [the bed]
Pred : [under the], [the bed], [bed thre], [there was], [was the], [the cat]
Gold와 Pred의 겹치는 bigram의 수는 [the cat], [the bed], [under the] 총 3개이다. 따라서 Precision
과 Recall
을 구하면 다음과 같다.
ROUGE-L
은 가장 긴 공통 시퀀스(LCS)를 기반으로 한다. LCS란 최대 길이를 가지는 공통 하위 시퀀스를 말하며 ROUGE-N
과 같이 단어들의 연속적인 매칭을 요구하지 않으며 문장 내에서 최장 길이로 매칭되는 문자열의 길이를 이요하기 때문에 보다 유연한 성능 비교가 가능하다.
Gold : the cat was under the bed
Pred : under the bed there was the cat
Gold와 Pred 사이의 LCS는 [under the bed]이기 때문에 Precision
과 Recall
을 구하면 다음과 같다.
사실 요즘 위에서 살펴본 지표의 고질적인 단점은 LLM 시대에 이르러서는 해당 지표들만으로 과연 성능을 제대로 보여줄 수 있는지에 대한 의문이라고 할 수 있다. 그래서 보다 종합적인 성능 평가를 위해 다양한 평가 지표들이 도입되었으며 여러 지표들을 동시에 사용하는 것이 일반적이다.METEOR
뿐만 아니라 BELURT
, BERTScore
, G-eval
등도 얼른 공부하도록 하자.