콘텐츠로 이동

랭킹 지표 (Ranking Metrics)

개요

정보 검색(Information Retrieval)과 추천 시스템(Recommendation System)에서는 단순한 분류보다 결과의 순서(ordering)가 중요하다. 사용자는 검색 결과의 첫 몇 개만 보기 때문에, 관련 있는 항목을 상위에 배치하는 것이 핵심이다.

이 문서에서는 Precision@k, Recall@k, MRR, MAP, NDCG 등 주요 랭킹 지표의 정의, 계산 방법, 그리고 적합한 사용 상황을 다룬다.


핵심 개념

Precision@k와 Recall@k

\[\text{Precision@k} = \frac{\text{상위 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, 평균 역순위)

\[\text{MRR} = \frac{1}{|Q|}\sum_{q=1}^{|Q|}\frac{1}{\text{rank}_q}\]
  • \(\text{rank}_q\): 쿼리 \(q\)에 대해 첫 번째 관련 결과가 나타나는 순위
  • 관련 결과가 없으면 해당 쿼리의 역순위 = 0

예시:

쿼리 첫 관련 결과 순위 역순위
Q1 1위 1/1 = 1.0
Q2 3위 1/3 = 0.333
Q3 5위 1/5 = 0.2
\[\text{MRR} = \frac{1.0 + 0.333 + 0.2}{3} = 0.511\]

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


Mean Average Precision (MAP)

쿼리별 Average Precision (AP):

\[\text{AP} = \frac{1}{R}\sum_{k=1}^{n} P(k) \cdot \text{rel}(k)\]
  • \(R\): 전체 관련 문서 수
  • \(P(k)\): 위치 \(k\)에서의 Precision
  • \(\text{rel}(k)\): 위치 \(k\)의 항목이 관련 있으면 1, 아니면 0
  • 관련 항목이 나타나는 위치에서만 Precision을 계산
\[\text{MAP} = \frac{1}{|Q|}\sum_{q=1}^{|Q|} \text{AP}_q\]

상세 예시:

결과 순위: [관련, 비관련, 관련, 비관련, 관련], 전체 관련 항목 = 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
\[\text{AP} = \frac{1.0 + 0.667 + 0.6}{3} = 0.756\]

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


Normalized Discounted Cumulative Gain (NDCG)

등급화된 관련성(graded relevance)을 지원하는 지표. 현대 검색/추천에서 가장 널리 사용된다.

Discounted Cumulative Gain (DCG):

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

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

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

\[\text{NDCG@k} = \frac{\text{DCG@k}}{\text{IDCG@k}}\]
  • 범위: \([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\)

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

Hit Rate / Hit@k

\[\text{Hit@k} = \begin{cases} 1 & \text{if 상위 k에 관련 항목이 하나라도 있으면} \\ 0 & \text{otherwise} \end{cases}\]
  • 전체 쿼리에 대해 평균하여 사용
  • 매우 단순하지만, 추천 시스템 평가에서 자주 사용
  • 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 표준 평가 지표

흔한 오해와 함정

  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 항목을 일반 항목과 같이 평가한다" — 신규 항목은 충분한 상호작용 데이터가 없으므로 별도로 평가해야 한다.


다른 주제와의 연결