1. 프로젝트 시작 : 데이터분할과 평가지표

2023. 12. 11. 14:16NAVER AI Tech/Project

offline test / online test로 나눌 수 있다.

 

Offline test 데이터 분할 기법

1. Leave One Last

    - 사용자당 마지막 구매를 test set. 마지막에서 2번째를 valid set으로 분할

    - 학습 시 많은 데이터를 사용할 수 있다는 장점. but 마지막 구매만을 평가하므로 전체적인 성능을 반영한다고 보기 어려움 단점 존재

2. Temporal User / Global Split

    - 특정 시점을 기준으로 test set을 분할

    - data leakage가 없지만 학습 시 사용할 수 있는 상호작용이 적은 문제가 존재.

3. Random Split

    - 사용자 별로 interaction을 시간 순서에 상관없이 random하게 분할.

    - 쉽고 학습 데이터가 많다는 장점이 있지만 data leakage문제가 존재할 수 있음

4. User Split

    - 사용자가 겹치지 않게 사용자를 기준으로 분할

    - cold start 문제에 대응하는 모델을 생성 가능하다는 것이 장점. but data leakage 문제 발생.

5. K-Fold Cross Validation

    - 일반적으로 K-Fold를 적용하게 되면 시간순서가 섞이므로 data leakage 문제 발생.

6. Time Series Cross Validation

valid set은 고정한 채로 train 진행하는 방법.

 

 

Offline test 평가지표

1. 평점 예측 시 : RMSE, MAE

 

 

2. 랭킹 예측 시 : Precision@K, Recall@K, MAP@K, NDCG@K, Hit-rate

 

 

특성 평가 지표 : 흔하지 않으면서도 흥미롭고 다양한 아이템을 추천하는 지표

- Coverage : 전체 아이템 중 추천 시스템이 추천하는 아이템의 비율

- Novelty : 새로운 아이템 추천(얼마나 참신한가?)

- Personalization : 개인화된 추천

- Serendipity : 의외의 아이템 추천(기대 안했지만 생각보다 만족했을 때)

- Diversity : 얼마나 다양한 아이템이 추천되는지(얼마나 다양한 아이템이 추천되었는지)

 

**추천시스템은 성능 평가지표로 만으론 판단할 수 없다. 어떤 특성에 더 중점을 맞춘 시스템을 개발해야할 필요가 있음