본문 바로가기
논문리뷰

[논문리뷰] Transformer

by 단깅수 2024. 6. 26.
728x90

오늘은 Transformer 논문 리뷰를 가져왔습니다.

해당 논문은 2017년에 발표된 논문입니다.

 

Attention Is All You Need

저자 : Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin

[1] Introduction

1-1. 기존 Seq2Seq 모델의 한계점

출처 : 깃허브, 동빈나

  • 기존의 인코더 - 디코더 구조 : 인코더에서 고정된 크기의 context vector를 생성해 디코더의 입력으로 넣어주는 형식
  • context vector를 만들다보니 인코더의 모든 소스 문장에 대한 정보가 압축되어 병목 현상이 발생하고 입력 문장 전체를 순서대로 받아야 하기 때문에 병렬 처리를 하기에도 어려움이 있었음
  • 그래서 디코더가 매번 context vector를 참고하도록 방향성을 바꿔보았지만 인코더에서 context vector를 생성해야 하는 문제는 여전하기 때문에 병목 현상에 대한 해결 방안은 되지 않았음
  • 그래서 차라리 context vector를 생성하지 않고 매번 소스 문장 전체를 입력으로 받으면 어떨까? 하는 아이디어가 나왔고 그 시초가 Attention 알고리즘

 

1-2. Attention

출처 : 깃허브, 동빈나

  • Attention 출범 이후에는 Attention 기반으로 입력 시퀀스 전체에서 정보를 추출하는 방향으로 발전함
  • 출력값을 모두 고려해서 성능 향상을 노리고 어텐션의 디코더 부분에서는 매번 인코더의 모든 출력 중 어떤 정보가 중요한!! 정보인지 계산 → 어텐션의 본질
  • GPU의 병렬처리
    • 어텐션에서 매번 소스 문장 전체를 입력으로 받기 때문에 입력 순서에 관해 Sequential하게 계산할 필요가 없어 GPU의 병렬 처리가 가능해진다! —> 성능과 학습 속도에 엄청난 발전

[2] Model Architecture

출처 : 깃허브, 동빈나

2-1. Encoder

  • Input 및 Positional Encoding
    • 소스 문장을 Embedding시키고 각 단어의 순서를 알 수 있도록 Positional Encoding 작업을 진행 후 concat 연산을 수행해 인코더에 입력
  • Multi-head Attention, 잔여학습, FC Layer
    • 임베딩된 Matrix는 Multi-head Attention에 각각 key, query, value로 입력되고 각각 서로의 단어에 대한 가중치를 부여하는 어텐션 계산을 수행
    • 학습 난이도를 낮추기 위 Residual Learning도 수행
    • 거기에 FC layer를 입히고 다시 잔여 학습을 진행하면 끝…이 아니라 이 과정을 총 N번 만큼 수행 (본 논문에서는 N = 6이라고 하네용)

2-2. Decoder

  • Masked Attention
    • 입력 단어보다 뒤에 있는 단어를 신경쓰거나 참고하지 못하도록 Masked Attention을 수행
  • Multi-head Attention
    • 인코더에서 받은 key와 value값을 참고해 디코더 부분에서 Multi-head Attention 계산을 수행
    • 어텐션을 위한 세 가지 입력 요소
      • Query : 물어보는 주체
      • Key : 각각의 단어들
      • Value : Attention Score
    • 각각의 Key는 행렬곱, Scaling, Softmax(어떤 단어와 가장 유사한지 판별) 계산
    • 그리고 똑같이 FC Layer를 거쳐 Softmax 함수를 통과한 후 출력
    • dot-product attention을 수행하는 이유는 계산이 빠르고 공간 낭비를 줄일 수 있어서
  • Why Self - Attention?
    • 각 Layer마다 계산의 복잡도가 줄어든다는 장점
    • 순서에 대한 순차적 입력 과정을 없앰으로서 GPU 차원의 병렬 처리 가능
    • Long Range Dependency에도 잘 수행할 수 있음

[3] Training & Results

출처 : arxiv transformer(2017)

  • WMT 2014의 영어 - 독일어 번역 데이터셋, 영어 - 불어 번역 데이터셋을 사용
  • Hardware는 NVIDIA의 GPU P100을 8개 사용
  • Label Smoothing 기법 사용 - 정규화 기법
  • 8개의 Head를 사용하는 것이 성능이 좋았고 차원은 64차원이 가장 좋았음
  • FC Layer와 Embedding 차원을 늘리면 성능이 더 향상됨

[4] Conclusion

  • Transformer Architecture 제안
    • Attention Machanism 만을 사용해서 recurrent한 특성을 모두 배제한 후 학습 진행
  • 기계번역 분야 뿐만 아니라 다른 분야의 task에도 적용가능성이 높다는 점을 시사

[5] References

 

https://github.com/ndb796/Deep-Learning-Paper-Review-and-Practice/tree/master

728x90

'논문리뷰' 카테고리의 다른 글

[논문리뷰] CLIP 논문 리뷰  (0) 2024.07.10
[논문리뷰] XL-Net  (0) 2024.07.03
[논문리뷰] MT-DNN  (0) 2024.05.23
[논문리뷰] BART  (2) 2024.05.15
[논문리뷰] BERT  (0) 2024.04.30