2022. 5. 14. 14:53ㆍ검색
https://jiwondev.tistory.com/51?category=852827 (참조)
#6-1 정보검색 성능 평가 (P, R, F1, PRC)
# 정보검색의 성능은 어떻게 평가할까? 1. Effectiveness, (효과성, 사용자 만족도) 정확률Precision(검색된 문서 중 적합문서의 비율), 재현율Recall(전체 적합 문서중 찾은 비율), F지표 2. Efficiency(효율성)
jiwondev.tistory.com
# 정보검색의 성능은 어떻게 평가할까?
1. Effectiveness, (효과성, 사용자 만족도)
정확률Precision(검색된 문서 중 적합문서의 비율), 재현율Recall(전체 적합 문서중 찾은 비율), F지표
2. Efficiency(효율성)
시간, 공간 복잡도 ( 문서당 평균 색인속도, 검색소요시간 )
-> 이는 알고리즘 성능의 영역이므로 이 글에서 다루지는 않는다.
# 그냥 정답을 맞춘 비율로 평가하면 되는거 아닌가요?
그걸 정확도(Accuracy)라고합니다.
이건 예를 한번 들어보면 왜 이게 구린지 알 수 있습니다. 환자 100명의 데이터가 있고, 그 중 5명의 환자가 악성 종양을 가지고 있다고 악성종양을 탐지하는 모델 A가 있다고 생각해봅시다.
모델 A : 아무런 동작없이 모든 환자 100명이 모두 정상이라고 판단, 100명중 95명은 진짜 정상인이고 5명은 틀렸으니 0.95(95%)
모델A가 정말 좋은 검색모델일까요? 당연히 아닙니다. 이렇게 데이터 자체가 한쪽으로 몰려있는 경우, 단순 계산한 정확도(Accuracy)는 믿을 수 없습니다.
# 정확률과 재현율 (Precision & Recall), F1 지표
정확률: 검색된 문서에서 적합 문서의 비율
재현율 : 전체 적합 문서에서 찾아낸 적합 문서의 비율
전체 문서집합 {D1,D2,D3...D200}이 있고 200개의 문서중 질의 {Q}에 적합한 문서가 5개가 포함되어있다.
검색했을 때 6개의 문서가 검색되었고, 그 중 4개가 적합문서라면?
참고로 검색시스템마다 정확률, 재현율의 중요성이 달라진다.
예를 들어 특허/법률 분야의 검색에서는 전체 적합문서를 찾는 재현율을 높이는게 중요하며
일반적인 웹 검색에서는 나에게 적합한 문서만 보여주는 정확률을 높이는게 중요하다.
(일반 사용자들은 검색시스템이 가진 전체 적합문서가 필요하지 않다.)
정확률이 엄청 좋은데 재현율이 너무 낮은 시스템, 재현율이 뛰어나지만 정확률이 낮은 시스템
두 가지를 동시에 비교. 즉 (정확률+재현률)의 점수를 비교해서 검색모델을 평가 할 수는 없을까?
# F - Measure (F 지표)
실제로 이를 어떻게 할지 고민하다 나온 것이 조화평균을 사용하는 F지표이다.
조화평균이 뭐죠?
일반적으로 여러 수의 평균을 낼 때, 우리는 전부 덧셈하여 나누는 산술 평균(Arithmetic Mean)을 사용한다. 조화평균은 (주어진 수들의 역수)를 더하고 평균 낸 값의 역수를 취하는 방식이다.
이러한 조화평균은 음악의 화음(주파수의 역수)나 속도의 평균을 구할 때 사용된다.
같은 거리 S를 갈때는 10m/s, 올때는 20m/s 으로 왕복주행하였다면 평균속력은 단순한 산술평균으로 15m/s라고 생각할 수 있는데, 실제 시간과 거리를 계산해 속력을 측정해보면 대략 13.3m/s 정도의 속도가 나온다.
여기에서 x(평균 속력)에 대해 전개하면 위와 같은 조화평균 공식이 나오게 된다. 참고로 값이 2개 (a,b) 일때 조화평균(x)를 일반화하면 다음과 같은 계산하기 쉬운 공식을 얻을 수 있다.
정확률, 재현율은 분수로 이루어진 값이기에 조화평균을 사용해야한다.
그래서 가중치를 이용해서 위 공식 모양으로 계산하게되면 위아래가 다음과 같은 모양으로 나오게 되는데 이때 계산된 가중치 값을 계산하기 편하게 로 치환했다.
# F-1 지표
# 정확률과 재현율의 한계
하지만 단순히 생각해도 실제 성능은 적합문서를 Rank1으로 찾아낸 시스템 B가 더 우수한 검색시스템이라 볼 수 있다.
그렇다면 순위(Rank) 정보까지 고려해서 정보검색 시스템을 평가할려면 어떻게 해야할까?
# Ranking을 포함한 정보검색 성능평가
1. Precision-Recall Curve (PRC)
정확률(P)와 재현률(R)로 그래프를 그리는 방법. 보통 정확률을 세로(y)축으로 사용한다.
* 물론 단순히 P-R 그래프를 그리면 그래프의 모양이 톱니모양(sawtooth)라서 제대로 평가 할 수 없다.
총 적합문서가 5개가 있고, 질의문(Q)에 대하여 8개의 문서가 Rank1~8로 정렬되어 검색되었다고 가정하면 아래와 같은 표가 나온다.
... 이런식으로 검색된 문서를 Rank 순서대로 1개씩 늘리며 그래프를 그리는 방법이다. (검색된 총 문서 개수만큼 점이 찍힌다.)
이 그래프의 모양을 이용해서 Rank이 반영된 점수를 매기는 방법인데, 당연히 저런 톱니모양 그래프를 비교하기가 어려워서 그냥 사용하지는 않고 보간(보정, Interpolated)하여 사용한다.
2. Interpolated PRC (보간 PRC)
PRC의 그래프 모양을 톱니모양이 아닌, 완만한 모양으로 바꾸는 방법이다.
재현률(r) 한 지점을 정해서, 그 지점보다 재현률이 같거나 큰 점들 중 가장 큰 max 정확률 값을 찾는다.
아래 빨간색 그래프에서는, 어떤 시스템이 더 좋은지 그래프의 넓이를 구해 한눈에 파악 할 수 있다. (초록 > 파랑)
* 보통 그래프의 점수를 아래 넓이로(AUC, Area Under the Curve) 구해서 이를 AUPRC라고 부르기도 한다.
# 근데 질의문마다 그래프가 다르게 나올건데, 어떤 질의문을 기준으로 해야할까?
# 예제를 통해 좀 더 알아보자
전체 적합문서의 수가 4개가 있고, 질의 문서에 대해 총 15개의 문서가 Ranking 되어 검색되었다고 생각해보자.
위에서 배운대로 표를 그려도 되지만, 사실 Interpolated PRC에서는 적합문서가 나올때만 정확률의 값이 바뀌므로 전부 구하지않고 적합문서의 Rank 지점에만 정확률을 구해줘도 된다.
P( 재현률 ) = 해당 재현률(R)보다 같거나 큰 지점에서 가장 큰 정확률(P)
그래프말고 하나의 평균 값으로 나타내는 방법은 없을까?
=> 평균정확률 (Mean Average Precision, MAP)
'검색' 카테고리의 다른 글
정보검색 - 검색모델 성능향상, 적합성 피드백 (Relevance Feedback) (0) | 2022.05.14 |
---|---|
정보검색 성능 평가 (2/2) - MAP, Pre@K, R-pre, NDCG (0) | 2022.05.14 |
정보검색 - 검색모델(벡터 모델) (0) | 2022.05.14 |
검색 이론 (3/3) - 검색모델 (Retrieval Models) (0) | 2022.05.14 |
검색 이론 개요 (2/3) - 검색모델, 색인, 역색인, 조회 (0) | 2022.05.14 |