추천시스템에서의 성능 지표

Chalsu Chalsu·2021년 12월 30일
0

Recommender System

목록 보기
1/4

순서 정보가 없는 성능 지표

Hit Ratio

HR=hitsusers(hits:0 or 1)HR = \frac{hits}{users}(hits : 0 \ or \ 1) : 실제 정답이 추천 결과에 들어있다면 hit 했다고 판단

Precision

Precision=TPTP+FPPrecision = \frac{TP}{TP+FP} : 추천을 해준 결과 중에 실제 정답이 일치하는 비율

Recall

Recall=TPTP+FNRecall = \frac{TP}{TP+FN} : 실제 정답 중에 추천 결과가 일치하는 비율

질문 : Hit Ratio와 Recall의 차이점은?

  • 정답

    추천 리스트 중 실제 결과가 2개 추천 리스트 중 실제 결과가 1개만 있는 경우

    실제 정답이 1개만 존재하는 경우

    HR = Recall = 1

    하지만 실제 정답이 2개인 상태에서 1개만 맞췄을 경우 HR = 1이 되지만 Recall = 12\frac{1}{2}가 됩니다.

순서 정보가 필요한 성능 지표

Mean Reciprocal Rank

→ 유저가 선호하는 아이템이 리스트 중 어디에 위치하는지 중점을 둔 평가 방식

RR=1kuRR = \frac{1}{k_u}

RR=11+13+14RR = \frac{1}{1}+\frac{1}{3}+\frac{1}{4}

MRR(O,U)=1UuU1kuMRR(O,U) = \frac{1}{\left\vert U\right\vert} \sum_{u \in U}\frac{1}{k_u}

이런 방식은 낮은 순위에 있는 아이템에 대해서 패널티를 줘서 성능을 평가하는 방식

→ Linear 방식이 아닌 Log 방식으로 패널티를 주는 nDCG가 존재합니다.

nDCG

DCG(Discounted Cumulative Gain) : 순위에 가중치를 주는 평가 방식(주로 log2\log_2 사용)

DCG(O,u)=iruidisc(i)DCG(O,u) = \sum_i \frac{r_{ui}}{disc(i)}

disc(i)={1,i2log2i,i>2disc(i) = \begin{cases} 1,& i \le 2 \\ \log_2i, & i > 2 \end{cases}

DCG=41+31+01.58+52=9.5DCG = \frac{4}{1} + \frac{3}{1} +\frac{0}{1.58} +\frac{5}{2} = 9.5

iDCG=51+41+31.58+02=10.9iDCG = \frac{5}{1} + \frac{4}{1} +\frac{3}{1.58} +\frac{0}{2} = 10.9

nDCG=9.510.9=0.872nDCG = \frac{9.5}{10.9} = 0.872

순위에 가중치를 둔 DCG와 이상적인 순위를 가진 ideal DCG를 나눈 Normalized DCG를 구할 수 있습니다.

Average Precision

AP=1+23+343AP = \frac {1 + \frac{2}{3} + \frac {3}{4}}{3}

Mean Average Precision

MAP(O,U)=1UuUAP(O(u))MAP(O,U) = \frac{1}{\left \vert U \right \vert} \sum_{u \in U} AP(O(u))

profile
https://github.com/MrLee5693

0개의 댓글