CG

Cumulative Gain

$CG_{p}=\sum_{i=1}^{p}rel_{i}$

등급별 관련도의 합이다. 등급의 위치를 고려하지 않는다.(1등으로 예측한 것과 5등으로 예측한 것의 가중치 차이가 없다.)

  • $rel_{i}$ : 위치 $i$에서의 등급별 관련성

이진 판별 문제의 경우 precision(True로 분류된 것 중에 실제로 True인 비율)과 같은 의미를 가진다.

단점

  • 순위의 위치를 바꿔도 결과의 변화가 없다.

위와 같은 이유로 보통 (N)DCGCG보다 더 선호된다.

ex)

cg_example

$CG_{6}=11$

DCG

Discounted Cumulative Gain

$DCG_{p}=\sum_{i=1}^{p}\frac{rel_{i}}{\log_{2}(i+1)}=rel_{1}+\sum_{i=1}^{p}\frac{rel_{i}}{\log_{2}(i+1)}$

$DCG_{p}=\sum_{i=1}^{p}\frac{2^{rel_{i}}-1}{\log_{2}(i+1)}$

두 공식은 이진 관련성 문제에서 같다 $rel_{i} \in {0, 1}$

뒤의 공식은 웹 검색 회사 또는 캐글의 Competition 등 에서 많이 사용된다고 한다.

DCG는 분모의 $\log$가 $i$가 증가할 수록 누적값에 페널티를 주어 Rank가 낮은 곳에 있는 RelevanceDCG의 누적에 있어서 반영을 적게 하게 한다.

ex)

dcg_example

$DCG_{6}=6.86113$

NDCG

DCG의 값은 DCG계산시 취하는 $p$에 따라 변하게 된다.

그러므로 $p$ 범위에 걸쳐 정규화한다.

$nDCG=\frac{DCG_{p}}{IDCG_{p}}$

$IDCG_{p}=\sum_{i=1}^{\left| REL_{p} \right|}\frac{rel_{i}}{\log_{2}(i+1)}$

  • $REL_{p}$ : $p$ 위치까지 의 관련성 순서

$IDCG_{p}$가 헷갈릴 수 있는데 $IDCG_{p}$는 얻어낸 모든 Relevance를 내림차순으로 정렬하고 그것을 $p$개의 Rank에 내림차순으로 정렬하고 그것의 $DCG$의 값을 구하는 것이다.

예시를 보면 쉽게 알 수 있다.

ex)

DCG 의 예시에서 6개의 값 외에 3, 2의 Relevance 를 가지는 것이 각각 있었다고 하자

idcg_example

$IDCG_{6}=8.74026$

$nIDCG_{6}=\frac{DCG_{6}}{IDCG_{6}}=\frac{6.86113}{8.74026}=0.78500$

#

출처