– 하나의 주의 메커니즘이 아닌, 여러 개의 시선으로 문장을 이해하는 방식 –
들어가며
Self-Attention이 문장 내 단어 간의 관계를 파악하는 데에 매우 뛰어난 방식이라는 것은 앞서 살펴보았습니다.
그렇다면 모델이 한 번의 시선이 아니라, 여러 개의 관점(Attention Head)으로 문장을 동시에 바라본다면 어떤 일이 일어날까요?
바로 그것이 Multi-Head Attention입니다.
이 구조는 Transformer의 핵심 중 하나로, 문장을 다양한 각도에서 동시에 이해할 수 있도록 설계되어 있습니다.
1. Multi-Head Attention이란?
한 개의 Self-Attention만으로는 단어들 사이의 모든 관계를 충분히 반영하기 어렵습니다.
그래서 Transformer는 하나가 아닌 여러 개의 Self-Attention을 병렬로 구성해 더 다양한 관계를 학습합니다.
이것이 Multi-Head Attention입니다.
즉, 같은 문장을 다양한 방식으로 해석하게 하는 구조입니다.
2. 비유로 이해하는 방식
예를 들어, "나는 오늘 학교에서 친구를 만났다"라는 문장을 생각해봅시다.
- 첫 번째 Head는 ‘누가 누구를 만났는가’에 주목할 수 있습니다.
- 두 번째 Head는 ‘오늘’과 ‘학교’ 사이의 시간-장소 관계에 집중할 수 있습니다.
- 세 번째 Head는 ‘학교’와 ‘친구’ 간의 연관성에 초점을 둘 수 있습니다.
이처럼 여러 Head는 문장의 다양한 관계를 평행하게 해석하는 역할을 합니다.
3. 작동 원리
- 입력 벡터에 대해 Query, Key, Value를 각각 여러 개의 Head에 맞게 선형 변환합니다.
- 각 Head는 독립적으로 Self-Attention을 수행합니다.
- 각 Head의 출력을 이어붙여(concatenate) 최종적으로 하나의 큰 벡터를 만듭니다.
- 이 벡터는 다시 선형 변환을 거쳐 다음 레이어로 전달됩니다.
수식으로 표현하면 다음과 같습니다.

여기서 는 W(iQ), W(iK), W(iV) 각 Head별로 다른 학습 가능한 가중치입니다.
4. 코드 예시 (PyTorch 요약)
import torch
import torch.nn as nn
class MultiHeadAttention(nn.Module):
def __init__(self, d_model, num_heads):
super().__init__()
assert d_model % num_heads == 0
self.d_k = d_model // num_heads
self.num_heads = num_heads
self.W_Q = nn.Linear(d_model, d_model)
self.W_K = nn.Linear(d_model, d_model)
self.W_V = nn.Linear(d_model, d_model)
self.fc = nn.Linear(d_model, d_model)
def forward(self, x):
batch_size, seq_len, d_model = x.size()
Q = self.W_Q(x).view(batch_size, seq_len, self.num_heads, self.d_k).transpose(1, 2)
K = self.W_K(x).view(batch_size, seq_len, self.num_heads, self.d_k).transpose(1, 2)
V = self.W_V(x).view(batch_size, seq_len, self.num_heads, self.d_k).transpose(1, 2)
scores = torch.matmul(Q, K.transpose(-2, -1)) / self.d_k ** 0.5
attn = torch.softmax(scores, dim=-1)
context = torch.matmul(attn, V)
context = context.transpose(1, 2).contiguous().view(batch_size, seq_len, d_model)
return self.fc(context)
이 코드는 Multi-Head Attention의 작동 원리를 단순하게 구현한 예시입니다.
5. 왜 중요한가?
- 다양한 해석 가능성: 하나의 관계만 보는 것이 아니라, 문장의 여러 의미를 동시에 고려
- 복잡한 의미 학습: 여러 관계를 병렬적으로 학습해 표현력이 높아짐
- LLM의 기본: GPT, BERT, Gemini 등 모든 Transformer 기반 모델에서 핵심적으로 사용
6. 참고 자료
- Vaswani et al., "Attention Is All You Need", NeurIPS 2017
https://arxiv.org/abs/1706.03762 - Jay Alammar, "The Illustrated Transformer"
https://jalammar.github.io/illustrated-transformer/
'Research & Paper' 카테고리의 다른 글
| Mamba: Linear-Time Sequence Modeling with Selective State Spaces (0) | 2025.09.08 |
|---|---|
| AI models collapse when trained on recursively generated data (0) | 2025.07.28 |
| "Robust Speech Recognition via Large-Scale Weak Supervision" (arXiv:2212.04356) (2) | 2025.07.26 |
| Transformer 아키텍처 분석 (2) | 2025.06.14 |
| Self-Attention 매커니즘 분석 (4) | 2025.06.14 |