점수의 크기만 커졌다고 더 중요한 것은 아니다
세 학생의 발표 점수를 비교한다고 생각해 봅시다.
학생들의 순서는 비슷합니다. 다만 평가 기준이 커지면서 숫자만 훨씬 커졌습니다.
큰 점수는 Softmax를 너무 극단적으로 만들 수 있다
Softmax는 큰 점수에 더 큰 비중을 줍니다. 그런데 점수가 지나치게 크면 한 단어에 거의 모든 비중이 몰릴 수 있습니다.
점수가 너무 큰 경우
Softmax 후 Tom에 거의 모든 비중이 몰릴 수 있습니다.
적당히 줄인 경우
Tom이 여전히 가장 중요하지만 다른 정보도 조금 남습니다.
180cm와 1.8m는 같은 키다
사람의 키가 달라진 것은 아닙니다. 표현하는 숫자의 크기만 바뀌었습니다.
Scaled는 점수를 적당히 줄인다는 뜻이다
무엇으로 나누는가?
Query와 Key 벡터가 길수록 Attention Score가 커질 가능성이 높습니다. 그래서 벡터 길이에 맞는 기준으로 점수를 나눕니다.
전체 과정은 생각보다 단순하다
Query와 Key를 비교한 점수를 √dk로 나눈 뒤 Softmax에 넣는다.
점수를 직접 줄여 보자
아래 슬라이더를 움직여 원래 점수와 벡터 길이를 바꿔보세요.
원래 Attention Score
Key 벡터 길이 dk
자주 생기는 오해
아닙니다. 모든 점수를 같은 기준으로 나누기 때문에 어떤 단어가 더 중요한지는 그대로 유지됩니다.
아닙니다. √dk는 벡터 길이에 따라 정해지는 계산 기준입니다.
핵심 정리
- Query와 Key를 비교하면 Attention Score가 만들어집니다.
- 벡터가 길어지면 Attention Score가 커지기 쉽습니다.
- 점수가 너무 크면 Softmax가 한 단어에 지나치게 몰릴 수 있습니다.
- 그래서 점수를 √dk로 나누어 적당한 크기로 줄입니다.
- Scaling은 단어 사이의 중요도 순서를 바꾸지 않습니다.
- Scaling 후 Softmax를 적용해 Attention Weight를 만듭니다.
- 이 과정을 Scaled Dot-Product Attention이라고 합니다.