추천시스템
추천시스템의 평가
추천시스템의 평가는 추천을 하기 위해 만들어진 모델이 얼마나 좋은 성능을 보이는가를 평가한다.
추천 모델을 평가할때는 하나의 값을 얼마나 잘 맞추었는지에 중점을 두지 않는다.
이는 추천이 결국 사용자가 좋아하는 아이템을 선정하려는 결정에 도움을 주려는 목적을 가지고 있기 때문이다.
따라서 얼마나 잘 맞추었는지 보다는 추천된 아이템 중 어떤 아이템이 좋은 아이템이고
어떤 아이템이 나쁜 아이템인지에 중점을 둔다.
일반적으로 머신러닝 문제에서는 에러율을 기준으로 모델이 좋은지 혹은 나쁜지 평가한다.
하지만 추천에서는 (검색 분야에서 파생 되었기 때문에 같은 메트릭을 사용한다) Precision과 Recall을 더 주로 사용한다.
Precision
선택된 아이템들 중 몇개의 아이템이 연관된 아이템 들인가?
$$P = \frac{N_{rs}}{N_s}$$
Precision은 연관된 아이템을 사용자가 찾는데에 도움을 준다.
Recall
연관된 아이템들 중 몇개의 아이템들이 선택되었는가?
$$R = \frac{N_{rs}}{N_r}$$
Recall은 사용자가 연관된 아이템을 놓치지 않게 하고싶을 때에 도움은 준다.
두가지 모두를 사용하는 메트릭을 사용하려면 F-measure를 사용한다.
기존 평가의 문제점
하지만 이러한 메트릭에는 두가지 문제가 있다.
- "연관된"이라는 의미가 모든 사용자와 아이템들에 대해 정의하기가 쉽지 않다는 것이다. 예를 들어 연관된 아이템을 과거에 구매한 아이템이라고 한다면, 결국 사용자가 과거에 구매한 아이템을 잘 예측한 모델이 높은 점수를 받게 되는 것이다.
- 위의 메트릭들은 Ranking을 고려하지 않는다. 많은 추천/검색 시나리오에는 상위에 랭크된 아이템/문서에 관심을 가지게 된다.
따라서 이 필요를 맞추고자 Precision@N 혹은 Recall@N을 소개하게 된다.
Recall@K
추천된 상위 K개의 아이템들 중 연관된 아이템이 몇개인가?
결과적으로 Precision@K과 Recall@K은 같은 메트릭이다.
이 메트릭은 많은 경우, 여러번의 실험 중 K개의 아이템 중 사용자가 선택한 아이템이 있다면 1 아니면 0으로 계산해
총 평가 횟수 중 맞춘 갯수의 Percentage를 구하는 방법으로 대체한다.
예를 들어 10번의 실험 중 사용자가 선택한 아이템이 추천시스템이 예측한 아이템의 상위K개에 속한 경우가 3번 있다면
P@K는 0.3이 되는 것이다. 이는 결국 Online 실험에서의 CTR(Click Through Rate)과 같은 메트릭이다.
Click Through Rate이란 보통 광고에서 광고의 노출수 분의 광고의 클릭수를 의미한다.
참고: (후에 소게될 Average Precision때문에 대개는 P@K보다는 R@K을 많이 사용하는 듯 하다.)
대개 세션 기반 추천 (Session Based Recommendation) 논문들에서는 이 지표를 많이 사용한다.
하지만 특정 추천 논문들에서는 저자들이 각자 연관있는 아이템들을 따로 정의해 P@K나 R@K를 구하곤 한다.
'데이터사이언스 > 추천시스템' 카테고리의 다른 글
추천시스템 - (13) 특성 평가 (2) | 2020.08.08 |
---|---|
추천시스템 - (12) 랭킹 기반 평가 (2) | 2020.08.05 |
추천시스템 - (10) 추천시스템의 학습 (0) | 2020.08.04 |
추천시스템 - (9) 컨텐츠 기반 추천 (0) | 2020.07.19 |
추천시스템 - (8) 연관성 분석 추천 예제 (0) | 2020.07.12 |