성장通

서비스를 고려한 추천시스템 성능 평가 방법 본문

ML&DL/추천시스템

서비스를 고려한 추천시스템 성능 평가 방법

백악기작은펭귄 2024. 2. 12. 15:32

서비스를 고려한 추천시스템 성능 평가 방법론

일반적인 머신러닝과 마찬가지로, 추천시스템 또한 실제 서비스에 배포하기 전에 성능을 평가함으로써 모델의 안정성을 확인할 수 있다. 그러나 추천시스템의 경우 평가 방식이 일반적인 모델과 다소 다른 평가 방법을 가지기도 하며, 실제 서비스에 적용할 때 고려해야 될 사항이 좀 더 많은 편이다.

 

가장 먼저 '추천'이란 태스크의 특성상 정답이 모호한 경우가 많으며 실제 서비스에 적용할 경우 트렌드의 변화에 따른 인기 상품의 변화와 같은 이유로 모델의 성능과 별개로 사용자 만족도가 급격히 감소하거나 Long-tail 문제, False Positive 문제와 같이 결과의 Skew를 일으킬 수 있는 문제 또한 존재한다. 그렇다면, 추천시스템은 어떻게 평가해야 하고, 또 어떻게 모니터링 해야 할까?


모델에 대한 사전 검증 단계

서비스에 적용되는 모든 AI 모델은 사전 검증 단계사후 검증 단계를 거쳐 해당 시스템의 성능을 평가하게 된다. 먼저 사전 검증 단계는 추천시스템을 비롯한 AI 모델이 실제 프로덕션 환경에 적용되기 전에, 모델 자체의 성능을 검증하는 단계로, 이미 결과를 알고 있는 데이터를 기반으로 모델의 성능을 평가한다. 추천 시스템의 경우에는 모델을 적용하고자 하는 시스템의 소비 이력 데이터 등을 주로 이용하게 된다.


추천 시스템의 경우 일반적으로 과거 이력 데이터를 기반으로 학습데이터와 평가데이터를 분리하여 모델을 학습시키고 평가하는데, 이러한 이력 데이터는 시계열성을 띄기 때문에 데이터 분할을 할 때는 당연히 시간순으로 데이터를 분할해야 한다. 각 시점별로 분할된 학습데이터와 평가데이터는 모델의 사전 검증을 위한 데이터셋으로 사용되고, 이를 이용해 여러 시점에 대해 검증을 진행하는 것이 일반적이다.

 

 

다만 이 경우, 신규 추천에 대한 유저의 정보를 알 수 없다는 정량적 평가로서의 한계점을 보인다. 따라서 내, 외부 인력에 의한 추천 품질 평가, 즉 정성적 평가가 추가로 진행되곤 한다. 이를 통해 추천의 품질과 신뢰도에 대한 피드백을 얻고 이를 반영하여 모델을 수정하게 된다.


시스템 배포 후 사후 검증 단계

사전 검증을 거쳐 성능이 입증된 추천시스템은 프로덕션 환경에 적용되고, 실제 유저에게 서비스를 제공한다. 하지만 아무리 사전 검증을 잘 수행했다하더라도 실제 상황에서의 성능은 확실하게 보장할 수 없다. 따라서 일부 사용자에게만 변경된 서비스를 제공하는 A/B 테스트를 진행하여 해당 모델에 대한 사후 검증을 진행한다. 이때의 평가지표는 조직의 OKR에 따라 매출, CTR(Click-through rate) 등 서비스의 KPI 지표를 이용해 평가가 진행된다. 이렇게 진행된 평가는 모델명과 추천 결과, 해당 추천에 대한 사용자 반응이 기록되고 관리된다.

 

이외에도 RMSE, MAE와 같은 일반적인 평가 Metric이나 Recall@K와 같은 추천, 진단 등에서 주로 사용되는 지표를 이용한 정량 평가 방법이 추가로 사용되기도 한다.

 

이 단계에서는 평가 뿐만 아니라 지속적인 모델 모니터링을 통해 새로 수집되는 데이터에 대한 추천 성능이 떨어지지는 않는지를 확인해야 하며, 적절한 재학습 과정을 구축하는 방법 또한 명확하게 설정해야 할 필요가 있다.


Beyond Accuracy

추천시스템은 Prediction뿐만 아니라 Discovery의 기능 또한 중요하다. 예를 들어, '트랜스포머'를 재밌게 본 사람에게 '트랜스포머2'를 추천해주는 것은 Prediction이라고 할 수 있고 '리얼스틸'이나 '퍼시픽림'을 추천해주는 것은 Discovery이다. 즉, 유저 자신도 모르는 취향을 발굴하는 것이 Discovery인데 이는 단순히 navigation step을 줄여주는 것을 넘어서 exploration을 높여주어 사용자의 만족도를 높여준다.

 

이처럼 최근에는 '정확도'를 넘어서 유저에게 최적의 사용 경험을 제공하기 위한 노력이 계속 되고 있다.

 

이외에도, '추천의 이유'를 알 수 있는 것은 사용자에게 더 나은 사용 경험을 제공하며, '설명 가능한 인공지능(XAI)'에 대한 연구가 이루어지고 있는 동시에 추천 이유를 수치적으로 나타내려는 시도 또한 지속적으로 있어왔다.

 

아주 단순한 설명 제공 추천 시스템 (XAI와는 크게 관련이 없을 수 있다)

 

추천은 다양한 Downstream task 중에서도 특히 실사용자와 밀접한 문제를 풀고자 하는 기술인만큼 UI/UX에 대한 철저한 검증과 테스트 또한 필요하다. 유명한 OTT 업체인 넷플릭스에서는 기존 단순히 추천 리스트를 보여주는 방식에서 벗어나 영상 미리보기를 크게 제공하거나 추천의 이유를 다양하게 나누어서 제공하는 등 UI/UX에 변화를 주었고, 이는 결과적으로 매출의 성장을 유도하였다.

 

AI 모델 외적인 시스템 성능도 굉장히 중요한 이슈라고 할 수 있는데, 아무리 좋은 모델이어도 추천에 시간이 너무 오래 걸린다거나, 유저의 행동데이터가 수집될 때마다 매번 새롭게 모델을 학습시켜줘야 한다면 이는 결코 좋은 서비스가 될 수 없을 것이다.

 

'ML&DL > 추천시스템' 카테고리의 다른 글

ALS, k-NN, Neural CF  (0) 2024.03.31
추천시스템의 한계  (0) 2022.05.17
추천시스템의 만족도: Beyond Accuracy  (0) 2022.05.10
추천시스템의 유형  (0) 2022.04.26
추천시스템의 개요  (0) 2022.04.19