Sequential Modeling
우리는 3차원의 공간과 1차원의 시간을 합친 시공간(spacetime)에 살고 있습니다. 그리고 기계학습(machine learning) 또는 인공지능(artificial intelligence)라는 방법을 이용하여 우리의 삶을 개선하고자 합니다. 따라서 많은 문제들은 시공간 상에서 정의되어 있기 마련이고, 이러한 문제들을 풀기 위해 접근함에 있어서 시간의 개념(순서 정보)을 적용하여 문제를 해결하는 것은 중요합니다. 예를 들어 주식시장의 주가 예측이나, 일기예보부터 음성인식이나 번역까지 수많은 문제들이 시간 개념이 큰 영향을 끼칩니다.
우리가 다루고자 하는 자연어(natural language), 즉 텍스트(text)의 경우에도 단어들이 모여(sequence) 문장이 되고, 문장이 모여 문서가 됩니다. 문장 내의 단어들은 앞뒤 위치에 따라 서로에게 영향을 주고, 문서 내의 문장들도 위치에 따라 서로에게 영향을 주고 받습니다. 따라서 우리는 단순히 와 같이 시간의 개념이 없이 입력을 넣으면 출력이 나오는 함수의 형태가 아닌, 시간에 따라서 순차적(sequential)으로 입력을 넣고, 입력에 따라 모델의 상태(hidden state)가 변하며, 출력(observation)이 상태에 따라 반환되는 그러한 함수가 필요합니다.
이런 시간 개념 또는 순서 정보를 사용하여 입력을 학습하는 것을 Sequential Modeling이라고 합니다. 신경망(neural network) 뿐만이 아니라 다양한 방법(Hidden Markov Model, Conditional Random Fields 등)을 통해 이런 문제들에 접근 할 수 있으며, 신경망에서는 Recurrent Neural Network(순환신경망, RNN)이라는 아키텍처를 사용하여 효과적으로 문제를 해결할 수 있습니다.