Deep_Learning

Sequence-to-sequence Model ( Encoder / Decoder Model )

MoonLight314 2023. 8. 19. 23:40
728x90

1. Introduction

  • Sequence-to-sequence Model은 Machine Translation , Text Summarization , Image Captioning에서 두각을 나타내는 Deep Learning Model입니다.
  • Sequence-to-sequence Model은 Sequence Data를 Input으로 받아서, Sequence Data로 Mapping해 주는 Model입니다. ( Many-To-Many)
  • 흔히, Encoder-Decoder Model이라고도 하는데, Sequence Data를 Encoder에서 Input Sequence Data의 정보를 Context Vector로
    만들고 Context Vector를 Decoder의 입력으로 넣은 후 Decoder에서 Output Context Vector를 출력하는 형태로 구성되기 때문입니다.
  • Sequence Data의 종류에는 words, letters, features of an images등 다양한 형태가 될 수 있으며, Machine Translation에서는 Sequence of Word라고 할 수 있겠습니다.
  • Encoder에 입력의 개수와 Decoder 출력의 개수는 같을 필요는 없습니다.







Machine Translation에서의 Sequence Data











2. Structure

  • Sequence-to-sequence Model은 Encoder와 Decoder, Context Vector로 구성되어 있습니다.
  • Encoder와 Decoder는 Stacked RNN 구조를 가지며,주로 LSTM or GRU로 구성됩니다.







Encoder

  • Input Sequence Data를 처리하고 얻어진 정보를 Context Vector로 변환합니다.
  • LSTM이나 GRU의 Input의 Word나 Letter를 직접 입력할 수는 없고, 반드시 Numerical Representation으로 바꾸어 주어야 합니다.
  • 이를 위해서 Word Embedding이라는 방법을 이용하는데, 이는 나중에 따로 다루도록 하겠습니다.
  • Word Embedding에는 다양한 Algorithm이 있으며 적절한 방법을 선택하여 Word를 변환하게 되면, 그 Word의 의미와 문맥적 정보를 담은 Vector를 반환해 줍니다.
  • Word Embedding으로 변환된 값을 RNN의 입력으로 넣어주는 겁니다.




Context Vector

  • Encoder에서 Input Sequence Data가 처리된 결과 Vector. 실제로는 Float Value Array.
  • 크기는 Encoder의 Hidden Unit의 개수와 같습니다.




Decoder

  • Decoder는 Context Vector를 입력으로 받아 Output Sequence Data를 생성합니다.







실제 구조

  • 실제로 Seq2Seq의 구조는 아래와 같은 구조를 가집니다.











3. 한계

  • 이러한 고전적 Sequence-to-sequence Model은 기본적인 구조가 LSTM or GRU를 Base로 하고 있습니다.
  • LSTM이나 GRU가 어느 정도는 Long Term Dependency를 개선했다고 하나, Encoder의 출력, 즉, Context Vector의 길이는 Fixed이기 때문에 여전히 Encoder의 마지막 입력이 Context Vector의 값에 많은 영향을 미친다는 것은 사실입니다.
  • 즉, Encoder에 입력되는 초반의 값들은 점점 Context Vector에 영향이 적어지게 됩니다.
  • 이런 이유로 Sequence-to-sequence Model은 비교적 짧은 Sequence Data에서만 동작하게 됩니다.
  • “A potential issue with this encoder-decoder approach is that a neural network needs to be able to compress all the necessary information of a source sentence into a fixed-length vector. This may make it difficult for the neural network to cope with long sentences. The performance of a basic encoder-decoder deteriorates rapidly as the length of an input sentence increases.”
       -Neural Machine Translation by Jointly Learning to Align and Translate
  • 이런 Sequence-to-sequence Model의 구조적인 문제를 개선하기 위해서 Attention Mechanism이 나오게 되었습니다.
  • Attention Mechanism에 관해서는 이후 별도로 다루어 보도록 하겠습니다.
728x90

'Deep_Learning' 카테고리의 다른 글

Attention Mechanism  (0) 2023.08.20
Ubuntu에 GPU & Tensorflow 사용환경 설정  (0) 2023.08.20
LSTM ( Long-Short Term Memory )  (0) 2023.08.19
RNN( Recurrent Neural Network )  (0) 2023.08.19
CNN ( Convolutional Neural Network )  (0) 2023.08.19