시퀀스투시퀀스 (Sequence-to-Sequence)
쉽게 풀면
동시통역사를 떠올려보세요. 한국어 문장을 끝까지 들은 다음(입력을 다 읽고 의미를 머릿속에 압축한 다음), 그 의미를 바탕으로 영어 문장을 새로 말합니다(다른 언어로, 다른 길이로 출력을 만들어 냅니다). Sequence-to-Sequence 모델도 똑같습니다. 앞부분은 "인코더"라고 부르며 입력 문장 전체를 읽고 의미를 하나의 벡터로 압축하고, 뒷부분은 "디코더"라고 부르며 그 압축된 의미를 보고 한 단어씩 출력 문장을 만들어 냅니다. 입력 문장이 5단어이고 출력 문장이 8단어여도 상관없다는 점이 핵심입니다.
왜 중요한가
Sequence-to-Sequence 구조는 입력과 출력의 길이가 서로 다를 수 있는 문제를 하나의 통일된 틀로 다룰 수 있게 해 주었기 때문에, 기계번역·요약·음성인식처럼 순서가 있는 데이터를 다루는 여러 자연어처리 과제의 공통 기반이 되었습니다. 이후 등장한 어텐션 메커니즘과 트랜스포머도 이 인코더-디코더 구조를 개선하는 방향으로 발전했기 때문에, 최신 언어모델 연구를 이해하는 출발점으로 자주 다뤄집니다.
논문에서는 이렇게 쓰입니다
이 문장은 "긴 원문 텍스트를 읽어 들이는 부분과, 그것을 바탕으로 짧은 요약을 만들어내는 부분을 나누어 설계했고, 그 사이에 중요한 부분에 더 집중하도록 돕는 기법을 함께 사용했다"는 뜻입니다.
소리 신호를 순서대로 입력받아, 별도의 중간 단계 없이 곧바로 문자열로 변환하는 구조라는 뜻입니다.
이전 대화 내용을 통째로 읽어들인 뒤, 그에 이어질 자연스러운 대답을 새로 만들어내도록 학습했다는 뜻입니다.
조금 더 깊게 보면
기본적인 인코더-디코더 구조는 입력 전체를 하나의 고정 길이 벡터로 압축하기 때문에 입력이 길어지면 정보 손실이 커지는 한계가 있었습니다. 이를 보완하기 위해 디코더가 매 출력 단계마다 인코더의 여러 시점 정보를 다시 참고하는 어텐션 메커니즘이 도입되었고, 이 아이디어가 확장되어 순환 구조 없이 어텐션만으로 시퀀스를 처리하는 트랜스포머로 이어졌습니다. 논문을 읽을 때는 어떤 인코더/디코더 구조를 썼는지, 어텐션을 사용했는지 여부가 성능 비교의 중요한 변수로 다뤄지는 경우가 많습니다.
주의할 점
초창기 Sequence-to-Sequence 모델은 LSTM (장단기 메모리) 같은 순환 구조로 인코더와 디코더를 만들어 문장이 길어질수록 앞부분의 정보를 잊어버리는 문제가 있었습니다. 이를 해결하기 위해 어텐션 메커니즘이 도입되었고, 이후 순환 구조 없이 어텐션만으로 구성된 트랜스포머로 발전했습니다.