Step 1 — Similarity measure karo. Position i ko position j kitna attend karna chahiye? Unke query aur key ka dot product use karo:
sij=qi⋅kjYeh step kyun? Dot product tab bada hota hai jab vectors ek hi direction mein point karte hain — ek natural "yeh dono ek doosre ke liye relevant hain" score.
Step 2 — Scale karo. Agar keys/queries ki dimension dk hai, toh qi⋅kjdk random products ka sum hai, jiska variance dk ke saath badhta hai. Badi values softmax ko saturated regions mein push karti hain (tiny gradients). Variance ≈1 rakhne ke liye divide karo:
sij=dkqi⋅kjdk kyun? Agar har component ka variance 1 hai, toh dot product ka variance dk hai, toh standard deviation dk. Isse divide karna re-normalise karta hai.
Step 3 — Scores ko weights mein badlo. Hume chahiye non-negative weights jo 1 mein sum hon (positions par ek probability distribution). Softmax exactly yahi karta hai:
αij=∑mesimesijYeh step kyun? Ek weighted average ko aise weights chahiye jo 1 mein sum hon; softmax sabse bade score ko bhi smoothly aur differentiably amplify karta hai.
Step 4 — Values blend karo. Position i ka output values ka weighted sum hai:
zi=∑jαijvjYeh step kyun? Hum finally content (values) pull in karte hain, relevance se weighted — yeh hai "soft lookup."
Saare positions ko matrices Q,K,V mein stack karo (rows = tokens):
Recall Feynman: ek 12-saal ke bachche ko explain karo
Imagine karo tum class mein ho aur teacher ek sawaal poochti hai (tumhara query). Har classmate ek card uthata hai jisme ek topic label hai (unki key) aur kuch facts jaanta hai (unki value). Tum jaldi saare labels dekhte ho, decide karte ho ki kaun se classmates most relevant hain, phir unke facts ko mix karte ho — sabse zyada un logon par attention dete ho jinke keys best match kiye. Woh mixing hi jawab hai. Self-attention poori class ka yeh kaam simultaneously karna hai, har koi har kisi ke baare mein poochh raha hai, toh kisi ki bhi information forget nahi hoti.
Self-attention har input se kaun se teen vectors banata hai, aur unke roles kya hain?
Query (main kya dhoondh raha hoon), Key (main kya offer karta hoon), Value (content jo main pass karunga agar select hua).
Scaled dot-product attention formula likhо.
softmax(dkQK⊤)V
dk se divide kyun karte hain?
dk-dim vectors ke dot product ka variance ≈dk hota hai; dk se divide karna variance ko ~1 par normalise karta hai, softmax saturation aur vanishing gradients rokta hai.
Softmax kis axis par apply hota hai?
Keys/positions ke across (row-wise QK⊤ par), taaki tokens par attention weights 1 mein sum hon.
Actual learned parameters kya hain (attention weights nahi)?
WQ,WK,WV aur output projection WO.
Self-attention ko positional encodings ki zarurat kyun hai?
Yeh permutation-equivariant hai — isme koi built-in notion of order nahi hai, isliye position info add karni padti hai.
Attention RNNs ki kaun si problems solve karta hai?
Long-range forgetting aur lack of parallelism — har position doosri position se directly, ek parallel matrix multiply mein padh sakti hai.
Multi-head attention se kya fayda hota hai?
Multiple parallel attention subspaces, jo alag-alag tarah ke relationships mein specialise karte hain, phir concatenate hote hain.
n tokens ke liye attention matrix QK⊤ ki shape kya hai?