728x90
추천 시스템
- 추천 시스템이란?
- 정보 필터링(IF) 기술의 일종, 특정 사용자가 관심을 가질 만한 정보를 추천하는 것
- 사용자의 행동 데이터와 아이템 데이터를 분석하여 현재 사용자에게 가장 적절한 아이템을 추천하는 시스템
- 활용 사례
- 영화,드라마,음악 추천
- 구인 구직 매칭 등등
- 추천 시스템 목적
- 사용자가 정보를 수집하고 찾는 시간을 효과적으로 감소시키는 것
- 기존에 알지 못했지만 사용자가 관심을 가질만한 콘텐츠를 접하게 하여 선택의 폭을 넓혀주는 것
- 개인화된 추천을 통한 만족도 극대화
- Push and Pull(추천과 검색)
- Push : 사용자가 관심을 가질 만한 정보를 시스템이 밀어내듯이 제공
- Pull : 사용자의 의도에 맞는 항목을 찾고 추천하는 문제
- 대부분의 추천 시스템은 Push와 Pull 의 중간에 위치
추천 시스템 평가 방법
오프라인 평가(배포 전)
- Offline Test 데이터 분할 방법
- 수집된 데이터를 Train, Valid, Test set 3가지로 분할하여 모델 성능 평가 시 활용
- 상황에 맞는 적잘한 분할 전략이 필요
- Leave One Last
- 사용자당 마지막 구매를 Test set으로, 마지막에서 2번째를 Valid set으로 분할
- 장점
- 학습 시 많은 데이터 사용
- 단점
- 사용자당 마지막 구매로만 평가하므로 테스트 성능이 전체적인 성능을 반영한다고 보기 어려움
- Data Leakage : train data 외의 정보가 모델을 만드는데 사용될 때 발생
- Temporal User/Global Split
- 시간을 이용한 분할 전략
- User
- 사용자 별로 시간 순서에 따라 일정 비율로 데이터 분할 (Leave One Last와 유사)
- Data leakage 문제
- 사용자 별로 시간 순서에 따라 일정 비율로 데이터 분할 (Leave One Last와 유사)
- Global
- 각 유저 간에 공유되는 시점을 고정하여 특정 시점 이후에 이뤄진 모든 상호작용을 test set으로 분할
- 학습 및 검증에 사용할 수 있는 상호작용이 적은 문제
- Random Split
- 각 사용자 별로 interaction을 시간 순서에 관계없이 random 하게 아이템을 선택하여 분할
- Data leakage 문제
- User Split
- 사용자가 겹치지 않게 사용자를 기준으로 분할
- Cold-start 문제에 대응하는 모델 생성 가능
- User-free 모델에만 사용 가능
- Data leakage 문제
- K-Fold Cross Validation
- Train set 내에서 k개의 Fold로 분할한 뒤, 한 Fold씩 Validation set으로 활용하여 검증
- Time Series Cross Validation
- 시계열 데이터의 경우 일반적인 CV 수행 시 미래 데이터를 학습하여 과거를 예측하는 문제가 있음
- Fold 분할 시 시간을 고려
- Leave One Last
- Offline Test 평점 예측 알고리즘 평가 방법
- 랭킹 문제
- Precision@K
- Top-K의 결과로 Precision을 계산
- 추천한 K개의 아이템 가운데 실제 유저가 관심있는 아이템의 비율
- Recall@K
- Top-K의 결과로 Recall을 계산
- 유저가 관심있는 전체 아이템 가운데 우리가 추천한 아이템 비율
- Average Precision(AP@K)
- Precision@1 ~ Precision@K 평균
- rel(i)를 곱한 후 평균 : item i와의 relevance score을 의미
- Precision@1 ~ Precision@K 평균
- Mean Average Precision@K (MAP@K)
- Relevance
- 유저가 추천된 아이템을 얼마나 선호하는지
- Cumulative Gain (CG)
- rel(i)의 합
- Discounted Cumulative Gain (DCG)
- rel(i) / log2(i+1) 의 합
- 분모 점점 커지므로 1,2 위 아이템을 잘 추천해야 값이 커진다.
- Ideal DCG (IDCG)
- rel(i)^OPT / log2(i+1) 의 합
- rel(i)^OPT : 유저가 선호하는 순서대로
- Normalized DCG (NDCG)
- DCG / IDCG
- Hit-rate
- 전체 사용자 수 대비 적중한 사용자 수
- Precision@K
- 평점 예측 문제
- 랭킹 문제
- Offline 측정 지표의 문제점
- 앞의 Offline 측정 지표는 기본적인 평가 측정 방법이나 한계점 존재
- 정확성 개선과 실제 시스템 성능 향상을 연관 짓기 어려움
- 서비스 만족도를 높인다고 보기 어려움
- 앞의 Offline 측정 지표는 기본적인 평가 측정 방법이나 한계점 존재
- 특성 평가 지표
- Coverage : 전체 아이템 중 추천 시스템이 추천하는 아이템 비율
- Novelty : 새로운 아이템 추천
- Personalization : 개인화된 추천
- Serendipity : 의외의 아이템 추천
- Diversity : 얼마나 다양한 아이템이 추천되는지
온라인 버킷 테스트 (A/B Test)
- 실시간으로 들어오는 트래픽을 대조군(A)와 실험군(B)로 나눠서 성능을 비교하는 테스트
- 현실적인 버킷 테스트
- 유저를 두 그룹으로 분할하여 각각 A안과 B안을 보여주고 평균 비교
- 두 그룹의 특성이 모든 면에서 비슷해야 함
- 그룹이 나뉘는 시점도 비슷해야 함
- 트래픽을 반으로 나눠서 사용
728x90
반응형
'TIL - 외 > 추천시스템' 카테고리의 다른 글
[추천시스템] Model Based Collaborative Filtering - Unsupervised (0) | 2023.04.11 |
---|---|
[추천시스템] Memory Based Collaborative Filtering (0) | 2023.04.11 |
[추천시스템] Content Based Filtering (0) | 2023.04.11 |
댓글