Implement scaled dot-product attention from the "Attention Is All You Need" paper: Attention(Q,K,V) = softmax(QK^T/√dk)V. Steps: (1) Compute attention scores QK^T, (2) Scale by √dk, (3) Apply softmax, (4) Weighted sum of V. Then implement multi-head attention: split into h heads, apply attention in parallel, concatenate, project. Explain why scaling is needed.