1왜 Attention이 필요한가?
ChatGPT, Claude, Gemini — 우리가 매일 사용하는 AI의 핵심에는 Attention Mechanism이 있습니다. 2017년 Google이 발표한 논문 "Attention Is All You Need"에서 등장한 이 개념은, 현대 AI의 가장 중요한 돌파구 중 하나입니다.
하지만 Attention이 왜 필요했을까요? 그 이전에는 무엇이 있었을까요?
RNN은 전화 게임(Chinese Whispers)과 같습니다. 첫 번째 사람이 한 말이 10명을 거치면 원래 의미가 왜곡되죠. 반면 Attention은 모든 사람이 동시에 원본 메시지를 직접 참조할 수 있게 해줍니다.
⚠️ 정보가 순서대로 전달되면서 초기 정보가 점점 희미해진다
✅ "했다"가 모든 단어를 직접 참조하며, 관련 정보("축구를")에 더 높은 가중치를 부여한다
2Attention의 직관적 이해
Attention의 핵심 아이디어는 놀랍도록 단순합니다:
덜 중요한 것은 무시한다.
우리가 문장을 읽을 때도 마찬가지입니다. "그 고양이가 매트 위에서 잠을 잤는데, 그것은 매우 편안해 보였다"에서 "그것"이 무엇을 가리키는지 이해하려면, 우리는 자연스럽게 "고양이"에 주의(attention)를 기울입니다.
도서관에서 리포트를 쓴다고 상상해보세요. 책장에 100권의 책이 있지만, 여러분은 주제에 관련된 책 3~4권에만 집중합니다. Attention도 마찬가지로 — 입력의 모든 부분을 보되, 현재 작업에 관련된 부분에 더 큰 가중치를 부여합니다.
이것을 수학적으로 표현하면:
3Query, Key, Value — 세 가지 역할
Attention을 이해하는 열쇠는 Query(Q), Key(K), Value(V)라는 세 가지 개념입니다. 이 세 가지는 각각 다른 역할을 합니다.
Google 검색을 떠올려 보세요.
Query = 검색창에 입력하는 질문 ("attention mechanism이 뭐야?")
Key = 각 웹페이지의 제목/태그 (검색어와 비교되는 것)
Value = 웹페이지의 실제 내용 (우리가 원하는 정보)
Query와 Key를 비교해서 관련도(score)를 매기고,
그 점수에 따라 Value를 가중 합산하는 것이 Attention입니다.
Query 생성 — "무엇을 찾고 있는가?"
현재 처리 중인 단어가 다른 단어들에게 던지는 질문입니다. "나와 관련된 정보가 있니?" 라고 모든 단어에게 물어보는 것과 같습니다.
Key 생성 — "나는 이런 정보를 가지고 있다"
각 단어가 자신을 설명하는 라벨입니다. Query가 "축구 관련 정보 있어?" 라고 물으면, Key는 "나는 스포츠 관련 단어야!" 라고 대답합니다.
Value 생성 — "실제 전달할 정보"
단어가 담고 있는 실질적인 내용입니다. Query-Key 비교로 관련도가 높다고 판단되면, 이 Value가 최종 출력에 더 많이 반영됩니다.
4Scaled Dot-Product Attention
이제 Attention의 정확한 수학적 공식을 살펴봅시다. 이것이 Transformer의 핵심 연산입니다.
이 공식을 한 단계씩 분해해 봅시다:
유사도 계산: Q · Kᵀ
Query와 Key의 내적(dot product)을 계산합니다. 두 벡터가 비슷한 방향을 가리킬수록 내적 값이 커집니다. 이 값이 바로 두 단어 사이의 관련도 점수(score)입니다.
스케일링: / √d_k
내적 값을 Key 벡터의 차원 수(d_k)의 제곱근으로 나눕니다. 왜? 차원이 클수록 내적 값이 커져서 softmax가 극단적인 값(거의 0 또는 1)을 출력합니다. 스케일링으로 이를 방지합니다.
정규화: softmax
스케일링된 점수에 softmax를 적용합니다. 모든 값을 0~1 사이로 변환하고, 합이 정확히 1이 되게 합니다. 이것이 바로 Attention Weight(주의 가중치)입니다.
가중 합산: × V
Attention Weight와 Value 벡터를 곱해서 더합니다. 중요한 단어의 Value는 크게, 덜 중요한 단어의 Value는 작게 반영됩니다. 이것이 Attention의 최종 출력입니다.
🔢 구체적 예시로 따라가기
문장 "I love AI"에서 "love"의 Attention을 계산해 봅시다. (d_k = 4로 단순화)
"love"는 "AI"에 0.36, 자기 자신에 0.33, "I"에 0.28의 가중치를 부여
5Self-Attention: 스스로를 바라보다
Transformer에서 사용되는 Attention은 특별히 Self-Attention이라고 합니다. "Self"가 붙는 이유는, 같은 문장 내의 단어들끼리 서로를 참조하기 때문입니다.
Cross-Attention: Q는 한 곳에서, K와 V는 다른 곳에서 옵니다. 예: 번역에서 한국어 문장(Q)이 영어 문장(K, V)을 참조합니다.
Self-Attention이 강력한 이유는, 문맥에 따라 같은 단어도 다르게 표현할 수 있기 때문입니다:
이것이 Self-Attention의 진정한 힘입니다. 각 단어가 주변 문맥을 능동적으로 수집하여, 단순한 단어 임베딩을 문맥이 반영된 풍부한 표현으로 변환합니다.
6Attention Score 시각화
실제로 Attention이 어떤 단어에 집중하는지 히트맵으로 시각화할 수 있습니다. 아래는 "The cat sat on the mat because it was tired"에서 각 단어의 Attention 분포를 보여줍니다.
| The | cat | sat | on | mat | it | was | tired | |
|---|---|---|---|---|---|---|---|---|
| it | 0.03 |
0.42 |
0.08 |
0.02 |
0.10 |
0.20 |
0.05 |
0.10 |
| tired | 0.02 |
0.30 |
0.12 |
0.03 |
0.05 |
0.20 |
0.10 |
0.18 |
| sat | 0.04 |
0.35 |
0.15 |
0.16 |
0.20 |
0.02 |
0.03 |
0.05 |
"it"이 "cat"에 0.42로 가장 높은 attention — 대명사가 올바른 선행사를 찾아냄!
7정리 & 다음 편 예고
- RNN의 한계와 Attention이 필요한 이유
- Attention = 가중 평균이라는 핵심 직관
- Query, Key, Value의 역할과 의미
- Scaled Dot-Product Attention의 수학적 공식과 각 단계
- Self-Attention이 문맥을 이해하는 방법
- Attention Score를 히트맵으로 시각화하는 방법
Attention 하나만으로는 부족합니다. 다음 편에서는:
Multi-Head Attention으로 여러 관점에서 동시에 바라보는 방법,
그리고 이것을 쌓아 올려 만든 Transformer 아키텍처의 전체 구조를 다룹니다.