추천시스템
추천시스템의 학습 데이터
추천시스템은 보통 이미 존재하는 사용자들의 기록들을 통해 학습된다.
이 기록들은 보통 사용자들의 구매 이력, 평점 이력, 클릭 이력 등의 로그성 데이터이다.
추천 모델은 이 사용자들의 기록을 학습함으로서 시뮬레이션 하게 된다.
학습된 시뮬레이션을 통해 사용자의 다음 행동을 예측할 수 있는지를 테스트 하는 것이 추천 모델을 평가하는 것이 된다.
Train Test Split
대개의 머신러닝 문제와 같이, 추천 시스템의 평가는 학습 데이터와 테스트 데이터를 분리하게 된다.
만약 존재하는 데이터로 추천 모델을 학습시킨 뒤,
이를 실제 서비스 중인 웹사이트에 적용해 테스트 한다면, 이런 테스트 방법을 Online 평가라고 부른다.
하지만, 많은 경우 여건상, 이런 Online 평가는 불가능한 경우가 많다.
따라서, 실제 상황을 재현할 수 있도록, 학습 데이터에는 보여지지 않은 데이터를 테스트 데이터로 만든다.
이러한 평가를 Offline 평가라고 부른다.
Offline 평가나 Online 평가 모두에서,
추천 모델이 사용자에 기반해 예측한 아이템 혹은 평점들과 실제 데이터와 비교해 평가하게 된다.
대개의 경우 80%의 학습데이터와 20%의 테스트 데이터,
혹은 90%의 학습데이터나 10%의 테스트 데이터로 분리해 학습 및 테스트를 진행한다.
데이터 분리 방법
데이터는 대개 아래의 세가지 방법으로 분리된다:
- 평점을 분리
- 사용자를 분리
- 아이템을 분리
평점을 분리하는 경우, 5개의 평점이 있다면 5개의 그룹으로 분리해 모두 학습과 테스트 데이터를 구하는 것이다.
하지만 모든 경우 평점은 이렇게 나뉘어 있지 않기 때문에, 사용자를 분리하는 방법을 많이 선택한다.
사용자 분리
사용자를 분리하는 방법 역시 두가지로 나뉜다.
랜덤 기준 분리
첫번째는 랜덤하게 분리하는 방법이다.
적용 방법이 간단하기 때문에 가장 많이 사용된다.
이는 평점에 상관 없이 사용자를 랜덤하게 선정해 학습과 테스트 데이터로 나눈다.
시간 기준 분리
두번째는 시간을 기준으로 분리하는 방법이다.
이는 어떠한 시간적 기점을 기준으로 데이터를 나누는 것이다.
예를 들면 4개월의 데이터가 있다면 첫 3개월은 Train으로 마지막 1개월은 Test로 사용하는 것이다.
실제 상황을 더 잘 시뮬레이션 할 수 있기 때문에, 실제와 더 가까운 평가를 할 수 있다.
하지만 실제 상황과 더 가깝기 떄문에, 더 나쁜 평가 성능이 나올 수 있다.
파라미터 튜닝
추천시스템 역시 다른 머신러닝 기법들과 같이 파라미터들이 존재한다.
이는 Item-Item KNN이라면, 이웃의 사이즈나, k개의 추천리스트 갯수 등, 사람이 결정하는 파라미터 들이다.
이러한 파라미터들은 대부분 여러번의 실험을 통해 결정하게 된다.
당연하지만, 추천시스템 역시 학습 데이터에 너무 많이 학습해 예측률을 떨어뜨리는 Overfitting은 피해야 한다.
본 포스팅은 Minnesota대학교의 Intro to Recommender Systems코세라 강좌를 정리한 내용입니다.
https://www.coursera.org/learn/recommender-systems-introduction?specialization=recommender-systems
'데이터사이언스 > 추천시스템' 카테고리의 다른 글
추천시스템 - (12) 랭킹 기반 평가 (2) | 2020.08.05 |
---|---|
추천시스템 - (11) 추천시스템 평가 (0) | 2020.08.04 |
추천시스템 - (9) 컨텐츠 기반 추천 (0) | 2020.07.19 |
추천시스템 - (8) 연관성 분석 추천 예제 (0) | 2020.07.12 |
추천시스템 - (7) 제품연관성 (0) | 2020.06.26 |