트랜스포머(Attention is all you need) 논문 이해하기.
배워가는 입장에서 공부한 내용을 정리한 것이니 참고용으로 봐주시면 좋을 듯 합니다. 더 자세한 사항은 Attention is all you need 논문에 세세히 기록되어 있으며 내용에 오류가 있다면 말씀주시면 수정하도록 하겠습니다!
시퀀스 투 시퀀스(sequence to sequence) 는 아래 그림과 같이 순차적인 입력을 통해 정보가 압축된 하나의 representation 벡터 $S$ 를 생성하고 이 벡터를 통해 다시 순차적으로 값을 출력하는 모델 구조를 이야기 합니다. (보통 디코더 입력의 첫 단어는 Null 값이 아닌 따로 <start symbol> 을 만들어 사용합니다.)
기존에는 이러한 순차적인 데이터의 처리를 위해 순환신경망(RNN)을 이용하였지만, 입력 단어 사이의 거리가 멀어지면 두 단어 사이의 유사관계를 포착하지 못하는 문제가 있었고 문장을 생성해낼 때에도 거리가 멀리 떨어져 있는 앞의 단어들이 가지고 있는 정보를 다음 단어 출력에 이용하지 못 하는 Long-term dependency problem이 존재하였습니다.
어텐션(attention) 메커니즘은 트랜스포머에서 상당히 중요한 부분을 차지합니다. 기존의 어텐션 메커니즘은 인코더 층에서 출력된 압축된 벡터 $Z$로부터 단어를 순차적으로 출력할 때 입력문장의 어느 부분에 집중(attention)해 봐야하는가를 알려주는 개념으로부터 출발하였습니다. 이와 같은 어텐션 메커니즘을 크로스 어텐션이라고 이야기합니다.