SAKT

KIDA·2022년 9월 21일
0

SAKT는 attention을 이용한 KT 모델로 정오 예측에서 과거 문제 풀이 기록에 가중치를 주어 예측한다. SAKT는 아래 그림에서 e5e_5의 정오를 예측할 때, 연관된 knowledge concept을 가진 e2,e4e_2, e_4에 높은 attention score를 준다.


Data

  • interaction xt=(et,rt)\mathbf{x}_t = (e_t, r_t)
  • ete_t: exercise tag
  • rtr_t: answer correctness
    \rightarrow predict prob(rt+1=1et+1,x1:t)prob(r_{t+1}=1|e_{t+1}, \mathbf{x}_{1:t})

Model

1. interaction yty_t는 아래와 같이 계산된다. (embedding index를 겹치지 않게 하는 용도)

yt=et+rtEy_t = e_t + r_t * E (여기서 EE는 전체 문제 수를 의미한다.)

2. splitting과 padding을 통해 지정된 시퀀스 길이 n으로 interaction 시퀀스의 길이를 맞춰준다.

y=(y1,,yt)s=(s1,,sn)\mathbf{y} = (y_1, \cdots, y_t) \rightarrow \mathbf{s} = (s_1, \cdots,s_n)

3. embedding 후 positional embedding을 더해서 input을 생성한다.

  • interaction embedding MR2ExdM \in \mathbb{R}^{2E \text{x} d}
  • exercise embedding ERExdE\in \mathbb{R}^{E\text{x} d}
  • positional embedding PRNxdP\in \mathbb{R}^{N\text{x} d}

                M^=[Ms1+P1Ms2+P2Msn+Pn]\;\;\;\;\;\;\;\;\hat{M}=\begin{bmatrix} M_{s_1} + P_1 \\ M_{s_2} + P_2 \\ \cdots \\ M_{s_n} + P_n \end{bmatrix},           E^=[Es1Es2Esn]\;\;\;\;\;\hat{E}=\begin{bmatrix} E_{s_1}\\ E_{s_2}\\ \cdots \\ E_{s_n} \end{bmatrix}

4. Transformer의 encoder + masking을 통해 예측한다.

E^\hat{E}은 query로, M^\hat{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

profile
까먹지 않기 위한 노트 (ว˙∇˙)ง

0개의 댓글