본문 바로가기

추천 시스템/Coursera

Evaluation and Metrics - Online Evaluation

Online Evaluation

강의 링크 : https://www.coursera.org/learn/recommender-metrics/home/welcome

 

Coursera | Online Courses & Credentials From Top Educators. Join for Free | Coursera

Learn online and earn valuable credentials from top universities like Yale, Michigan, Stanford, and leading companies like Google and IBM. Join Coursera for free and transform your career with degrees, certificates, Specializations, & MOOCs in data science

www.coursera.org

정말 오랜만에 올리는 coursera 추천 시스템 글입니다. 이번에는 online evaluation에 어떤 방법들이 있는지 보도록 하겠습니다. 이전까지 왜 offline evaluation이 한계를 가질 수밖에 없고, 그럼에도 offline evaluation이 중요한 이유를 알아봤습니다. 많은 evaluation metric을 공부했는데 이 결과들은 어디까지나 과거의 이론, 또는 사용자의 history, 경험을 뒷받침하는 타당한 metric이었습니다. 실제로 원하는 것은 사용자의 preference, behavior가 어떻게 전제 context와 연결되어 추천이 되는지 이해하는 것입니다. 

 

예를 들어, 어떤 식당이 별 4개이고, 얼마나 많은 사람들이 별을 줬고, 태그와 가격 등을 표시하는 것만으로는 실 사용자가 판단을 내리는데 있어 무엇을 중요하게 여기는 지 알 수 없습니다. 가격을 중요시하는 사람도 있을 것이고, 다른 사람들의 평가를 중요시하는 사람도 있을테니까요.

 

얼마나 많은 사람들이 추천 시스템의 추천을 통해 결정을 내렸는지, 얼마나 추천 시스템의 추천 리스트를 따라 갔는지 등은 이제까지 본 metric만으로는 알 수 없습니다. 이렇듯 실 사용자에 대해 평가를 하는 것은 굉장히 복잡합니다.

 

강의에서는 여러 online evaluation method 중 4개를 소개합니다. 어떤 것들이 있는지 따라가보도록 합시다.

 

1. Usage logs

첫 번째는 사용자의 사용 로그를 분석하는 것입니다. 최초로 사용자의 화면에 무엇이 띄워져 있었고, 무엇을 클릭했고, 무엇을 구매했는지 알 수 있습니다. Hybrid recommendation system을 쓴다면 어떤 모델에서 만든 추천 아이템을 사용자가 선택했는지도 따라갈 수 있겠죠. 단순히 결과만을 보는 것이 아닌, 구매에 도달하는 중간 과정을 모두 파악할 수 있는 방법입니다.

 

2. Poll, Survey, Focus on group

우선, 좋은 survey를 만든다는 것 자체가 매우 힘들다고 합니다. 해당 내용을 다루는 course도 있다고 하네요. 하지만 잘 만든 survey로 정보를 수집할 수 있다면 사용자가 무엇에 중점을 두고 물건을 선택했는지, 무엇이 구매로 이끌었는지를 파악할 수 있습니다. 이후에는 개개인의 특징에 맞춰 추천을 하기 더 쉬워지겠죠. 

 

3. Lab experiment

지원자를 모아서, 실험군/대조군을 나누고 데이터를 수집합니다. 같은 경험을 하게 하고 다른 모델에서 만든 추천 리스트를 평가하라고 할 수도 있고, 다른 경험을 가진 사람들이 같은 추천 리스트를 보고 어떻게 평가를 하는가도 볼 수 있습니다. 직접 가설을 세우고, 그에 따라 정말 효과가 있는지를 평가할 수 있습니다.

 

4. A/B test

제가 이해하기로는, lab experiment를 실제 서비스 버전으로 확장시킨 것 같습니다. 또한 여태까지 본 논문들 중 online evaluation 방법으로 꼭 쓰이는 A/B test입니다. 실제 서비스에서 랜덤하게 사용자들을 두 그룹으로 나누고, 한 쪽에서는 기존 서비스를, 다른 한 쪽에서는 새로운 모델이 적용된 서비스를 제공하고 과연 만족도 등의 지표에서 발전이 있었는가를 확인합니다. 

 

분명히 단점도 존재합니다만, 최대한 다른 변인들을 통제하고 다르게 준 조건에 의해 실제로 발전이 있는지 판단할 수 있는 방법입니다. 평가 결과에 영향을 주는 요인들이 극히 제한적이기 때문에 인과관계가 충분히 성립할 수 있다고 믿을 수 있습니다.

 

 

 

정말 이상하게 online evaluation에서 오래 막혔습니다. 다른 일도 많았지만, 이 부분은 1달 가까이 관련 책들까지 읽어보면서 봐도 쉽게 머리 속에서 정리가 되지 않더군요. 언젠가 더 자세하게 online evaluation에 대해 공부할 기회가 있었으면 합니다. 실제 강의에서는 usage log를 이용한 간단한 분석, A/B studies, user-centered evaluation(interview)에 대한 영상이 더 있습니다. 이 쪽에 관심이 있다면 해당 영상들을 찾아보시는 것을 추천드립니다.