리뷰 분석

리뷰 분석(Review Analysis) 주요 성능 지표 및 계산 방법 이해하기

리뷰 분석 API는 주어진 문장의 감성(라벨)을 각 범주(type)별로 식별합니다.

감성적 라벨은 수치적이거나 범주적인 방식 모두 가능합니다.

예시 1) -2, -1, 0, 1,2

2) 부정적, 중립적, 긍정적

성능 지표

리뷰 분석은 모델 성능 측정을 위해 다음 4가지 메트릭을 이용합니다.

  • 정밀도(Precision)

  • 재현율(Recall)

  • F1점수 (F1-score)

  • 정확도 (Accuracy)

기본 개념

리뷰 분석의 모델 성능을 측정하기 위해 혼동 행렬을 통해 모델 별 예측 결과와 정답(ground truth)을 비교합니다.

1. 정답(Ground Truth)

정답은 모델 예측을 비교하거나 평가할 수 있는 참조점이 되는 개념입니다. 모델이 예측하려는 정확하고 검증된 라벨 또는 결과를 의미합니다.

다음과 같은 7가지 샘플 문장 각 카테고리(TYPE1~3)에 대해 세 가지 레이블 (POSITIVE, NEUTRAL, NEGATIVE) 중 하나를 설정할 수 있습니다.

만약 타입에 대한 레이블을 지정하지 않으면, 레이블은 NONE으로 채워집니다. 물론 이것이 성능 측정 테이블에서 NONE 레이블로 노출되지는 않습니다.

학습된 모델이 위 테스트 샘플 데이터를 처리한 결과, 다음과 같은 추론 결과가 반환되었다고 가정해 봅시다.

2. 추론 결과 (Inference Result)

추론 결과는 학습된 모델이 테스트 데이터를 처리하여 생성된 결과를 말합니다.

진실과 추론 결과 테이블에서 각 카테고리에 대한 혼동 행렬(Confusion Matrix)을 만들 수 있습니다.

3. 혼동 행렬 (Confusion Matrix)

예를 들어, 타입 3에 대한 혼동 행렬 테이블은 다음과 같습니다.

혼동 행렬을 사용하여 [표 4] 정밀도, 재현율, f1-score 및 정확도와 같은 전통적인 성능 메트릭을 쉽게 계산할 수 있습니다.

각 지표를 계산하는 방법

'모델 이력' 페이지 및 '메트릭 상세' 페이지에 존재하는 4가지 지표 값을 다음과 같이 설명합니다.

먼저 각 유형 카테고리 별 지표를 확인할 수 있습니다. 이러한 지표는 모델 히스토리 페이지에서 모델별 '상세정보' 버튼을 눌러 확인할 수 있습니다.

1. 정밀도(Precision)

정밀도는 모델의 정확성을 측정하는 메트릭입니다. 해당 카테고리의 정확한 예측과 그 카테고리에 대한 전체 예측 비율, 즉 단일 행의 합계에서 값을 계산할 수 있습니다. 이 예시에서 POSITIVE 레이블의 정밀도는 다음과 같습니다.

100 * TRUE POSITIVE / POSITIVE PREDICTION = 100 * 2 / (2 + 0 + 2 + 0) = 50%

'Metrics Details' 창 왼쪽 상단의 드롭다운 메뉴에서 POSITIVE 레이블을 선택하면 이 값을 확인할 수 있습니다.

NEUTRAL에 대한 정밀도는 진실 샘플 수가 0이므로 0입니다. 또한 NEUTRAL에 대한 정밀도는 올바른 예측 수가 0이기 때문에 0입니다. 그러나 NONE의 정밀도는 100%입니다. 이러한 값을 사용하여 모든 레이블의 정밀도에 대한 가중 평균을 계산할 수 있습니다.

(50 * 2 + 0 * 0 + 0 * 2 + 100 * 3) / (2 + 0 + 2 + 3) = 57.1%

둘째, 모델 별 전체 지표를 확인할 수 있습니다. '모델 기록' 페이지의 메트릭 값은 범주에 대한 가중 평균입니다. 보시다시피 모든 카테고리는 동일한 가중치를 받습니다. 그래서 우리는 그들에 대한 간단한 수치 평균을 취할 수 있습니다. 예를 들어, 이 예에서 모델의 전체 정밀도는 다음과 같습니다.

(57.1 + 52.4 + 42.9) / 3 = 50.8%

2. 재현율(Recall)

재현율은 모델이 카테고리를 찾아내는 능력을 측정합니다. 우리는 이 값을 해당 카테고리의 정확한 예측 수와 그 카테고리의 샘플 수의 비율인 즉, 하나의 열의 합으로부터 계산할 수 있습니다. 예를 들어, POSITIVE 라벨의 재현율은 다음과 같습니다.

100 * TRUE POSITIVE / POSITIVE LABELS = 100 * 2 / (2 + 0 + 0 + 0) = 100%

NEUTRAL의 재현율은 지원하는 라벨이 없기 때문에 0입니다. NEGATIVE의 재현율도 마찬가지로 0입니다. 그러나 그 이유는 다릅니다. 모델이 어떤 NEGATIVE 라벨도 찾지 못했기 때문입니다. 즉, NONE에 대한 재현율은 100%입니다.

이러한 결과를 사용하여 모든 라벨의 재현율의 가중 평균을 계산할 수 있습니다.

(100 * 2 + 0 * 0 + 0 * 2 + 100 + 3) / (2 + 0 + 2 + 3) = 71.4%

3. F1 점수(F1 Score)

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

이 예시에서 POSITIVE 라벨의 F1 점수는 다음과 같습니다.

2 * 50 * 100 / (50 + 100) = 66.7%

NEUTRAL과 NEGATIVE의 F1 점수는 0이지만, NONE에 대한 F1 점수는 100입니다.

이러한 결과를 사용하여 모든 라벨의 가중 평균 F1 점수를 계산할 수 있습니다.

(66.7 * 2 + 0 * 0 + 0 * 2 + 100 * 3) / (2 + 0 + 2 + 3) = 61.9%

4. Accuracy

우리는 정확한 예측 수와 모든 샘플 수의 비율인 정확도를 계산할 수 있습니다. 상단 왼쪽 모서리의 메뉴에서 'ALL'을 선택하면 정확도 값이 나타나지 않는 것을 알 수 있습니다. 이는 이러한 상황에서 값이 정의될 수 없음을 의미합니다. 그러나 'ALL'을 선택하면 이제 정확도 값을 확인할 수 있습니다. 예시로 구하면 다음과 같습니다

100 * (2 + 0 + 0 + 3) / 7 = 71.4%

추론 근거 및 신뢰도

대쉬보드 및 인퍼런스 페이지의 데이터 영역에서 리뷰 문장 열 우측에 '상세보기' 아이콘이 존재합니다.

이 아이콘을 클릭하면 뜨는 레이어 창에서 모델이 추출한 유형 카테고리 별로 추론의 근거가 된 문구(하이라이트 표시)와 해당 추론의 신뢰도 값을 확인할 수 있습니다.

신뢰도란, 모델의 예측이 얼마나 신뢰할 수 있는지에 대한 척도입니다. 0~1사이 소수 둘째자리 까지 값을 출력하고 있으며, 이 값이 클수록 해당 추론에 대한 신뢰도가 높다 해석할 수 있습니다.

위 예시 문장의 카테고리 별 추론 근거 및 신뢰도를 해석하면, 두번째 행에서 라인(핏) 카테고리의 점수가 1로 산출된 것에 대해 다음과 같습니다.

  • 근거가 되는 문장 내 구절 : '오오오 핏이 잘 맞아서 기쁘네요'

  • 신뢰도 : 0.84 (89%)

참고로, 카테고리 TYPE에 해당하는 테스트 데이터 샘플 수가 상대적으로 적은 경우, 카테고리 별 추론의 신뢰도 값이 다소 낮게 출력될 수 있습니다.

Last updated