SAKT는 attention을 이용한 KT 모델로 정오 예측에서 과거 문제 풀이 기록에 가중치를 주어 예측한다. SAKT는 아래 그림에서 e5의 정오를 예측할 때, 연관된 knowledge concept을 가진 e2,e4에 높은 attention score를 준다.
Data
- interaction xt=(et,rt)
- et: exercise tag
- rt: answer correctness
→ predict prob(rt+1=1∣et+1,x1:t)
Model
1. interaction yt는 아래와 같이 계산된다. (embedding index를 겹치지 않게 하는 용도)
yt=et+rt∗E (여기서 E는 전체 문제 수를 의미한다.)
2. splitting과 padding을 통해 지정된 시퀀스 길이 n으로 interaction 시퀀스의 길이를 맞춰준다.
y=(y1,⋯,yt)→s=(s1,⋯,sn)
- interaction embedding M∈R2Exd
- exercise embedding E∈RExd
- positional embedding P∈RNxd
M^=⎣⎢⎢⎢⎡Ms1+P1Ms2+P2⋯Msn+Pn⎦⎥⎥⎥⎤, E^=⎣⎢⎢⎢⎡Es1Es2⋯Esn⎦⎥⎥⎥⎤
E^은 query로, M^은 key와 value로 사용된다. Transformer의 encoder에서는 masking이 사용되지 않았지만, 학생이 문제를 푼 순서와 정보를 반영하기 위해 SAKT에서는 masking을 사용한다.
A Self-Attentive model for Knowledge Tracing
Attention Is All You Need
Knowledge Tracing Collection with PyTorch