Attention score는 Q와 K를 기반으로 계산되며, 단계별로 다음과 같이 진행됩니다.
각 Query ()와 모든 Key () 간의 유사도를 계산:
Dot Product 값은 벡터 차원 ()가 커지면 값이 커져 입력 값의 상대적 차이가 커져 Softmax의 출력이 한쪽으로 몰려 버리거나 그래디언트 소실 문제가 발생할 수 있습니다.
이를 방지해 균형잡힌 Softmax 출력값을 만들기 위해 벡터 차원의 제곱근으로 나눕니다:
(d_k)는 Key 벡터의 차원입니다.
Dot Product가 커서 Softmax가 극단적으로 치우치는 문제를 완화해 Attention이 멀리 있는 단어도 적절히 참조할 수 있도록 간접적으로 도움을 줌. (장기의존성 완화에 약간의 영향도 있음)
각 Query에 대해 Softmax를 적용해 가중치(attention weight)로 변환:
Attention weight를 Value에 곱해 최종 출력 계산: