/Boostcamp-AI-level2_movierecommendation_recsys-level-recsys-04

level2_movierecommendation_recsys-level-recsys-04 created by GitHub Classroom

Primary LanguageJupyter Notebook

Movie Recommendation

image

๐Ÿ‘‹ RECCAR ํŒ€์› ์†Œ๊ฐœ

๊น€์„ฑ์—ฐ ๋ฐฐ์„ฑ์žฌ ์–‘์Šนํ›ˆ ์กฐ์ˆ˜์—ฐ ํ™์žฌํ˜• ํ™ฉ์„ ํƒœ


๐Ÿ†๏ธ ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ

  • ์‚ฌ์šฉ์ž์˜ ์˜ํ™” ์‹œ์ฒญ ์ด๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์Œ์— ์‹œ์ฒญํ•  ์˜ํ™” ๋ฐ ์ข‹์•„ํ•  ์˜ํ™”๋ฅผ ์ถ”์ฒœ


๐Ÿ’ป ํ™œ์šฉ ์žฅ๋น„

  • GPU Tesla V100-PCIE-32GB


๐Ÿ™‹๐Ÿปโ€โ™‚๏ธ๐Ÿปโ€โ™€๏ธ ํ”„๋กœ์ ํŠธ ํŒ€ ๊ตฌ์„ฑ ๋ฐ ์—ญํ• 

  • ๊น€์„ฑ์—ฐ : EDA / ์ „๋ฐ˜์ ์ธ ํŒ€ ํ”„๋กœ์ ํŠธ ํƒ€์ž„๋ผ์ธ ์„ค์ • / Rule-based ๋ชจ๋ธ ์„ค๊ณ„ / ๋ฒ ์ด์Šค๋ผ์ธ ์ฃผ์„ ์ถ”๊ฐ€ ๋ฐ ๊ฐœ์„  ์ž‘์—…
  • ๋ฐฐ์„ฑ์žฌ : AutoEncoder ๋ฐ glocal-K ๋ชจ๋ธ ์ ์šฉ, EASE ๋ชจ๋ธ ์ ์šฉ ๋ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹, ๋ฒ ์ด์Šค๋ผ์ธ ์ฃผ์„ ์ถ”๊ฐ€
  • ์–‘์Šนํ›ˆ : EDA / ๋ฒ ์ด์Šค๋ผ์ธ ์ฃผ์„ ์ถ”๊ฐ€ ๋ฐ ๊ฐœ์„  ์ž‘์—… / MF ๋ชจ๋ธ ์ง์ ‘ ๊ตฌํ˜„ ๋ฐ ์ ์šฉ
  • ์กฐ์ˆ˜์—ฐ : EASE ๋ชจ๋ธ ์ ์šฉ / lightFM ๋ชจ๋ธ ์ ์šฉ
  • ํ™์žฌํ˜• : AutoEncoder ์ ์šฉ / ๋ฒ ์ด์Šค๋ผ์ธ ์ฃผ์„ ์ถ”๊ฐ€ / ๋ฏธ์…˜ ์ œ์ถœ ์ฝ”๋“œ ์ž‘์„ฑ
  • ํ™ฉ์„ ํƒœ : ๋Œ€ํšŒ ๋ฏธ์…˜ ๊ณผ์ œ ์ฃผ์„ ์ถ”๊ฐ€ / ๋ฒ ์ด์Šค๋ผ์ธ ์ฃผ์„ ์ถ”๊ฐ€


๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ ํ˜‘์—… ๋ฐฉ์‹

a. Zoom (Google Meet)

b. Notion

c. Slack

d. Google Docs



๐ŸŽข ํ”„๋กœ์ ํŠธ ์ˆ˜ํ–‰ ์ ˆ์ฐจ

1. EDA

2. Rule-based Model

3. SASRec Model (S3-Rec with no Pre-training)

4. Hyperparameter Tuning (Wandb)

5. Ensemble (SASRec + EASE)



โŒจ๏ธ Model Architecture

์ž์„ธํ•œ ์ง„ํ–‰ ๊ณผ์ •์€ ๋ฐœํ‘œ์ž๋ฃŒ ๋‚ด PDF ํŒŒ์ผ์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!

Rule-Base ๋ชจ๋ธ

Model_ipynb/KSY_rulbase.ipynb ์‹คํ–‰

S3-Rec ๋ชจ๋ธ (Baseline)

์˜ํ™” ์ถ”์ฒœ ๋Œ€ํšŒ๋ฅผ ์œ„ํ•œ S3-Rec ๋ฒ ์ด์Šค๋ผ์ธ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.
๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋Œ€ํšŒ์— ๋งž๊ฒŒ ์žฌ๊ตฌ์„ฑ ํ–ˆ์Šต๋‹ˆ๋‹ค.

Installation

pip install -r requirements.txt

How to run

  1. Encoding
    ensamble.ipynb๋กœ ์ธ์ฝ”๋”ฉ ๋œ train_new ํŒŒ์ผ ์ƒ์„ฑ
    
  2. Pretraining
    python run_pretrain.py
    
  3. Fine Tuning (Main Training)
    1. with pretrained weight
      python run_train.py --using_pretrain
      
    2. without pretrained weight
      python run_train.py
      
  4. Inference
    python inference.py
    
  5. Decoding
    ensamble.ipynb๋กœ ๋””์ฝ”๋”ฉ ๋œ submission.csv ํŒŒ์ผ ์ƒ์„ฑ
    

EASE

EASE/bae_EASE.ipynb ์‹คํ–‰

Ensemble

ensemble.ipynb ์‹คํ–‰


๐Ÿ’ฏ ํ”„๋กœ์ ํŠธ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ - ์ตœ์ข… Private 2๋“ฑ

  • Private ๋ฆฌ๋”๋ณด๋“œ ์Šค์ฝ”์–ด Recall@10 ๊ธฐ์ค€์œผ๋กœ ์ˆœ์œ„ ์„ ์ •
๋ฆฌ๋”๋ณด๋“œ Recall@10 ์ˆœ์œ„
public 0.1869 2์œ„
private 0.1699 ์ตœ์ข… 2์œ„

image