ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문리뷰]Attention Is All You Need(transformer, 2017)
    카테고리 없음 2023. 11. 10. 17:10

    # 요약

    최근의 모델들은 RNN, CNN 기반 encoder-decoder에 Attention mechanizm을 연결하여 구성하였음. 본 논문에서는 RNN, CNN을 제거하고 Attemtion mechanizm만을 기반으로 하는 새로운 아키텍처인 Transformer를 제안함. 이 모델은 성능이 좋으면서도 병렬화가 가능하여 훈련에 적은 시간이 소요되는 장점이 있음. 

     

    # 인트로

    RNN은 순차적으로 hidden state를 생성하며 이러한 프로세스는 병렬 처리가 어렵고 시퀀스의 길이가 길어질 수록 연산 문제는 커짐. 최근에는 병렬로 연산 할 수 있는 작은 부분으로 분할하여 처리하는 factorization 기법과 입력값을 기반으로 모델의 일부를 선택적으로 연산하는 조건부 연산 방법을 통해 RNN읜 연산 효율을 개선하였음. RNN읜 순차적 연산의 근본적인 제약은 여전히 존재함. Attention mechanizm은 시퀀스의 길이와 관계없이 모델링 가능하나 대부분 RNN과 함께 네트워크를 구성하여 사용 되어 왔음. 본 논문 에서는 RNN을 제거하고 Attention mechanizm만으로 구성된 Transformer 아키텍처를 제안함. Transformer는 많은 병렬 처리가 가능하며 8개의 P100 GPU에서 12시간의 훈련만으로 번역품질에서 SOTA가 가능함.
     
     

    # 모델

     

    트랜스포머는 그림 1의 왼쪽과 오른쪽 절반에 각각 표시된 것처럼 인코더와 디코더 모두에 대해 스택형 self-attention 및 point-wise의 fully connected layer를 사용함.

     

    1) Encoder and Decoder Stacks

    Encoder는 N = 6개의 동일한 레이어 스택으로 구성. 각 레이어에는 두 개의 sub-layer로 구성됨. 첫 번째는 Multi-Head Attention이고, 두 번째는 Feed Forward 네트워크 임. 두 개의 sub-layer 각각에 residual connection을 사용한 다음 레이어 정규화를 적용. residual connection을 용이하게 하기 위해 레이어의 출력차원을 512로 통일함.

     

    Decoder도 N = 6개의 동일한 레이어 스택으로 구성. Decoder는 세개의 sub-layer로 구성되며 Encoder와 같은 구조의 Multi-Head Attention과 Feed Forward 네트워크에 Masked Multi-Head Attention 레이어를 더하여 구성함.

     

    2) Attention

    Attention function은 query와 key-value 쌍 집합을 output에 매핑하는 역할. query, key, value, output은 모두 벡터. output은 value의 가중치 합으로 계산되며, 각 value에 할당된 가중치는 query와 key의 연관성으로 계산됨.

    value는 Scaled Dot-Product Attention에서 query와 각 key의 내적을 계산하고 √dk (key의 dimension)을 나눈 다음 소프트맥스 함수를 적용하는 방법으로 계산되며 attention의 정도를 나타냄.

    Scaled Dot-Product Attention
    Scaled Dot-Product Attention

     

    2-1) Multi-Head Attention

    Multi-Head Attention

     

    Multi-Head Attention

    Scaled Dot-Product Attention을 병렬로 구성하여 Multi-Head Attention을 구현함. 논문에서는 Single Attention을 적용하는 것 보다, h번의 Linear Projection하는 것이 효과적이라고 주장함. h번의 병렬로  Linear Projection된 각각의 Q, K, V 값들은 Linear, Concat을 통해 최종 Output Value로 계산됨.

     

    2-2) Applications of Attention in our Model

    제안된 Transformer는 세 가지 방식으로 Multi-Head Attention을 사용함.
    - Encoder-Decoder Attention Layer: Query는 이전 decoder에서 가져오고, key와 value는 encoder에서 가져옴. 이를 통해 decoder의 모든 위치가 input sequenc의 모든 위치를 고려함.

    - Self-Attention Layer in Encoder: query, key, value는 모두 encoder의 이전 layer output에서 나옴. encoder의 각 위치는 encoder의 이전 layer의 모든 위치를 고려함.

    - Self-Attention Layer in Decoder: decoder의 각 위치가 해당 위치를 포함한 모든 위치를 고려함. Auto-Regressive Property를 유지하려면 decoder에서 왼쪽으로 정보가 흐르는것을 방지해야 함.

     

    3) Position-wise Feed-Forward Networks

    encoder와 decoder에는 Feed-Forward Networks를 포함하고 있으며, ReLU 활성화 함수가 있는 두 linear transformation으로 구성됨.

    Feed-Forward Networks

    4) Embeddings and Softmax

    다른 모델들과 유사한 방법으로 학습된 embedding을 사용하여 input token과 output token을 벡터로 변환하고 decoder output을 token의 확률로 변환하기 위해 선형변환과 softmax 함수 적용

     

    5) Positional Encoding

    RNN이나 CNN을 사용하지 않기 때문에 토큰의 위치에 대한 정보를 제공해야 함. 이를 위해 encoder와 decoder 스택의 하단에 있는 입력 임베딩에 "positional encoding"을 추가함.

     

    6) Why Self-Attention?

    Self-Attention은 RNN과 CNN대비 다음의 이점이 있음.

    ① layer의 연산 복잡도 감소:  병렬처리 연산을 늘려 연산 복잡도가 감소하며 빠름

    ② Long term dependency 문제 해결: input과 output sequence의 모든 위치 조합들의 최대거리가 다른 모델대비 짧아 장기 의존성 문제를 더 잘 극복할 수 있음.

    ③해석 가능한 모델: Attention을 시각화 하여 토큰들간 연관성을 시각화 할 수 있음.

     

    # 결과

    1) Machine Translation

    WMT 2014 English-to-German translation task에서 비교모델들의 1/4 training cost 만으로 SOTA 기록함.

    •  

    Machine Translation Benchmark

    2) Model Variations

    Transformer 모델에 variation을 주어 요소별 성능에 영향을 미치는 정도를 파악함.

     

    (A)행

      - attention head, attention key, value dimensions를 변화시킴

      - attention head의 수를 너무 적게해도, 많이 해도 성능이 나빠짐

    (B) 행:   attention key size d_k를 줄이면 성능이 저하됨.

    (C)행과 (D)행: 모델이 클 수록 성능이 좋음. drop-out이 과적합을 방지하는 효과가 입증

    (E) 행: sinusoids positional encoding 대신 positional embedding을 사용 => 기본 모델과 성능 유사함.

     

    3) English Constituency Parsing

    Transformer 모델이 다른 task에도 일반화 될수 있는지 평가하기 위해 English constituency parsing을 수행함. 해당 Task는 output에 구조적 제약이 많고, input보다 매우 긴 output을 출력해야 하는 어려운 Task임. 실험 결과 RNN base의 기존 모델 보다 우수한 성능을 나타냄.

     

    # 결론

    본 논문에서는 일반적인 encoder-decoder 아키텍처를 Multi-head self attention으로 대체하는 attention만으로 구성된 Transformer 모델을 제시함. 

    번역 Task에서 기존 RNN, CNN 대비 훈련 Cost가 낮으며, 번역 성능에서 다른 앙상블 모델을 제치고 SOTA를 기록함.

    향후 이미지, 비디오, 오디오 등과 같은 텍스트가 아닌 data의 input과 output의 효율적인 처리를 위해 연구할 계왹.

     

    # 참고한 자료

    https://arxiv.org/abs/1706.03762

    https://jalammar.github.io/illustrated-transformer/

    https://blog.naver.com/wilson_26/223256506139

    https://velog.io/@qtly_u/Attention-is-All-You-Need-논문-리뷰

Designed by Tistory.