본문 바로가기
🟣 AI & ML

추천시스템 순위 평가 지표 nDCG 쉽게 이해하기

by 제리강 2023. 5. 21.

 

 

배경: 추천 시스템 평가 지표

  • 추천 시스템은 크게 온라인 평가, 오프라인 평가, 사용자 스터디로 나눌 수 있음
  • 그 중 오프라인 평가의 지표는 예측 오차 지표, 집합 평가 지표, 순위 평가 지표 등이 존재함
  • 순위 평가 지표에는 nDCG, MAP, MRR 등이 있으며, 이 포스트에서는 nDCG를 쉽게 풀어 설명해 봄

 

 

nDCG(normalized Discounted Cumulative Gain)

  • 번역하면 정규화된 누적 할인 이득인데 이게 대체 무슨 말임?
  • 뒤에서부터 차근차근 이해해봅시다
  • 이득(Gain) → 누적(Cumulative) → 할인(Dicsounted) → 정규화(normalized)

 

 

이득(Gain)

  • 이득은 모델이 추천한 아이템에 대해 실제 사용자의 행동에 점수를 매긴 것이고, 임의로 설정할 수 있음 
  • 만약 추천해준 아이템을 구매했으면 2점, 클릭만 했으면 1점, 보지 않고 지나쳤으면 0점이라고 해봅시다
  • 그럼 이득은 다음 표와 같이 나타낼 수 있음

 

 

누적(Cumulative)

  • 누적은 추천해준 아이템에 대해 매긴 이득을 모두 더해주었다는 말임
  • 누적 이득까지를 수식으로는 아래와 같이 표현할 수 있음

  • 위 표에서 누적 이득은 단순히 0+2+0+1+0=3 이 됨

 

 

할인(Discounted)

  • 할인은 추천 순위에 따라 이득 값을 조금씩 낮춰준다는 거임
  • 모델이 1순위로 추천해준 아이템이 구매되는 것과, 100순위로 추천해준 아이템이 구매되는 것은 그 의미가 다를 수 있음
  • 예를 들어, 친구의 MBTI를 맞춘다고 해 봅시다
  • 처음부터 바로 너 INTP이지? 하고 맞히면 오 대단해~ 하겠지만 한 열 번 틀리고 맞추면 딱히 대단하진 않음
  • 그래서 nDCG는 뒷 순위의 추천 아이템에 대해서 이득을 순위에 비례하는 값으로 나누어 작게 만들어 줌
  • 그냥 순위값으로만 나누면 이득이 너무 급격히 작아질 수 있으므로 로그를 씌워줌
  • 누적 이득에 할인 개념을 더하여 수식으로 나타내면 다음과 같음

  • 위 표에서 DCG를 계산하면 다음과 같음

  • 문헌마다 로그 항을 적용하는 방법이 조금씩 차이가 있는데 큰 개념은 다르지 않으니 너무 신경쓰지 맙시다

 

 

정규화(normalized)

  • 정규화는 다양한 의미를 가지지만, 여기서는 우리가 앞서 구한 DCG가 얼마나 큰 값인지 파악하기 쉽도록 만들어주는 과정이라고 생각하자
  • DCG가 가질 수 있는 최대값을 알 수 있다면, 우리가 구한 DCG가 그에 비해 어느 정도 되는지 비교할 수 있음
  • DCG가 가지는 최대값을 이상적인 DCG(Ideal DCG)라 하여, IDCG라 함
  • 그럼 DCG가 어떨 때 최대값을 가짐?
  • 이득 계산 결과를 그냥 내림차순 정렬하고 DCG를 계산하면 됨
  • 할인의 개념을 생각하면 이 때 최대값을 가짐을 알 수 있음
  • 이해가 안가도 내림차순 정렬은 기억합시다

  •  그럼 IDCG는 다음과 같음

  • 이제 nDCG는 우리가 구한 DCG를 IDCG로 나누어준 값임

  • 해석: 아하~ 우리가 구한 DCG는 최대값에 비해 83%정도로 큰 값이구나!

 

 

결론

  • nDCG(normalized Discounted Cumulative Gain)는 각 추천 결과에 점수를 매긴 후(Gain) → 모두 더하는데(Cumulative) → 뒷 순위로 갈수록 이득 값을 감소시키고(Discounted) → 최대값으로 나누어 준(normalized) 값
  • 추천 순위에 대한 의미가 중요한 도메인에서 유용한 평가 지표

 

 

 

참고함

  • 가자마 마스히로 외. 추천 시스템 입문. (2023) 한빛미디어.
  • 차루 아가르왈. 추천 시스템. (2021). 에이콘출판. 
  • 수식 이미지 일부

 

댓글