Self-Attention
Self-Attention berechnet Beziehungen zwischen Tokens innerhalb derselben Sequenz.
Self-Attention ist die Form von Attention, bei der ein Modell Beziehungen zwischen Tokens innerhalb derselben Eingabesequenz berechnet. Jedes Token "blickt" dabei auf alle anderen Tokens im selben Text und bestimmt, welche davon für seine eigene Verarbeitung relevant sind.
Konkret wird jedes Token in drei Vektoren transformiert: Query, Key und Value. Der Query eines Tokens wird mit den Keys aller Tokens der Sequenz multipliziert, um Aufmerksamkeitsgewichte zu erhalten. Diese Gewichte bestimmen, wie stark die Value-Vektoren der anderen Tokens in die neue Repräsentation einfließen. Das Ergebnis ist ein kontextangepasster Vektor, der nicht nur die Information des einzelnen Tokens enthält, sondern auch den Kontext der umgebenden Tokens einbezieht.
Ein klassisches Beispiel: Im Satz "Die Katze saß auf der Matte, weil sie müde war" muss das Modell erkennen, dass "sie" sich auf "Katze" bezieht. Self-Attention ermöglicht genau solche Verknüpfungen, indem das Token "sie" dem Token "Katze" ein hohes Aufmerksamkeitsgewicht zuweist.
Self-Attention unterscheidet sich von Cross-Attention dadurch, dass Query, Key und Value alle aus derselben Sequenz stammen. Bei Cross-Attention hingegen kommen die Queries aus einer Sequenz und Keys sowie Values aus einer anderen - etwa wenn ein Übersetzungsmodell den Quelltext mit dem bereits erzeugten Zieltext verknüpft.