고차원 공간에서는 벡터의 성분들이 많아지면서, 이 성분들이 각각 독립적이거나 무작위로 분포한다고 가정할 수 있다. 예를 들어, 벡터의 각 성분이 독립적으로 동일한 평균과 분산을 가진 무작위 변수라고 가정할 때, 벡터의 차원이 증가하면 전체 벡터의 길이가 커진다.

내적의 기대값과 분산

$$ \mathbf{q} \cdot \mathbf{k} = \sum_{i=1}^{d_k} q_i \times k_i $$

두 벡터 q와 k의 내적은 각 성분의 곱을 합산한 것이다.

$q_i$와 $k_i$가 모두 평균이 0이고 분산이 $σ^2$인 독립적인 랜덤 변수라고 가정해보자. 그러면 각 성분 $q_i×k_i$의 기대값은 0이지만, 분산은 $σ^2×σ^2=σ^4$가 된다.

벡터의 내적은 이러한 성분들의 합이므로, 내적의 기대값은 0이 되지만, 분산은 성분의 수

d_k에 비례하여 증가한다.

$$ \text{Var}(\mathbf{q} \cdot \mathbf{k}) = d_k \times \sigma^4 $$

고차원에서의 분산 증가

벡터의 차원 $d_k$가 커질수록 내적의 분산이 증가한다. 이는 내적 결과가 평균적으로는 0에 가까울지라도, 차원이 증가함에 따라 내적의 값이 평균에서 크게 벗어날 확률이 높아진다는 것을 의미한다. 다시 말해, 내적 결과가 매우 큰 값이나 매우 작은 값을 가질 가능성이 높아진다.

예를 들어, 2차원 벡터에서는 내적 값이 평균에 가까운 값을 가질 확률이 높지만, 1000차원 벡터에서는 각 성분이 기여하는 값이 매우 많아지기 때문에 내적 결과가 평균에서 크게 벗어날 가능성이 훨씬 커진다. 이는 고차원 공간에서 발생하는 고유한 성질 중 하나이다.

내적의 크기와 Softmax의 문제

결과적으로, 벡터의 차원이 커질수록 내적 결과가 급격하게 커지거나 작아질 가능성이 커지며, 이러한 결과는 Softmax 함수에 전달될 때 문제가 된다. Softmax는 지수 함수 기반이므로 내적의 작은 차이도 출력에서 큰 차이를 유발할 수 있다. 내적의 결과가 매우 크다면 해당 위치의 Softmax 확률은 거의 1에 수렴하고, 반대쪽에서는 0에 가까워지는 문제가 발생한다.

이러한 이유로 내적 값이 너무 커지지 않도록 $\sqrt{d_k}$로 스케일링하는 기법이 필요하게 된다. 이를 통해 내적 값의 분산을 줄여 Softmax 결과의 극단적인 편중을 방지하고, 안정적인 학습을 가능하게 한다.