
ROUGE는 2004년 ROUGE: A Package for Automatic Evaluation of Summaries 논문에서 도입한 개념으로 Recall-Oriented Understudy for Gisting Evaluation의 약자이다. n-gram overlap을 통해 인간이 만든 요약문에 비해 기계가 만든 요약문의 품질이 어떠한지 평가한다. 종류로는 ROUGE-N, ROUGE-L, ROUGE-W, ROUGE-S가 있다. 이 글에서는 N과 L만 알아보겠다. 더 자세한 내용이 궁금하다면 위 논문을 참고하면 된다.
n-gram은 n개의 인접한 기호를 순서대로 묶은 나열을 말한다.
예를 들어 아래 문장을 어절 단위로 기호를 구분한다고 해보자.
나는 너를 너무 좋아해
이때 1-gram과 2-gram은 다음과 같다.
1-gram (unigram)
[나는], [너를], [너무], [좋아해]
2-gram (bigram)
[나는 너를], [너를 너무], [너무 좋아해]
3-gram (trigram)
[나는 너를 너무], [너를 너무 좋아해]
ROUGE-N은 n-gram의 Recall(재현율)을 구한다.
식은 아래와 같다.
좀 더 풀어서 설명하면 아래와 같다.
ROUGE-2를 구하는 예시를 들어보자. Reference는 인간이 만든 요약문이고 Candidate는 기계가 만든 요약문이다.
Reference
요약: 나는 너를 너무 좋아해
2-gram: [나는 너를], [너를 너무], [너무 좋아해]
Candidate
요약: 나는 너무 좋아해 너를
2-gram: [나는 너무], [너무 좋아해], [좋아해 너를]
이를 통해 계산하면 Ref의 n-gram 수는 3이고 겹친 수는 1이므로 그 값은 1/3이 된다.
ROUGE-L은 n-gram을 사용하는 게 아니라 LCS(Longest Common Subs equence)에서의 F-Score이다.
LCS는 순서를 유지하면서 Ref와 Can에서 동시에 등장하는 가장 긴 기호의 나열이다. 예를 들어 아래 예시에서는 '나는 너무 좋아해'가 순서를 유지하면서 가장 긴 나열인 LCS가 된다.
Reference
요약: 나는 너를 너무 좋아해
Candidate
요약: 나는 너무 좋아해 너를
이를 통해 계산을 해보자. 우선 Recall을 구한다.
= =
다음으로 Precision을 구한다.
= =
이 두 값으로 F-score를 구한다. 아래 식에서 는 Recall에 대한 가중치이고 논문에서는 이 값을 매우 크게 두어 Recall를 구하는 것이 기본이라고 한다. 아래 식에서는 1로 두어 F1-score를 구해보자.
= = =
여기서는 Ref와 Can의 길이가 같기 때문에 간단하게 나온다.
[1] Chin-Yew Lin. 2004. ROUGE: A Package for Automatic Evaluation of Summaries. In Text Summarization Branches Out, pages 74–81, Barcelona, Spain. Association for Computational Linguistics.