Transformer (Maschinelles Lernen)

Ein Transformer ist eine Methode, mit der ein Computer eine Folge von Zeichen in eine andere Folge von Zeichen übersetzen kann. Dies kann z. B. benutzt werden, um Text von einer Sprache in eine andere zu übersetzen. Dazu wird ein Transformer mittels maschinellem Lernen auf einer (großen) Menge von Beispiel-Daten trainiert, bevor das trainierte Modell dann zur Übersetzung verwendet werden kann.

Transformer gehören zu den Deep-Learning-Architekturen. Transformer wurden 2017 im Rahmen der Neural-Information-Processing-Systems-Konferenz veröffentlicht.

Weitere Beispielanwendungen von Transformern sind die Textgenerierung oder die Zusammenfassung längerer Texte. Transformer weisen hierbei eine bessere Effizienz gegenüber Long-short-term-memory-Architekturen (LSTM) auf und sind die Grundarchitektur vieler vortrainierter Machine-Learning-Modelle wie Bidirectional Encoder Representations from Transformers (BERT)[1] und Generative Pretrained Transformer (GPT).

. . . Transformer (Maschinelles Lernen) . . .

Vor der Einführung des Transformers wurden in der Verarbeitung natürlicher Sprache (NLP) rekurrente Modelle wie LSTM, GRU und Seq2Seq eingesetzt, welche eine Eingangssequenz sequenziell abgearbeitet haben. Diese Methoden wurden später durch einen Aufmerksamkeits-Mechanismus (engl. Attention) erweitert. Transformer bauen auf dem Aufmerksamkeits-Mechanismus auf und verzichten auf die rekurrente Struktur. Hierbei werden bei geringerem Rechenaufwand ähnliche oder bessere Ergebnisse bei der Transformation von Sequenzen erzielt, als mit den rekurrenten Modellen.

Ein Transformer besteht im Wesentlichen aus in Serie geschalteten Kodierern und in Serie geschalteten Dekodierern.[2][3][4] Die Eingabesequenz wird durch eine sogenannte Embedding-Schicht in eine Vektorrepräsentation überführt. Die Gewichte der Embedding-Schicht werden während des Trainings angepasst. Im Falle des Transformers kommt zusätzlich eine Positionskodierung zum Einsatz, wodurch die sequentielle Abfolge der Wörter berücksichtigt werden kann. Ein Wort erhält somit zu Beginn eines Satzes eine andere Repräsentation als am Ende.[3]

Die Eingabesequenz wird in der Vektorrepräsentation einer Serie von Kodierern übergeben und in eine interne Repräsentation überführt. Diese interne Repräsentation bildet die Bedeutung der Eingabesequenz abstrakt ab[4] und wird durch die Dekodierer in eine Ausgabesequenz übersetzt.[4] Die Eingabesequenz wird hierbei in Batches verarbeitet, wobei die Länge der Kodierer-Dekodierer-Pipeline die maximale Länge der Eingabesequenz beschränkt.[3] Je nach Größe des Netzwerks können beispielsweise einzelne Sätze oder auch ganze Absätze verarbeitet werden. Bei Eingabesequenzen, welche kürzer sind als die Länge der Kodierer-Dekodierer-Pipeline, wird Padding genutzt, um die Eingabesequenz aufzufüllen.[3]

Ein Kodierer besteht aus einem Self-Attention-Modul und einem Feedforward-Modul, während der Dekodierer aus einem Self-Attention-Modul, einem Kodierer-Dekodierer-Attention-Modul und einem Feedforward-Modul besteht.[4]

Die Aufgabe des Attention-Moduls besteht darin, die Korrelation eines Eingabesymbols zu den anderen Eingabesymbolen zu berechnen. Etwa die Zuordnung eines Pronomens zum zugehörigen Nomen.[4] Man unterscheidet zwischen der Einbettung (engl. embedding)

xi{displaystyle x_{i}}

, wobei es sich um das als Vektor kodierte Eingabesymbol handelt, dem Abfragevektor (engl. query)

qi{displaystyle q_{i}}

, dem Schlüsselvektor (engl. key)

ki{displaystyle k_{i}}

und dem Wertevektor (engl. value)

vi{displaystyle v_{i}}

. Aus jeder Einbettung werden die anderen drei Vektoren berechnet, indem diese mit einem durch Training erlernte Matrizen

Q{displaystyle Q}

,

K{displaystyle K}

und

V{displaystyle V}

multipliziert werden:

qj=xiQij{displaystyle q_{j}=x_{i}cdot Q_{ij}}

kj=xiKij{displaystyle k_{j}=x_{i}cdot K_{ij}}

vj=xiVij{displaystyle v_{j}=x_{i}cdot V_{ij}}

Hieraus wird eine Bewertung (engl. score)

si{displaystyle s_{i}}

berechnet

si=qiki{displaystyle s_{i}=q_{i}cdot k_{i}}

und schließlich durch die Quadratwurzel der Länge der Schlüsselvektoren

dim(k){displaystyle dim(k)}

geteilt, um stabilere Gradienten zu erhalten:

sidim(k){displaystyle {frac {s_{i}}{sqrt {dim(k)}}}}

Hierauf wird die Softmax-Funktion

σ{displaystyle sigma }

angewendet:

σ(sidim(k)){displaystyle sigma left({frac {s_{i}}{sqrt {dim(k)}}}right)}

Dieser Wert wird nun mit dem Wertevektor multipliziert. Dies führt dazu, dass für die Bedeutung unwichtige Symbole mit einem kleinen Wert und für die Bedeutung wichtige Symbole mit einem hohen Wert multipliziert werden:

zi=σ(sidim(k))vi{displaystyle z_{i}=sigma left({frac {s_{i}}{sqrt {dim(k)}}}right)cdot v_{i}}

Wobei der Vektor

zi{displaystyle z_{i}}

die berechnete Ausgabe des Attention-Moduls darstellt. Der Vektor

z{displaystyle z}

repräsentiert die Wahrscheinlichkeitsverteilung über das Vokabular der möglichen Ausgabesymbole.

Der Unterschied zwischen dem Self-Attention-Modul und dem Kodierer-Dekodierer-Attention-Modul besteht darin, dass das Self-Attention-Modul ausschließlich die Werte des vorhergehenden Kodierers bzw. Dekodierers verwendet und die Vektoren

qi{displaystyle q_{i}}

,

ki{displaystyle k_{i}}

und

vi{displaystyle v_{i}}

berechnet. Das Kodierer-Dekodierer-Attention-Modul hingegen berechnet nur den Vektor

qi{displaystyle q_{i}}

aus dem vorgelagerten Attention-Modul, während die Vektoren

ki{displaystyle k_{i}}

und

vi{displaystyle v_{i}}

aus dem Kodierer bezogen werden.

In der Praxis wird die sogenannte Multi-Head-Attention eingesetzt. Jeder Head besteht hierbei aus einer eigenen Version der Matrizen

Q{displaystyle Q}

,

K{displaystyle K}

und

V{displaystyle V}

. Jedes Attention-Modul besitzt mehrere Heads. Wenn ein Head für eine bestimmte Eingabe

x{displaystyle x}

nicht relevant ist, wird ein niedriger Wert berechnet, während ein für eine Eingabe relevanter Head einen hohen Ausgabewert berechnet.

. . . Transformer (Maschinelles Lernen) . . .

Dieser Artikel stammt von der Website Wikipedia. Der Originalartikel kann etwas gekürzt oder modifiziert sein. Einige Links wurden möglicherweise geändert. Der Text ist lizenziert unter “Creative Commons – Attribution – Sharealike” [1] und ein Teil des Textes kann auch unter den Bedingungen der “GNU Free Documentation License” [2] lizenziert werden. Für die Mediendateien können zusätzliche Bedingungen gelten. Durch die Nutzung dieser Website stimmen Sie unseren rechtlichen Seiten zu . Weblinks: [1] [2]

. . . Transformer (Maschinelles Lernen) . . .

Previous post Tyson Alualu
Next post Bristol Bullet