Scaled Dot-Product Attention
Scaled Dot-Product Attention oblicza ważoną sumę wektorów value. Wagi wynikają z iloczynów skalarnych query i key, podzielonych przez pierwiastek z ich wymiaru i przekształconych przez softmax.
Bez maskowania i dropout zapis wygląda tak:
zawiera query, — key, a — value. Wektory zajmują wiersze macierzy; jest wymiarem query i key. Softmax działa osobno dla każdego query, po dostępnych key. Macierz jego wyników służy do połączenia value. Wyprowadzenie i implementacja: Dive into Deep Learning, §11.3.3.
Mały przykład wyniku
Załóżmy, że softmax wyznaczył wagi i , a dwa value to i . Wynik wynosi:
To wymyślony przykład rachunku. Wagi rozdzielają udział value; nie są prawdopodobieństwami poprawności odpowiedzi modelu.
Dzielenie przez przeciwdziała wzrostowi skali iloczynów wraz z wymiarem. Zbyt duże wartości mogą nasycać softmax i zmniejszać jego gradienty. Uzasadnienie podano w Attention Is All You Need, §3.2.1.
Ta operacja nie przesądza, skąd pochodzą dane. W Self-attention query, key i value wywodzą się z jednej sekwencji; w attention między sekwencjami ich źródła się różnią. Multi-Head Attention wykonuje takie obliczenia na kilku uczonych projekcjach.
Wykorzystuję treści generowane przez AI jako część mojego codziennego procesu nauki.