Sobes.tech
Middle — Senior

Vysvětlete vzorec škálované pozornosti skalárního součinu. Proč dělit sqrt(d_k)?

sobes.tech AI

Odpověď od AI

Škálovaná bodová pozornosť je mechanizmus pozornosti, ktorý vypočítava váhové koeficienty pre prvky sekvencie na základe skalárnych súčinov dopytov (Q) a kľúčov (K). Vzorec vyzerá takto:

[ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V ]

Tu:

  • Q — matica dopytov,
  • K — matica kľúčov,
  • V — matica hodnôt,
  • (d_k) — rozmer vektorov kľúčov.

Delenie (\sqrt{d_k}) je potrebné na škálovanie výsledku skalárneho súčinu. Bez tohto kroku môžu hodnoty v vysokých rozmeroch byť príliš veľké, čo vedie k veľmi veľkým argumentom funkcie softmax. To spôsobuje problém "miznúcich gradientov" — softmax sa stáva veľmi "prísny", takmer jeden prvok dostane váhu 1, ostatné takmer 0, čo zhoršuje učenie. Škálovanie stabilizuje gradienty a zlepšuje konvergenciu modelu.