→ RNN에 기반한 seq2seq 모델은
→ 따라서 attention이라는 개념이 등장
→ attention은 본래 RNN에 기반한 seq2seq 모델의 문제점을 보완하기 위해 만들어졌지만, transformer는 attention으로만 인코더와 디코더를 설계한 것이다.
RNN과 달리 입력 데이터를 병렬적으로 학습함(속도가 빠름)
self-attention이 적용되어 학습 시 입력 시퀀스가 유의미하게 순차적으로 연결되어 있지 않아도, 필요한 부분에만 집중하여 컨텍스트 벡터를 생성할 수 있음(Q, K, V를 사용)
→ 입력 벡터(단어)에 대해서 세 개의 학습 가능한 행렬들($W^Q$, $W^K$, $W^V$)을 각각 곱하여 Q, K, V 벡터를 만들어 냄
self-attention에서 n개의 벡터(xi)가 주어지고 n개의 z를 찾을 때, zi는 xi 이외의 모든 x 벡터도 같이 고려를 한다
즉 모든 벡터들은 dependencies를 가진다
단점 : 모델 구조체가 너무 커서, 어느정도 이상의 성능을 내기 위해서는 보다 막대한 양의 훈련 데이터와 시간이 필요