추천 서비스의 효과를 측정하는 방법 중 하나 - Recall & Precision

2011. 9. 8. 13:34사는게 뭐길래/Data & Intelligence


추천 알고리즘의 효과 내지 정확성/유효성을 측정하는 지표 중 하나가 Recall과 Precision입니다.

(업계 보다는 학계에서 주로 쓰임. 추천 시스템뿐만 아니라 유사한 여러 분야에서 쓰이는 지표라고 함)

 

예를 들어 설명)

1. 결혼정보 추천 시스템에서 박지성에게 {박지선, 김지선, 아이유, 유인나, 나문희}를 추천했습니다.

2. 박지성은 이사람 저사람 보다가  {아이유, 유인나, 구하라}와의 데이트를 신청했습니다.

 

추천 시스템에서 추천한 사람은 5명.

박지성이 선택한 사람은 3명.

박지성이 선택한 3명 중에서 추천 시스템에서 추천한 사람은 2명.

 

이럴 때...

Precision = 박지성이 선택한 사람 중 추천 시스템에서 추천한 사람 / 추천 시스템에서 추천한 사람 = 2 / 5 = 0.4

Recall = 박지성이 선택한 사람 중 추천 시스템에서 추천한 사람 / 박지성이 선택한 사람 = 2 / 3 = 0.66

 

즉, 추천한 것 중에서 사용자에게 선택받은 것들의 비율을 Precision이라고 하며

사용자가 선택한 것들 중에서 추천 시스템에 의해 추천 받은 것들의 비율을 Recall이라고 합니다.

 

추천 알고리즘의 품질이 높을수록 precision과 recall이 좋아집니다만...

Recall의 경우 무조건 추천을 많이 하기만 해도 수치가 높아진다는 문제가 있지요.

(그래서... precision은 내부 평가용 지표, recall은 상부 보고용 지표라는...^^)


...

 

[연습문제 나갑니다]

 평소 선릉역 1번출구 근처에서 열심히 찌라시 활동을 하다가 남자들에게 심하게 들이대던 순간 제명이 되었던

이명자 회원님은 당시 하루에 평균 1,000개의 찌라시를 뿌렸습니다.

가게에 찾아온 100명의 손님들에게 물었더니, 이 중에서 10명이 이명자 회원님의 찌라시를 받고 왔다고 대답했습니다.

이명자 회원님의 찌라시 효과를 Precision과 Recall로 설명하시구려~


.....

사실 Recall이나 Precision 같은 지표는 '추천 서비스의  효과'를 측정하기 보다는
추천 알고리즘 자체의 유효성이나 품질 비교에 적당한 지표라고 생각됩니다.
즉, 산업계 보다는 학계에서 서로 결과물을 비교하기 위한 지표라고나 할까요?

이와 같이 추천 알고리즘의 유효성을 측정하는 지표에는 여러가지가 있습니다.

MSE (Mean Squared Error)
RMSE (Root Mean Squared Error)
MAE (Mean Absolute Error)

위와 같은 측정값들은 Error Metrics라고 하는데,
추천 알고리즘의 예측(Prediction) 정확도를 측정하기 위한 것들입니다.

반면에, 앞에 소개한 Recall/Precision 값과 유사한 것으로는 다음과 같은 것들이 있습니다.

F-measure (F1 Metric이라고도 함)
ROC (Receiver Operating Characteristics)

아마도 Recall/Precision 방식이 더 유용할 것 같은데,
그 이유는 실제 추천 서비스는 Top-N 방식을 사용하기 때문입니다.
Error Metric의 경우 알고리즘의 전체적인 정확도나 유효성을 예측하는 데에는 유용하지만
실제 서비스에서 사용자에게 노출(추천)되는 것들은 추천할만한 전체 아이템들 중에서도 순위가 높은 상위의 N개 아이템들이기 때문에, 요놈들만을 가지고 효과를 측정하는 것이 더 적합하겠지요.

그러나, 진짜로 실제 서비스에서 중요한 지표라면
- 일반 상품(예, 단순 검색결과)에 비해 추천 상품의 클릭율이 얼마나 높은가
- 일반 상품에 비해 구매 관심행동(예, 이미지 확대, 상품평보기, 찜하기...)을 하는 비율이 얼마나 높은가
- 일반 상품에 비해 구매로 이어진 비율이 얼마나 높아졌는가
- 전체 판매 상품 중에서 추천을 통한 판매의 비율이 어떻게 변하는가
- 추천 서비스를 통해 매출이 증가했는가
- 방문자들이 예전에 비해서 많은 상품들을 둘러보고 가는가
- 한 번 주문할 때 예전보다 많은 수의 상품을 주문하는가
- 추천 시스템 도입 비용에 대한, 예상되는 손익 분기점은 언제인가
- ...

아마도, 위와 같은 것들이겠지요?
어느 것 하나도... 참으로 시원스럽게 대답하기 힘들지만 말입니다. T.T 

 ....

[연습문제 해답]
 Precision 10/1000 = 0.01, Recall 10/100 = 0.1

이명자 회원님이 찌라시를 1만개 뿌린다면 손님을 100% 유치할 수 있음.
즉, Precision이 유지될 수만 있다면 추천을 많이하면 많이 할수록 좋겠지요.
그러나... 아쉽게도 Recall이 증가하면 대개는 Precision은 낮아지기 때문에...
그래서, 추천 서비스가 어렵지요.


[참고] 추천 효과 측정에 대해 좀 더 관심있는 분들은 다음의 문헌들을 참고하시기 바랍니다.

  • Paolo Cremonesi, Yehuda Koren, Roberto Turrin, “Performance of Recommender Algorithms on Top-N Recommendation Tasks, RecSys 2010, September 26-30, 2010.
  • Paolo Cremonesi, Roberto Turrin, Eugenio Lentini, Matteo Matteucci, “An Evaluation Methodoly for Collaborative Recommender Systems”, Whitepaper, www.contentwise.tv, 2010
  • Dietmar Jannach, Markus Zanker, Alexander Felfernig, Gerhard Friedrich, “Evaluating Recommender Systems”, Chapter 7., Recommender Systems : an Introduction, Cambridge University Press, 2010