Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  Anwendung des Aufmerksamkeitsmechanismus im NLP bei der Verarbeitung natürlicher Sprache

Anwendung des Aufmerksamkeitsmechanismus im NLP bei der Verarbeitung natürlicher Sprache

王林
王林nach vorne
2024-01-23 16:12:05610Durchsuche

Anwendung des Aufmerksamkeitsmechanismus im NLP bei der Verarbeitung natürlicher Sprache

Das Konzept der Aufmerksamkeit

Das Konzept der Aufmerksamkeit ist im seq2seq-Modell der neuronalen maschinellen Übersetzung gut bekannt. Die vom Encoder an den Decoder weitergegebene Informationsmenge ist begrenzt, was die Leistung des Modells einschränkt. Die Einführung von Aufmerksamkeit kann diesen Engpass jedoch überwinden und es dem Modell ermöglichen, lange Sätze und komplexe Semantik besser zu verarbeiten.

Einfach ausgedrückt nutzt das Modell während der Decodierungsphase alle verborgenen Zustände des Encoders und gibt den endgültigen verborgenen Zustand als anfänglichen verborgenen Zustand an den Decoder weiter. Dies hat den Vorteil, dass das Modell während der Dekodierung mehr Informationen nutzen und auf die relevantesten Teile der Eingabesequenz „aufpassen“ kann, wodurch genauere Vorhersagen bei der Generierung verschiedener Teile der Ausgabesequenz getroffen werden können.

Allgemeine Rahmenidee der Aufmerksamkeit

Obwohl sich Aufmerksamkeitsmechanismen in verschiedenen Architekturen und Implementierungsdetails unterscheiden, haben sie auch einige Gemeinsamkeiten. Stellen Sie sich beispielsweise ein Szenario vor, in dem wir mithilfe eines neuronalen Netzwerks mit einer bestimmten Architektur Vorhersagen treffen möchten. In diesem Fall erhalten wir einen Vektor, der einige codierte Informationen enthält. Wir können diesen Vektor zur Vorhersage verwenden, indem wir ihn beispielsweise in eine vollständig verbundene Schicht eingeben und ihn dann über eine Softmax-Schicht verarbeiten. Obwohl die spezifischen Verarbeitungsschritte variieren können, ist die Grundidee bei verschiedenen Architekturen ähnlich.

Die Vorhersageergebnisse erwiesen sich jedoch als unbefriedigend. Dafür kann es viele Gründe geben, das Folgende ist eine mögliche Idee:

1. Dieser verwendete Vektor enthält nicht alle Informationen, die für das Erreichen guter Vorhersagen nützlich sind.

Oft sind die Informationen, die für gute Vorhersagen erforderlich sind, auf viele Vektoren verteilt, wie zum Beispiel im Fall von NLP-Aufgaben, bei denen es eine Folge von Vektoren gibt, die durch einen Marker kodiert sind. Obwohl alle verteilten Informationen berücksichtigt wurden, gehen einige Informationen unweigerlich verloren, wenn sie tiefer im neuronalen Netzwerk fließen.

2. Nützlich sind nicht nur die einzelnen Informationen, die in diesen Vektoren enthalten sind, sondern auch deren Beziehung zum aktuellen Vektor.

Der aktuelle Vektor muss möglicherweise mit anderen Vektoren interagieren und kommunizieren und dabei helfen, zu bestimmen, welche Informationen weitergegeben werden sollen. Daher ist eine intelligentere Methode erforderlich, um alle vorhandenen potenziell nützlichen Vektoren zu kombinieren und dem Modell zu ermöglichen, zu lernen, worauf es achten muss, um bessere Vorhersagen zu treffen.

Nachdem wir diese beiden Punkte berücksichtigt haben, gehen wir davon aus, dass es jetzt einen solchen Vektor und andere qualifizierte Vektoren gibt. Diese Vektoren sind wichtig für Vorhersagen und die Methode zur Verarbeitung dieser Informationen ist der allgemeine Aufmerksamkeitsrahmen.

In diesem Rahmen akzeptieren Sie eine Abfrage und lassen sie nacheinander mit Schlüsseln interagieren:

1 Spezifische Interaktion zwischen Abfrage und jedem Schlüssel, es kann eine Kombination aus innerem Produkt oder Addition oder Verknüpfung und Feed an Small sein neuronale Netze usw. Jeder unterschiedliche Schlüssel der Abfrage wird mit derselben Operation und denselben Parametern verarbeitet, die aus der Backpropagation trainiert wurden. Darüber hinaus ist es erforderlich, dass die endgültige Ausgabe nach diesen Vorgängen ein einzelner Wert ist. Diese Ausgangswerte werden Energie genannt. Nachdem dieser Vorgang für die Abfrage und alle Schlüsselvektoren wiederholt wurde, erhält man eine Reihe von Energien.
2. Verwenden Sie die Softmax-Schicht, um alle Energien zu normalisieren.
3. Führen Sie eine gewichtete Summierung der Wertevektoren durch und das Gewicht ist die normalisierte Energie. Dadurch entsteht ein Kontextvektor mit den gleichen Abmessungen wie ein Wertevektor, der Informationen über alle Elemente enthält, die auf intelligente Weise kombiniert werden.
4. Kontextvektoren und Abfragevektoren können zusammen verwendet werden, um Vorhersagen zu treffen, z. B. sie zu verketten und nach Bedarf einem neuronalen Netzwerk zuzuführen, gefolgt von einer Softmax-Schicht.

Das Obige ist der Prozess des allgemeinen Aufmerksamkeitsrahmens. Schauen wir uns an, wie dieser Rahmen auf verschiedene Aufgaben angewendet wird.

Sentiment-Analyse-Aufgabe

Eine Sentiment-Analyse-Aufgabe ist eine Klassifizierungsaufgabe, bei der die Eingabe ein Textstück und die Ausgabe eine Beschriftung ist, die einer der möglichen Emotionen entspricht. Bevor Text in ein neuronales Netzwerk eingespeist wird, muss er bereinigt, formatiert, tokenisiert und in eine Reihe vokabularbasierter Indizes umgewandelt werden. Obwohl dies nicht seq2seq, sondern seq2one ist, gilt der Aufmerksamkeitsmechanismus weiterhin und trägt zur Verbesserung der Leistung bei.

Zur Ausführung dieser Aufgabe können gewöhnliche unidirektionale oder bidirektionale LSTM-basierte Netzwerke verwendet werden. In diesem Fall werden nur der endgültige verborgene Zustand der letzten Schicht (unidirektional) oder die beiden endgültigen verborgenen Zustände (bidirektional, einer von vorne und einer von rückwärts) für die Vorhersage verwendet, indem sie an den Klassifizierungskopf übergeben werden, z. B. vollständig verbundene Schichten und Softmax . Die begrenzten Informationen, die nur der endgültige verborgene Zustand enthält, stellen einen Engpass für die Leistung des Modells dar.

Datumsübersetzungsaufgabe

Datumsübersetzung ist ein Beispiel für eine seq2seq-Aufgabe auf Zeichenebene. Das Ziel dieser Aufgabe besteht darin, ein für Menschen lesbares Datum als Eingabe zu verwenden, beispielsweise „27. Dezember 2022“, und ein maschinenlesbares Datum auszugeben, das dasselbe Datum wie die Eingabe darstellt, beispielsweise „27.12.2022“.

Aufmerksamkeitsbasierte Modelle haben einen Aufmerksamkeitsblock vor der LSTM-Einheit im Decoder. Bei jedem Schleifenschritt werden der Ausgabekontextvektor des Aufmerksamkeitsblocks und die Ausgabe des letzten Schritts verkettet und dann der LSTM-Einheit zugeführt. Eine weitere Implementierung von Aufmerksamkeit besteht darin, den Aufmerksamkeitsblock mit dem Ausgabevektor des aktuellen Schritts nach der LSTM-Einheit und dem Ausgabekontextvektor zu verketten, der dann einer vollständig verbundenen Schicht zugeführt wird, um das nächste Token vorherzusagen. Der Aufmerksamkeitsblock folgt hier dem allgemeinen Rahmen, die Schlüssel- und Wertvektoren sind die gleichen Vektoren, d. h. die verborgenen Zustände der letzten Schicht des Encoders, und die Interaktion zwischen der Abfrage und jedem Schlüssel ist ein kleines neuronales Netzwerk.

In der Dekodierungsphase sagt das Einweg-LSTM jeweils ein Token voraus, sodass die Eingabe für jeden Schritt zwei Optionen hat: das vom aktuellen Schritt vorhergesagte Token aus der Ausgabe des vorherigen Schritts oder die Grundwahrheit. Hier kann ein Hyperparameter definiert werden, um zu steuern, wie viel Prozent der während des Trainings verwendeten Eingabetokens Ground Truth sind und mit denen experimentiert werden kann, um die Modellleistung zu optimieren.

Das obige ist der detaillierte Inhalt vonAnwendung des Aufmerksamkeitsmechanismus im NLP bei der Verarbeitung natürlicher Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:163.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen