Funktionsweise von Sequence-to-Sequence - Amazon SageMaker AI

Funktionsweise von Sequence-to-Sequence

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 gängige Praxis, diesen einbettenden Layer mit einem vortrainierten Wortvektor wie FastText oder Glove zu initialisieren oder eine randomisierte Initialisierung vorzunehmen und die Parameter im Verlauf 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 Netzwerken des RNN-Typs, wie LSTM (Long Short-Term Memory) oder GRUs (Gated Recurrent Units). (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 Informationen sowie erläuterte und vereinfachte Berechnungen verschiedener Attention-Mechanismen finden Sie im Whitepaper Effective Approaches to Attention-based Neural Machine Translation von Luong et al. 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.