http://sdsawtelle.github.io/blog/output/mean-average-precision-MAP-for-recommender-systems.html?source=post_page-----df56c6611093----------------------#Precision-and-Recall-of-Recommender-Systems
MAP(Mean Average Precision)
- 정보 검색 수행 알고리즘에서 가장 많이 사용하는 평가 지표
- 알고리즘이 item의 순위 순서를 반환할 경우, 순위 또한 맞춰야 한다.
(추천을 순위 지정 작업처럼 취급 - 순위까지 예측)
- 사용자 추천 시스템에도 사용이 가능
(ex. 아마존 - 어떤 아이템을 장바구니 추가 후 추가로 구매하고 싶을 품목을 보여주는 기능)
Precision and Recall
-
Precision=# of predicted positive# of correct positve
- 맞춘 실제 정답 수 / 정답이라고 예측한 수
- 1 - false positive rate
-
Recall=# of with condition# of correct positve
- 맞춘 실제 정답 수 / 실제 정답 수
- 1 - false negative rate
Precision and Recall of Recommender Systems
Terminology in Binary Classifier | Terminology in Recommender System |
---|
# with condition | # of all the possible relevant("correct") items for a user |
# predicted positive | # of items we recommended (we predict these items as "relevant" |
# correct positives | # of our recommendations that are relevant |
Precision and Recall at Cutoff k
- P(k),r(k) 계산시에 N개의 추천 중 k까지 잘라서 계산한다.
Average Precision
-
N: 추천 시스템이 추천하는 아이템 수
-
m: 사용자가 원하는 아이템 수
-
AP@N
=m1∑k=1N(P(k) if kth item was relevant )
=m1∑k=1NP(k)⋅rel(k),
rel(k)=1 (or not) rel(k)=0
(relevant. 옳은 항목에 대해서만 계산)
-
k까지의 P(k)를 구함 (순위가 높을수록(먼저 나올수록) 값이 높게 측정)
-
정답이 아닌 추천을 하더라도 AP 스코어 자체가 감소하지는 않는다. (하위에 둘 경우, k까지만 자르면 됨)
The "Mean" in MAP
- 남은 모든 item(∣U∣)에 대한 평균 계산
- MAP@N=∣U∣1∑u=1∣U∣(AP@N)u=∣U∣1∑u=1∣U∣m1∑k=1NPu(k)⋅relu(k)
-
N=5이지만, 사용자가 m=10을 원할 경우, 일반적으로 min(m,N) 으로 정규화
-
AP@N=min(m,N)1∑k=1NP(k)⋅rel(k)
-
최종 스코어 ( rel(k)=0 인 경우 계산을 생략한다. )
- AP@N=min(m,N)1∑k=1NP(k)⋅rel(k) if m=0
AP=0 if m=0
Recall 추가
AP@N=∑k=1N(precision at k)⋅(change in recall at k)=∑k=1NP(k)Δr(k)
Δr(k)=(k−1th) to kth
References