Competition ์ฉ๋๋ก ์ฌ๊ตฌ์ฑ๋ MovieLens ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด User์ ์ํ ์์ฒญ ์ด๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋ฐํ์ผ๋ก User๊ฐ ์ ํธํ ์ํ๋ฅผ ์์ธกํ๋ค. User Sequence์์ ์ผ๋ถ ๋ฐ์ดํฐ๊ฐ ๋๋ฝ๋ ์ํฉ์ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์, Timestamp๋ฅผ ๊ณ ๋ คํ User์ ์์ฐจ์ ์ธ ์ด๋ ฅ๊ณผ Implicit Feedback์ ํจ๊ป ๊ณ ๋ คํด์ผ ํ๋ ๋ฌธ์ ์ด๋ค.
2022.12.12 ~ 2023.01.06(4์ฃผ)
- ๊ฐ๋ฐํ๊ฒฝ : VScode, PyTorch, Jupyter, Ubuntu 18.04.5 LTS, GPU Tesla V100-PCIE-32GB
- ํ์ Tool : GitHub, Notion
- ์๊ฐํ : WandB
- (1) Sequence folder
- BERT4Rec
- FPMC
- SASRec
- S3Rec
- (2) Encoder folder
- EASE
- MultiDAE
- MultiVAE
- RecVAE
- (3) Ensemble
- (4) EDA
train
โโโ Ml_item2attributes.json
โโโ directors.tsv
โโโ genres.tsv
โโโ titles.tsv
โโโ train_ratings.csv
โโโ writers.tsv
โโโ years.tsv
๊ตฌํ์ธ | ๊ถ์์ฑ | ๋ฐ๊ฑด์ | ์ฅํ์ฐ | ์ ํํธ | ํ์ ์ง |
---|---|---|---|---|---|
MultiVAE/DAE ๋ชจ๋ธ ๊ตฌํ ๋ฐ ์ต์ ํ | EASE๋ชจ๋ธ ๊ตฌํ ๋ฐ ์ต์ ํ | SASRec, S3Rec๋ชจ๋ธ ๊ตฌํ ๋ฐ ์ต์ ํ | FPMC ๋ชจ๋ธ ๊ตฌํ ๋ฐ ์ต์ ํ | RecVAE ๋ชจ๋ธ ๊ตฌํ ๋ฐ ์ต์ ํ | EDA, BERT4Rec ๋ชจ๋ธ ๊ตฌํ ๋ฐ ์ต์ ํ |
- 22.12.12(์) : Git branch ์ ๋ต ํ์
- ๋ชจ๋ธ ํ์
- 22.12.16(๊ธ) : ์ค์ต ๊ธฐ๋ฐ ๋ชจ๋ธ ์ธ๋ฏธ๋
- 22.12.20(ํ) : ๋ ผ๋ฌธ ๊ธฐ๋ฐ ๋ชจ๋ธ ์ธ๋ฏธ๋
- ๋ฒ ์ด์ค๋ผ์ธ ์ฝ๋ ์์ฑ ๋ฐ ์คํ ๊ฒฐ๊ณผ ๊ณต์
- 22.12.23(๊ธ) : ๋ฒ ์ด์ค๋ผ์ธ ์ธ๋ฏธ๋
๋ ๋ฒ์ ์ธ๋ฏธ๋๋ฅผ ์งํํ ๊ฒฐ๊ณผ Sequence ๋ชจ๋ธ๊ณผ Encoder ๋ชจ๋ธ์ด MovieLens ๋ฐ์ดํฐ์ ์ ์ ํ๋ค๊ณ ํ๋จํ์๊ณ , 2๊ฐ์ ์ธ๋ถ ํ(Sequenceํ, Encoderํ)์ผ๋ก ๋ถ๋ฆฌํ์ฌ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค. Sequenceํ, Encoderํ ๊ฐ์ ๋ฒ ์ด์ค๋ผ์ธ ์ฝ๋๋ฅผ ์์ฑํ ํ ๊ณต์ ํ๋ ์ธ๋ฏธ๋๋ฅผ ์งํํ๋ค. ์ดํ, ์์ฑํ ๋ฒ ์ด์ค๋ผ์ธ ์ฝ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ํ ์คํธ๋ฅผ ์งํํ๋ค.
โ ๊ฒฐ๊ณผ (์์ 4 ๊ฐ) : Publie, Private 4์ ๐
SASRec | BERT | FPMC | EASE | multiVAE | multiDAE | RecVAE |
---|---|---|---|---|---|---|
0.1294 | 0.0479 | 0.1278 | 0.1600 | 0.1356 | 0.1376 | 0.1505 |
์ต์ข ์ ํ ์ฌ๋ถ | ๋ชจ๋ธ (Ensemble ๋น์จ) | Public Recall@10 | Private Recall@10 |
---|---|---|---|
X | EASE ์ SASRec ์ 7:3 ๋น์จ๋ก ์์ | 0.1755 | 0.1655 |
O | EASE (1), RecVAE(0.9), MultiDAE(0.8), MultiVAE(0.7), Sasrec(1) | 0.1726 | 0.1651 |
X | EASE , RecVAE, MultiDAE, MultiVAE, SASRec, Recall@10 ์์, ๋ชจ๋ธ ๊ฐ์ค์น | 0.1630 | 0.1623 |
O | EASE ์ SASRec ์ 5:5 ๋น์จ๋ก ์์ | 0.1758 | 0.1615 |
-
- Sequence ๊ณ์ด ๋ชจ๋ธ
-
- SASRec
-
- BERT4Rec
-
- FPMC
-
- Encoder ๊ณ์ด ๋ชจ๋ธ
-
- EASE
-
- MultiVAE/DAE
-
- RecVAE
- ๋ฒ ์ด์ค๋ผ์ธ ์ฝ๋
- SASRec & S3Rec
- S3Rec์ ์ฌ์ฉ ์ ๋ฌด์ ๋ฐ๋ฅธ ์ฑ๋ฅ ์ฐจ์ด ์คํ
- max_seq_len ๊ณผ hidden_dim ์ ํฌ๊ธฐ๊ฐ ์ปค์ง์๋ก ์ ์๋ฏธํ ์ฑ๋ฅ ์์น์ด ์์ง๋ง, GPU ํ์ฉ๋ ๋ฌธ์ ๋ฐ์
- SASRec๋ง์ ์ต์ ํํ์ ๋ ๋์ถ๋ max_seq_len(448)๊ณผ hidden_dim(240)์ S3Rec pretrain์์ CUDA error ๋ฐ์
- S3Rec์์๋ ๋ฒ์๋ฅผ ์ถ์ max_seq_len (150~250) hidden_dim (30,60,120,240)ํด์ ์ต์ ํ
- S3Rec์์๋ ์๋์ ์ผ๋ก ์งง์ max_seq_len์์ ๋์ผํ Recall@10 ๊ฒฐ๊ณผ๊ฐ ๋์์ผ๋ฏ๋ก ์๋ฏธ๊ฐ ์์ผ๋ ๋ง์ ์ฐ์ฐ๋๊ณผ ๋์ ์์ ์๊ฐ ๋๋ฌธ์ S3Rec๋ง ์ต์ ํํ๋ ๊ฒ์ผ๋ก ๊ฒฐ์
- S3Rec Pretrain ์ฌ์ฉ(sweep ์ ์ฉ) Recall@10 : 0.1294
- S3Rec Pretrain ๋ฏธ์ฌ์ฉ(sweep ์ ์ฉ) Recall@10 : 0.1294
- ์ฐ์ฐ ์์ ์๊ฐ์ ๋น๊ต
- S3Rec ์ฌ์ฉ์ : ์ฝ 13์๊ฐ
- S3Rec ๋ฏธ์ฌ์ฉ์ : ์ฝ 3์๊ฐ
- max_seq_len ๊ณผ hidden_dim ์ ํฌ๊ธฐ๊ฐ ์ปค์ง์๋ก ์ ์๋ฏธํ ์ฑ๋ฅ ์์น์ด ์์ง๋ง, GPU ํ์ฉ๋ ๋ฌธ์ ๋ฐ์
- S3Rec์ ์ฌ์ฉ ์ ๋ฌด์ ๋ฐ๋ฅธ ์ฑ๋ฅ ์ฐจ์ด ์คํ
- SASRec & S3Rec
- ์ถ๊ฐ์ ์ธ ๋ชจ๋ธ ์ ํ
- Sequence ๋ชจ๋ธ
- FPMC
- Movie Recommendation๋ User์ Implicit Feedback์ ์ฌ์ฉํ์ฌ ๋ค์ Item์ ์ถ์ฒํ๋ ํ๋ก์ ํธ์ด๊ธฐ ๋๋ฌธ์ MF ๋ชจ๋ธ์ Markov Chains๋ฅผ ์ ์ฉํ FPMC ๋ชจ๋ธ์ด ์ ์ ํ๋ค๊ณ ํ๋จ
- BERT4Rec
- BERT4Rec ์์ ์ฌ์ฉํ๋ Cloze mask ๋ฐฉ์์ด ๊ฐ์์์ ์๊ฐ๋ ์์ฒญ ์ด๋ ฅ ๋๋ฝ๊ณผ ์ ์ฌํ๋ค๊ณ ํ๋จ
- FPMC
- Encoder ๋ชจ๋ธ
- Movie Recommendation์ Top-K Ranking์ ์ฌ์ฉํ๋ ํ๋ก์ ํธ์ด๊ธฐ ๋๋ฌธ์ Encoder, Decoder๋ฅผ ์ฌ์ฉํ์ฌ ์์ธกํ๋ Encoder ๋ชจ๋ธ์ด ์ ์ ํ๋ค๊ณ ํ๋จ, Static ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์ถ์ฒ์ด๊ธฐ ๋๋ฌธ์ Encoder ๋ชจ๋ธ ์ค MultiVAE, MultiDAE, RecVAE, EASE ์ฌ์ฉ
- Sequence ๋ชจ๋ธ
- Hyperparameter Tuning(Wandb, Sweep)
- Sweep
- Ensemble
- Top-K Counting
- Ensemble๋์ ๋ชจ๋ธ์ Recall@20/15/10์ ์ถ์ถํ์ฌ ์ถ์ฒ Item Count
- ์ถ์ฒ ์์ ๋ณ ๊ฐ์ค์น, ๋ชจ๋ธ ๋ณ ๊ฐ์ค์น๋ฅผ ์ ์ฉํ์ฌ ํ ์คํธ๋ฅผ ์งํ
- ๋ชจ๋ธ ๋ณ ์์ N๊ฐ ์ถ์ถ
- Ensemble ๋์ ๋ชจ๋ธ ์ค ์์ N๊ฐ๋ฅผ ์ถ์ถํ์ฌ 10๊ฐ์ ์ถ์ฒ Item์ผ๋ก ๊ตฌ์ฑ
- N๊ฐ์ ๊ธฐ์ค์ ๋ชจ๋ธ์ ์ฑ๋ฅ ๋ณ ๊ฐ์ค์น ๋ถ์ฌ
- Top-K Counting