본문 바로가기
Broad AI without NLP/Education

[논문 리뷰] CRKT 논문 리뷰 - 이론편

by beeny-ds 2025. 1. 6.
작년 12월에 EduTech 기업으로 이직 하여 12월 중순부터 EduTech 의 꽃이라 불리는(?) Knowledge Tracing 모델에 대해 리서치를 하고 있다.

리서치 중 논문 내용도 좋고 github 코드도 친절하게 짜여진 CRKT 논문에 대해 소개하고자 한다.
CRKT 논문은 이론편과 구현편 2가지로 나누어 포스팅 할 예정이다.

본 포스팅 글은 이론편에 속한다.

목차

1. 논문 소개

2. 문제 제기 및 해결 방안

3. 학습 방법

4. 모델 구조

5. 성능 평가

6. 필자 리뷰

 


 

1. 논문 소개

  • 논문명: Enhancing Knowledge Tracing with Concept Map and Response Disentanglement
  • 폴리인스퍼레이션에서 성균관대학교와 협업하여 개발한 KT Model(a.k.a CRKT) 에 대한 논문
  • 학생 문항 풀이 이력, KM, 객관식 문항 대상 선택된 답변과 선택되지 않은 답변을 Input 으로 활용

진행하고 있는 프로젝트에서 학생의 지식 상태 예측 모델을 고도화해야 해서 해당 논문을 검토하였다.

해당 논문은 지능형 튜터링 시스템 적용을 위해 다양한 정보를 활용하여 모델을 설계한 점과 논문과 맵핑되는 가독성 좋은 github 코드가 배포되어 상세하게 파악하였다.

 

github 주소는 다음과 같다.

git issue 에 질문을 엄청 올렸는데 논문 저자이자 코드를 개발 및 배포해주신 박순욱님께서 친절히 답변해주셨다. (아직 2개 답변을 안 해주셨지만 ㅠㅠ)

본 포스팅을 통해 감사의 마음이 다시금 전달되면 좋겠다는 생각도 한다.


 

2. 문제 제기 및 해결 방안

a. 문제 제기

본 논문에서 기존 KT 모델들의 이 점을 지적한다.

  • 이진 응답에 대한 과도한 의존
    • 기존 KT 모델들은 주로 정답과 오답의 이진 응답에만 초점을 맞추어 학생들의 실제 답변 선택에 담긴 중요한 정보를 간과
  • 개념 간 관계 활용 부족
    • 많은 모델들이 문제와 관련된 개념의 중요성은 인식했지만, 개념들 사이의 복잡한 관계를 충분히 활용하지 못함
  • 의미론적 정보 무시
    • 기존 방식들은 문제와 지식 개념의 의미론적 정보를 간과하고, 이들을 단순한 숫자 식별자로만 취급하는 경향

 

b. 해결 방안

문제 해결을 위한 본 논문의 방법론이다.

  • 응답 분해(Response Disentanglement): 학생의 응답을 더 세밀하게 분석 (객관식 문항)
  • 개념 지도(Concept Map) 활용: 개념 간의 복잡한 상호작용을 모델에 정보로 활용
    • 개념 수준의 지식 상태 추적: 모델의 해석 가능성을 높임
  • 의미론적 표현 학습: 학생의 지식 상태를 더 잘 추출

 

c. 기여 Points

개인화된 학습 경험을 제공하는 지능형 튜터링 시스템의 발전에 기여했다고 한다. 어떻게?

  • 질문별 개념 맵을 적용하여 더 풍부한 지식 상태를 추적하는 CRKT 제안
  • 학생들의 지식 상태를 보다 정확하게 이해하기 위해 학생들의 선택 없는 응답을 활용
    • 학생들이 다른 대안보다 특정 옵션을 선택한 이유에 초점을 맞춰 선택한 응답만으로는 식별할 수 없는 강점과 약점을 파악 (객관식 문항)
  • 복잡한 개념 간 관계를 효과적으로 포착하여 더 정확한 예측을 이끌어내기 위해 개념 지도를 도입하고 활용
    • 개념 수준의 지식 상태를 활용하여 KT 모델의 해석 가능성을 높임
  • CRKT의 우수성을 검증하기 위해 네 개의 공개 데이터셋과 한 개의 내부 개발 데이터셋(Poly)에 대해 여러 실험을 수행

 

이렇게~

이러한 3가지 해결 방안을 적용하기 위해 어떻게 학습을 진행했는지 살펴보자.


 

3. 학습 방법

3개의 Loss 를 활용하여 앞서 언급한 해결 방안, 기여 Points 를 구현하였다.

출처: CRKT paper

a. L_kt

  • 학생이 어떤 문제 및 개념에 대한 지식 상태를 학습하기 위해 학습
  • 해결 방안의 `학생의 응답을 더 세밀하게 분` 에 해당

 

b. L_topk

  • 문제와 개념간 관계를 바르게 예측하기 위한 목적으로 학습
  • 해결 방안의 `개념 수준의 지식 상태 추적` 에 해당

 

c. L_cl

  • 모델의 예측 성능이 떨어지는 구간인 평균 정답률 40-60% 에서 성능 개선을 위한 목적으로 학습
  • 해결 방안의 `의미론적 표현 학습: 학생의 지식 상태를 더 잘 추출` 에 해당

 

지금까지 본 논문에서 기존 KT 모델의 문제와 어떻게 그 문제를 해결하고자 하였는지, 그리고 해결을 위한 학습 방법에 대해 소개했다.

이제 모델의 구조를 통해 어떤 방식으로 연산이 진행되고 그 의미는 무엇인지 살펴보자.


 

4. 모델 구조

위의 3가지 Loss 를 구하여 기존 KT 모델들의 한계를 해결하기 위해 다음과 같은 모델 구조를 채택하였다.

출처: CRKT 논문 / Model Architecture

 

위 그림과 같이 총 4개의 부분으로 나누어 학생의 지식 수준을 측정하고, 이를 통해 모델을 학습한다.

하나하나 살펴보자.

 

a. Disentangled Response Encoder

학생의 정오답 정보 + 정오답 시 선택하지 않은 option 에 대한 정보를 추출한 결과이다.

  • ot: 학생이 선택한 객관식 문제의 번호로 본 논문에서는 Option 이라 표현함
  • ut: 학생이 선택하지 않은 객관식 문제의 번호로 본 논문에서는 UnOption 이라 표현함
  • dt_hat: 학생이 문제를 맞춘 정보와 못맞춘 정보, 그리고 학생이 선택하지 않은 option 들에 대한 정보를 표현한 결과

 

b. Knowledge Retriever

학생이 문제를 푼 정보와 학생의 정오답 및 선택하지 않은 답변에 대한 정보를 병합한 결과이다.

  • qt: 학생이 Sequence 하게 푼 문제 풀이 이력
  • qt_hat: qt 정보를 attention layer 에 넣어 구한 representation
  • ht: 학생이 문제를 푼 sequence 정보를 좀 더 상세하게 어떤 문제를 맞췄는지, 틀렸는지, 그리고 어떤 option 을 선택하지 않았는지에 대한 정보를 merge 하여 representation

 

c. Concept Map Encoder

(b)의 결과와 KM 정보를 결합하여 표현한 결과이다.

  • cij: 개념 간의 관계 정보를 표현 (시작 node, 도착 node 간의 관계 정보 포함)
  • e: 지식맵(node&edge) 정보와 학생의 문제 풀이 이력 정보를 merge 하여 node 정보와 edge 에 대한 weight 정보를 정의하여 표현
  • mt_hat: 학생이 문제를 푼 정보와 KM 사이의 관계를 더욱 심층적으로 표현하기 위해 GCN 을 통해 연산을 진행

 

d. IRT-based Prediction

학생 별 첫 문제를 제외하고 2번째 문제부터 학생이 해당 문제를 맞출 확률이 output 이 된다.

  • output 을 구하기 위해 문제 별 학생의 능력에서 해당 문제의 난이도를 빼준 값을 활용한다.

 

그렇다면 이러한 학습 및 추론 방식이 모델의 성능에 어떤 영향을 줄까?

본 논문에서는 5가지 성능 평가를 통해 CRKT 모델의 효용을 입증하였다.


 

5. 성능 평가

여러 관점에서 모델의 성능을 측정하기 위해 5가지 평가 기준을 활용하였다.

  • RQ1: CRKT & 기존 KT 모델과 비교했을 때 성능 비교
  • RQ2: 다양한 구성 요소가 CRKT의 성능에 어떤 영향을 미치는지
  • RQ3: 텍스트 기반 representation 은 general learning-based models 와 어떻게 비교되는지
  • RQ4: CRKT는 기존 KT 모델보다 어디에서 개선되는지
  • RQ5: CRKT는 실제 시나리오에 어떻게 적용될 수 있는지

 

a. RQ1: CRKT & 기존 KT 모델과 비교했을 때 성능 비교

출처: CRKT 논문

    • 표 설명: CRKT & 기존 KT 모델과 비교했을 때 성능 비교 (본 예시는 AUC 기준)
    • 결과: 학생들의 정오답 정보를 얼마나 잘 맞추는지에 대한 성능 비교 결과 CRKT 가 가장 우수
    • 해석
      • Poly, EdNet, ENEM 데이터셋에서 성능 차이가 큰데 이는 질문 설계 시 옵션을 고려함을 시사
      • DBE-KT22의 경우, CRKT 모델이 다른 모델보다 더 나은 결과를 보여줌
        • 모델이 KM 정보를 모델에 효과적으로 반영한다는 것을 의미

 

b. RQ2: 다양한 구성 요소가 CRKT의 성능에 어떤 영향을 미치는지

출처: CRKT 논문

    • 그래프 설명: 다양한 구성 요소가 CRKT의 성능에 어떤 영향을 미치는지 (Ablation Study)
    • 결과: 옵션 응답과 개념 지도가 학생들의 지식 상태를 정확하게 예측하는 CRKT의 능력에 중요한 역할
    • 해석
      • Poly 데이터 세트의 경우, 옵션 응답(noOpt)을 제거하면 두 지표 모두에서 가장 큰 성능 저하가 발생: 모델 성능을 향상시키는 데 있어 학생들의 세부 옵션 응답을 고려하는 것이 중요
      • ENEM과 EdNet을 제외한 모든 데이터 세트에서 개념 맵(noMap)을 제거하면 상당한 성능 저하가 발생
        • 전문가들이 정의한 개념 맵 내에서 개념과 그 관계의 중요성을 나타냄

 

c. RQ3: 텍스트 기반 representation 은 general learning-based models 와 어떻게 비교되는지

출처: CRKT 논문

    • 표 설명: 텍스트 기반 representation 은 general learning-based models 와 어떻게 비교되는지
    • 결과: 유의미한 성능 향상을 보여주지 못했음 (텍스트 정보 사용 이점이 적음을 의미)
    • 해석
      • ChatGPT 써서 질문과 각 옵션의 응답에 대한 representation 을 이용하여 실험했다고 함
      • 실험에 대한 상세한 내용이 없고, 설명이 모호해서 이해하지 못하였음..

 

d. RQ4: CRKT는 기존 KT 모델보다 어디에서 개선되는지

출처: CRKT 논문

 

  • 그래프 설명: CRKT는 기존 KT 모델보다 어디에서 개선되는지
  • 결과: 평균 정답률이 낮은 40~60% 구간에서 CRKT 의 정답률은 타 모델 대비 우수함
  • 해석
    • 모델들은 평균 정답률이 40%에서 60% 사이인 질문에서 가장 어려움을 겪으며, 이는 예측에 가장 어려운 문제임을 나타냄
    • CRKT는 특히 평균 40%에서 60% 범위 내의 정답률을 가진 질문에서 우수한 성능을 보임

 

e. RQ5: CRKT는 실제 시나리오에 어떻게 적용될 수 있는지

출처: CRKT 논문

    • 설명: CRKT는 실제 시나리오에 어떻게 적용될 수 있는지
    • 결과: 지식 상태에 대한 표현 능력과 해석 가능성을 검증하기 위해 시각화 분석을 수행
    • 해석
      • Case by case 로 정성적 확인을 진행한 것으로 파악됨
      • 상세한 내용은 논문 참고: 논문 31 page 에 있음

 

의미 있는 성능 평가들을 진행하였다.

이에 대한 필자의 생각을 공유하고자 한다.

생각은 필자가 해당 논문의 Reviewer 가 됐다는 가정 하에 작성하였다.


 

6. 필자 리뷰

CRKT 논문을 보고 생각한건 다양한 Input 정보를 모델에 반영하기 위해 구조적으로 고민을 많이 한 것 같다.

문제와 개념, 개념과 개념의 정보, 그리고 학생이 선택한 옵션과 선택하지 않은 옵션 정보, 문제의 정보까지 input 으로 활용하여 모델에 해석력을 높인 점과 RQ5 를 통해 서비스 적용을 위해 모델의 효용성을 증명한 점이 가장 유의미하다.

또한 해당 input 정보가 얼마나 유의미한지 RQ2 인 Ablation Study 에서 효용성을 입증한 점도 유의미하다.

 

단, 아쉬운 점은 Contrastive Learning 을 통해 40~60% 정답률의 문제들 대상으로 성능 향상을 시도한 점이다.

코드를 확인해보면 논문의 이론 내용이 잘 반영되어 있지 않는 것 같다.

또한 40~60% 성능 구간 역시 타 모델 대비 높기는 하지만 유의미할 정도로 높다고 말할 수 없다.

60% 와 거의 유사한 정답률이기 때문이다.

본 논문의 해석처럼 Contrastive Learning 을 통해 40~60% 정답률 구간의 문제의 성능이 높아진게 맞는지 증명했다고 말하기는 어려워 보인다.

또한 RQ3 에서 text 정보를 어떻게 활용했는지에 대한 접근 방식이 구체적이지 않기 때문에 해석이 모호하다고 판단된다.


 

마무리,,

Deep Learning based Knowledge Tracing 에 대해 파악한지 2~3주가 흘렀다.
파악하면 할수록 사상이 신기하다 할까...? 비효율적이라 할까...?
왜 그런지는 아래 간략하게 적어보겠다.

DKT, GKT, SAKT, AKT 등 Knowledge Tracing 모델들은 문제에 대한 정보를 문제 id 와 개념 id, 정오답 정보를 연산하여 모델에 입력값으로 활용한다.

이를 상세히 설명하기 위해 가정을 해보자.

 

학생이 푼 문제가 5개 있고, 총 10개의 개념이 있다. 그리고 학생이 푼 5문제에 대한 정오답 정보가 있다고 가정해보자.

학새으이 정오답 정보는 [0, 0, 1, 1, 1] 이라 해보자.

 

모델에 input 으로 5문제를 표현한다면 이런 식으로 변환한다.

question_id + num_concept*response

 

여기서 question_id 는 문제들의 index 정보다. 여기서는 편의상 [1, 2, 3, 4, 5] 으로 표현해보자.

num_concept 은 개념의 총 수인 10개다.

response 는 정오답 정보다.

 

그렇게 되면 모델에 input 으로 들어가는 값은 다음과 같다

[1, 2, 13, 14, 15]

 

만약 정오답 정보가 [1, 1, 0, 0, 0] 이라 가정한다면 모델에 input 으로는 이렇게 들어간다.

[11, 12, 3, 4, 5]

 

필자는 어떤 문제에 대해 정답인지 오답인지를 모델이 어떻게 알 수 있을까? 모델의 입장에서 비효율적이지 않을까? 라는 생각을 한다.

 

그 이유에 대해서는 할 말이 많기 때문에...

추후에 더욱 상세하게 필자의 의견을 포스팅해보겠다.

반응형

댓글