면접 대비 답변
제가 대회에서 활용한 Metric으로는 Accuracy, F1-score, AUPRC, EM, Rouge score등이 있습니다. 우선 관계추론대회의 경우 Micro F1 score를 활용하였으며, 질의응답(ODQA) 대회에서는 EM(Exact Match)를 그리고 대화요약에서는 Rouge score를 활용하였습니다.
- 각각 다른 Metric을 활용한 이유가 무엇일까요?
우선 한가지 Metric의 사용이유를 설명드리겠습니다. Accuracy가 아닌 F1 Score를 활용하는 이유로는 라벨의 분포가 균등하지 않을 경우 사용하게 됩니다. 참이 70, 거짓이 30인 데이터를 모두 참이라고 할 경우 이 추론값은 Accuracy 70%의 정확도를 가지게 되는데 과연 이 추론이 잘한 것이라고 할 수 있을까?라는 것입니다. 그렇기에 정답을 정답으로 맞출 확률, 오답을 정답으로 맞출 확률 등을 가지고 Precision과 Recall이라는 값을 구하게 됩니다. Precision은 정답으로 예측한 것들 중에 실제로 정답인 것, Recall을 실제 정답인 것들 중에 정답이라고 예측한 것을 의미합니다.Precision=FP+TPTP=Positive로 예측한 것들예측과 실제 값이 Positive로 일치하는 것들 Recall=FN+TPTP=실제 값이 Positive인 것들예측과 실제 값이 Positive로 일치하는 것들 그리고 이 둘을 활용하여 F1 Score를 구할 수 있는데 Precision과 Recall 모두 어느한쪽으로 치우치지 않을 때 높은 점수를 얻을 수 있다는 장점을 가지고 있습니다.F1=Precision1+Recall12=2∗Precision+RecallPrecision∗Recall
각 Metric에 대한 상세 설명
Accuracy (정확도)
전체 건수 중에 정답을 맞춘 건수
Accuracy=전체예측데이터건수정확히예측한건수
데이터 분포의 불균형에 따라서 특정 결측치로만 선택한 경우에도 굉장히 높은 점수가 나올 수 있다. 예를 들어 100개의 데이터 중 1이 90개 0이 10개인 데이터에 대해서 모두 1로 예측한 경우 Accuracy는 90점이 나올 것이다. 이건 굉장히 위험한 평가방법! 단, 데이터의 분포가 동일하다면 사용하는데 문제가 없다.
Confusion Matrix (오차행렬)
맞는걸 맞다고, 틀린 걸 틀렸다고 하는 경우에 대한 행렬이라고 생각하면 된다.
- TN(True Negative, Negative Negative): 실제는 Negative인데, Negative로 예측함.
- FP(False Positive, Negative Positive): 실제는 Negative인데, Positive로 예측함.
- FN(False Negative, Positive Negative): 실제는 Positive인데, Negative로 예측함.
- TP(True Positive, Positive Positive): 실제는 Positive인데, Positive로 예측함.
여기서 우리는 중점적으로 생각해야하는 것을 Positive로 두게 된다. 예를 들어 암 검출과 같은 경우 암인데 암이 아니라고 하는 경우가 더 치명적이므로, 암인 경우를 1, 아닌 경우를 0으로 두고 Accuracy를 계산하게 된다.
Precision과 Recall
Precision=FP+TPTP=Positive로 예측한 것들예측과 실제 값이 Positive로 일치하는 것들
Recall=FN+TPTP=실제 값이 Positive인 것들예측과 실제 값이 Positive로 일치하는 것들
Precision은 FP를 Recall은 FN를 낮추는데 초점을 두고 있다.
여기서 우리는 각 Task에 따라 Precision과 Recall 중 중점을 두어야 할 필요성이 있다.
Precision의 경우에는 확실하게 맞는 것을 맞다라고 하는 것이고, Recall은 맞는 것을 아니라고 하지 않는 것에 중심을 두고 있다고 생각하면 된다.
예를 들어, 암환자나 사기 같은 경우 암인데 암이 아니다, 사기인데 사기가 아니다 라고 할 경우 치명적일 수 있어 Recall의 점수를 높이는데 중점을 두고, 욕설 검증이나 스팸과 같은 경우에는 욕설이나 스팸이 아닌데 마스킹이나 처리가 될 경우 문제가 될 수 있어 Precision을 중점적으로 하여 계산하게 된다.
F1 Score
Presicion과 Recall을 각각 따로 사용하게 되면 Presicion은 모두 False를 주면 100점이 나오고, Recall은 모두 True를 주면 100점이 나올 것이다. 그렇기에 이 두 값의 조화로운 점수를 F1 Score로 계산하게 된다.
F1=Precision1+Recall12=2∗Precision+RecallPrecision∗Recall
ROC Curve (Receiver Operating Characteristic)
FPR(False Positive Rate)와 TPR(True Positive Rate)를 x, y축으로 놓은 그래프이다. FPR은 0을 1로 틀리게 예측하는 비율을 의미하며, TPR은 1을 1로 바르게 예측하는 비율을 의미한다.
즉, TPR은 실제 Positive가 Positive로 예측되는 Recall과 동일하며, FPR의 경우에는 Negative를 Negative로 예측하는 경우를 1에서 빼준 값이 된다.
FPR=1−TNR=1−FP+TNTN=FP+TNFP
해당 그래프는 가운데 직선에서 거리가 멀수록 성능이 뛰어난 것이다.
ROC-AUC Score
분류의 성능 지표로는 ROC 곡선 면적에 기반한 AUC(Area Under Curve)값이 된다. 해당 값은 ROC 밑부분의 면적을 계산한 것으로 FPR이 작은 상태에서 얼마나 큰 TPR을 얻을 수 있느냐가 관건이다.
BLEU (Bilingual Evaluation Understudy)
문장의 경우 단어의 순서도 매우 중요하다. 그렇기 때문에 n-gram으로 묶은 단위로 Precision을 구하는 방식이다.
Rouge Score (Recall-Oriented Understudy for Gisting Evaluation)
주로 생성모델의 평가를 할 때 쓰는 Metric으로 n-gram Recall에 기반하여 계산이 이루어진다.
설명의 편의성을 위해 요약 Task를 예를 들어 설명하겠습니다. Rouge에서의 Recall은 참조 요약본을 구성하는 단어 중 몇 개의 단어가 시스템 요약본의 단어와 겹치는지를 보는 점수로
Recall=TotalWordsInReferenceSummaryNumberOfOverlappedWord
반면 Precision은 시스템 요약본의 단어가 참조 요약본에 얼마나 등장하는지를 확인하게 됩니다.
Recall=TotalWordsInSystemSummaryNumberOfOverlappedWord
이제 위와 같은 값들을 n-gram 단위로 묶어서 계산하게 되고, 이를 F1 Score로 계산한다.
Reference