랭킹 지표 (Ranking Metrics)¶
개요¶
정보 검색(Information Retrieval)과 추천 시스템(Recommendation System)에서는 단순한 분류보다 결과의 순서(ordering)가 중요하다. 사용자는 검색 결과의 첫 몇 개만 보기 때문에, 관련 있는 항목을 상위에 배치하는 것이 핵심이다.
이 문서에서는 Precision@k, Recall@k, MRR, MAP, NDCG 등 주요 랭킹 지표의 정의, 계산 방법, 그리고 적합한 사용 상황을 다룬다.
핵심 개념¶
Precision@k와 Recall@k¶
- Precision@k: 상위 k개의 정확성
- Recall@k: 전체 관련 항목 중 상위 k개가 커버하는 비율
- 순위 내 위치는 고려하지 않음 — k개 안에 있기만 하면 됨
예시: 전체 관련 문서 5개, 상위 10개 결과 중 관련 문서가 3개 포함
- Precision@10 = 3/10 = 0.3
- Recall@10 = 3/5 = 0.6
Mean Reciprocal Rank (MRR, 평균 역순위)¶
- \(\text{rank}_q\): 쿼리 \(q\)에 대해 첫 번째 관련 결과가 나타나는 순위
- 관련 결과가 없으면 해당 쿼리의 역순위 = 0
예시:
| 쿼리 | 첫 관련 결과 순위 | 역순위 |
|---|---|---|
| Q1 | 1위 | 1/1 = 1.0 |
| Q2 | 3위 | 1/3 = 0.333 |
| Q3 | 5위 | 1/5 = 0.2 |
특징: - 단순하고 해석이 쉬움 - 첫 번째 관련 결과만 고려 — 나머지 관련 결과의 순위는 무시 - 적합한 경우: 탐색 쿼리(navigational query) — 사용자가 하나의 정답을 찾을 때
Mean Average Precision (MAP)¶
쿼리별 Average Precision (AP):
- \(R\): 전체 관련 문서 수
- \(P(k)\): 위치 \(k\)에서의 Precision
- \(\text{rel}(k)\): 위치 \(k\)의 항목이 관련 있으면 1, 아니면 0
- 관련 항목이 나타나는 위치에서만 Precision을 계산
상세 예시:
결과 순위: [관련, 비관련, 관련, 비관련, 관련], 전체 관련 항목 = 3
| 위치 k | 항목 | rel(k) | P(k) | P(k) x rel(k) |
|---|---|---|---|---|
| 1 | 관련 | 1 | 1/1 = 1.0 | 1.0 |
| 2 | 비관련 | 0 | 1/2 = 0.5 | 0 |
| 3 | 관련 | 1 | 2/3 = 0.667 | 0.667 |
| 4 | 비관련 | 0 | 2/4 = 0.5 | 0 |
| 5 | 관련 | 1 | 3/5 = 0.6 | 0.6 |
특징: - 전체 순위를 고려하며, 관련 항목을 일찍 배치할수록 높은 점수 - 이진 관련성(binary relevance) 가정 - 정밀도-재현율 트레이드오프의 AP와 동일한 개념
Normalized Discounted Cumulative Gain (NDCG)¶
등급화된 관련성(graded relevance)을 지원하는 지표. 현대 검색/추천에서 가장 널리 사용된다.
Discounted Cumulative Gain (DCG):
대안 공식: \(\text{DCG@k} = \sum_{i=1}^{k}\frac{rel_i}{\log_2(i + 1)}\) (관련성이 이진일 때 더 자주 사용)
Ideal DCG (IDCG): 관련성이 높은 순서대로 완벽하게 정렬했을 때의 DCG
- 범위: \([0, 1]\)
- 로그 감쇠: 하위 위치의 항목은 기여가 적어짐 — 사용자의 실제 행동을 반영
상세 예시:
| 위치 | 관련성 (0-3) | \(2^{rel} - 1\) | \(\log_2(i+1)\) | 기여 |
|---|---|---|---|---|
| 1 | 3 | 7 | 1.0 | 7.0 |
| 2 | 0 | 0 | 1.585 | 0 |
| 3 | 2 | 3 | 2.0 | 1.5 |
| 4 | 1 | 1 | 2.322 | 0.431 |
| 5 | 3 | 7 | 2.585 | 2.708 |
\(\text{DCG@5} = 7.0 + 0 + 1.5 + 0.431 + 2.708 = 11.639\)
이상적 순서 (관련성: 3, 3, 2, 1, 0):
\(\text{IDCG@5} = 7.0 + 4.416 + 1.5 + 0.431 + 0 = 13.347\)
Hit Rate / Hit@k¶
- 전체 쿼리에 대해 평균하여 사용
- 매우 단순하지만, 추천 시스템 평가에서 자주 사용
- MRR보다 덜 세밀하지만 계산이 간단
랭킹 평가 파이프라인¶
랭킹 시스템의 평가는 쿼리부터 최종 지표 산출까지 일련의 파이프라인을 따른다. 아래 다이어그램은 이 전체 흐름과 각 단계에서 적용 가능한 지표를 보여준다.
flowchart LR
Q["🔍 쿼리 (Query)"] --> R["📦 후보 검색<br/>(Retrieval)"]
R --> RK["📊 랭킹/정렬<br/>(Ranking)"]
RK --> E["📐 지표 계산<br/>(Evaluation)"]
R -.- R_NOTE["Recall@k로<br/>검색 커버리지 평가"]
RK -.- RK_NOTE["NDCG, MAP으로<br/>순위 품질 평가"]
E -.- E_NOTE["쿼리 집합에 대해<br/>평균하여 최종 점수"] 랭킹 지표 선택 가이드¶
어떤 랭킹 지표를 사용할지는 관련성 유형과 평가 목적에 따라 결정된다.
flowchart TD
START["랭킹 지표 선택"] --> REL{"관련성 유형은?"}
REL -- "이진<br/>(관련/비관련)" --> GOAL_BIN{"평가 목적은?"}
REL -- "등급화<br/>(0~5점 등)" --> NDCG["NDCG@k 사용"]
GOAL_BIN -- "첫 번째 관련 결과<br/>위치만 중요" --> MRR["MRR 사용<br/>(탐색 쿼리)"]
GOAL_BIN -- "전체 관련 항목의<br/>순위 품질" --> MAP["MAP 사용<br/>(정보 검색)"]
GOAL_BIN -- "상위 k개의<br/>단순 정확도" --> PK["Precision@k 사용"]
GOAL_BIN -- "관련 항목 존재<br/>여부만 확인" --> HIT["Hit@k 사용<br/>(추천 시스템)"]
style START fill:#4a90d9,color:#fff
style NDCG fill:#27ae60,color:#fff
style MRR fill:#8e44ad,color:#fff
style MAP fill:#e67e22,color:#fff
style PK fill:#3498db,color:#fff
style HIT fill:#95a5a6,color:#fff 랭킹 지표 비교¶
| 지표 | 관련성 유형 | 평가 범위 | 순위 위치 반영 | 주요 특징 |
|---|---|---|---|---|
| Precision@k | 이진 | 상위 k | X | 단순, 위치 무관 |
| Recall@k | 이진 | 상위 k | X | 커버리지 측정 |
| MRR | 이진 | 전체 | O (첫 항목만) | 첫 관련 결과만 평가 |
| MAP | 이진 | 전체 | O | 전체 순위 평가, 상위 보상 |
| NDCG@k | 등급화 | 상위 k | O (로그 감쇠) | 가장 범용적, 등급 관련성 |
| Hit@k | 이진 | 상위 k | X | 가장 단순 |
언제 사용하는가¶
| 상황 | 추천 지표 | 이유 |
|---|---|---|
| 하나의 정답을 찾는 검색 | MRR | 첫 관련 결과의 위치가 핵심 |
| 여러 관련 문서를 찾는 검색 | MAP | 전체 관련 문서의 순위를 종합 평가 |
| 등급화된 관련성 (별점, 클릭 수 등) | NDCG | 등급 관련성 + 위치 감쇠 |
| 추천 시스템 기본 평가 | Hit@k + NDCG@k | 간단한 존재 여부 + 순위 품질 |
| 정보 검색 벤치마크 | MAP + NDCG | 표준 평가 지표 |
흔한 오해와 함정¶
-
"오프라인 랭킹 지표가 높으면 실제 사용자 만족도도 높다" — 오프라인 지표와 온라인 지표(CTR, 체류 시간 등) 사이에는 약한 상관만 있을 수 있다. A/B 테스트로 확인해야 한다.
-
"Precision@k가 높으면 충분하다" — Precision@k는 순위 내 위치를 무시한다. 관련 항목이 k번째에 있든 1번째에 있든 같은 점수. NDCG나 MAP가 더 세밀하다.
-
"NDCG는 모든 랭킹 문제에 적합하다" — NDCG는 쿼리 독립적이므로, 쿼리 간 관련성 스케일이 다르면 해석이 어려울 수 있다. 정규화(IDCG)가 이를 완화하지만 완전하지 않다.
-
"MAP과 AP를 혼동한다" — AP는 단일 쿼리에 대한 지표, MAP는 여러 쿼리의 AP 평균이다.
-
"위치 편향(Position Bias)을 무시한다" — 훈련 데이터의 클릭은 위치 편향을 포함한다 (상위 결과가 더 많이 클릭됨). 이를 보정하지 않으면 평가가 편향된다.
-
"Cold-start 항목을 일반 항목과 같이 평가한다" — 신규 항목은 충분한 상호작용 데이터가 없으므로 별도로 평가해야 한다.
다른 주제와의 연결¶
- 정밀도-재현율 트레이드오프: AP는 PR 곡선 아래 면적; Precision@k, Recall@k는 분류 지표의 확장
- ROC와 AUC: AUC는 전체 순위 품질을 측정하는 또 다른 방법
- 혼동 행렬과 분류 지표: Precision, Recall의 기본 정의
- 통계적 검정: 랭킹 지표 차이의 통계적 유의성 검증