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

[SAINT] Towards an Appropriate Query, Key, and Value Computation for Knowledge Tracing

by beeny-ds 2022. 6. 23.
Riiid AI Research team 2020년 2월 14일 논문 발간

Overview

💡 어떤 학생이 문제를 푼 히스토리가 주어졌을 때, 모델은 새로운 문제를 학생이 맞출지 여부를 예측. 이때 모델(SAINT)은 transformer의 self-attention을 활용한다.
  1. SAINT 모델 이전에 어텐센을 적용한 모델(ex. SAKT model)은 input 데이터(ex. IRT)의 복잡한 관계를 반영하지 못했다.
  2. SAINT 모델은 input 데이터의 적절한 활용을 제안하여 EdNet 데이터 셋(=KT 모델 관련 밴치마크 데이터셋)에 대해 좋은 성능을 보였다.
  3. SAINT 모델이 input 데이터를 활용하는 방법은 다음과 같다.
    1. Encoder-Decoder transformer architecture 사용
    2. 인코더에서 문제 관련된 정보를 사용
    3. 디코더에서 학생이 문제를 맞췄는지 틀렸는지 관련된 정보를 사용

 

SAINT

💡 Model archi는 transformer encoder-decoder로 구성되어 있음.
    - 인코더에서 문제 관련된 정보를 input으로 사용.
    - 디코더에서 문제 반응 정보를 input으로 사용.

Model architecture

  • Transformer encoder-decoder 구조

  • Q, K, V를 어떻게 사용할지 고민을 많이 했다고 함
    • 실제 학생이 공부한다고 생각하며 구성.
      k번째 문제를 풀 때에는 k-1개의 문제 관련된 정보만 알고 있음
    • K번째 문제를 맞췄는지 예측하기 위해 K-1개의 문제 embedding vector를 사용
    • Masking을 적용하여 현재 지점(k)을 예측함에 있어 앞의 시퀀스(k-1)에만 의존하도록 제한

 

Input datasets

  1. Encoder
    1. Exercise ID: A latent vector is assigned to an ID unique to each exercise.
    2. Exercise category: 각각의 exercise가 속하는 categoty.
    3. Position
      • input sequence에 있는 exercise나 response의 위치. 포지션 임베딩은 exercise나 response 공유
  2. Decoder
    1. Position
      • input sequence에 있는 exercise나 response의 위치. 포지션 임베딩은 exercise나 response 공유
    2. Response: 학생의 정오답 여부 1:정답, 0:오답

 

Model output

  • 새로운 exercise(문제)를 학생이 맞출지 여부를 예측
  • Model output은 해당 exercise를 맞췄다 or 틀렸다로 나옴
    • 확률을 구하기 위해 마지막에 sigmoid를 통과시켜 확률 값을 반환
    • [0, 1] 범위의 확률로 threshold를 설정하여 threshold 이하면 틀렸다, 이상이면 맞췄다.

 

Model Performance

데이터셋 → EdNet-KT1

💡 Android, iOS 및 웹을 통해 제공되는 한국의 780,000명 이상의 사용자가 있는 다중 플랫폼 AI 튜터링 서비스인 Santa에서 2년 동안 수집한 모든 학생 시스템 상호 작용의 데이터 세트
    - 즉, articial intelligence tutoring system인 산타토익 어플에서 수집된 로그 데이터

https://github.com/riiid/ednet

 

GitHub - riiid/ednet: EdNet is the dataset of all student-system interactions collected over 2 years by Santa, a multi-platform

EdNet is the dataset of all student-system interactions collected over 2 years by Santa, a multi-platform AI tutoring service with more than 780K users in Korea available through Android, iOS and w...

github.com

결과

💡 exercise와 response의 관계를 잘 포착하여 모델의 성능이 좋아짐
  • 정확도와 AUC 모두 기존의 SOTA 모델 압도
  • layer=4, d_model=512일 때 가장 좋은 성능

 

References

논문

https://arxiv.org/pdf/2002.07033.pdf

논문 리뷰

https://aimaster.tistory.com/54

 

Towards an Appropriate Query, Key, and Value Computation for Knowledge Tracing

논문 링크 ; arxiv.org/pdf/2002.07033.pdf 지금 참여 중인 Kaggle Competition이다. Riiid! Answer Correctness Prediction Track knowledge states of 1M+ students in the wild www.kaggle.com SANTA 앱에서..

aimaster.tistory.com

배포된 코드

💡 SAINT의 저자인 Riiid에서 공식적으로 공개한 pre-trained model이나 source code는 없음
    - 다만 유저들이 직접 github, kaggle에 업로드한 것들은 찾을 수 있었음
    - 어떤 코드가 괜찮은 코드인지 검토 필요 

https://github.com/Shivanandmn/Knowledge-Tracing-SAINT

 

GitHub - Shivanandmn/Knowledge-Tracing-SAINT: Towards an Appropriate Query, Key, and Value Computation for Knowledge Tracing -Pa

Towards an Appropriate Query, Key, and Value Computation for Knowledge Tracing -Paper Implementation on "Riiid! Answer Correctness Prediction", Kaggle Competition - GitHub - Shivanandmn/K...

github.com

https://github.com/arshadshk/SAINT-pytorch

 

GitHub - arshadshk/SAINT-pytorch: SAINT PyTorch implementation

SAINT PyTorch implementation. Contribute to arshadshk/SAINT-pytorch development by creating an account on GitHub.

github.com

 

반응형

댓글