Applications of RNNs

 

RNN이 사용되는 대표적인 task로는 language classification, image description, language modeling, translation 등이 있다. 그 중 Many-to-many, 또는 sequence-to-sequence에 대해 알아본다.

 

먼저 Language modeling은 sequence가 들어왔을 때, 이전 input들에 기반하여 다음에 올 term을 예측하는 task이다. 아래 예시에서는 "the, dog"를 입력받아 다음에 올 "chased"를 예측하도록 학습되는 것을 확인할 수 있다.

Language modeling에 이어 Machine translation task는 대표적인 many-to-many 케이스 중 하나이다. Translation의 경우, 아래와 같이 서로 다른 두 언어의 문장이 다른 길이로 나타나는 경우가 대부분이다.

 

이러한 다른 길이의 입력, 출력의 길이를 다루기 위해 등장한 것이 encoder-decoder 모델, 또는 sequence-to-sequence 모델이다. Encoder-decoder 모델의 encoder는 다양한 길이의 sequence를 입력받아 고정된 크기의 hidden state로 인코딩하고, 이를 decoder가 <SOS (Start Of Sentence)> 토큰과 함께 입력받아 다양한 길이의 sequence를 출력하게 된다.

 

Encoder-decoder 모델의 학습 과정과 loss function을 아래 figure에서 확인할 수 있는데, language modeling과 유사하게 decoder에서는 각 time step마다 이전 decoding output을 가져와 입력하여 다음에 출력되어야 할 단어를 예측하는 분류 문제를 수행하고, 따라서 cross entropy loss를 사용하여 학습하게 된다. Teacher forcing은 학습 과정 중 이전 step에서의 decoding output이 아니라 실제 정답 단어를 입력함으로써 학습을 더 빠르게 하는 효과를 가져온다.

 

Decoder의 decoding 방식은 여러가지가 존재하는데, 여기서는 greedy decoding (inference)과 beam search를 설명하고자 한다. Greedy decoding은 각 decoding time step마다 가장 확률이 높은 단어를 <EOS (End-Of-Sentence)> 토큰이 출현할 때까지 decoding하는 방식이고, beam search는 각 decoding step마다 확률이 가장 높은 K개의 단어들을 유지하면서 <EOS> 토큰이 등장할 때까지 decoding하는 방식이다.

Beam search decoding

 

Encoder-decoder 모델의 문제점은 각 decoding time step에서 동일한 encoder embedding에 의존한다는 점, encoder embedding이 모든 encoder time step에 대한 정보를 가지고 있다고 가정한다는 점이 있었고, 이 문제들을 해결하고자 한 것이 attention mechanism이다.

 

Attention

처음 제안된 attention mechanism은 decoding time step마다 encoder의 전체 hidden state에 대해서 집중해야하는 정도(attention)을 계산하고, softmax normalization을 통해 weight sum을 적용한 encoder output을 사용한다.

각 encoder hidden state들이 얼마나 해당 decoding step에 영향을 미치는가를 계산하는 방식은 dot product, multiplicative, additive의 3가지가 제안되었는데 여기서는 자세하게 설명하지 않는다.

 

Attention은 encoder의 1) 전체 hidden state들에 대해서 또는 2) 인접한 일부 hidden state들에 대해서 적용되는지에 따라 global, local attention으로도 구별되며, 각 decoding step에서 예측되는 단어에 대한 근거를 attention score로써 설명할 수 있게 되었다.

+ Recent posts