DKT는 Deep Knowledge Tracing의 약자로 학생의 '지식 상태'를 추적하는 딥러닝 방법론으로 유저 맞춤화된 교육을 제공하기 위해 중요한 역할을 수행합니다. 이 대회에서는 Iscream 데이터셋을 이용하여 DKT 모델을 구축하여 학생이 특정 문제를 맞힐지 틀릴지 예측하는 과제를 수행했습니다. 이때 평가 메트릭은 AUROC를 사용했습니다.
- 코드에 대한 이해를 높이기 위해 베이스라인 코드를 직접 작성하기
- PM을 돌아가면서 맡아 시간 관리 및 소통 능력 배양하기
- 개인이 특정 업무에 종속되는 것이 아니라, 돌아가면서 팀을 맡아 모든 업무를 경험해보기
- 제공된 강의와 자료에서 제시되는 많은 인사이트를 최대한 활용해보기
- GPU: V100 5대
- 운영체제: Ubuntu 18.04.5 LTS
- 협업툴: Github, Notion, Weight & Bias
Deep Knowledge Tracing/
│
├── train.py - main script to start training
├── inference.py - make submission with trained models
├── ensemble.py - make ensemble with submission files
│
├── config/ - holds configurations for training
| ├──LSTM_config.json
| ├──transformer_config.json
| ├──transformerLSTM_config.json
| ├──GRUtransformer_config.json
│ └──GTN_congfig.json
│
├── data_loader/ - anything about data loading goes here
│ ├── dataset.py
│ └── preprocess.py
│
├── data/ - default directory for storing input data
│
├── model/ - base, get_model, utils for model, and all of models
│ ├── base.py
│ ├── get_model.py
│ ├── utils.py
│ ├── LSTM.py
│ ├── transformer.py
│ ├── transformerLSTM.py
│ ├── transformerGRU.py
│ ├── GRUtransformer.py
│ ├── GTN.py
│ ├── GTNGRU.py
│ └── XGBoost.py
│
├── trainer/ - trainers, losses, metric, optimizer, and scheduler
│ ├── trainer.py
│ ├── loss.py
│ ├── metric.py
│ ├── optimizer.py
│ └── scheduler.py
|
├── preprocess/ - preprocess ipynb files
│
├── ensembles/ - anything about ensemble goes here
│ └── ensemble.py
|
├── ensembles_inference/ - submission files that needs to be ensembled
|
├── logger/ - module for wandb and logging
│ └── wandb_logger.py
│
├── saved_model/
|
├── submission/
|
└── utils/ - small utility functions
├── util.py
└── ...
- 프로젝트 전반: PM 1인, 전처리 2인, 베이스라인 2인 Rotation 방식
- 프로젝트 후반: PM 1인, 모델1 2인, 모델2 2인 Pair Coding 및 Rotation 방식
- Boostcourse 강의 자료
- Riiid Solution
- Gated Transformer Networks for Multivariate Time Series Classification
류명현 | 이수경 | 김은혜 | 정준환 | 장원준 |