배경: 추천 시스템 평가 지표
- 추천 시스템은 크게 온라인 평가, 오프라인 평가, 사용자 스터디로 나눌 수 있음
- 그 중 오프라인 평가의 지표는 예측 오차 지표, 집합 평가 지표, 순위 평가 지표 등이 존재함
- 순위 평가 지표에는 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). 에이콘출판.
- 수식 이미지 일부
'🟣 AI & ML' 카테고리의 다른 글
애플, 거대 멀티모달 모델(Large Multi-modal Model, LMM) 'Ferret' 공개 (0) | 2023.12.27 |
---|---|
Objective Function 이해하기 - 01. Probability와 Likelihood의 차이 (0) | 2023.12.19 |
검색증강생성(RAG): 벡터 DB 기초 (1) | 2023.11.01 |
Meta, OpenAI·구글과 경쟁할 오픈소스 상용 AI 모델 출시 (0) | 2023.07.16 |
신규성(Novelty)이 사라지면서 트래픽이 약 10% 감소한 ChatGPT (0) | 2023.07.09 |
댓글