[논문 리뷰] Code-DKT: A Code-based Knowledge Tracing Model for Programming Tasks
이 논문은 학생의 제출물에서 주의 메커니즘을 통해 추출한 코드 특징을 통합함으로써 딥 지식 추적(DKT)을 향상시키는 Code-DKT라는 지식 추적 모델을 제안한다. 코드2벡트를 사용해 추상 구문 트리를 표현하고 성과 피드백을 통해 학습 경로의 중요도를 학습함으로써, 다섯 개의 프로그래밍 과제 전반에서 DKT 대비 AUC를 3.07–4.00% 향상시켰다. 이는 도메인 특화된 코드 특징이 프로그래밍 교육에서 지식 추적 성능을 크게 향상시킬 수 있음을 보여준다.
Knowledge tracing (KT) models are a popular approach for predicting students' future performance at practice problems using their prior attempts. Though many innovations have been made in KT, most models including the state-of-the-art Deep KT (DKT) mainly leverage each student's response either as correct or incorrect, ignoring its content. In this work, we propose Code-based Deep Knowledge Tracing (Code-DKT), a model that uses an attention mechanism to automatically extract and select domain-specific code features to extend DKT. We compared the effectiveness of Code-DKT against Bayesian and Deep Knowledge Tracing (BKT and DKT) on a dataset from a class of 50 students attempting to solve 5 introductory programming assignments. Our results show that Code-DKT consistently outperforms DKT by 3.07-4.00% AUC across the 5 assignments, a comparable improvement to other state-of-the-art domain-general KT models over DKT. Finally, we analyze problem-specific performance through a set of case studies for one assignment to demonstrate when and how code features improve Code-DKT's predictions.
연구 동기 및 목표
- 기존 지식 추적 모델이 학생의 응답을 올바른지 여부로만 다루며 내용과 코드 구조를 간과하는 한계를 해결한다.
- 학생 제출물에서 유도된 도메인 특화된 코드 특징이 프로그래밍 과제에서 지식 추적 성능을 향상시키는지, 그리고 어떻게 향상시키는지 탐색한다.
- 딥 러닝 기반 지식 추적과 코드 표현을 통합하여 프로그래밍 개념에 대한 학생의 숙달도를 더 잘 포착할 수 있는 모델을 개발한다.
- 일반 KT 모델과 단순한 코드 특징 확장 대비 코드 특징의 효과성을 입증한다.
제안 방법
- 학생의 코드 제출물을 추상 구문 트리(AST)로 표현하고, 코드2벡트 모델을 사용해 여러 코드 경로를 추출한다.
- 학생의 현재 및 과거 제출 성과를 바탕으로 다양한 코드 경로의 중요도를 주의 메커니즘을 통해 학습한다.
- 학습된 코드 특징 표현을 딥 지식 추적(DKT) 프레임워크에 통합하여 시간에 따른 학생의 지식 진전을 추적한다.
- 문제 시도 시퀀스를 기반으로 모델을 엔드 투 엔드로 훈련하며, DKT 및 주의 구성 요소를 모두 거쳐 역전파를 수행한다.
- 학생의 응답 정확도와 제출 점수를 감독 신호로 사용해 코드 경로의 주의 가중치를 유도한다.
- 단순한 코드 특징(예: return 문의 존재)을 통합한 DKT의 두 가지 변형과 비교하여 Code-DKT의 성능을 평가한다.
실험 결과
연구 질문
- RQ1RQ1: 도메인 일반 모델 대비 학생 제출물에서 추출한 코드 특징이 프로그래밍 과제에서 지식 추적 성능을 향상시킬 수 있는가?
- RQ2RQ2: 코드 특징은 모델 성능에 어떻게 영향을 미치며, 일부 특징은 성능 향상에 기여하는 반면 다른 특징은 기여하지 않는 이유는 무엇인가?
- RQ3RQ3: 문제 유형이나 개념 숙달도와 같은 조건에서 코드 특징이 예측 정확도 향상에 가장 효과적으로 기여하는가?
주요 결과
- Code-DKT는 다섯 개의 프로그래밍 과제 전반에서 DKT 대비 AUC를 3.07–4.00% 향상시켜 일관되고 뚜렷한 성과 향상을 보였다.
- 이 성과는 DKT 대비 상태 기반의 도메인 일반 모델(SAINT 및 SAKT)의 성과 향상과 유사하므로, 코드 특징은 모델 아키텍처 혁신만큼 영향력이 크다는 것을 시사한다.
- 단순한 코드 특징(예: return 문 존재)은 DKT 성능 향상에 기여하지 않으며, 주의 기반 가중치가 없는 경우 단순한 특징 통합은 부족함을 보여준다.
- 공유된 학습 개념(예: 반복문, 조건문)이 있는 문제에서 코드 특징이 가장 효과적으로 기여하며, 반복 연습을 통해 특징의 일반화가 가능해진다.
- 코드 특징은 첫 번째 尝시도와 후속 尝시도 모두 예측을 향상시키며, 이는 초기 단계에서 개념 숙달의 징후를 감지하고 정확성 향상 경로를 파악하는 데 도움을 준다는 것을 시사한다.
- 사례 연구 결과, 모델는 코드 구조를 활용해 정답에 가까이 있는지 여부를 추론하고, 특히 반복 시도에서 프로그래밍 구조에 대한 사전 지식을 탐지하는 데 기여한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.