추천시스템 성능 평가 metric - MAP

Hoon·2022년 3월 17일
0
post-thumbnail

Classification Metrics

모델의 성능을 측정하는 여러 metric이 있다.

Classification의 경우 Precision, Recall, F1-score, Accuracy, AUC 정도가 대표적인 metric 이다.

TP, TN, FP, FN가 은근히 헷갈리는데 두 번째 알파벳에서 첫 번째 알파벳 순서로
(모델이 예측한 Output) -> (모델이 예측한 Output이 맞나?)순서로 생각하면 된다.

  • TP: 모델이 예측한 값이 positive, 실제로 positve
  • TN: 모델이 예측한 값이 negative, 실제로 negative
  • FP(Type2 error): 모델이 예측한 값이 positive, 예측한 값이 틀렸으므로 실제로 negative
  • FN(Type1 error): 모델이 예측한 값이 negative, 예측한 값이 틀렸으므로 실제로 positive

1. Precision(정밀도): True 라고 예측한 것 중에 실제로 True인 비율. FP가 낮아야 높다.

2. Recall(재현율): True인 것 중에 True라고 예측한 비율. FN이 낮아야 높다.

  • Precision과 Recall은 Trade-Off 관계
  • Precision이 높아야하는 경우와 Recall이 높아야하는 경우를 구별해야 한다. Positive와 Negative중 어떤 것을 잘 분류해야 하는지 판단하면 편하다.
  • 암 진단의 경우 정상을 암 환자라고 예측하는 것보다 암 환자를 정상이라고 예측하는 것이 위험하다. Positive를 잘 분류해야 한다. 즉, FN이 낮아야하기 때문에 Recall > Precision이다.
  • 스팸메일이 제대로 분류되지 않은 것보다 정상메일이 스팸메일로 분류되는게 더 치명적이다. Negative를 잘 분류해야 한다. 즉, FP가 낮아야하기 때문에 Precision > Recall이다.

3. F1-score: precision과 recall의 조화평균

4. Accuracy(정확도): 예측이 맞은 것.

  • 한계: Class imbalance. 불량률이 0.01%인 경우 모델이 '전부 불량이 아니다'라고 예측하면 정확도가 99.9%가 되지만 좋은 모델이라고 할 수 없다.

5. AUC(Area Under Curve): ROC(Receiver Operating Characteristic) curve의 그래프 아래 면적 값.

Rcommendation System Metric


Kaggle competition H&M Personalized Fashion Recommendations의 평가지표로 MAP가 사용되어 이 포스트 를 기반으로 정리한 내용이다.
추천시스템은 Classification과 같이 분류하고 끝나는 것이 아닌 추가적인 이슈가 있다.

  • 사용자가 원하는 아이템을 얼마나 상위권에 올려 놓는지

    • 분류 문제는 전체 데이터 세트(test set)로 성능을 측정한다. 추천시스템은 '얼마나 상위에 위치시킬 수 있는가?' 또한 중요하다. 1000개의 추천리스트에 사용자가 원하는 상품이 있는 것과 10개의 추천리스트에 사용자가 원하는 상품이 있는 것은 확연히 다르다. 따라서 흔히 추천시스템에는 precision과 recall을 precision@k, recall@k와 같이 상위 k개의 추천에 대한 평가지표로 표현하다.
  • 추천리스트 내의 rank에 따른 평가

    • K개의 추천리스트에서 순위도 중요하다. 사용자가 원하는 상품을 첫 번째로 보여 주는 것이 10 번째로 보여 주는 것보다 좋은 평가를 받아야 한다.

위 사항을 고려한 Metrics는 MRR, MAP, nDCG가 있고, H&M의 경우 MAP를 사용했다.

MAP(Mean Average Precision)


precision@k에서 k를 점점 늘려가며 얻게되는 precision score를 평균낸 것이다. relevant 아이템이 나올 때 마다 precision을 구해서 평균내는 것. 아래는 예시이다.


Releveant Item: 유저가 원하는 아이템
User1의 경우 다섯 개의 추천 중 1,3,4번이 relevant한 아이템이다.
k = 1: 1개의 추천 중 1개가 relevant 하므로 1/1
k = 2: skip
k = 3: 3개의 추천 중 2개가 relevant 하므로 2/3
k = 4: 4개의 추천 중 3개가 relevant 하므로 3/4
k = 5: skip
Average Precision: (1/1 + 2/3 + 3/4)/3
Mean Average Precision: mean(User)

기타 Recommenation Metrics

  • MRR의 경우 첫 번째로 등장하는 relevant한 아이템이 몇 번째에 위치하는지 나타내는 지표이다. 하지만, 상품 추천의 경우 한 가지만 성공적인 추천만을 원하는 것이 아니기 때문에 부적합하다.
  • nDCG의 경우 원하는 상품인지 아닌지(binary rating)이 아닌 1~5점과 같이 점수를 rating하는 경우에 적용할 수 있는 장점이 있다.

Reference

0개의 댓글