Seq2seq(Sequence-to-Sequence)는 「한 시퀀스를 입력으로 받아 다른 시퀀스를 출력으로 내놓는」 모델 구조입니다.
2014년 구글의 일리야 수츠케버 등이 제안했고, 기계 번역(영→한)에서 첫 폭발적 성공을 거두며 자연어 분야의 큰 흐름을 만들었습니다.
구조는 두 부분으로 이루어집니다.
첫째, 「인코더(encoder)」는 입력 시퀀스를 한 단어씩 읽어 고정 크기의 「의미 벡터(context vector)」로 압축합니다.
둘째, 「디코더(decoder)」는 그 의미 벡터를 받아 출력 시퀀스를 한 단어씩 생성합니다.
두 부분은 보통 LSTM이나 GRU로 구현됐습니다.
비유하자면 seq2seq는 「긴 영어 문장을 한 번 읽고 머릿속에 그 의미를 정리한 뒤, 그 정리를 보고 한국어로 다시 풀어 쓰는 통역사」와 같습니다.
인코더는 「듣기」, 디코더는 「말하기」를 담당합니다.
이 단순한 구조의 가장 큰 약점은 「긴 문장의 의미를 한 벡터에 다 담아야 한다」는 점이었습니다.
문장이 길어질수록 정보 손실이 컸고, 번역의 정확도가 떨어졌습니다.
이를 해결하기 위해 2014~2015년 「어텐션(attention)」 메커니즘이 도입되었고, 디코더가 매 단어를 만들 때마다 인코더의 모든 위치를 다시 참고할 수 있게 됐습니다.
결국 어텐션이 발전하면서 「인코더-디코더 + 어텐션」이 표준이 됐고, 2017년 「Attention is All You Need」 논문에서 RNN을 완전히 제거한 Transformer가 등장하며 seq2seq의 새 시대가 열립니다.
오늘날 GPT·Claude 같은 모델도 본질적으로는 seq2seq의 후예입니다.
한 줄 요약
Seq2seq는 인코더가 입력 시퀀스를 의미 벡터로 압축하고 디코더가 출력 시퀀스를 생성하는 구조로, 기계 번역의 첫 신경망 표준이 되었으며 어텐션을 거쳐 Transformer로 진화했습니다.
더 알아볼 것
- 기계 번역의 BLEU 점수
- Beam Search — 디코더의 탐색 전략
- Teacher Forcing — seq2seq 학습 기법