Skip to content

๐Ÿ—’๏ธ Boostcamp AI Tech 4th - DKT(Deep Knowledge Tracing) Contest

Notifications You must be signed in to change notification settings

boostcampaitech4lv23recsys1/level2_dkt_recsys-level2-recsys-02

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

14 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Deep Knowledge Tracing

image

ํŒ€์› ์†Œ๊ฐœ

์ด๋ฆ„ ์—ญํ• 
๋ฐ•๊ฒฝ์ค€ last query, boosting, gcn, tuning์„ ์‹œ๋„
๋ฏผ๋ณต๊ธฐ EDA, FE ๋ฐ 1D-CNN ๋ชจ๋ธ ์‹คํ—˜
๊น€๋™์˜ lightGCN + sequence model, lightGCN ๊ฐœ๋Ÿ‰, ํŠœ๋‹ ์‹œ๋„
์˜คํฌ์ • EDA, FE๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋ฒ ์ด์Šค๋ผ์ธ ์ œ๊ณต ๋ชจ๋ธ ์™ธ์—๋„ ๋‹ค์–‘ํ•œ ML, DL๋ชจ๋ธ๋“ค์„ ์‹คํ—˜
์šฉํฌ์› EDA, FE ๋ฐ ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ ์œ„์ฃผ ์‹คํ—˜

ํ”„๋กœ์ ํŠธ ์ฃผ์ œ

Iscream ๋ฐ์ดํ„ฐ์…‹์„ ํ™œ์šฉํ•ด DKT๋ชจ๋ธ์„ ๊ตฌ์ถ•ํ•ด ์ฃผ์–ด์ง„ ๋ฌธ์ œ์˜ ์ •๋‹ต ์—ฌ๋ถ€๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ์ด์ง„๋ถ„๋ฅ˜ Task

DKT๋Š” Deep Knowledge Tracing์˜ ์•ฝ์ž๋กœ ์šฐ๋ฆฌ์˜ "์ง€์‹ ์ƒํƒœ"๋ฅผ ์ถ”์ ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹ ๋ฐฉ๋ฒ•๋ก ์ด๋‹ค. ์ด๋Ÿฐ DKT๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์šฐ๋ฆฌ๋Š” ํ•™์ƒ ๊ฐœ๊ฐœ์ธ์—๊ฒŒ ์ˆ˜ํ•™์˜ ์ดํ•ด๋„์™€ ์ทจ์•ฝํ•œ ๋ถ€๋ถ„์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๋ฌธ์ œ๋“ค์„ ํ’€๋ฉด ์ข‹์„์ง€ ์ถ”์ฒœ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— DKT๋Š” ๊ต์œก AI์˜ ์ถ”์ฒœ์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค. ์ฆ‰, DKT๋Š” ๋งž์ถคํ™”๋œ ๊ต์œก์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์•„์ฃผ ์ค‘์š”ํ•œ ์—ญํ• ์„ ๋งก๊ฒŒ ๋œ๋‹ค.

ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

Iscream ๋ฐ์ดํ„ฐ์…‹์„ ์ด์šฉํ•˜์—ฌ DKT ๋ชจ๋ธ์„ ๊ตฌ์ถ•ํ•˜๊ณ , ํ•™์ƒ ๊ฐœ๊ฐœ์ธ์˜ ์ดํ•ด๋„๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ง€์‹ ์ƒํƒœ๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ์ผ๋ณด๋‹ค๋Š” ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ๋งž์ถœ์ง€ ํ‹€๋ฆด์ง€ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์— ์ง‘์ค‘ํ•œ๋‹ค. ๊ฐ ํ•™์ƒ์ด ํ‘ผ ๋ฌธ์ œ ๋ฆฌ์ŠคํŠธ์™€ ์ •๋‹ต ์—ฌ๋ถ€๊ฐ€ ๋‹ด๊ธด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ์ตœ์ข… ๋ฌธ์ œ๋ฅผ ๋งž์ถœ์ง€ ํ‹€๋ฆด์ง€ ์˜ˆ์ธกํ•œ๋‹ค.

  • input : ์•ฝ 7000๋ช…์˜ ์‚ฌ์šฉ์ž๋“ค์˜ ๋ฌธ์ œ ํ’€์ด ๋‚ด์—ญ
  • output : test_data ์‚ฌ์šฉ์ž๋“ค์˜ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ์˜ ์ •๋‹ต์—ฌ๋ถ€
  • metrics : AUROC(Area Under the ROC curve), Accuracy

๋ฐ์ดํ„ฐ์…‹ ๊ตฌ์กฐ

image

์ด๋ฆ„ ์„ค๋ช…
userID ์‚ฌ์šฉ์ž ๊ณ ์œ  ๋ฒˆํ˜ธ
assessmentItemID ๋ฌธํ•ญ์˜ ๊ณ ์œ ๋ฒˆํ˜ธ
testID ์‹œํ—˜์ง€์˜ ๊ณ ์œ ๋ฒˆํ˜ธ
answerCode ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ๋ฌธํ•ญ์„ ๋งž์ท„๋Š”์ง€ ์—ฌ๋ถ€ (binary)
Timestamp ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น๋ฌธํ•ญ์„ ํ’€๊ธฐ ์‹œ์ž‘ํ•œ ์‹œ์ 
KnowledgeTag ๋ฌธํ•ญ ๋‹น ํ•˜๋‚˜์”ฉ ๋ฐฐ์ •๋˜๋Š” ํƒœ๊ทธ๋กœ, ์ผ์ข…์˜ ์ค‘๋ถ„๋ฅ˜ ์—ญํ• 

๋ฒ ์ด์Šค๋ผ์ธ ๊ตฌ์กฐ

โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ dkt                      # sequential ์ ‘๊ทผ
โ”‚ย ย  โ”œโ”€โ”€ src
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ criterion.py     # loss ํ•จ์ˆ˜ : BCELoss
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ dataloader.py    # ์ „์ฒ˜๋ฆฌ ๋ฐ ํ•™์Šต๊ฐ€๋Šฅํ•œ input์ƒ์„ฑ
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ metric.py        # AUROC, ACC
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ model.py         # LSTM, LSTM+ATTN, BERT
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ optimizer.py     # Adam, AdamW
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ scheduler.py     # learning rate ์กฐ์ ˆ
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ trainer.py       # train, validation
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ utils.py         # random seed ๊ณ ์ •
โ”‚ย ย  โ”œโ”€โ”€ args.py              # ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •
โ”‚ย ย  โ”œโ”€โ”€ inference.py         # ์˜ˆ์ธก๋œ csvํŒŒ์ผ ์ƒ์„ฑ
โ”‚ย ย  โ”œโ”€โ”€ requirements.txt
โ”‚ย ย  โ”œโ”€โ”€ train.py             # main
โ”‚ย ย  โ””โ”€โ”€ README.md
|
โ””โ”€โ”€ lightgcn                 # graph ์ ‘๊ทผ
โ”œโ”€โ”€ lightgcn
โ”‚ย ย  โ”œโ”€โ”€ datasets.py          # ์ „์ฒ˜๋ฆฌ ๋ฐ ํ•™์Šต๊ฐ€๋Šฅํ•œ input ์ƒ์„ฑ
โ”‚ย ย  โ”œโ”€โ”€ models.py            # LightGCN
โ”‚ย ย  โ””โ”€โ”€ utils.py             # seed ๊ณ ์ •, logger ์„ค์ •
โ”œโ”€โ”€ config.py                # ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •
โ”œโ”€โ”€ inference.py             # ์˜ˆ์ธก๋œ csvํŒŒ์ผ ์ƒ์…ฉ
โ”œโ”€โ”€ install.sh
โ”œโ”€โ”€ train.py
โ””โ”€โ”€ README.md

ํ”„๋กœ์ ํŠธ ์ˆ˜ํ–‰๊ฒฐ๊ณผ

๋ฐ์ดํ„ฐ
๋ชจ๋ธ Catboost, lightGBM, lightGCN
ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ
์•™์ƒ๋ธ” Catboost * 0.425 + lightGBM * 0.425 + lightGCN * 0.15

์ตœ์ข… ๊ฒฐ๊ณผ

public image private image

About

๐Ÿ—’๏ธ Boostcamp AI Tech 4th - DKT(Deep Knowledge Tracing) Contest

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •