본문 바로가기

부스트캠프 AI Tech 3기/프로젝트 : P-stage

[Day62] DKT 1. DKT 이해 및 DKT Trend 소개

DKT Task 이해

DKT : Keep Knowlege Tracing : DL + KT

교육AI의 중심에 있다.

KT : Knowledge Tracing

지식 구성 요소(Knowledge component, ex. 일차방정식)에 대한 학생의 이해도를 지식 상태(Knowledge state)라 하고, 지식 상태는 계속해서 변화하며 그 상태를 지속적으로 추적하는 것

 

문제 풀이 정보(문제를 맞았는지 틀렸는지)로 지식상태를 추적하는데, 당연히 문제 풀이 정보가 많아질 수록 지식 상태를 더 정확하게 예측할 수 있다. 데이터가 적을수록 over-fitting 이 쉽게 일어난다. 가지고 있는 지식 상태에 대한 정보를 기반으로 다음 문제를 맞출 수 있을지를 예측한다.

 

문제추천이나 학업도를 파악하는데 쓰일 수 있다.

 

Metric

Binary classification 문제 (다음 문제를 맞출 수 있을지 0 or 1)이다.

예측값(probability)은 0~1사이의 값으로 나오고, 0.5(threshold)보다 크면 1, 작으면 0으로 최종 예측값으로 정하게 된다.

 

  • AUROC
  • ACC : accuracy

등 많은 metric이 있는데 이 중 AUROC를 알아보자

Confusion Matrix : 혼동 행렬

  • Predict : 모델의 예측값 : Negative(0) || Positive(1)
  • Actual : 실제 값

모델의 예측값을 기준으로 N이나 P를 결정하고, 실제와 모델이 같으면(=맞으면) True 다르면(=틀리면) False이다.

 

  • Accuracy
    전체중에 맞은 것


  • Precision
    모델이 1이라고 한 것 중에 실제 1인 것
    모델이 수량 자체를 적게 예측할수록 높아진다.
  • Recall
    실제 1인 것 중에 모델이 1이라고 한 것
    모델이 모든 예측을 다 1이라고 하면 recall은 굉장히 높게 나와버린다.
  • F1-score
    precision과 recall의 trade-off 때문에 이를 조화롭게 보기 위한 지표

 

AUC : Area Under the ROC Curve (=AUROC, ROC AUC)

성능이 좋아질 수록 오른쪽 위로 올라가고, 면적이 넓어진다. 하지만 무조건 면적이 넓다고 좋지는 않고, imbalance할수록 값이 커지기 때문에 조심해야 한다.

 

  • x축 : FPR
    실제 0 인것 중에 틀린 비율
  • y축 : TPR
    실제 1 중에 맞춘 비율

AUC를 구할 때 일단 값이 큰 순으로 probability을 정렬한다.

맞으면 위로 틀리면 오른쪽으로 그려진다.

데이터가 더 많아지면 곡선처럼 보이게 될 것이다.

AUC는 분포 metric이어서  0과 1의 분포의 차이가 벌어질 수록 더 높은 값을 나타내게 된다.

https://angeloyeo.github.io/2020/08/05/ROC.html 이 분 블로그가 많은 도움이 되었다.

 

AUC의 특징

  • 척도불변
    probability 자체의 절댓값이 중요하지 않고, 분포가 어디 위치하든 겹치는 부분이 같다면 같은 AUC가 나온다.
    하지만 잘 보정된 확률 결과가 필요할 때는 척도 불변 특성이 좋지 않다.
  • 분류 임계값 불변
    임계값이 어떤 값으로 선택되었느냐와 상관없이 모델의 품질을 측정할 수 있다. 목적에 따라서 FP 최소화를 우선시하고 싶을 수도 있기 때문에 잘 보정된 확률 결과가 필요할 때는 척도 불변 특성이 좋지 않다. 균형있게 보지 않고 싶은 경우에는 좋지 않다.

DKT History

BKT→DKT→SAKT→GKT

DKT는 Sequence data를 다루기 때문에 NLP랑 연관이 많기 때문에, LSTM, Transformer을 사용할 수 있다.

 

Sequence Model

RNN  (장문장에서의 학습이 어려움) → LSTM → (번역) → SEQ2SEQ(cv:context vector)  (문장이 길어졌을 때 문제 발생) → ATTENTION → (sequence 구조의 한계 : 속도) → self attention  TRANSFORMER (Positional Encoding)  → Positional Embedding