View a markdown version of this page

Wie Sequence-to-Sequence funktioniert - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Wie Sequence-to-Sequence funktioniert

In der Regel umfasst ein neuronales Netzwerk für die Sequence-to-Sequence-Modellierung mehrere Layer, darunter:

  • Ein einbettender Layer. In diesem Layer mit der Eingabematrix werden die "platzsparend" codierten Eingabe-Token (z. B. per One-Hot-Codierung) einem Funktions-Layer mit hoher Dichte zugeordnet. Dies ist erforderlich, da ein hochdimensionaler Funktionsvektor besser zur Codierung der Informationen für ein bestimmtes Token (Wort bei Textkorpora) geeignet ist als ein einfacher One-Hot-codierter Vektor. Es ist auch üblich, diese Einbettungsschicht mit einem vortrainierten Wortvektor wie FastTextoder Glove zu initialisieren oder sie nach dem Zufallsprinzip zu initialisieren und die Parameter während des Trainings zu lernen.

  • Ein Encoder-Layer. Nachdem die Eingabe-Token einem hochdimensionalen Funktionsraum zugeordnet wurden, wird die Sequenz über einen Encoder-Layer übergeben, um alle Informationen aus dem einbettenden Eingabe-Layer (der gesamten Sequenz) in einen Funktionsvektor mit fester Größe zu komprimieren. In der Regel besteht ein Encoder aus RNN-type Netzwerken wie Long Short-Term Memory (LSTM) oder Gated Recurrent Units (GRU). (In Colah's blog wird LSTM ausführlich erläutert.)

  • Ein Decoder-Layer. Der Decoder-Layer verwendet diesen codierten Funktionsvektor und generiert die Token-Ausgabesequenz. Dieser Layer setzt sich üblicherweise aus RNN-Architekturen (LSTM und GRU) zusammen.

Das gesamte Modell wird gemeinsam trainiert, um die Wahrscheinlichkeit der Zielsequenz anhand der Quellsequenz zu maximieren. Dieses Modell wurde erstmals von Sutskever et al. im Jahre 2014 vorgestellt.

Attention-Mechanismus. Der Nachteil eines Encoder-Decoder-Frameworks besteht darin, dass die Modellleistung mit zunehmender Länge der Quellsequenz abnimmt. Das liegt daran, dass der codierte Funktionsvektor mit fester Länge nur eine bestimmte Menge an Informationen aufnehmen kann. Zur Behebung dieses Problems führten Bahdanau et al. im Jahre 2015 den Attention-Mechanismus ein. In einem Attention-Mechanismus versucht der Decoder, die Stelle mit den wichtigsten Informationen in der Encoder-Sequenz zu ermitteln, und nutzt diese Informationen sowie zuvor decodierte Wörter, um das nächste Token in der Sequenz zu prognostizieren.

Weitere Einzelheiten finden Sie im Whitepaper Effective Approaches to Attention-based Neural Machine Translation von Luong et al., in dem Berechnungen für verschiedene Aufmerksamkeitsmechanismen erklärt und vereinfacht werden. Zudem wird im Whitepaper Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation von Wu et al. die zur Maschinenübersetzung von Google eingesetzte Architektur beschrieben, in der Skip-Connections zwischen Encoder- und Decoder-Layer verwendet werden.