추천 시스템 평가지표 - NDCG(Normalized Discounted Cumulative Gain
NDCG (Normalized Discounted Cumulative Gain)
- 추천 시스템에서 많이 사용되는 평가지표 중 하나
- 추천의 순서에 가중치를 두어 평가
- 1에 가까울수록 높은 성능
- 수치나 이진값(binary value)에 사용 가능
CG (Cumulative Gain)
- 상위 K개 아이템에 대해 관련도(rel, relevance)를 합한 것
$$ CG_{K} = \sum_{i=1}^{K} rel_{i} $$
DCG (Discounted Cumulative Gain)
- 아이템의 관련도를 순서에 따라 Discount
- 하위 순서로 갈수록 작은 DCG 값을 가지게 됨
$$ DCG_{K} = \sum_{i=1}^{K} \frac {rel_{i}}{log_{2}(i+1)} $$
IDCG (Ideal DCG)
- 이상적인 추천이 일어났을 때의 DCG값
- 가능한 DCG 값 중 가장 큼
$$ IDCG_{K} = \sum_{i=1}^{K} \frac{rel_{i}^{opt}}{log_{2}(i+1)} $$
Normalized DCG
- 추천 결과에 따라 구해진 DCG 를 IDCG 로 나눈 값
$$ NDCG = \frac{DCG}{IDCG} $$
NDCG@5 예시
Item [A, B, C, D, E] 에 대힌 이상적인 결과는
Ideal Order : [B(5), E(4), A(3), C(2), D(1)]
이고 추천 결과가 다음과 같을 때
Recommend Order : [B, C, D, E, A]
DCG 와 IDCG 를 구하면
$$ DCG@5 = \frac{5}{log_{2}(1+1)} + \frac{2}{log_{2}(2+1)} + \frac{1}{log_{2}(3+1)} + \frac{4}{log_{2}(4+1)} + \frac{3}{log_{2}(5+1)} = 9.65$$
$$ IDCG@5 = \frac{5}{log_{2}(1+1)} + \frac{4}{log_{2}(2+1)} + \frac{3}{log_{2}(3+1)} + \frac{2}{log_{2}(4+1)} + \frac{1}{log_{2}(5+1)} = 10.27$$
$$ NDCG@5 = \frac{DCG@5}{IDCG@5} = \frac{9.65}{10.27}=0.94$$