Deep Learning

[NLP] Seq2Seq(Sequence-to-Sequence) 모델에 대해 알아보자

seoraroong 2024. 10. 28. 14:38

Seq2Seq 모델이란?

Seq2Seq(Sequence-to-Sequence) 모델은 입력 시퀀스를 받아 출력 시퀀스를 생성하는 모델로, 번역이나 챗봇 같은 자연어 처리에서 많이 사용되는 모델이다.

이 모델은 인코더(Encoder)와 디코더(Decoder) 구조로 되어 있어 Encoder-Decoder 모델이라고도 한다.

인코더 아키텍처와 디코더 아키텍처의 내부는 사실상 2개의 RNN 아키텍처로, 입력 문장을 받는 RNN Cell을 인코더, 출력 문장을 출력하는 RNN Cell을 디코더라고한다.

((성능 이슈로 인해 Vanilla RNN을 사용하지는 않고, LSTM Cell 또는 GRU Cell로 구성한다.)

 

 

Encoder

인코더는 입력 시퀀스를 받아 이것을 하나의 고정된 벡터 (Context Vector)로 변환하는 역할을 한다.

이후 디코더가 Context Vector를 사용해 출력 시퀀스를 생성하게 된다.

 

문장이나 시계열 데이터와 같은 입력 시퀀스가 단어 단위 또는 토큰 단위로 인코더에 입력된다.

인코더는 RNN, LSTM, GRU와 같은 순환 신경망을 통해 입력 데이터를 순차적으로 처리하게 된다.

각 시점 t에서 인코더는 입력 xt와 이전 시점의 은닉 상태 ht-1을 받아 새로운 은닉 상태 ht를 계산하게 된다.

인코더는 마지막 입력 시점에서 최종 은닉상태를 산출하게 되며, 이 은닉 상태는 입력 시퀀스의 전체 정보를 요약한 벡터가 된다. 이 벡터를 Context Vector라고 한다. 이 Context Vector가 디코더에 전달되어 출력 시퀀스를 생성하는 데 필요한 정보를 제공한다.

 

Decoder

디코더는 인코더에서 전달받은 Context Vector를 기반으로 출력 시퀀스를 생성하는 역할을 한다.

 

우선 디코더는 인코더에서 받은 Context Vector를 첫 번째 입력으로 받아 출력 시퀀스의 첫 번째 단어를 예측한다.

예측된 첫 번째 단어는 다음 시점 t의 입력으로 사용되고, 디코더는 다시 이전 시점 t-1의 은닉 상태를 사용해 다음 단어를 예측한다.

- y_{t-1}: 이전에 예측된 출력

- h_{t-1}: 이전 디코더의 은닉 상태

 

디코더는 은닉 상태와 예측된 단어를 사용해 계속해서 새로운 단어를 생성하고, 시퀀스의 끝을 만날 때까지 반복한다.

(시퀀스의 끝은 문장의 끝을 의미하는 symbol인 <eos>를 말한다.)

Seq2Seq 모델의 학습 과정

교사 강요 (Teacher Forcing) 기법

 

디코더가 이전에 예측한 출력을 다음 입력으로 사용하는 대신, 실제 정답을 다음 시점의 입력으로 사용하는 방식이다.

 

만약 교사 강요 기법이 아닌, 이전에 예측한 출력을 다음 입력으로 사용한다고 가정해보자.

학습 초기 단계에서는 모델의 예측 성능이 좋지 않기 때문에, teacher-forcing을 사용하지 않으면 잘못된 예측값을 통해 은닉 상태가 업데이트 된다. 당연히 모델의 학습 속도와 성능에 영향을 미치게 된다.

 

컨텍스트 벡터 (Context Vector)

인코더에서 마지막으로 생성된 은닉 상태인 Context Vector는 디코더로 전달되어 출력 시퀀스의 첫 번째 단어를 예측하는 데 정보를 제공하게 된다.

그러나 이 Context Vector는 고정된 크기로 입력 시퀀스 전체를 요약하기 때문에 긴 시퀀스에서는 정보 손실이 발생할 수 있다. 

 

쉽게 말하자면, 짧은 문장은 적은 정보만을 담고 있어 마지막 은닉 상태가 해당 문장을 비교적 잘 요약할 수 있지만, 긴 문장은 많은 의미적 단서와 맥락을 포함하기 때문에 하나의 벡터에 담아내기 어렵다는 말이다.

 

이를 해결하기 위해 나온 개념이 바로 Attention Mechanism이다. 

어텐션 메커니즘은 디코더가 출력 단어를 예측할 때, 인코더의 모든 은닉 상태를 참조할 수 있게 하여 어떤 입력 부분이 중요한지 가중치를 통해 계산하는 방식이다.

이를 통해 긴 시퀀스의 정보 손실 문제를 극복하고, 정확한 예측이 가능해진다.