Dataset

Statistics BerkeleyX MOOC from Spring 2013 : 31000 학생, 1700만 이벤트 (페이지 탐색, 게시글 추천, 퀴즈 응답, 강의영상 시청) - 총 3687 종류의 상호작용. JavaScript 호출까지 기록됨 (이중 과정을 수료한 약 8000명의 학생만 유효한 양의 데이터가 발생했음)

너무 희소하게 발생한 event는 필터링했고, 약 1300개의 상호작용만 가지고 one-hot vector ( 1300개의 요소중 한개만 1이고 나머지가 0인 )로 인코딩해서 사용.

Methodology

기본적으로 next-action prediction으로 작동한다.

1) Recurrent Neural Network : 관찰 가능한 변인 x와 관찰 불가능한 변인 (latent state) h로부터 다음 상태 y를 예측하는 모델. h는 학생들의 인지 등에 해당하는 변인이지만 직접적인 해석은 불가능하다. 다음 상태를 예측하려고 한다면 y를 보면 되고, long term generation을 하려고 한다면 x1을 무작위로 준 다음 y를 다음 순간의 x에 집어넣으면서 생성하면 된다.

2) Long-Short Term Memory : RNN에서 개량된 버전으로, cell state라는 개념을 도입해 더욱 넓은 범위의 의존성(long range dependency)을 볼 수 있게 해준다. cell state C 도 일종의 latent state 비슷한 역할을 하지만, 그보다는 기억과 망각을 관리하는 역할을 해준다고 볼 수 있다. 즉 h를 업데이트하는 과정에서 어떤 정보를 오랫동안 기억하고 어떤 정보를 빠르게 망각할 것인지와 관련된 변인.

Implementation : Keras를 사용해 구현 후 grid search 시행, 총 24개의 모델 탐색. 학습데이터와 평가데이터를 8:2로 나누어 5-fold cross validation 수행.

3) N-gram : 이전에 등장한 n-1개 변인에 대하여 다음 변인의 조건부 확률분포를 직접 데이터로부터 구한다. 위의 방법들과 달리 점근적으로 정확한 확률분포를 구할 수 있으며, 학습은 결정론적이지만 조건부생성은 비결정론적이다. n이 커지면 모델의 자유도가 너무 높아지기 때문에 backoff라는 트릭을 쓴다. 여기서는 n=2~10으로 사용했다.