Scaled Dot-Product Attention
Das Modell soll Informationen aus mehreren Satzfragmenten verbinden. Ein Fragment ist nützlicher, ein anderes weniger. Es braucht eine konkrete Methode zur Berechnung ihrer Anteile und zur anschließenden Zusammenstellung der Informationen zu einem Ergebnis.
Scaled Dot-Product Attention vergleicht die numerischen Beschreibungen Query und Key, verwandelt die Ergebnisse in Gewichte und mischt die zugehörigen Values. Jede Beschreibung ist ein Vektor, also eine Zahlenliste. Query beschreibt den aktuellen Bedarf einer Position, Key dient dem Abgleich und Value enthält die weiterzugebende Information.
Der Vergleich besteht darin, entsprechende Zahlen zu multiplizieren und die Produkte zu addieren. Das Ergebnis wird durch die Quadratwurzel der Listenlänge geteilt, damit seine Skala nicht übermäßig mit der Dimension wächst. Softmax rechnet die Ergebnisse in nicht negative Anteile mit der Summe eins um.
Betragen die Anteile 25% und 75% und die weiterzugebenden Zahlen 2 und 6, erhalten wir 0,25 × 2 + 0,75 × 6 = 5. Das ist eine Vereinfachung auf eine Zahl; tatsächliche Values sind Listen. Die Anteile beschreiben das Mischen von Informationen, nicht die Wahrscheinlichkeit einer korrekten Antwort.
Mechanismus und Details
Ohne Maskierung und Dropout lautet die Darstellung:
enthält Query, Key und Value. Die Vektoren stehen in den Matrixzeilen; ist die Dimension von Query und Key. Softmax arbeitet separat für jedes Query über die verfügbaren Keys. Seine Ergebnismatrix dient zum Zusammenführen der Values. Herleitung und Implementierung: Dive into Deep Learning, §11.3.3.
Ein kleines Ergebnisbeispiel
Nehmen wir an, Softmax hat die Gewichte und bestimmt, und die zwei Values sind und . Das Ergebnis beträgt:
Das ist ein erfundenes Rechenbeispiel. Die Gewichte verteilen die Beiträge der Values; sie sind keine Wahrscheinlichkeiten für die Richtigkeit der Modellantwort.
Die Division durch wirkt dem Anwachsen der Skalarproduktskala mit der Dimension entgegen. Zu große Werte können Softmax sättigen und seine Gradienten verkleinern. Die Begründung steht in Attention Is All You Need, §3.2.1.
Diese Operation legt nicht fest, woher die Daten stammen. Bei Self-Attention stammen Query, Key und Value aus einer Sequenz; bei Attention zwischen Sequenzen unterscheiden sich ihre Quellen. Multi-Head Attention führt solche Berechnungen mit mehreren trainierten Projektionen aus.