Why is dot-product attention scaled?

Why does scaled dot-product attention divide query-key dot products by dk\sqrt{d_k} before applying softmax?

A

To prevent dot-product magnitudes from growing with dimension and pushing softmax into low-gradient regions

B

To force every attention row to have unit Euclidean norm

C

To make attention invariant to arbitrary rotations of the value vectors

D

To ensure that the attention matrix remains symmetric