본문 바로가기

심층학습/Natural Language Processing

Sequencial Model

1. Sequencial Model

Sequencial Data, 순차 데이터는 객체들이 특정 순서를 가진 형태의 데이터입니다. 고로, 객체의 순서가 특성을 나타내는 중요한 요소입니다. 이러한 종류의 데이터는 많죠. 매일매일 요동치는 주가 데이터도 그 예고, 애플워치에서 측정한 나의 심장 박동 데이터도, DNA 염기서열도 순차 데이터의 일종입니다. 그리고 가장 대표적인 예시는 바로 글과 문장이죠. 

 

자 그러면 이러한 글과 같은 Sequencial 데이터를 다루는 모델이 어려운 이유를 생각해보죠. 가장 큰 이유는 모델이 받아들이는 입력의 차원을 알 수 없다는 것입니다. 이미지의 경우 고정된 크기의 Input을 통해 고정된 크기의 Output이 나옵니다. 앞 포스팅 CNN을 참고하시면 쉽습니다. 하지만, 말은 얼마나 길어질 지 모릅니다. 박찬호 선수와 같은 투머치 토커의 말씀도 Input으로 들어올 수 있죠. 

 

그리고 두 번째는 순서가 데이터의 특성을 나타내다보니, 순서에 대한 정보가 변조될 경우 데이터의 의미를 잃을 수 있음이 있습니다. 이러한 문제들을 극복해나가는 방법들이 아래 나올 모델들입니다. 

 

1-1. Autoregressive Model and Markov Model

 

 

이 것은 과거 TimeSpan을 미리 설정해 둔 뒤, 그 TimeSpan 안에 해당하는 정보만 취하는 것입니다. 간단하게 이야기해서 Timespan을 2로 잡으면, 2번째 전 상황만 보고 나머지는 버린다. 이거죠. 

그리고 Markov 모델은 바로 직전의 상황만 본다가 핵심입니다. 현재 상황은 바로 전 상황에만 의존적이며, 과거 t-1번째 상황은 t-2번째 상황에만 의존적이라는 가정을 하고 분석하는 거죠. 이렇게 되면 모델의 크기나 Parameter 수를 낮출 수는 있지만, 과거의 많은 정보는 버려지겠네요.

 

1-2. Latent Autoregressive Model

 

연구자들은 과거의 많은 정보를 가져가면서도, 그래도 모델 크기는 너무 키우지 않으려고 이러한 방법을 생각해냅니다. hidden state를 통해 과거의 정보를 요약하고, 이후 time step을 이 hidden state에 의존하는 것입니다. 이러한 방식으로 대표적인 것이 바로 RNN의 단점을 보완한 LSTM입니다. 일단 이 이야기는 나중에 하는 걸로 하죠.