논문 : https://arxiv.org/abs/1706.03762
제목 : Attention Is All You Need
발행일자 : 12 Jun 2017
저자 : Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin
Abstract:
1. Introduction
2. Background
(어텐션 가중을 평균함으로 인해 해상도 저하 문제 -> “멀티 헤드 어텐션”으로 보완 )

3. Model Architecture
• 전체구조

• 인코더(Encoder)
- 각 인코더 레이어는 두 개의 서브레이어로 구성된다.
1.멀티-헤드 셀프 어텐션 (Multi-Head Self-Attention)
2. 포지션별 완전연결 피드포워드 (Position-wise Feed-Forward Network)
•디코더(Decoder)
- 디코더도 인코더와 유사하게 6개의 레이어로 구성되지만, 추가 서브레이어가 존재한다.
=> 인코더 출력에 대한 멀티-헤드 어텐션 서브레이어를 추가하여, 디코더가 인코더 정보에 주의(attend)할 수 있게 만든다.
- 미래 시점 마스킹(Masked Self-Attention)을 적용해, 디코더가 아직 생성되지 않은 토큰(미래 정보)을 보지 못하게 막아 오토리그레시브(Autoregressive) 특성을 유지한다.
( 오토리그레시브(Autoregressive) 특성 : 이미 생성된 과거 토큰(이전 시점들)만을 참고하고 아직 생성되지 않은 미래 토큰 정보는 사용하지 않는다는 특성 )
- Transformer는 전체 입력값을 전달받기 때문에 예측할 때 미래 시점의 입력값을 참조할 수 있다는 문제
=> 미래 토큰을 일부로 가려서 훈련할때 이전 토큰만 참조할 수 있게 만들어 학습 능력을 높임
• 어텐션 메커니즘
쿼리(Query)와 키(Key)의 내적을 dk루트로 나눈 뒤 소프트맥스를 취해 가중치를 구하고, 이에 따라 값(Value) 벡터를 가중 합한다.

쿼리·키·값을 여러 개의 헤드로 분할해 동시에 어텐션을 수행한 뒤, 다시 합치는 방식.
서로 다른 표현 하위공간(subspace)에서 정보를 동시에 학습함으로써 모델 성능을 향상.
기본 설정에서 8개 헤드, 각 헤드의 차원은 64로, 전체 𝑑model과 동일한 계산 비용으로 동작한다.


• 포지션별 피드포워드(Position-wise Feed-Forward Network)
- 각 레이어에서 어텐션 다음으로 완전연결 신경망(ReLU 활성화)을 적용하며, 시퀀스의 각 위치에 동일한 변환을 적용한다.
- 선형 -> 비선형 -> 선형 (이걸로 비선형 복잡성 넣기위해)
- 입력·출력 차원은 𝑑model=512, 내부 레이어 차원은 𝑑𝑓𝑓=2048로 설정되어 있다.

•임베딩과 포지셔널 인코딩(Positional Encoding)
=> 학습 기반 포지셔널 임베딩도 가능하지만, 사인·코사인 방식을 쓰면 길이가 더 긴 시퀀스로도 확장 가능성이 높다.
=> Sine 곡선 하나만 사용하면 다른 단어가 같은 높이의 점(0,𝝅,2𝝅)을 가질 수 있기 때문에 Cosine도 같이 사용해서 겹치는 2개 점을 4개의 점으로 증가시켜 서로 다르게 구분해줌.
• 계산 복잡도와 장점
- 멀리 떨어진 위치 간 의존성을 상수 연산(어텐션)으로 처리할 수 있어, 장기 의존 관계 학습에 유리하다.
=>특정 위치의 쿼리(Query)가 모든 키(Key)·값(Value)와 단 한 번에 계산되므로, 두 토큰 사이의 ‘거리가’ 논리적으로 1(한 번의 어텐션)입니다.

=> 위 구성요소들을 통해 Transformer는 기존 순환 신경망(RNN)·합성곱 신경망(CNN) 기반 모델과 달리 순차적 구조 없이도 시퀀스 간 상호작용을 효율적으로 모델링한다. 또한 병렬 연산을 극대화하여 학습 속도를 높이고, 복잡한 시퀀스 작업에서도 우수한 성능을 달성한다.
4. Why Self-Attention
셀프 어텐션(Self-Attention)과 기존의 순환(Recurrent), 합성곱(Convolutional) 레이어를 비교하여, 왜 Transformer에서 셀프 어텐션을 사용하는지에 대해 설명함.
비교기준 :
1. 계층(레이어)별 전체 연산 복잡도
2. 병렬화가 가능한 정도(최소 순차 연산 단계 수)
3. 시퀀스 내 장기 의존(Long-Range Dependency)를 학습하기 위한 경로 길이
1.계층(레이어)별 전체 연산 복잡도
- RNN은 시퀀스 길이 𝑛에 대해 𝑂(𝑛) 단계의 순차 연산이 필요하나, 셀프 어텐션은 상수 단계(모든 위치가 한 번의 어텐션으로 연결)로 처리가 가능하다.
- 실제 연산량 측면(𝑂(𝑛2⋅𝑑) vs. 𝑂(𝑛⋅𝑑2) 등)에서도, 일반적인 문장 단위 변환(단어·워드피스·바이트페어)에서는 셀프 어텐션이 RNN보다 빠를 수 있다.
- 시퀀스가 매우 길 경우, 관심 영역을 주변 𝑟크기로 제한하면(Restricted Self-Attention) 연산 복잡도를 더 줄일 수 있어, 장기적으로 연구할 가치가 있다.
2. 장기 의존 관계(멀리 떨어진 위치 간 연결) 학습
- 셀프 어텐션은 모든 위치가 직접 어텐션을 통해 연결되므로, 경로 길이가 사실상 1(한 번의 어텐션)이다. 이는 장기 의존 관계를 학습하기 한층 유리하다.
3. CNN과의 비교
- CNN은 커널 크기 k를 확장하거나 여러 레이어를 쌓아야 장기 의존 관계를 커버할 수 있으므로, 레이어 수가 늘어날수록 경로가 길어진다(Contiguous 또는 Dilated Convolution).
- 연산량 또한 커널 크기와 함께 증가하며, 커널을 크게 잡더라도 셀프 어텐션 + 피드포워드를 합친 수준의 복잡도가 된다.
4. 해석 가능성(Interpretable)
- 셀프 어텐션은 학습된 어텐션 분포(Weight)를 직접 확인함으로써, 모델이 문장의 어떤 위치에 주의를 기울였는지 파악할 수 있다.
- 이는 문법적·의미적 구조를 분석하는 데도 도움이 되며, 실제로 다른 레이어·헤드들이 서로 다른 기능을 학습하는 사례가 관찰된다.
=> 정리하면, 셀프 어텐션은 병렬 처리와 장기 의존 학습에 유리하고, 해석 가능성도 높다. 이러한 특성들은 Transformer가 RNN·CNN 중심의 시퀀스 모델을 대체해 효율적이고 강력한 시퀀스 변환을 수행하게 만드는 핵심 근거가 된다.
6. Conclusion
- 이 연구에서는 Transformer를 제안했으며, 이는 완전히 어텐션에만 기반하여 기존 인코더-디코더 구조에서 사용되던 순환 레이어(RNN)를 멀티-헤드 셀프 어텐션으로 대체한 최초의 시퀀스 변환 모델이다.
- 번역 과제에서, Transformer는 RNN 또는 CNN 기반의 기존 모델들보다 훨씬 빠르게 학습할 수 있으며,
WMT 2014 영어→독일어, 영어→프랑스어 번역 대회에서 새로운 최고 성능(State of the Art)을 달성했다.
특히 영어→독일어 번역에서 기존에 보고된 앙상블 모델들보다도 더 좋은 성능을 얻었다.
- 향후, 어텐션 기반 모델을 텍스트 이외의 입력·출력 모달리티(예: 이미지, 오디오, 비디오)에 적용하고, 대규모 입력·출력을 효율적으로 처리하기 위해 제한된(Local) 어텐션 메커니즘 등을 탐구할 계획이다. 또한, 생성 과정을 점차 **비순차화(less sequential)**하는 것도 목표로 한다.
'머신러닝, 딥러닝' 카테고리의 다른 글
| [논문 매일 읽기 5일차] Improving Language Understanding by Generative Pre-Training(GPT1) (0) | 2025.01.06 |
|---|---|
| [논문 매일 읽기 4일차] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (0) | 2025.01.04 |
| [논문 매일 읽기 2일차] Deep learning (0) | 2024.12.18 |
| [논문 매일 읽기 1일차] Sequence to Sequence Learning with Neural Networks (1) | 2024.12.12 |
| 그래디언트 부스팅 결정 트리 모델 (0) | 2024.12.05 |