김동현 | 임지원 | 이수연 | 진상우 | 심재정 |
---|---|---|---|---|
-
김동현
MF model • RecVAE -
임지원
lightFM • DeepCTR • DeepFM -
이수연
DeepFM • Ensemble(hard voting) -
진상우
SASRec • SSE-PT -
심재정
SAR • Bert4Rec • Ensemble(hard voting)
Timestamp
를 고려한 사용자의 순차적인 이력을 고려하고Implicit feedback
을 고려.Implicit feedback
기반의Sequential recommendation
시나리오를 바탕으로 사용자의Time-ordered sequence
에서 일부item
이 누락된 (dropout) 된 상황을 상정.- 여러 가지 아이템(영화)과 관련된
content(side-information)
를 효과적으로 활용.
- submisison 파일(csv 형태)에
Training Data
에 존재하는 전체 유저들에 대해서 각각 10개의 아이템을 추천. - 사전에 MovieLens 데이터에서 추출해놓은
ground-truth
아이템들을 고려하여 위의 수식과 같이Recall@10
을 계산.
파일 | 내용 |
---|---|
train_ratings.csv | 주 학습 데이터, userid , itemid , timestamp (초)로 구성(5,154,471행) |
Ml_item2attributes.json | 전처리에 의해 생성된 데이터(item 과 genre 의 mapping 데이터) |
titles.tsv | 영화 제목(6,807행) |
years.tsv | 영화 개봉년도(6,799행) |
directors.tsv | 영화별 감독(5,905행) |
genres.tsv | 영화 장르 (한 영화에 여러 장르가 포함될 수 있다, 15,934행) |
writers.tsv | 영화 작가 (11,307행) |
- 376개의
리뷰
작성. (375개의 서로 다른 영화 리뷰 작성) - 리뷰 작성 날짜 5일 :
주어진 데이터가 Sequential 데이터인지 의문?
'2009-01-01' (248개), '2009-01-02' (66개), '2009-08-24' (13개), '2009-08-25' (36개), '2011-01-12’ (13개).
- 1일 평균 최소 1개, 최대 1,795개, 평균 54개의 영화 리뷰를 남김.
- user가 영화를 볼 때마다 리뷰를 남긴 것이 아니라 하루에 몰아서 리뷰를 남겼다는 판단.
- 실제로
Sequential 모델
을 사용할 때보다Static 모델
을 사용할 때 성능이 높게 나옴.
- RecVAE :
- 기존
Multi-VAE
에 몇 가지 테크닉을 더한collaborative filtering
기반 모델. - 제목에
implicit data
기반top-n recommendation
문제에 적합. - 실제 대회에서도 단일 모델로 가장 높은 성능인 0.1499를 보임.
- 기존
- lightFM :
implicit feedback
과explicit feedback
에 모두 사용할 수 있는 알고리즘.user
와item
의 메타데이터(side information)를 기존의MF 알고리즘
에 결합하여 새로운 항목과 새로운 사용자로 일반화할 수 있다는 장점.- 실제로
side information
을 사용했을 때 성능이 낮아졌기 때문에 메타데이터를 사용하지 않음.
- SASRec :
Markov chain(MC)
과Recurrent Neural Network(RNN)
의 장점을 반영한 모델.self-attentive
를 활용한sequential recommender
모델에서 하이퍼파라미터를 조정하여 일부sequential
한 특징을 가진 데이터를 모델링 하는 데에 사용.
- 모델 각각이 가지고 있는 장점을 살려서 좋은 결과를 내기 위해
hard voting
방식을 통한ensemble
을 시도. - 방식 :
recall@10
결과에 3-4가지 모델을 활용하여 많이 겹치는 것을 우선적으로 추출한 뒤, 성능이 좋은 모델 순으로 가중치를 부여하여 나머지를 채움. - 가장 성능이 잘 나온
ensemble
은lightFM
에서 recall@30,recVAE
에서 recall@30,SASRec
에서 recall@10을 뽑아recVAE
>lightFM
>SASRec
순으로 가중치를 부여한 방식.
- [
lightFM
30개,RecVAE
30개,SASRec
10개]를 뽑아 많이 겹치는 것을 우선적으로 추출하여RecVAE
,lightFM
,SASRec
순으로 가중치를 부여하여Hard voting
: 0.1536 → 0.1533. - [
lightFM
,RecVAE
,SASRec
,MultiVAE
10개씩] 으로 구성된 4개의 모델을RecVAE
,lightFM
,MultiVAE
,SASRec
순으로 가중치를 부여하여Hard voting
: 0.1515 → 0.1532. - [
lightFM
,MultiVAE
,RecVAE
,SASRec
30개씩]을 뽑아Soft-voting
: 0.1526 → 0.1528.