차곡차곡 쌓아보는 개발 데이터_AI/ML engineer
[추천시스템 맛보기] 추천 시스템 - SASRec: Self-Attentive Sequential Recommendation 본문
인공지능(AI)/추천시스템
[추천시스템 맛보기] 추천 시스템 - SASRec: Self-Attentive Sequential Recommendation
달리아(Dahlia) 2023. 2. 7. 13:49Intriduction
- 해당 논문은 기존의 추천 시스템인 Markov Chains(MC) 와 RNN 계열 모델의 단점을 동시에 보완
- 제안된 모델은 기존의 추천시스템에서 좋은 성능을 보여주던 MC/CNN/RNN based model을 뛰어넘는 실험 결과를 보여줌
기존 sequential recommender
- Markov Chains (MCs)
유저의 다음 행동이 바로 이전의 과거 혹은 몇 개 이전의 행동에 영향을 받을 것이라는 가정으로 시작
이러한 가정은 너무 over-simplfy하고 매우 희소한(sparse) 데이터에만 잘 작동한다는 단점이 있음
따라서, 복잡한 관계를 학습하는 것은 힘듦
- Recurrent Neural Networks (RNN)
RNN 기반의 모델(대표적으로 GRU recommender)의 경우는 과거의 모든 행동을 모델의 입력값으로 넣어,
이를 요약한 정보를 가지고 다음 행동을 예측하는 모델
상대적으로 복잡한 모델을 학습하기 위해 많은 양의 데이터를 요구하기 때문에 희소한 데이터에서는 좋은 성능을 보여주기 힘듦
실습
사용자가 다음에 볼 영화 추천하기
모델 선정 이유 - SASRec
고밀도, 희소한 데이터 셋에서의 실험을 통해 좋은 결과를 보임
eda 과정을 통해 로그 데이터 분석 결과, 사용자의 이전 행동만 가지고 다음 행동을 예측하는 순차적 모델을 사용하는 것이 적합하다고 생각
실습
- 데이터셋
- json 파일로 구성된 사용자 구매 로그 데이터 (공개 불가)
- MovieLens 데이터
- 약 3,900편의 영화에 대한 1,000,209개의 평점이 저장된 데이터
- user_id , movide_id 속성만 사용
- 모델 input 에 맞춘 데이터 처리
- data : 마지막 데이터를 제외한 모든 데이터
- label : 맨 마지막에 시청한 영화 인덱스
- 학습
- 테스트(성능 평가)
- NDCG@10: 0.8226, Hit@10: 0.9195
'인공지능(AI) > 추천시스템' 카테고리의 다른 글
추천시스템(Recommendation System)이란? - 추천시스템 개요부터 실습까지 (0) | 2023.02.07 |
---|---|
추천시스템(Recommendation System)이란? - 추천시스템 개요 (0) | 2023.02.07 |