Was ist ein Transformer?

Transformer im Bereich des maschinellen Lernens sind eine Form von neuronalen Netzen, welche sich einen sogenannten Attention-Mechanismus (dt. Aufmerksamkeit) zunutze machen. Dabei wird ein Teil einer Eingangsgröße (beispielsweise ein Wort, eine Wortsilbe eines Satzes oder ein Pixel eines Bildes) mit den restlichen Teilen einer Eingangsgröße in Beziehung gestellt.

Ziel dieser Methode ist es, dass das jeweilige Wort oder Pixel durch die Kombination mit den restlichen Bestandteilen zum Verständnis der Gesamtdaten beiträgt. Beispielsweise ist bei Suchanfragen im Internet das Verständnis von Pronomen und Präpositionen in Zusammenhang mit Nomen elementar, da nur so eine Erfassung des Sinnes der Gesamtsuche möglich und zielführend ist.

Transformer finden sich vorwiegend bei Anwendung im Bereich des Deep Learning zur Texterkennung, -verarbeitung oder der Bilderkennung.

Architektur im Deep Learning

Die Struktur eines Transformer im maschinellen Lernen ist grundsätzlich in einen Encoder und einen Decoder unterteilt. Die Abfolge des Datendurchlaufs im Encoder und Decoder stellt sich wie folgt dar.

Im ersten Prozessschritt wird der Input durch das „Input Embedding“ in verarbeitbare Daten in Form von Vektoren transferiert. Im nächsten Schritt werden dem Transformer die Position der Vektoren (bzw. Wörter in einem Satz) durch das „Positional Encoding“ in Form einer Indexierung mitgeteilt. Daraufhin folgt das Durchlaufen des ersten Attention-Mechanismus. In dieser Multi-Head-Attention-Schicht vergleicht der Transformer die aktuell verarbeitenden Daten (z. B. ein Wort) mit allen anderen Daten (z. B. die restlichen Wörter einen Satzes) und ermittelt die Relevanz. Aufgrund dieses Selbstvergleichs wird diese Schicht auch „Self-Attention“ genannt.

Nun folgt der Schritt „Add & Norm“ in welchem die Ursprungsdaten vor Durchlaufen der Multi-Head-Attention-Schicht unverändert kopiert und mit den verarbeiteten Daten aus der Multi-Head-Attention-Schicht addiert und normiert werden. Die letzte Schicht des Encoders bildet die „Feed-Forward-Schicht“, welche durch ein neuronales Netz mit einer Input-, einer verdeckten und einer Output-Schicht dargestellt wird und die Werte durch eine nicht lineare Aktivierungsfunktion auf einen Bereich von 0 bis unendlich umwandelt. Abgeschlossen wird die Encoder-Verarbeitung mit einem abermaligem und zuvor beschriebenen „Add & Norm“-Schritt.

Im nächsten Prozessschritt startet der Decoder, indem eine Output-Sequenz initialisiert und positioniert wird. Dies erfolgt analog zum Encoder durch das „Output Embedding“ und „Positional Encoding“. Gefolgt wird dieser Schritt vom Durchlaufen der „Masked Multi-Head Attention“-Schicht, welche vor allem in der Trainingsphase des Modells von Relevanz ist. Hier lernt der Decoder aus einem Ist-Inputnden Trainingsdaten einen Soll-Output zu generieren bzw. sich diesen anzunähern. Aufgrund der parallelen Arbeitsweise des Transformers im maschinellen Lernen liegt dem Decoder bereits im Trainingsmodus die jeweilige Position der einzelnen Outputs-Sequenz vor, wodurch die zukünftige Position der Output-Sequenz maskiert bzw. verschleiert wird. Davon hat diese Schicht auch ihren Namen.

Nach dieser Schicht folgt wieder ein „Add & Norm“ Schritt, bevor die Daten an die Multi-Head-Attention-Schicht weitergegeben werden. Diese Schicht wird auch als „Encoder-Decoder Attention“ bezeichnet, da hierbei eine Verbindung zwischen dem Encoder und dem Decoder hergestellt wird. Sie verbindet somit die im Encoder durchlaufenen Input-Sequenzen mit den bisher generierten Output-Sequenzen und wird deshalb auch als „Cross-Attention“-Verbindung bezeichnet. Dieser Mechanismus wird benötigt, um beispielsweise im Rahmen der Übersetzung eines Textes in eine andere Sprache zu errechnen, welches Wort der Zielsprache als Nächstes im Satz gereiht werden sollte. Gefolgt wird diese Schicht wieder von einem „Add & Norm“ Schritt, einer „Feed-Forward-Schicht“, welche dem Vorgehen aus dem Encoder gleicht, sowie einem abermaligen „Add & Norm“ Schritt. Im vorletzten Schritt des Transformers im Deep Learning werden in der linearen Schicht die bis dato verarbeiteten Daten/Vektoren in einen größeren Vektor überführt, um so beispielsweise das gesamte Vokabular einer Zielsprache im Rahmen einer Übersetzung darstellen zu können. In der abschließenden Softmax-Funktion wird für jede Output-Sequenz eine Wahrscheinlichkeit zwischen 0 und 1 errechnet und so der wahrscheinlichste endgültige Output errechnet.