논문 리뷰

[논문 리뷰] Attention Is All You Need

AIstarter 2024. 7. 17. 15:52

<논문> Attention Is All You Need

 

 

Attention Is All You Need

The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new

arxiv.org

 

<제안 모델> Transformer 

 

<논문 리뷰 목차>

  1.  배경
    • 기존 모델 한계 소개
    • 한계점을 극복한 제안 모델 소개
  2.  제안모델
    • Transformer 모델 아키텍처
    • Multi-Head self-attention
      • 활용되는 주요 개념
        • Attention
        • *Scaled Dot-Product Attention
      • Multi-Head Attention 개념
    • Feed-Forward Network
    • Positioning Encoding
  3. 평가 결과 분석
  4. 논문의 기여점 및 한계점
  5. 느낀점

[1. 배경]

1) 기존 모델들의 한계

  • 기존 모델 - Extended Neural GPU, ByteNet, ConvS2S 등:
    • 특징
      • Convolutional Neural Networks (CNNs) 사용: CNN을 기본 구성 요소로 사용, 입력 및 출력 위치에 대해 병렬적으로 숨겨진 표현을 계산
    • 단점
      • 관계 연산의 복잡성: 입력 또는 출력 위치의 두 신호 간의 관계를 계산하는 데 필요한 연산 수가 위치 간 거리와 함께 증가
        • ConvS2S: 선형적으로 증가
        • ByteNet: 로그적으로 증가
      • 먼 위치 간의 의존성 학습 어려움: 먼 위치 간의 의존성을 학습하는 것이 어려움

2) 제안 모델, Transformer

  • 기존 모델 단점을 극복함
    • Multi-Head Attention을 사용하여, 거리가 먼 state 반영 가능해짐
    • Side Effects
      • 상수 연산 복잡도 감소: 두 위치 간의 신호 관계를 계산하는 데 필요한 연산 수가 상수로 줄어든다
      • 유효 해상도 감소: Attention-weighted 위치의 평균화로 인해 유효 해상도 감소

[2. 제안 모델]

  • Key Points: Multi-Head Attention, Feed-Forward Networks, Positional Encoding

1) Transformer 모델 아키텍처

  • Auto-regressive sequence: 지금까지 생성한 것을 다시 input으로 넣어 다음 생성
  • encoder-decoder structure
    • Encoder: 2 sub-layers
      1. “Multi-Head self-attention” mechanism
      2. Fully connected “Feed-Forward Network”
    • Decoder: 3 sub-layers
      1. “Multi-Head self-attention” mechanism
      2. Fully connected “Feed-Forward Network”
      3. Encoder 출력결과에 대한 “Multi-Head self-attention” - Encoder와 차이점

2) Multi-Head self-attention

1. 활용되는 주요 개념

  • Attention
    • Attention: 어떻게 가중치를 부여하여 활용한 것인지 결정하는 매커니즘
      • output과 query, key, value를 mapping
      • query, key, value는 다 vector
      • output는 value에 대한 가중치의 합
  • *Scaled Dot-Product Attention
    • Attention 계산 방법

      1. 각 토큰 임베딩을 query, key, value 벡터로 projection
      2. Attention 점수 계산 → 가중치 계산
      • query와 key 백터 내적를 통해 유사도 계산 → Q· K^T / sqrt(dim_k)
        • (참고) key dimension을 임의로 dim_k로 표현함
        • sqrt(dim_k) 는 scaling factor이다
          • scaling factor는 훈련과정에서 그래디언트를 안정적이게 함
        • 이를 통해 (dim_k * dim_k) Attention 점수 행렬이 산출됨
          • 토큰이 n개 인 경우, 모양이 n*n인 어텐션 점수 행렬이 산출됨
      • Softmax 함수를 적용 → query,key 유사도 점수가 확률값으로 바뀜(열의 합이 1)
        • softmax( Q· K^T / sqrt(dim_k)) ⇒ 각 가중치가 된다
      1. Output 계산: 구한 가중치를 value에 적용 → 가중 평균을 계산
        • softmax( Q· K^T / sqrt(dim_k)) V

 

 

2. Multi-Head Attention 개념

  • Multi-Head Attention는 *Scaled Dot-Product AttentionScaled Dot-Product Attention를 여러개(head)를 둔 것
    • 하나의 attention function보다 더 유용함
    • query, key, value에 대해 각 각에 대해 병렬적으로 attention function 수행
    • 독립적으로 수행후 concat
  • 논문에서는 8개 head 사용 ⇒ 512 dim / head의 개수 = 512/8= 64
    • dim_k = dim_v ⇒ 64 차원
    • head의 차원수가 줄어들어서 computational cost는 single-head attention와 비슷

 

3) Feed- Forward Network

  • 독립적으로 수행됨
  • 역할: 유사성 검사 후, 추출된 정보를 모델링해서 정보들간의 interaction 확인하는 것
  • 토큰의 위치와 상관없이 모든 토큰 임베딩에 병렬적으로 적용됨

4) Positioning Encoding

  • Seqeunce의 순서(위치)에 대한 정보 활용 ⇒ 토큰 사전에 위치 정보를 추가해줌
  • embedding의 모델 차원과 동일하게 하여, Token embeds에 더할 수 있게 해줌
  • Positioning Encoding 방법들
    1. sine, consine 함수 사용
    2. 학습된 Positioning Embedding 사용하는 방법
    ⇒ 두 방식 비교한 결과: 거의 동일한 결과 도출됨. → So, 사인 및 코사인 방식이 훈련 중 접하지 않은 시퀀스 길이로도 모델이 일반화할 수 있을 것으로 예상되어 선택함

 

[3. 평가결과 및 분석]

1. Transformer 사용시, 최근 가장 높은 결과를 보인 기존 모델보다 더 좋은 결과가 도출됨

2. 세부 테스트 결과

  • (A) head 너무 적거나 많을 경우 성능 떨어짐
  • (B) Attention key 사이즈를 줄이면 모델 성능 떨어짐
  • (C) 모델이 클수록 결과가 좋다
  • (D) dropout하는 것이 좋다
  • (E) 학습된 위치 임베딩을 사용하는 것과 결과 비슷 → So, sinusoid를 활용하는 것이 더 좋다. (위에서 이미 설명함)

 

[4. 논문의 기여점 및 한계점]

1) 기여점

  • 순환(recurrence)과 합성곱(convolution)의 제거:
    • Transformer 모델은 기존의 RNN(Recurrent Neural Networks)이나 CNN(Convolutional Neural Networks)과 달리, 순환과 합성곱을 사용 x
    • 순환 구조를 제거하고 완전한 어텐션 메커니즘을 사용함으로써, Transformer 모델은 GPU를 활용한 병렬 처리가 가능해짐 → 훈련 시간을 크게 단축
  • Self-Attention 메커니즘:
    • Self-Attention 메커니즘을 사용하여 시퀀스 내의 모든 위치 간의 의존성을 한 번에 계산→ 멀리 떨어진 위치 간의 관계를 더 효율적으로 학습
  • Multi-Head Attention:
    • 다중 헤드 어텐션을 사용하여 다양한 표현 공간에서 어텐션을 계산하고, 이를 통합하여 더 풍부한 표현을 얻음 → 모델의 성능을 크게 향상시키는 중요한 요소
  • Positional Encoding:
    • 시퀀스의 각 위치에 대한 정보를 추가로 제공하여, 모델이 시퀀스의 순서 정보를 효과적으로 학습
  • NLP 분야에 다양한 발전을 이끌어낼 수 있는 새로운 방향성을 제시함

2) 한계점

  • 이미지, 영상과 같은 큰 input, output을 다루지 못함

[5. 느낀점]

지난번에 Transformer을 공부할 때는 논문의 전반적인 흐름을 이해했다면, 이번에는 조금 더 세세하게 수식과 평가결과들을 이해할 수 있어서 좋았다.

또한 이번에는 Attention 자체에 좀 더 포커스하여 분석하였는데,

RNN의 한계점인 1. 거리가 먼 부분은 마지막 state에 반영이 거의 되지 않는 문제와 2. 순차적으로 처리할 수 밖에 없었던 부분들을 Attention이 해결해준다는 포인트에서 Attention이 더욱 매력적이게 느껴졌다.