Michigan 대학교의 Computer Vision 강의주제 중 하나인 Attention을 제 생각과 함께 쉽게 정리한 글입니다.
링크: https://www.youtube.com/watch?v=YAgjfMR9R_M&list=PL5-TkQAfAZFbzxjBHtzdVCWE0Zbhomg7r&index=13&ab_channel=MichiganOnline
Transformer가 나오게 된 배경과 그에 대한 설명입니다.
Seq2seq 모델은 단어를 순차적으로 처리하는 encoder와 decoder 두 부분으로 나누어진 network 입니다. 아래 그림과 같은 기계번역 task를 예시로 들어보겠습니다. Input sentence는 ‘we are eating bread’이고, output sentence는 ‘estamos comiendo pan’ 입니다.

구조를 간단히 정리해 보면,
이 네트워크의 특징은 feature vector를 얻는 과정이 순차적으로 진행된다는 것입니다.
언뜻 보기에는 잘 만들어진 것 같아 보입니다. 하지만 만약 input으로 아주 긴 문장이 들어온다면 어떨까요?
이 때의 문제점은 input sentence 전체를 표현하는 context vector $c$가 문장의 길이에 무관한 fix-sized vector라는 것입니다. Sentence가 길어질수록 한정된 개수의 element로는 문장을 표현할 수 있는 능력을 점점 잃게 되는 것이죠.
이건 꽤나 중요한 문제인데, 이유는 이 context vector $c$는 모든 번역 단어를 예측하는 데 사용되기 때문입니다. 따라서 Input sentence가 길어질수록 번역 성능이 떨어지게 될 것입니다.
사람들은 이 문제를 해결하기 위해 우선 각 단어를 예측할 때, 예측할 단어마다 다른 context vector를 사용하여 한정된 길이를 갖는 context vector의 부담을 줄이기로 했습니다.