김찬호 | 배성수 | 이지훈 | 정소빈 | 조원삼 |
초등학교, 중학교, 고등학교, 대학교와 같은 교육기관에서 우리는 시험을 늘 봐왔습니다. 시험 성적이 높은 과목은 우리가 잘 아는 것을 나타내고 시험 성적이 낮은 과목은 반대로 공부가 더욱 필요함을 나타냅니다. 시험은 우리가 얼마만큼 아는지 평가하는 한 방법입니다.
하지만 시험에는 한계가 있습니다. 우리가 수학 시험에서 점수를 80점 받았다면 우리는 80점을 받은 학생일 뿐입니다. 우리가 돈을 들여 과외를 받지 않는 이상 우리는 우리 개개인에 맞춤화된 피드백을 받기가 어렵고 따라서 무엇을 해야 성적을 올릴 수 있을지 판단하기 어렵습니다. 이럴 때 사용할 수 있는 것이 DKT입니다!
DKT는 Deep Knowledge Tracing의 약자로 우리의 "지식 상태"를 추적하는 딥러닝 방법론입니다.
한 유저의 시계열적인 학습데이터를 통해 마지막 문제의 정답여부를 예측
-
userID
사용자의 고유번호. 총 7,442명의 고유 사용자가 있으며, train/test셋은 이 userID를 기준으로 90/10의 비율로 분류. -
assessmentItemID
문항의 고유번호. 총 9,454개의 고유 문항이 있으며, 번호 내에 카테고리, 시험지아이디등의 규칙 존재. -
testId
시험지의 고유번호. 시험지 내에 여러 문항이 존재합니다. 총 1,537개의 고유한 시험지가 존재. -
answerCode
문항을 맞췄는지 여부에 대한 정보. 0과 1은 각각 문제의 오답과 정답 여부. 타겟이 되는 마지막 문제는 -1로 지정. -
Timestamp
사용자가 해당문항을 풀기 시작한 시점의 데이터. -
KnowledgeTag
문항 당 하나씩 배정되는 태그로, 일종의 중분류 역할. 912개의 고유 태그가 존재.
문제해결을 위한 모델 탐색이후, 개별 Data Processing이나 Wandb를 통한 Hyer parameter Tuning.
계열별로 Public기준의 최적모델을 확인, Prediction의 분포를 시각화해 확인 후, Weight 실험 후 앙상블 진행.