PART 4 · 강의 1/4

어텐션 메커니즘

"Attention is All You Need" - 현대 AI의 핵심 기술 이해하기

01

어텐션이란?

관련 정보에 집중하는 메커니즘

💡 핵심 아이디어

어텐션(Attention)은 입력 데이터의 어느 부분에 집중해야 하는지를 학습하는 메커니즘입니다. 사람이 문장을 읽을 때 중요한 단어에 더 주목하듯이, AI도 관련성 높은 정보에 더 큰 가중치를 부여합니다.

🧪 어텐션 시뮬레이션

아래 단어를 클릭하면 해당 단어가 다른 단어들에 얼마나 "주목"하는지 볼 수 있습니다:

고양이가
생선을
먹었다
그것은
맛있었다
어텐션 설명
단어를 클릭하여 어텐션 패턴을 확인하세요.
📌 중요한 포인트

"그것은"이라는 대명사가 "생선을"보다 "고양이가"에 더 높은 어텐션을 갖는 이유는 문맥상 "그것"이 고양이를 지칭하기 때문입니다. 어텐션은 이러한 의미적 관계를 학습합니다.

02

Query, Key, Value

어텐션의 삼위일체

어텐션 메커니즘은 세 가지 벡터를 사용하여 작동합니다. 이를 도서관 검색에 비유해보겠습니다:

Q
Query (질문)
"내가 찾고 있는 것"
도서관에서 검색어를 입력하는 것
K
Key (키)
"책의 제목/태그"
검색어와 매칭되는 인덱스
V
Value (값)
"책의 실제 내용"
최종적으로 가져올 정보
입력 임베딩
× W_Q
× W_K
× W_V
Q, K, V 벡터

QKV 생성 수식

Q = X · W_Q     K = X · W_K     V = X · W_V
X: 입력 임베딩 W_Q, W_K, W_V: 학습 가능한 가중치 행렬
🎯 Self-Attention의 특징

Self-Attention에서는 같은 입력 시퀀스에서 Q, K, V를 모두 생성합니다. 즉, 각 단어가 자기 자신을 포함한 모든 단어에 대해 질문(Query)을 던지고, 다른 모든 단어의 Key와 비교하여 관련성을 측정한 후, Value를 가중합하여 새로운 표현을 만듭니다.

03

Scaled Dot-Product Attention

어텐션 점수 계산 과정

어텐션 점수를 계산하는 과정을 단계별로 살펴보겠습니다:

어텐션 공식

Attention(Q, K, V) = softmax(Q · KT / √d_k) · V
Q · KT: 유사도 점수 계산 √d_k: 스케일링 (차원의 제곱근) softmax: 확률 분포로 변환 · V: 가중합

계산 과정 시각화

1

Q와 K의 내적 (Dot Product)

Query와 Key의 내적으로 두 벡터 간의 유사도를 계산합니다. 값이 클수록 두 토큰이 관련성이 높습니다.

score = Q · KT
2

스케일링 (Scaling)

차원이 클수록 내적 값이 커지므로, √d_k로 나눠 정규화합니다. 이를 통해 softmax가 극단적인 값을 갖지 않도록 합니다.

scaled_score = score / √d_k
3

Softmax

스케일된 점수를 확률 분포로 변환합니다. 모든 어텐션 가중치의 합은 1이 됩니다.

attention_weights = softmax(scaled_score)
4

Value와의 가중합

어텐션 가중치를 Value에 곱하여 최종 출력을 생성합니다. 관련성 높은 정보에 더 큰 비중이 부여됩니다.

output = attention_weights · V
04

어텐션 스코어 행렬

토큰 간 관계의 시각화

Self-Attention에서 각 토큰은 다른 모든 토큰에 대한 어텐션 점수를 가집니다. 이를 행렬로 나타내면:

어텐션 점수 히트맵

"The cat sat on the mat" 문장의 어텐션 점수 (예시)

The
cat
sat
on
the
mat
The
0.35
0.25
0.10
0.10
0.10
0.10
cat
0.20
0.40
0.25
0.05
0.05
0.05
sat
0.10
0.35
0.30
0.10
0.05
0.10
on
0.05
0.10
0.20
0.30
0.10
0.25
the
0.15
0.05
0.05
0.10
0.25
0.40
mat
0.10
0.20
0.25
0.15
0.20
0.10

행: Query (질문하는 토큰) / 열: Key (참조되는 토큰)

색이 진할수록 높은 어텐션 점수 (더 많이 "주목")

📌 행렬 해석하기
  • "cat" 행: cat이 자기 자신(0.40)에 가장 높은 어텐션, 관련 동사 "sat"(0.25)에도 주목
  • "the" (두 번째) 행: 뒤따르는 명사 "mat"(0.40)에 높은 어텐션
  • 각 행의 합은 1 (softmax의 결과)
05

어텐션이 강력한 이유

RNN 대비 장점

RNN의 한계

  • 순차적 처리로 병렬화 불가능
  • 긴 문장에서 정보 손실 (Vanishing Gradient)
  • 멀리 떨어진 단어 간 관계 파악 어려움
  • 시퀀스 길이에 비례하는 계산 시간

어텐션의 장점

  • 모든 토큰을 병렬 처리
  • 직접 연결로 정보 손실 최소화
  • 거리에 관계없이 관계 학습 가능
  • O(1)의 경로 길이로 빠른 정보 전달
⚡ 핵심 통찰

어텐션은 문장의 첫 단어와 마지막 단어 사이에도 단 한 번의 연산으로 직접 연결을 만듭니다. RNN에서는 중간의 모든 단어를 거쳐야 했던 것과 대조적입니다. 이것이 트랜스포머가 긴 문맥을 효과적으로 처리할 수 있는 이유입니다.

06

어텐션의 종류

Self, Masked, Cross Attention

🔄 Self-Attention

같은 시퀀스 내에서 Q, K, V 모두 생성. 문장 내 단어 간 관계 학습.

인코더, 디코더

🎭 Masked Self-Attention

미래 토큰을 볼 수 없도록 마스킹. 자기회귀 생성에 사용.

GPT, 텍스트 생성

🔗 Cross-Attention

Q는 한 시퀀스에서, K와 V는 다른 시퀀스에서 생성.

번역, 요약

🎭 Masked Self-Attention (Causal Attention)

GPT 같은 모델에서 사용. 현재 위치 이후의 토큰은 참조할 수 없음.

I
love
AI
!
I
1.0
-∞
-∞
-∞
love
0.4
0.6
-∞
-∞
AI
0.2
0.3
0.5
-∞
!
0.1
0.3
0.4
0.2

검은색(-∞) 영역: 마스킹됨 (softmax 후 0이 됨)

→ 각 토큰은 자신과 이전 토큰만 참조 가능

SUMMARY

핵심 요약

🎯 어텐션의 핵심

  • 관련 정보에 "집중"하는 메커니즘
  • Query, Key, Value 세 벡터 사용
  • 가중치를 학습하여 중요도 결정

📊 계산 과정

  • Q·KT로 유사도 계산
  • √d_k로 스케일링
  • Softmax → Value 가중합

⚡ 장점

  • 병렬 처리 가능
  • 긴 거리 의존성 학습
  • 정보 손실 최소화
🎓 다음 강의 예고

다음 강의에서는 Multi-Head Attention을 배웁니다. 왜 어텐션을 여러 개의 "헤드"로 나누는지, 그리고 이것이 어떻게 모델의 표현력을 높이는지 알아봅니다.

REF

참고 자료