NDCG는 검색 결과나 추천 시스템의 품질을 측정하는 지표입니다. 핵심은 두 가지입니다:
1. 관련성 높은 아이템이 상위에 노출될수록 좋다
2. 순위가 낮아질수록 가치가 할인(discount)된다
사용자가 액션 영화를 좋아한다고 가정하고, 시스템이 5개 영화를 추천했습니다.
추천 결과:
1. 분노의 질주 (액션) - 관련도: 3점
2. 노트북 (로맨스) - 관련도: 0점
3. 다이하드 (액션) - 관련도: 3점
4. 어벤져스 (액션) - 관련도: 2점
5. 타이타닉 (로맨스) - 관련도: 0점
DCG = Σ (관련도 / log₂(순위 + 1))
DCG = 3/log₂(2) + 0/log₂(3) + 3/log₂(4) + 2/log₂(5) + 0/log₂(6)
= 3/1 + 0/1.585 + 3/2 + 2/2.322 + 0/2.585
= 3 + 0 + 1.5 + 0.861 + 0
= 5.361
이상적인 순서 (관련도 높은 순):
1. 분노의 질주 - 3점
2. 다이하드 - 3점
3. 어벤져스 - 2점
4. 노트북 - 0점
5. 타이타닉 - 0점
IDCG = 3/1 + 3/1.585 + 2/2 + 0/2.322 + 0/2.585
= 3 + 1.893 + 1 + 0 + 0
= 5.893
NDCG = DCG / IDCG = 5.361 / 5.893 = 0.910 (91.0%)
해석: 이 추천은 이상적인 순서 대비 91%의 효율을 보여줍니다.
상황: 사용자의 시청 이력 기반 영화 추천
사용자 프로필: 스릴러 장르 선호, 크리스토퍼 놀란 감독 작품 시청
추천 결과 A (기존 알고리즘):
1. 인셉션 (관련도: 5)
2. 다크나이트 (관련도: 5)
3. 하울의 움직이는 성 (관련도: 1)
4. 인터스텔라 (관련도: 4)
→ NDCG@4 = 0.95
추천 결과 B (개선된 알고리즘):
1. 인셉션 (관련도: 5)
2. 다크나이트 (관련도: 5)
3. 인터스텔라 (관련도: 4)
4. 프레스티지 (관련도: 4)
→ NDCG@4 = 0.99
활용: A/B 테스트로 어떤 알고리즘이 더 나은지 정량적으로 비교
상황: "블루투스 이어폰" 검색
검색어: "블루투스 이어폰"
사용자 의도: 가성비 좋은 무선 이어폰
검색 결과:
1. 에어팟 프로 (클릭률: 8%, 구매율: 3%) - 관련도: 4
2. 쿠팡 자체 브랜드 이어폰 (클릭률: 15%, 구매율: 12%) - 관련도: 5
3. 갤럭시 버즈 (클릭률: 10%, 구매율: 5%) - 관련도: 4
4. 유선 이어폰 (클릭률: 2%, 구매율: 0.5%) - 관련도: 1
NDCG@10 계산으로 검색 품질 측정
→ 목표: NDCG > 0.85 유지
활용:
상황: 홈 피드 개인화
사용자: 요리 콘텐츠 주 시청자
추천 영상 (관련도 = 시청 완료율):
1. "5분 파스타 레시피" (90% 시청) - 관련도: 5
2. "백종원 김치찌개" (85% 시청) - 관련도: 5
3. "게임 하이라이트" (10% 시청) - 관련도: 1
4. "베이킹 기초" (70% 시청) - 관련도: 4
5. "요리 도구 리뷰" (60% 시청) - 관련도: 3
NDCG@5 = 0.92
활용:
검색 결과를 바탕으로 NDCG의 최신 동향을 정리하면:
NDCG가 RAG 시스템의 검색 품질을 평가하는 주요 지표로 자리잡고 있습니다. 2025년 현재:
예시: LLM이 문서에서 정보를 검색하는 RAG 시스템에서, NDCG를 사용하여 관련 문서가 얼마나 잘 순위가 매겨지는지 평가합니다.
흥미롭게도 2024년 KDD 컨퍼런스 연구에서 DCG를 정규화하는 관행이 일관성 문제를 야기한다는 것이 증명되었습니다:
시사점: 실무에서는 NDCG와 함께 DCG도 병행 측정하고, 도메인별 특성을 고려한 커스텀 메트릭 개발이 트렌드입니다.
개인화 시대에 NDCG는 추천 엔진의 영향을 정량화하고 이해관계자와 소통하며 향후 개선의 벤치마크 역할을 합니다:
응용 분야:
실무에서는 팀마다 NDCG를 다르게 정의합니다:
NDCG는 앞으로도 검색, 추천, RAG 시스템의 표준 평가 지표로 자리매김할 것으로 보임.