본문 바로가기
논문리뷰

[논문 리뷰] Attention Is All You Need

by King_eun 2024. 1. 14.

저자의 의도

- input과 output 간 전역 의존성을 모델링 할 수 있는 Attention mechanism만을 사용한 모델 구조인 Transformer 을 제안했다.

 

기존 문제점

- recurrent model은 input과 output의 symbol positions에 따라 계산한다. 그러나 이것은 train시에 sequence가 길어질수록 병렬화가 불가능해져 메모리 제약으로 인해 예제 간 일괄 처리가 제한된다. 

- rnn과 cnn 모델 모두에게 존재하는 장거리 의존성 문제가 존재한다. rnn은 문장의 순차적인 특성이 유지되지만 먼거리에 있는 의존성을 알기 취약하다는 단점이 있다. 그리고 cnn은 근처의 특징들만 연산하는 국소적인 메카니즘의 문제가 있다. 

 

해결 아이디어

1. scaled dot-product attention

 

- key 와 qurey의 유사도를 확인해 높은 쪽에 가중치를 더 높이 주는 개념이다. 

- key와 qurey의 곱을 softmax 를 통해 (0,1) 사이의 값으로 나타낸 뒤 value 와의 연산을 통해 기존의 input과 차원수를 동일하게 해준다. 

 

2. multi-head attention

 

- 각 헤드는 input 데이터의 각자 다른 부분에 가중치를 두어서 다양한 관점에서 정보를 추출하도록 한다 -> cnn의 필터 개념(?)

- 병렬처리가 가능해져 속도도 빨라지고 정확도도 올라간다. 

- Applications of Attention in our Model

  • Encoder-decoder attention: 이전 decoder 레이어에서 오는 qurey들과 encoder의 출력으로 나오는 memory key, value들과 attention한다.
  • Self-attention in encoder: Encoder의 각 위치들은 이전 레이어의 모든 위치들을 참조할 수 있다.
  • Self-attention in decoder: Decoder의 각 위치들은 decoder 내의 다른 위치들을 참조할 수 있는데, 이전부터 자신 위치까지만을 참조할 수 있다. 

 

3. Position-wise Feed-Forward Networks

FFN

- linear transformations -> ReLU -> linear transformations 구조로 되어있다.

- 인코더 및 디코더의 각 계층에 개별적으로 위치해 있다.

 

4. Embeddings and Softmax

- input과 output token을 embedding layer를 거쳐서 사용한다. 

- input embedding과 output embedding에서 weight matrix를 서로 공유해 사용한다.

 

5. Positional Encoding

- RNN 계열의 모델과 달리 시퀀셜 단어가 들어오는 게 아니라 문장 전체가 들어와서 단어의 위치에 대한 정보를 포함해야 한다(positional encoding)

- positional encoding 을 선택할 수 있는 방법으로 sin과 cos 함수 선택한다.