ROUGE
ROUGE(Recall-Oriented Understudy for Gisting Evaluation)는 text summarization, machine translation과 같은 generation task를 평가하기 위해 사용되는 대표적인 Metric입니다.
본 글의 내용은 ROUGE score에 관한 논문인 https://aclanthology.org/W04-1013/를 참고하여 작성되었습니다.
Machine translation에서 주로 사용하는 BLEU가 n-gram Precision에 기반한 지표라면,
ROUGE는 이름 그대로 n-gram Recall에 기반하여 계산됩니다.
우선 N-gram에 대한 ROUGE-N은 다음과 같습니다.
$$ROUGE-N = {{\sum_{S\in \{Reference\,Summaries\}} \sum_{gram_n \in S}Count_{match}(gram_n)} \over {\sum_{S\in \{Reference\,Summaries\}} \sum_{gram_n \in S}Count(gram_n)}}$$
위의 식은 reference summary(정답 summary)와 생성된 summary사이의 n-gram recall을 의미합니다.
Variations
ROUGE는 다양한 Variation이 존재하게 됩니다.
1) ROUGE-N
앞서 설명드린 N-gram recall 입니다.
ex) ROUGE-1 : unigram
정답문장: "한화는 10 년 안에 우승 할 것이다."
생성문장: "두산은 3 년 안에 우승 할 것이다."
$$N_{정답문장} = 7 $$
$$N_{년, 안, 우승, 할, 것이다} = 5 $$
$$ROUGE-1 = {5 \over 7}$$
ex) ROUGE-2 : bigram
정답문장: "한화는 10 년 안에 우승 할 것이다."
생성문장:"한화는 10 년 안에 절대 우승 못 할 것이다. "
$$N_{정답문장} = 6 $$
$$N_{((한화,10),(10,년),(년,안), (할,것이다))} = 4 $$
$$ROUGE-2 = {4 \over 6}$$
2) ROUGE-L
Longest Common Subs equence
가장 긴 Sequence의 recall을 구합니다. Sequence는 이어지지 않아도 됩니다.
정답문장 "한화는 10 년 안에 우승 할 것이다."
생성문장:"한화는 10 년 안에 절대 우승 못 할 것이다. "
$$N_{정답문장} = 7 $$
$$longest\_sequence = 한화는\,10\,년\,안에\,우승\,할\,것이다$$
$$N_{longest\_sequence} = 7$$
$$ROUGE-L = {7\over 7} = 1$$
생성된 문장의 예시와 정답문장이 완전히 일치하지는 않지만, 떨어져 있는 Sequence 형태로 정답문장과 일치하기 때문에 1의 ROUGE-L score를 얻을 수 있습니다.
3) ROUGE-W
Weighted Longest Common Subsequence
ROUGE-W는 ROUGE-L의 방법에 더하여 연속적인 매칭(consecutive matches)에 가중치를 주는 방법입니다.
$$X:\,[\underline{A}\,\underline{B}\,\underline{C}\,\underline{D}\,E\,F\,G]$$
$$Y_1:\,[\underline{A}\,\underline{B}\,\underline{C}\,\underline{D}\,H\,I\,K]$$
$$Y_2:\,[\underline{A}\,H\,\underline{B}\,K\,\underline{C}\,I\,\underline{D}]$$
ROUGE-L의 관점에서는 Y_1과 Y_2의 결과가 같지만,
ROUGE-W의 관점에서는 consecutive matches로 이루어진 예시인 \(Y_1\)이 더 우수한 결과가 됩니다.
4) ROUGE-S
Skip-Bigram Co-Occurrence Statistics
skip-gram 방식과 같이, 최대 2칸(bigram) 내에 위치하는 단어 쌍의 recall을 계산합니다. skip-gram의 특성상 이어지지 않아도 되므로 상대적으로 거리에 영향을 덜 받습니다.
정답문장 : "류현진의 포심 패스트 볼은 빠르지 않지만 매우 정교하다."
생성문장 : "류현진의 투심 패스트 볼은 느리지만 매우 정확하다."
$$N_{정답문장} = 7$$
$$N_{((류현진,패스트),(류현진,볼),(패스트,볼),(볼,매우))}= 4$$
$$ROUGE-S = {4\over 7}$$
5)ROUGE-SU
Extension of ROUGE-S
ROUGE-S는 동시에 출현하는 word pair가 하나도 겹치지 않을 시 0이 됩니다.
하지만 아래 예시의 경우 어순을 바꿨을 뿐, 같은 의미에 문장임에도 ROUGE-S가 0이 되어버립니다.
정답문장 : 류현진이 공을 던졌다.
생성문장 : 던졌다 공을 류현진이
ROUGE-SU는 Unigram을 함께 계산하여 이를 보정해 줍니다.
정답문장 : ((류현진,공), (류현진,던졌다), (공,던졌다), 류현진, 공, 던졌다)
생성문장 : ((던졌다,공), (던졌다,류현진), (공,류현진), 류현진, 공, 던졌다)
$$ROUGE-SU = {3\over 6} $$
6)ROUGE-N-precision
ROUGE-N-precision은 recall이 아닌 precision을 사용하여 ROUGE를 계산하는 방법입니다.
따라서 분모는 생성된 문장의 n-gram 수를 계산합니다.
$$ROUGE_N-precision = {{\sum_{S\in \{Reference\,Summaries\}} \sum_{gram_n \in S}Count_{match}(gram_n)} \over {\sum_{S\in \{generated\,Summaries\}} \sum_{gram_n \in S}Count(gram_n)}}$$
BLEU와 매우 유사하다고 생각하실 수 있는데,
BLEU는 제약이 존재하며 다양한 N-gram(1~4)의 기하평균을 통해 계산됩니다.
$$BLEU = min(1,{output\,length(예측\,문장)\over reference\,length(정답\,문장)})(\prod_{i=1}^4precision_i)^{1\over 4}$$
BLEU에 대한 자세한 설명은 아래의 글을 참고 부탁드립니다.
7)ROUGE-N-f1
ROUGE-N-f1은 기존의 f1 score와 같이 ROUGE-N-recall과 ROUGE-N-precision의 조화평균으로 구할 수 있습니다.
$$2 \times {ROUGE_Nprecision \times ROUGE_Nrecall\over ROUGE_Nprecision + ROUGE_Nrecall}$$
Evaluations of ROUGE
ROUGE가 Summarization과 같은 고 수준의 NLP task 지표로 쓰이는 이유는 다음과 같습니다.
각각의 표에서 ROUGE score가 대체로 인간의 판단과 양의 상관관계를 보임을 확인할 수 있습니다.
또한 ROUGE는 다양한 길이의 Sequence에서 stability and reliability를 갖추고 있습니다.
감사합니다.