https://www.youtube.com/watch?v=Z2Vm62QXR_Y
Deep Knowledge Tracing; DKT: 딥러닝을 이용하는 '지식상태'의 추적
- 문제를 풀어감에 따라 학생의 지식 상태의 예측도 변해간다.
- 입력: 문제와 정답여부 & 출력: 예측한 지식 상태
- 모델을 훈련하려면 출력을 라벨링해야 하는데, 학생의 지식상태는 라벨링하기 매우 어려움. 따라서 학생의 예측한 지식 상태 자체를 예측하는 것이 아니라, [대안] 출력한 지식 상태를 기반으로 '다음 문제를 맞출지 여부'를 예측함. (다음 문제의 정답 여부는 이미 라벨링되어 있음)
- 다음 문제가 정답일 경우 이해도 증가 vs 오답일 경우 하락: 다음 문제에 한해서 지식의 이해도를 수정
특징
- 데이터가 많아질수록 지식상태 예측은 더욱 정밀해짐
- 데이터가 적을수록 과적합 가능성 높아짐.
DKT의 필요성
공부 방향의 제시 (취약한 부분 진단)
가장 효율적인 문제 풀이 순서를 제안해줄 수 있음 (어떻게 하면 취약한 부분을 효율적으로 학습할 수 있는지.)
맞춤형 교육
1. 데이터 전처리
interation
문제와 응답을 하나로 묶어서 데이터로 다룰 경우, 이를 DKT에서는 interaction이라고 부른다.
DKT에서 interaction을 encoding하는 일반적인 방법:
문제 종류가 n개, 응답의 종류가 m개이면 원핫인코딩은 모통 nm 크기의 벡터. (틀리면 좌측에서, 맞으면 우측에서 원핫인코딩을 진행함)
데이터 증강 (data augmentation)
적은 데이터 개수에 valid set까지 사용하면 개수 더 줄어들게 됨 => 최대 시퀀스 길이를 넘어서 잘린 데이터를 이용하자.
max length가 n이라고 할 때 하나의 시퀀스에서 n만 잘라 쓰는 게 아니라, 시퀀스를 n단위로 자른 조각들 각각을 모두 사용함.
but
이러한 단순 window 방식은 오히려 오버피팅이 일어날 수 있음 (쪼갠 단위 내에 정답 데이터가 한 개 뿐이면..)
-> 차라리 문제별로 나누는 것이 더 효율적이지 않을까 성찰.
2. 모델
=> 출력: 3차원 텐서 형태.
=> 벡터 각각이 문제별 이해도(지식상태)를 나타냄.
3. 성능 향상에 기여한 것
1. data augmentation & 10 k-fold 평균 앙상블
2. 하이퍼파라미터 튜닝
3. 성능 향상을 위해 가장 중요한 것
3.1. 최대 시퀀스 길이
3.2. 마지막 쿼리로만 하는 loss 계산 + BCE LOSS
- 같은 문제가 연속으로 묶여있음. 길이가 1~1907.
- 같은 문제를 연속으로 푸는데도 그 문제가 맞을지 틀릴지 장담하기 어려움. => 정오답이 나열된 정보만을 가지고 예측, 나아가 동전 던지기 영역에 더 가까워 보임. (특히 데이터가 매우 적기 때문에 모델이 정오답 패턴을 파악하는 것은 어려워 보이)
- "many to one" : 베르누이 모수 개념(베르누이 분포 모수 추정 방식)에 착안해보자. (4개를 맞추고 1개를 틀리면 모수가 0.8이 됨. 정, 오답 여부 결정할 때에도 실제 TEST에서도 해당 모수 0.8에 더 가까운 것을 선택함) (물론 비유적인 표현)
- 모든 정답 여부를 출력하지만 마지막 쿼리만을 사용하여 loss를 계산함. (many to many보다 훨씬 성능 더 좋음)
* 데이터가 충분할 경우 transformers 기반 모델이 효과적일 수 있지만,
데이터가 적으면 오버피팅 발생하기 쉬우므로 차라리 light한 GRU를 선택.
'HCI > Learning Analytics' 카테고리의 다른 글
[논문리뷰] "초등 인공지능 교육을 위한 설명 가능한 인공지능의 교육적 의미 연구(2021)" (0) | 2022.07.28 |
---|---|
인간의 직관과 빅데이터 기반 딥러닝의 비교 (3) | 2022.07.19 |