Part 6 · Self-Attention - Keeping Attention Scores Stable

Attention Score가 지나치게 커지지 않도록

Query와 Key의 내적으로 계산한 점수는 벡터의 차원이 커질수록 지나치게 큰 값이 될 수 있습니다. 큰 점수를 그대로 Softmax에 넣으면 일부 가중치가 한쪽으로 과도하게 치우치고, 학습이 불안정해질 수 있습니다. Scaled Dot-Product Attention은 점수를 Key 벡터 차원의 제곱근으로 나누어 적절한 범위로 조정합니다. Attention의 기본 원리는 그대로 유지하면서 계산을 더 안정적으로 만드는 장치입니다.

Start with a Simple Story

점수의 크기만 커졌다고 더 중요한 것은 아니다

세 학생의 발표 점수를 비교한다고 생각해 봅시다.

10점 만점
민수
9
철수
8
영희
7
1000점 만점
민수
930
철수
920
영희
910

학생들의 순서는 비슷합니다. 다만 평가 기준이 커지면서 숫자만 훨씬 커졌습니다.

Attention Score도 비슷합니다. 벡터가 길어지면 비교할 숫자가 많아져 점수가 필요 이상으로 커질 수 있습니다.
Why Reduce the Score?

큰 점수는 Softmax를 너무 극단적으로 만들 수 있다

Softmax는 큰 점수에 더 큰 비중을 줍니다. 그런데 점수가 지나치게 크면 한 단어에 거의 모든 비중이 몰릴 수 있습니다.

점수가 너무 큰 경우

Tom
40
New York
12
lives
8

Softmax 후 Tom에 거의 모든 비중이 몰릴 수 있습니다.

적당히 줄인 경우

Tom
5.0
New York
1.5
lives
1.0

Tom이 여전히 가장 중요하지만 다른 정보도 조금 남습니다.

점수를 줄이는 이유는 중요한 단어를 없애기 위해서가 아니라, 차이는 유지하면서 계산하기 좋은 크기로 만들기 위해서입니다.
A Familiar Scale Example

180cm와 1.8m는 같은 키다

센티미터로 표현 180cm 숫자가 크게 보임
=
미터로 표현 1.8m 숫자는 작아졌지만 키는 같음

사람의 키가 달라진 것은 아닙니다. 표현하는 숫자의 크기만 바뀌었습니다.

Scaled Dot-Product Attention도 비슷합니다. 단어 사이의 관계는 유지하고 점수 크기만 줄입니다.
What “Scaled” Means

Scaled는 점수를 적당히 줄인다는 뜻이다

Query와 Key 비교 관련성 점수 만들기
점수가 너무 커질 수 있음 벡터가 길수록 커지기 쉬움
점수를 나누어 줄임 크기만 조절
Softmax 적용 안정적인 참고 비중
여기서 점수를 줄이는 작업을 Scaling이라고 합니다.
What Do We Divide By?

무엇으로 나누는가?

Query와 Key 벡터가 길수록 Attention Score가 커질 가능성이 높습니다. 그래서 벡터 길이에 맞는 기준으로 점수를 나눕니다.

Key 벡터의 길이 dk 벡터에 들어 있는 숫자의 개수
→
나누는 기준 √dk 점수를 적당한 크기로 줄임
왜 제곱근인지에 대한 수학적 증명은 지금 외울 필요가 없습니다. 벡터가 길어질수록 점수가 커지므로 √dk로 나누어 안정시킨다고 이해하면 충분합니다.
The Whole Idea

전체 과정은 생각보다 단순하다

Dot Product Query와 Key를 비교
Attention Score 관련성 원점수
Scale √dk로 나눔
Softmax 참고 비중으로 변환
한 문장으로 정리 Query와 Key를 비교한 점수를 √dk로 나눈 뒤 Softmax에 넣는다.
이것이 바로 Scaled Dot-Product Attention입니다.
Try Scaling

점수를 직접 줄여 보자

아래 슬라이더를 움직여 원래 점수와 벡터 길이를 바꿔보세요.

원래 Attention Score

현재 점수 40.00

Key 벡터 길이 dk

현재 길이 64
나누는 값 √dk 8.00
Scaling 전 40.00
→
Scaling 후 5.00
40을 √64인 8로 나누면 5가 됩니다.
Common Misunderstandings

자주 생기는 오해

Scaling하면 중요도 순서가 바뀐다?

아닙니다. 모든 점수를 같은 기준으로 나누기 때문에 어떤 단어가 더 중요한지는 그대로 유지됩니다.

Scaling은 학습되는 Weight인가?

아닙니다. √dk는 벡터 길이에 따라 정해지는 계산 기준입니다.

Scaling은 의미를 바꾸는 기술이 아니라 계산을 안정적으로 만들기 위한 크기 조절입니다.
Summary

핵심 정리

  • Query와 Key를 비교하면 Attention Score가 만들어집니다.
  • 벡터가 길어지면 Attention Score가 커지기 쉽습니다.
  • 점수가 너무 크면 Softmax가 한 단어에 지나치게 몰릴 수 있습니다.
  • 그래서 점수를 √dk로 나누어 적당한 크기로 줄입니다.
  • Scaling은 단어 사이의 중요도 순서를 바꾸지 않습니다.
  • Scaling 후 Softmax를 적용해 Attention Weight를 만듭니다.
  • 이 과정을 Scaled Dot-Product Attention이라고 합니다.