개체명 인식(NER)

NER 주요 성능 지표 및 계산 방법 이해하기

NER API는 자연어 텍스트에서 사람, 조직, 위치 및 기타 특정 유형의 entity와 같은 의미 있는 키워드(entity)를 추출합니다.

성능 지표

NER은 모델 성능을 측정하기 위해 3가지 지표를 사용합니다.

1. 정밀도(Precision)

정밀도는 모델이 얼마나 정확한지를 측정합니다. 우리는 정확한 예측 수와 예측 수의 비율로부터 이 값을 계산할 수 있습니다.

2. 재현율(Recall)

재현율은 모델이 카테고리를 찾아내는 능력을 측정합니다. 우리는 정확한 예측 수와 샘플 수의 비율로부터 이 값을 계산할 수 있습니다.

3. F1 점수(F1 Score)

정밀도와 재현율은 모델의 서로 다른 측면을 나타냅니다. 어떤 상황에서는 우리는 정밀도가 우수한 모델을 원하지만 재현율은 중요하지 않을 수 있으며, 그 반대일 수도 있습니다. 좋은 정밀도와 재현율을 모두 갖는 모델을 원한다면 단일 지표가 유용합니다. 다음과 같은 정의를 가진 F1 점수는 이러한 목적을 위한 가장 유명한 지표 중 하나입니다.

F1 점수 = 2 * 정밀도 * 재현율 / (정밀도 + 재현율)

NER에서는 다음 두 가지 이유로 정확도를 성능 지표로 사용하지 않습니다. 따라서 N/A 값으로 표시됩니다.

  1. 데이터 불균형: 대부분의 NER 데이터셋에서, 비-entity 토큰(예: 일반 단어)의 수가 entity 토큰보다 훨씬 많습니다. 결과적으로 모델은 모든 토큰을 비-entities로 예측함으로써 높은 정확도를 달성할 수 있습니다. 따라서 데이터 불균형으로 인해 정확도는 모델의 성능을 올바르게 반영하지 못합니다.

  2. 분류 오류의 중요성: NER에서는 entity의 유형을 정확하게 분류하는 것이 중요합니다. 예를 들어, 사람의 이름을 조직 이름으로 잘못 분류하는 것은 중요한 오류입니다. 그러나 정확도는 예측이 올바른 답과 일치하는지만 평가하며, 개체의 유형을 고려하지 않습니다. 이로 인해 중요한 분류 오류를 놓치게 될 수 있습니다.

지표 계산 방법

NER 훈련은 사용자가 선택한 테스트 세트로 성공적으로 완료되면 평가 단계를 트리거합니다. 예를 들어, 우리는 모델 평가를 위해 두 구문을 선택했습니다.

아래 [이미지 2]에서 보여지는 메트릭 세부 정보 페이지는 각 entity에 대한 모델의 성능을 보여줍니다. 우리는 훈련 세트에서 찾을 수 있는 두 개의 entity만 선택했습니다. 대시보드에서는 구문 A142에 6개의 TECHNOLOGY entity가 있고, 구문 A128에는 3개의 COUNTRY entity가 있습니다. 이 숫자는 Metric Details 페이지에서 Sample 열에서 확인할 수도 있습니다.

추론 탭 페이지에서는 모델의 추론 결과를 확인할 수 있습니다.

구문 142 [아래 이미지 4]를 사용하여 (기술 entity에 대한 Confusion Matrix를 TECHNOLOGY entity가 구문 A142에서만 나타나기 때문에) 만들 수 있습니다. A142에서는 추론 결과 3개의 TECHNOLOGY entity가 모두 맞았지만, 결과에서는 3개의 TECHNOLOGY entity가 빠져 있습니다. 따라서 3개의 true positives와 3개의 false negatives가 있습니다.

먼저, 위의 confusion matrix와 이전 섹션에서의 방정식을 사용하여 각 entity의 성능 메트릭을 계산할 수 있습니다. 예를 들어, 아래와 같이 precision, recall 및 F1-score를 계산할 수 있습니다.

  • Precision = TP / (TP + FP) = 3 / (3 + 0) * 100 = 100%

  • Recall = TP / (TP + FN) = 3 / (3 + 3) * 100 = 50%

  • F1-score = 2 * Precision * Recall / (Precision + Recall) = 2 * 100 * 50 / (100 + 50) = 66.7%

동일한 유추를 사용하여 COUNTRY entity의 confusion matrix를 만들 수 있습니다. 추론 결과에는 1개의 COUNTRY entity가 있으며, 이는 올바른 entity입니다. 그러나 결과에서는 2개의 COUNTRY entity가 누락되었습니다. 따라서 COUNTRY entity의 정밀도는 100%이지만, 재현율은 33.3%입니다.

이러한 entity-level 메트릭을 사용하여 각 메트릭의 가중 평균을 계산하여 모델-level 메트릭을 계산할 수 있습니다. 예를 들어, 모델의 재현율은 다음과 같습니다.

Recall = (RecallTECHNOLOGY * SupportTECHNOLOGY + RecallCOUNTRY * SupportCOUNTRY) / Supporttotal = (50 * 6 + 33.3 * 3) / (6 + 3) = 44.4%

동일한 방법으로 모델의 정밀도와 F1 점수를 쉽게 얻을 수 있습니다.

Entity-level 평가

메트릭 재현율과 정밀도 메트릭의 결과에 대해서는 다음과 같은 해석이 가능합니다.

정밀도와 재현율이 모두 높은 경우, 모델에 의해 개체가 잘 핸들링 되고 있음을 의미하고, 둘 다 낮은 경우는 모델이 아직 개체 인식 및 구분을 제대로 하지 못하고 있고 설령 인식하더라도 낮은 신뢰도(confidence)입니다.

정밀도는 높은데 재현율이 낮은 경우는, 모델이 이 개체를 잘 찾아내지 못하지만 일단 찾은 것에 대해서는 신뢰도가 높은 것입니다.

재현율은 높은 데 정밀도가 낮은 경우는, 모델이 모델이 개체 자체는 잘 찾아내나 이를 다른 개체로 인식할 확률이 높다는 것입니다.

Last updated