요즘 추천 시스템도 재미있지만, 최근 연구 트렌드를 보면 LLM과 Agent 분야가 압도적으로 많아서 자연스럽게 관심이 더 가기 시작되었고 그래서 LLM 관련 핵심 논문들도 하나씩 읽어보려고 마음먹었고, 그 출발점으로 이 논문을 선택함
이 논문은 사실상 지금의 LLM 시대를 연 시작점 같은 존재라 할 수 있으며 Transformer 구조와 Self-attention이라는 개념을 처음 제시하면서 이후 BERT, GPT 계열 모델들이 등장할 수 있는 토대를 만들었음
학교 수업에서 Self-attention을 배울 때 교수님이 이 논문은 나중에 꼭 따로 읽어보라고 강조하셨던 것도 기억나서, 이번 기회에 첫 LLM 논문 리뷰로 선택하게 됨
문제 의식
기존의 seq2seq 모델(RNN/LSTM/GRU)은 병렬처리가 안되어서 긴 시퀀스 처리 느리고 장기 의존성 잡기 어렵고 CNN 기반은 receptive field 넓히기 위해 깊어져야 해서 어려움
Intro에서 언급한 것 처럼 기존 딥러닝 모델은 순차 처리(RNN) 또는 깊은 구조(CNN) 때문에 비효율적이였고 멀리 떨어진 단어 간 관계 학습이 어렵고 비용 컸음
Self-Attention은 이를 한 번에 처리해서 문맥 이해를 효율적으로 함
Self-Attention은 기존엔 보조 기능이었지만 Transformer는 이를 모델 중심으로 사용하였고 결과적으로 입력과 출력의 의미 표현을 학습하는 최초의 sequence transduction 모델이 되었음
Encoder
역할
구성
Decoder
3.2.1 Scaled Dot-Product Attention
Attention이란 Query(Q), Key(K), Value(V)를 입력 받아 Value들의 가중합(weighted sum)을 반환하는 함수임
즉, 중요한 정보(Value)를 더 많이 반영하는 방식으로 문장 표현을 만드는 기술
Q,K,V
Q × Kᵀ (MatMul)
Softmax
이해하기 위한 설명
위 설명이 정의이지만 논문을 읽을 때 Query(Q), Key(K), Value(V)와 Self-Attention 가 이해가 잘 되지 않아서 이해하기 쉽게 정리해보았음
Self-Attention을 과자 나누기로 이해하는 방법임
상황 설정은 사람 4명(A, B, C, D)이 있는데 과자 10개를 나눠줘야 하는 상황임
그냥 똑같이 2.5개씩 주는 게 아니라 각 사람이 얼마나 중요한지에 따라 비율을 다르게 나누고 싶은거임
1) Query / Key / Value 개념
Self-Attention에서 각 단어는 3개의 정보를 가지는데 사람으로 비유하면:
| 역할 | 의미 | 비유 |
|---|---|---|
| Q (Query) | 내가 지금 누구에게 관심/중요도를 줄 건가 | 나는 과자를 얼마나 필요로 하는가 |
| K (Key) | 다른 사람이 어떤 특성을 갖고 있는가 | 상대가 과자를 얼마나 중요하게 생각하는가 |
| V (Value) | 실제 반영될 값 | 실제로 받게 되는 과자 수 |
2) Attention 계산 과정 (단계별)
Step 1: Q × Kᵀ
A가 과자를 받을 때, A는 각 사람(B,C,D) 이 얼마나 중요한지 알아야 함
→ 그래서 A의 Q와 B,C,D의 K를 비교
A-Q × B-K = A가 B를 얼마나 중요하게 생각하는지 점수
A-Q × C-K = A가 C를 얼마나 중요하게 생각하는지 점수
A-Q × D-K = A가 D를 얼마나 중요하게 생각하는지 점수
이게 dot product (점수 계산)
즉, QKᵀ는 “상대방에 대한 관심도 점수표”를 만든다고 보면 됨
Step 2: softmax
dot-product 점수는 아무 숫자나 나올 수 있음
예) A가 각 사람에게 준 점수:
B=2.1, C=0.3, D=1.6
이걸 비율로 바꿔야 과자 나눌 수 있음
→ softmax로 확률처럼 변환
B = 50%, C = 10%, D = 40%
softmax = 점수를 “과자 비율”로 바꾸는 과정
Step 3: Value(V) 반영하기
각 사람이 가진 실제 의미(Value)를 비율대로 합침
V의 초기 값은 단어 임베딩값임
각 사람의 V 값: B=5, C=2, D=4 (실제 지식/정보)
비율: B 0.5, C 0.1, D 0.4 최종적으로 A는A_output = 0.5×5 + 0.1×2 + 0.4×4 = 4.3즉, A는 주변 사람들의 정보(V)를 중요도(softmax 비율)로 가중합한 결과를 얻음변수 정리
QKᵀ = 누구에게 관심을 줄지 점수 계산
softmax = 점수를 비율로 바꿔줌
V = 실제 정보/내용
Output = 비율 × 값 = “중요도 조정된 결과”
Self-Attention은 주변 단어들이 가진 정보를, 그 단어가 나에게 얼마나 중요한지에 따라
비율을 만들어서 가중 평균하는 방식임
3.2.2 Multi-Head Attention
이를 통해 다양한 의미적 정보 포착가능하고 학습 안정성 및 generalization 향상되며 계산 비용 효율 유지가 가능함
| 위치 | 이름 | 목적 |
|---|---|---|
| 1 | Encoder Self-Attention | 입력 문장 내부 관계 학습 |
| 2 | Decoder Masked Self-Attention | 생성 중 미래 단어 보지 않기 + 이전 문맥 유지 |
| 3 | Encoder-Decoder Attention | 입력 문장 정보(Encoder)와 생성 문장(Decoder) 연결 |
단어 간 관계 파악(attention) → 단어 표현 자체 강화(FFN)
차원을 512 → 2048 → 512로 바꾸게 되는데 그 이유는 Attention을 거친 벡터는 문맥 정보가 섞였지만 표현력은 제한됨
그래서 모델은 FFN에서 차원을 넓혀 변환 후 다시 압축함
| 모델 요소 | 기능 |
|---|---|
| Self-Attention | 어느 단어가 중요한지 판단 |
| FFN | 각 단어 표현 자체를 더 표현력 있게 변환 |
입력 단어(ID)를 512차원 벡터(embedding) 로 변환
Encoder와 Decoder가 같은 embedding weight 공유 → 파라미터 절약 + 의미 공간 통일
Embedding 값은 √512로 스케일링 → 값 범위 안정화 → 학습 더 잘됨
Decoder 마지막 출력은 Linear → Softmax를 거쳐
다음 단어 확률 분포를 예측함
Transformer는 순서 개념이 없기 때문에 단어 위치 정보를 embedding에 추가해야 함
그래서 sin/cos 패턴을 가진 위치 벡터(PE) 를 word embedding에 더함
PE는 고정된 값이며, 각 위치는 서로 다른 주파수로 인코딩됨
이 방식은 모델이 단어의 절대 위치 + 상대적 거리를 모두 학습할 수 있게 해줌
Transformer가 RNN이나 CNN 대신 Self-Attention을 선택한 이유는 3가지임
2) Long-range dependency (장거리 의존성 학습 능력)
3) 연산 비용 효율성 (Complexity vs Sequence Length)
데이터: WMT14 EN-DE(450만 문장), EN-FR(3600만 문장)
토크나이징: BPE(Byte-Pair Encoding)
배치 구성: 문장 길이 비슷하게 묶음 → padding 낭비 감소
배치 크기: 약 25k source + 25k target tokens
환경: NVIDIA P100 × 8 GPU
Base 모델: 100k steps (~12 hrs)
Big 모델: 300k steps (~3.5 days)
Optimizer: Adam
학습률 스케줄:
Residual dropout (p=0.1) → attention/FFN 출력에 적용
Embedding + positional encoding dropout
Label smoothing (ε=0.1) → 모델 확신 ↓, BLEU ↑
결과 (성능 비교)

Transformer(Base): 27.3 (EN-DE), 38.1 (EN-FR)
Transformer(Big): 28.4 (EN-DE), 41.8 (EN-FR)
→ 기존 RNN/CNN 기반 모델보다 더 높은 BLEU + 더 적은 계산비용
Transformer(Big)은 WMT14 EN→DE 기준 BLEU +2.0 이상 개선함
Training 비용은 기존 SOTA 모델 대비 더 적은 FLOPs로 더 좋은 성능을 보임
EN→FR에서도 Transformer(Big)가 최고의 BLEU 성능 달성함
Label smoothing(ε=0.1)이 성능 향상에 효과적임
| 변경 요소 | 결과 |
|---|---|
| Head 수 변화 (A) | single-head는 성능 저하 → Multi-head 필수 |
| Attention dimension 감소 (B) | dₖ나 dᵥ 줄이면 성능 감소 → 충분한 차원 필요 |
| 모델 크기 증가 (C) | 더 큰 모델이 더 좋은 성능 |
| Dropout/Label smoothing 조정 (D) | 너무 적거나 많으면 성능 저하 → 적정값 존재 |
| Positional embedding 교체 (E) | 학습형 positional encoding ≈ sin/cos → 거의 동일 |
→ 모델 크기 증가 + 적절한 dropout + multi-head 구조가 최적
Transformer는 RNN이나 CNN 없이, 오직 Self-Attention만 사용하는 최초의 Seq2Seq 모델아며 번역 작업에서 학습 속도는 훨씬 빠르면서도 기존 SOTA 모델보다 더 높은 BLEU 성능을 기록하였으며 구조적 단순함 + 높은 성능 덕분에 다른 task(텍스트 외 이미지·오디오·비디오 등)로 확장 가능성 높음
요즘 나오는 챗봇 AI들을 보면 정말 놀라울 정도의 성능을 보여주는데 사실 그 시작점이 바로 이 논문이라고 해도 과언이 아니라고 생각함
물론 최근 발표되는 모델들은 훨씬 복잡하고 뛰어난 성능을 내지만 결국 그 모든 발전의 기반에는 Transformer 구조가 존재하며 이 논문이 그 출발점이라는 생각을 하게 됨
추천 시스템을 공부할 때도 초창기 논문부터 흐름을 따라가며 읽었듯이 LLM과 Agent 분야도 이렇게 기초부터 차근차근 읽어가면 앞으로 최신 연구를 이해할 때 훨씬 수월해질 거라고 느꼈음
대학원 준비 과정에서도 이 흐름을 이해하고 있다는 점이 큰 장점이 될 것 같아서 이번 논문을 시작점으로 앞으로 관련 논문들을 꾸준히 이어서 읽어볼 계획임
논문 만족도 : ⭐️⭐️⭐️⭐️ (self attention이란 개념의 등장이 얼마나 대단한지 체감)
논문 이해도 : ⭐️⭐️⭐️⭐️ (대학 강의에서도 들었었고 이해하기 쉽게 정리도 같이 해서 잘됨)
LLM 관심도 : ⭐️⭐️⭐️⭐️ (추천시스템과 LLM 두개를 가장 관심있게 공부할 계획)