콘텐츠로 이동

랭킹 지표 (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) 함수 1log2(i+1)\frac{1}{\log_2(i+1)}는 바로 이 위치에 따른 주목도 감소를 수학적으로 모델링한 것이다.


Precision@k=상위 k개 중 관련 항목 수k\text{Precision@k} = \frac{\text{상위 k개 중 관련 항목 수}}{k}

Recall@k=상위 k개 중 관련 항목 수전체 관련 항목 수\text{Recall@k} = \frac{\text{상위 k개 중 관련 항목 수}}{\text{전체 관련 항목 수}}

  • 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, 평균 역순위)”

MRR=1Qq=1Q1rankq\text{MRR} = \frac{1}{|Q|}\sum_{q=1}^{|Q|}\frac{1}{\text{rank}_q}

  • rankq\text{rank}_q: 쿼리 qq에 대해 첫 번째 관련 결과가 나타나는 순위
  • 관련 결과가 없으면 해당 쿼리의 역순위(Reciprocal Rank, 순위의 역수) = 0

“머신러닝 입문”을 검색했을 때, 상위 5개 결과가 다음과 같다고 하자:

순위문서관련?Precision@k누적 관련 수
1ML 개요O1/1 = 1.01
2요리 레시피X1/2 = 0.51
3딥러닝 기초O2/3 = 0.672
4날씨 뉴스X2/4 = 0.52
5파이썬 튜토리얼O3/5 = 0.63
  • Precision@5 = 3/5 = 0.6
  • MRR = 1/1 = 1.0 (첫 관련 결과가 1위)
  • AP = (1.0 + 0.67 + 0.6) / 3 = 0.756 (관련 문서가 나타난 위치에서만 Precision 계산)

예시:

쿼리첫 관련 결과 순위역순위
Q11위1/1 = 1.0
Q23위1/3 = 0.333
Q35위1/5 = 0.2

MRR=1.0+0.333+0.23=0.511\text{MRR} = \frac{1.0 + 0.333 + 0.2}{3} = 0.511

특징:

  • 단순하고 해석이 쉬움
  • 첫 번째 관련 결과만 고려 — 나머지 관련 결과의 순위는 무시
  • 적합한 경우: 탐색 쿼리(navigational query) — 사용자가 하나의 정답을 찾을 때

쿼리별 Average Precision (AP):

AP=1Rk=1nP(k)rel(k)\text{AP} = \frac{1}{R}\sum_{k=1}^{n} P(k) \cdot \text{rel}(k)

  • RR: 전체 관련 문서 수
  • P(k)P(k): 위치 kk에서의 Precision
  • rel(k)\text{rel}(k): 위치 kk의 항목이 관련 있으면 1, 아니면 0
  • 관련 항목이 나타나는 위치에서만 Precision을 계산

MAP=1Qq=1QAPq\text{MAP} = \frac{1}{|Q|}\sum_{q=1}^{|Q|} \text{AP}_q

상세 예시:

결과 순위: [관련, 비관련, 관련, 비관련, 관련], 전체 관련 항목 = 3

위치 k항목rel(k)P(k)P(k) x rel(k)
1관련11/1 = 1.01.0
2비관련01/2 = 0.50
3관련12/3 = 0.6670.667
4비관련02/4 = 0.50
5관련13/5 = 0.60.6

AP=1.0+0.667+0.63=0.756\text{AP} = \frac{1.0 + 0.667 + 0.6}{3} = 0.756

특징:

  • 전체 순위를 고려하며, 관련 항목을 일찍 배치할수록 높은 점수
  • 이진 관련성(binary relevance) 가정
  • 정밀도-재현율 트레이드오프의 AP와 동일한 개념

Normalized Discounted Cumulative Gain (NDCG)

섹션 제목: “Normalized Discounted Cumulative Gain (NDCG)”

등급화된 관련성(Graded Relevance, “매우 관련/약간 관련/비관련” 같은 다단계 평가)을 지원하는 지표. 현대 검색/추천에서 가장 널리 사용된다.

Discounted Cumulative Gain (DCG):

DCG@k=i=1k2reli1log2(i+1)\text{DCG@k} = \sum_{i=1}^{k}\frac{2^{rel_i} - 1}{\log_2(i + 1)}

대안 공식: DCG@k=i=1krelilog2(i+1)\text{DCG@k} = \sum_{i=1}^{k}\frac{rel_i}{\log_2(i + 1)} (관련성이 이진일 때 더 자주 사용)

Ideal DCG (IDCG): 관련성이 높은 순서대로 완벽하게 정렬했을 때의 DCG

NDCG@k=DCG@kIDCG@k\text{NDCG@k} = \frac{\text{DCG@k}}{\text{IDCG@k}}

  • 범위: [0,1][0, 1]
  • 로그 감쇠: 하위 위치의 항목은 기여가 적어짐 — 사용자의 실제 행동을 반영. 비유하자면, 신문의 1면 헤드라인은 모든 독자가 보지만, 5면 기사는 소수만 읽는 것과 같다. NDCG는 이 “주목도 감쇠”를 수학적으로 반영한다.

상세 예시:

위치관련성 (0-3)2rel12^{rel} - 1log2(i+1)\log_2(i+1)기여
1371.07.0
2001.5850
3232.01.5
4112.3220.431
5372.5852.708

DCG@5=7.0+0+1.5+0.431+2.708=11.639\text{DCG@5} = 7.0 + 0 + 1.5 + 0.431 + 2.708 = 11.639

이상적 순서 (관련성: 3, 3, 2, 1, 0):

IDCG@5=7.0+4.416+1.5+0.431+0=13.347\text{IDCG@5} = 7.0 + 4.416 + 1.5 + 0.431 + 0 = 13.347

NDCG@5=11.63913.347=0.872\text{NDCG@5} = \frac{11.639}{13.347} = 0.872


Hit@k={1if 상위 k에 관련 항목이 하나라도 있으면0otherwise\text{Hit@k} = \begin{cases} 1 & \text{if 상위 k에 관련 항목이 하나라도 있으면} \\ 0 & \text{otherwise} \end{cases}

  • 전체 쿼리에 대해 평균하여 사용
  • 매우 단순하지만, 추천 시스템 평가에서 자주 사용
  • MRR보다 덜 세밀하지만 계산이 간단

랭킹 시스템의 평가는 쿼리부터 최종 지표 산출까지 일련의 파이프라인을 따른다. 아래 다이어그램은 이 전체 흐름과 각 단계에서 적용 가능한 지표를 보여준다.

랭킹 평가 파이프라인 다이어그램

어떤 랭킹 지표를 사용할지는 관련성 유형과 평가 목적에 따라 결정된다.

랭킹 지표 선택 가이드 다이어그램

지표관련성 유형평가 범위순위 위치 반영주요 특징
Precision@k이진상위 kX단순, 위치 무관
Recall@k이진상위 kX커버리지 측정
MRR이진전체O (첫 항목만)첫 관련 결과만 평가
MAP이진전체O전체 순위 평가, 상위 보상
NDCG@k등급화상위 kO (로그 감쇠)가장 범용적, 등급 관련성
Hit@k이진상위 kX가장 단순

상황추천 지표이유
하나의 정답을 찾는 검색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값 설정은 데이터 기반으로 결정해야 하며, 단일 지표 최적화는 의도치 않은 부작용을 낳을 수 있다.


  1. “오프라인 랭킹 지표가 높으면 실제 사용자 만족도도 높다” — 오프라인 지표와 온라인 지표(CTR, 체류 시간 등) 사이에는 약한 상관만 있을 수 있다. A/B 테스트로 확인해야 한다.

  2. “Precision@k가 높으면 충분하다” — Precision@k는 순위 내 위치를 무시한다. 관련 항목이 k번째에 있든 1번째에 있든 같은 점수. NDCG나 MAP가 더 세밀하다.

  3. “NDCG는 모든 랭킹 문제에 적합하다” — NDCG는 쿼리 독립적이므로, 쿼리 간 관련성 스케일이 다르면 해석이 어려울 수 있다. 정규화(IDCG)가 이를 완화하지만 완전하지 않다.

  4. “MAP과 AP를 혼동한다” — AP는 단일 쿼리에 대한 지표, MAP는 여러 쿼리의 AP 평균이다.

  5. “위치 편향(Position Bias)을 무시한다” — 훈련 데이터의 클릭은 위치 편향을 포함한다 (상위 결과가 더 많이 클릭됨). 이를 보정하지 않으면 평가가 편향된다.

  6. “Cold-start 항목을 일반 항목과 같이 평가한다” — 신규 항목은 충분한 상호작용 데이터가 없으므로 별도로 평가해야 한다.