- ๐ฅ ๋์ ์์ - Winning Solution for a Competition
์ถ์ฒ ์์คํ ์ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ๋ถ์ํ์ฌ ์ฌ์ฉ์์๊ฒ ์ ํฉํ ์ํ์ ์ถ์ฒํด์ฃผ๋ ์ธ๊ณต์ง๋ฅ ๊ธฐ์ ์ค ํ๋์ ๋๋ค. ์ถ์ฒ ์์คํ ๊ธฐ์ ์ ํตํด ์ฌ์ฉ์ ํธ์์ฑ ์ฆ๊ฐ ๋ฐ ์ฌ์ฉ์์ ์ํ์ ์ ๊ทผ์ฑ์ ๋์ฌ ๊ธฐ์ ์ ์ด์ต ์ฆ๋๋ฅผ ๊ธฐ๋ ํ ์ ์์ต๋๋ค.
์ถ์ฒ ์์คํ ์ ์ฃผ๋ก ์ฌ์ฉ์์ ์ํ์ ๋ํ ์ ํธ๋ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ง๋ง, ๋ฐ์ดํฐ ์์ง์ ์ด๋ ค์์ผ๋ก Data Sparseness๋ Cold Start ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด๋ฅผ ๋ณด์ํ๊ณ ์, ์ต๊ทผ ์ฌ์ฉ์ ๋ก๊ทธ ์ ๋ณด ๋ฟ๋ง ์๋๋ผ ์ด๋ฏธ์ง ํน์ ๋ฆฌ๋ทฐ ์ ๋ณด๋ฅผ ๊ฒฐํฉํ์ฌ Multi-modal ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์ถ์ฒ ์์คํ ์ฐ๊ตฌ๊ฐ ๋ค์ ์งํ๋๊ณ ์์ต๋๋ค.
Multi-modal ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ ๊ณ ์ฑ๋ฅ ์ถ์ฒ ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋ฐ์ ํตํด ์ถ์ฒ ์์คํ ์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ณ ์ฌ์ฉ์์๊ฒ ์ต์ ํ๋ ๊ฐ์ธํ ์ถ์ฒ ๊ฒฝํ์ ์ ๊ณตํ๋ ๊ฒ์ ๊ธฐ๋ํฉ๋๋ค.
-
์ฃผ๊ด: ์ธ๊ณต์ง๋ฅ์ตํ์ฐ๊ตฌ์ผํฐ, BK ์ฐ์ ์ตํฉํ ์ฐจ์ธ๋ ์ธ๊ณต์ง๋ฅ ํ์ ์ธ์ฌ ๊ต์ก์ฐ๊ตฌ๋จ
-
์ด์: ๋ฐ์ด์ฝ
-
๋ํ : link
-
๋ํ ๊ธฐ๊ฐ : 2023.07.04 ~ 2023.08.07
-
ํ๊ฐ ์ฐ์ : NDCG@50
$DCG_u = \sum\limits_{l=1}^{50}\frac{relevance_i}{log2(i+1)}$ $IDCG_u = \sum\limits_{l=1}^{50}\frac{relevance_i^{opt}}{log2(i+1)}$ $NDCG_u = \frac{DCG_u}{IDCG_u}$ $relevance_i$ ๊ฐ์ ํ์ ์ด 3์ด์์ด๋ฉด 1, ์๋๋ฉด 0์ผ๋ก ์ด์งํ ํ์ฌ ๊ณ์ฐ
name | count |
---|---|
user_id | 192403 |
item_id | 62989 |
interection | 1254441 |
item_id์ ํด๋นํ๋ image_feat, text_feat ์ ๊ณต
For more : Raw data
-
BM3 : paper
-
Hyperparameter table
- metric & inference_time : 5-fold average
- Device : GeForce RTX 3080 Ti 12GB
- ndcg@50 ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
n_layers embedding_size feat_embed_dim ndcg@50 precision@50 recall@50 map@50 training_time_avg inference_time_avg 4 256 128 0.036900 0.002700 0.093460 0.019720 4h 18m 0.60s 25.08s 3 256 128 0.036800 0.002680 0.092940 0.019720 3h 55m 50.60s 20.56s 4 128 128 0.036620 0.002740 0.094680 0.019100 3h 38m 19.20s 14.43s 4 128 256 0.036600 0.002760 0.095020 0.019020 3h 20m 55.40s 14.37s 4 128 64 0.036480 0.002740 0.094560 0.018980 3h 53m 47.20s 14.38s 5 256 128 0.036380 0.002700 0.093560 0.019180 6h 33m 47.60s 29.33s 3 128 128 0.036300 0.002700 0.093700 0.018980 4h 21m 45.40s 12.52s 3 128 256 0.036300 0.002700 0.093660 0.019000 3h 17m 46.40s 12.46s 3 128 64 0.036240 0.002700 0.093280 0.019020 3h 48m 49.60s 12.46s 5 128 128 0.036140 0.002740 0.094780 0.018640 5h 33m 18.80s 16.31s 6 128 128 0.036140 0.002740 0.094720 0.018580 4h 56m 59.20s 18.29s -
Drop_out : 0.5๋ก ๊ณ ์
- best5 parameter model ensemble : 25๊ฐ์ csv ํ์ผ (model : 5 and fold : 5)
- Hard_voting : ๊ฐ ๋ชจ๋ธ์ด ์ ์ ๋ณ ์์ธกํ ์์ดํ ์ ๋น๋์๋ฅผ ๊ธฐ์ค์ผ๋ก ํฐ ๊ฐ๋ถํฐ ์ถ์ฒ
- weighted_voting : Hard_voting์์
$i$ ๋ฒ์งธ ๋ฑ์ฅํ ์์ดํ ์ ๋ํ์ฌ$\frac{1}{log_2(i+1)}$ ๊ฐ์ค์น๋ฅผ ๋ํ์ฌ ํฐ ๊ฐ๋ถํฐ ์ถ์ฒ
Type | Public(30%) | Private |
---|---|---|
weighted_voting | 0.0428 | 0.0442 |
Hard_voting | 0.0386 | 0.0399 |
# ๋ชจ๋ธ ํ๋ จ ํ๊ฒฝ ๊ตฌ์ถ
# docker๋ CUDA Version: 11.2 ๊ธฐ์ค์ผ๋ก ์์ฑ๋์์ต๋๋ค. Dockerfile์ ํ์ธํด์ฃผ์ธ์
sh docker.sh
# Data Preprocess
python preprocessing/preprocess.py
# Model Train
python src/main.py -m BM3
# Model Inference
python src/submission.py
# submission ์์ฑ
cd ..
python src/ensemble.py -t weighted_voting -f BM3
์์๋ธ ๊ฒฐ๊ณผ ๊ฒฝ๋ก : /workspace/root/Challenge-Multi-modal-Recommender-System/submission/best.csv
docker cp [container ID]:[์์๋ธ ๊ฒฐ๊ณผ ๊ฒฝ๋ก] [host ํ์ผ๊ฒฝ๋ก]