랭킹 지표 (Ranking Metrics)
핵심 요약: 검색과 추천 시스템에서는 “맞혔느냐”보다 “순서가 맞느냐”가 중요하다. 1위에 놓인 관련 결과는 10위보다 훨씬 가치가 높다. NDCG는 이 “위치에 따른 가치 감소”를 로그 함수로 반영한다. 신문 1면 헤드라인은 모든 독자가 보지만, 5면 기사는 소수만 읽는 것과 같은 원리다.
정보 검색(Information Retrieval, 대량의 문서에서 원하는 정보를 찾는 기술)과 추천 시스템(Recommendation System)에서는 단순한 분류보다 결과의 순서(ordering)가 중요하다. 사용자는 검색 결과의 첫 몇 개만 보기 때문에, 관련 있는 항목을 상위에 배치하는 것이 핵심이다.
이 문서에서는 Precision@k, Recall@k, MRR, MAP, NDCG 등 주요 랭킹 지표의 정의, 계산 방법, 그리고 적합한 사용 상황을 다룬다.
탄생 배경
섹션 제목: “탄생 배경”초기 정보 검색(IR) 연구에서는 문서의 관련성을 “관련(relevant)“과 “비관련(non-relevant)“의 이진(binary)으로만 판단했다. Precision과 Recall, 그리고 이들의 조합인 MAP(Mean Average Precision)는 이 이진 관련성 패러다임 위에 구축되었다.
그러나 2000년대 초, Kalervo Jarvelin과 Jaana Kekalainen은 핵심적인 관찰을 했다: 실제 검색 결과의 관련성은 이진이 아니라 등급(graded)이다. 어떤 문서는 “매우 관련”, 어떤 문서는 “약간 관련”, 어떤 문서는 “비관련”이다. 기존의 MAP는 “매우 관련”과 “약간 관련”을 같은 “관련”으로 취급하여 이 중요한 차이를 무시했다. 이 발견으로 2002년 NDCG(Normalized Discounted Cumulative Gain)가 탄생했다.
NDCG의 설계에는 사용자 행동에 대한 또 다른 중요한 통찰도 반영되어 있다: 사용자는 검색 결과 1위에 10배 더 주목한다. 눈 추적(eye-tracking) 연구에 따르면, 검색 결과 1위는 100%의 사용자가 보지만, 2위는 약 80%, 3위는 60%, 10위는 20% 미만의 사용자만 본다. NDCG의 로그 감쇠(logarithmic discount) 함수 는 바로 이 위치에 따른 주목도 감소를 수학적으로 모델링한 것이다.
핵심 개념
섹션 제목: “핵심 개념”Precision@k와 Recall@k
섹션 제목: “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, 평균 역순위)
섹션 제목: “Mean Reciprocal Rank (MRR, 평균 역순위)”
- : 쿼리 에 대해 첫 번째 관련 결과가 나타나는 순위
- 관련 결과가 없으면 해당 쿼리의 역순위(Reciprocal Rank, 순위의 역수) = 0
숫자로 이해하기
섹션 제목: “숫자로 이해하기”“머신러닝 입문”을 검색했을 때, 상위 5개 결과가 다음과 같다고 하자:
순위 문서 관련? Precision@k 누적 관련 수 1 ML 개요 O 1/1 = 1.0 1 2 요리 레시피 X 1/2 = 0.5 1 3 딥러닝 기초 O 2/3 = 0.67 2 4 날씨 뉴스 X 2/4 = 0.5 2 5 파이썬 튜토리얼 O 3/5 = 0.6 3
- Precision@5 = 3/5 = 0.6
- MRR = 1/1 = 1.0 (첫 관련 결과가 1위)
- AP = (1.0 + 0.67 + 0.6) / 3 = 0.756 (관련 문서가 나타난 위치에서만 Precision 계산)
예시:
| 쿼리 | 첫 관련 결과 순위 | 역순위 |
|---|---|---|
| Q1 | 1위 | 1/1 = 1.0 |
| Q2 | 3위 | 1/3 = 0.333 |
| Q3 | 5위 | 1/5 = 0.2 |
특징:
- 단순하고 해석이 쉬움
- 첫 번째 관련 결과만 고려 — 나머지 관련 결과의 순위는 무시
- 적합한 경우: 탐색 쿼리(navigational query) — 사용자가 하나의 정답을 찾을 때
Mean Average Precision (MAP)
섹션 제목: “Mean Average Precision (MAP)”쿼리별 Average Precision (AP):
- : 전체 관련 문서 수
- : 위치 에서의 Precision
- : 위치 의 항목이 관련 있으면 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)
섹션 제목: “Normalized Discounted Cumulative Gain (NDCG)”등급화된 관련성(Graded Relevance, “매우 관련/약간 관련/비관련” 같은 다단계 평가)을 지원하는 지표. 현대 검색/추천에서 가장 널리 사용된다.
Discounted Cumulative Gain (DCG):
대안 공식: (관련성이 이진일 때 더 자주 사용)
Ideal DCG (IDCG): 관련성이 높은 순서대로 완벽하게 정렬했을 때의 DCG
- 범위:
- 로그 감쇠: 하위 위치의 항목은 기여가 적어짐 — 사용자의 실제 행동을 반영. 비유하자면, 신문의 1면 헤드라인은 모든 독자가 보지만, 5면 기사는 소수만 읽는 것과 같다. NDCG는 이 “주목도 감쇠”를 수학적으로 반영한다.
상세 예시:
| 위치 | 관련성 (0-3) | 기여 | ||
|---|---|---|---|---|
| 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 |
이상적 순서 (관련성: 3, 3, 2, 1, 0):
Hit Rate / Hit@k
섹션 제목: “Hit Rate / Hit@k”
- 전체 쿼리에 대해 평균하여 사용
- 매우 단순하지만, 추천 시스템 평가에서 자주 사용
- MRR보다 덜 세밀하지만 계산이 간단
랭킹 평가 파이프라인
섹션 제목: “랭킹 평가 파이프라인”랭킹 시스템의 평가는 쿼리부터 최종 지표 산출까지 일련의 파이프라인을 따른다. 아래 다이어그램은 이 전체 흐름과 각 단계에서 적용 가능한 지표를 보여준다.
랭킹 지표 선택 가이드
섹션 제목: “랭킹 지표 선택 가이드”어떤 랭킹 지표를 사용할지는 관련성 유형과 평가 목적에 따라 결정된다.
랭킹 지표 비교
섹션 제목: “랭킹 지표 비교”| 지표 | 관련성 유형 | 평가 범위 | 순위 위치 반영 | 주요 특징 |
|---|---|---|---|---|
| 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 | 표준 평가 지표 |
실전 사례
섹션 제목: “실전 사례”MAP@10 최적화의 함정: 사용자는 11-20위를 더 많이 클릭했다
섹션 제목: “MAP@10 최적화의 함정: 사용자는 11-20위를 더 많이 클릭했다”한 이커머스 추천 시스템 팀이 상품 추천 알고리즘을 개선하면서, 오프라인 평가 지표로 MAP@10을 채택했다. 논리는 간단했다: “사용자는 상위 10개 추천만 본다. 따라서 상위 10개의 품질을 최적화하면 된다.”
팀은 MAP@10을 15% 개선하는 새 알고리즘을 개발하고 A/B 테스트에 투입했다. 그러나 결과는 예상 밖이었다. 전체 클릭률(CTR)이 오히려 8% 하락한 것이다.
원인을 분석하니, 해당 플랫폼의 사용자 행동은 연구자들의 가정과 달랐다. 모바일 앱의 UI 특성상, 사용자는 상위 10개를 빠르게 스크롤한 후 “더 보기” 버튼을 눌러 11-20위 결과를 탐색하는 패턴이 두드러졌다. 새 알고리즘은 MAP@10 최적화 과정에서 상위 10개의 정확도를 높였지만, 그 과정에서 다양성(diversity)이 감소하여 비슷한 상품이 상위에 몰렸다. 사용자는 상위 10개에서 원하는 것을 찾지 못하면 “더 보기”를 눌렀는데, 11-20위의 품질도 함께 하락한 것이다.
해결책으로 팀은 평가 지표를 NDCG@20 + 다양성 지표(Intra-List Diversity)의 조합으로 변경했고, 오프라인 지표와 온라인 CTR의 상관관계가 크게 개선되었다.
교훈: 오프라인 랭킹 지표를 선택할 때, 실제 사용자의 탐색 패턴과 UI 구조를 고려해야 한다. @k의 k값 설정은 데이터 기반으로 결정해야 하며, 단일 지표 최적화는 의도치 않은 부작용을 낳을 수 있다.
흔한 오해와 함정
섹션 제목: “흔한 오해와 함정”-
“오프라인 랭킹 지표가 높으면 실제 사용자 만족도도 높다” — 오프라인 지표와 온라인 지표(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의 기본 정의
- 통계적 검정: 랭킹 지표 차이의 통계적 유의성 검증