[PYTHON] Unerträgliche Aufmerksamkeitsmangel bei der Verarbeitung natürlicher Sprache

"Sie hören nur den letzten Teil meiner Worte."

Tatsächlich zeigt dieses Papier das Ergebnis, dass nicht nur Menschen, sondern auch neuronale Netze gleich waren.

Frustratingly Short Attention Spans in Neural Language Modeling

Die Entschuldigung lautet: "Weil es ausreicht, um Ihr nächstes Wort vorherzusagen", aber es scheint in den menschlichen Beziehungen und in der Forschung dasselbe zu sein.

In diesem Band möchte ich zusammen mit der Einführung der oben genannten Papiere und anderer verwandter Papiere einen Blick darauf werfen, dass nur die letzte Person wirklich benötigt wird, und wenn ja, warum dies der Fall ist. ..

Die referenzierten Artikel werden auf dem folgenden GitHub verwaltet. Es wird täglich aktualisiert. Wenn Sie also an Forschungstrends interessiert sind, machen Sie bitte Star & Watch! ..

arXivTimes ax.PNG

Was ist Aufmerksamkeit?

Aufmerksamkeit ist eine Methode, um sich auf wichtige Punkte in der Vergangenheit zu konzentrieren (= Aufmerksamkeit), wenn mit kontinuierlichen Daten umgegangen wird. Das Bild ist, dass Sie bei der Beantwortung einer Frage auf ein bestimmtes Schlüsselwort in der Frage der anderen Person achten. Wie in diesem Beispiel dargestellt, ist es eine weit verbreitete Methode in der Verarbeitung natürlicher Sprache.

Die folgende Abbildung zeigt, dass wir uns bei der Vorhersage der nächsten verborgenen Ebene $ h ^ * $ (rotes Kästchen) auf die letzten 5 verborgenen Ebenen ($ h_2-h_6 $) beziehen. $ A_1-a_5 $, das in der Vergangenheit von jeder verborgenen Ebene auf den Pfeil geschrieben wurde, wird zu "Aufmerksamkeit" und es wird zu "Gewicht", welcher Punkt in der Vergangenheit wichtig ist.

temp.png From Figure 1: Memory-augmented neural language modelling architectures.

Vorschlag im Papier: Lassen Sie uns die Rolle der verborgenen Ebene teilen

Mit dem Aufkommen dieser Aufmerksamkeit hat die Rolle, die die verborgene Schicht in RNN spielt, zugenommen. Zusätzlich zu der ursprünglichen Rolle der "Vorhersage des nächsten Wortes" muss es auch eine Rolle der Aufmerksamkeit spielen, dh "Informationen, die für die Vorhersage der Zukunft nützlich sind". Darüber hinaus wird die Aufmerksamkeit selbst aus der verborgenen Ebene berechnet, sodass Sie auch über die Informationen verfügen müssen, "ob es sich um Informationen handelt, die in Zukunft notiert werden sollten".

Mit anderen Worten, die verborgene Ebene spielt die folgenden drei Rollen in der RNN, die Attention eingeführt hat.

  1. Speicherung von Informationen zur Vorhersage des nächsten Wortes
  2. Speicherung von Informationen darüber, ob diese in Zukunft notiert werden sollen oder nicht (Berechnung der Aufmerksamkeit)
  3. Speicherung von Informationen, die für zukünftige Vorhersagen nützlich sind

Eine Situation, die als One-Operation in einem neuronalen Netzwerk bezeichnet werden kann. Ist es nicht besser, die Arbeit ein wenig zu teilen? Das schlägt dieses Papier vor.

temp2.png

Orange spielt die Rolle von (p) 1, Grün (k) spielt die Rolle von 2 und Blau (v) spielt die Rolle von 3. Dies ist einfach eine Kombination von Vektoren, die als x3 300-Dimensionen implementiert werden, wenn das Original 100 Dimensionen hatte.

Als ich dies mit dem Wikipedia-Korpus und dem Kinderbuchkorpus namens Kinderbuchtest überprüfte, war das Ergebnis, dass es im Allgemeinen effektiver war als das vorhandene Modell, aber es wurde während der Überprüfung klar. Es gab eine Tatsache.

Betrachtet Attention nur den aktuellsten Ort?

image

Diese Abbildung zeigt das Gewicht der Aufmerksamkeit zum Zeitpunkt der Vorhersage, das zufällig aus dem im Experiment verwendeten Wikipedia-Korpus entnommen wurde. Von rechts ist es -1 bis -15, aber -1 ist eins vor, dann zwei, drei usw. und je dunkler die Farbe, desto wichtiger ist es.

Wenn Sie sich das ansehen, können Sie sehen, dass -1, das heißt das jüngste, sehr wichtig ist und seitdem kaum erwähnt wurde.

temp3.png

Dies ist ein detaillierteres Diagramm, aber Sie können sehen, dass die Punkte mit hohen Gewichten um -1 bis -5 konzentriert sind. Tatsächlich wurde die Fenstergröße von Attention (wie weit sie aussieht) optimal auf 5 eingestellt.

Bedeutet das ...?

temp4.png

Dies ist eine RNN, die gewöhnliches n-Gramm (*) verwendet. Wenn ohnehin nur die letzten 5 angezogen werden, können die letzten 5 verborgenen Schichten so verwendet werden, wie sie für die Vorhersage sind.

h^*_t = tanh \left( 
W^N 
\begin{bmatrix}
 h^1_t \\ 
 \vdots \\
 h^{N-1}_{t-N+1} 
\end{bmatrix}
\right)

Auszug aus Gleichung 13

Infolgedessen wird gesagt, dass die Genauigkeit die aufwändige RNN übertrifft und die Genauigkeit dünner ist als die in dieser Studie vorgeschlagene Methode.

temp5.png (Der Wert ist Ratlosigkeit, je niedriger desto besser. Key-Value-Predict ist die vorgeschlagene Methode dieser Forschung, und 4-Gramm ist ein Modell, das einfach die verborgene Schicht der Vergangenheit verwendet.)

Was ist das!

asrhya.jpg aus Shadow Hearts 2

Der Vorhang schließt sich in Form von.

Zwei Probleme, die die unerträgliche Kürze der Aufmerksamkeit schaffen

Erstens gibt es zwei mögliche Probleme mit diesem Ergebnis.

Das Problem bei der Problemeinstellung ist, dass es sich um eine Aufgabe handelte, für die zunächst keine lange Abhängigkeit erforderlich war. Dies war also das Ergebnis. Dies war auch in einer Studie der Fall, auf die Deep Mind zuvor Stanford hingewiesen hatte.

Aus Auf dem Weg zum Erwerb der Fähigkeit, Sätze zu lesen und zu verstehen - Forschungstrends des Maschinenverständnisses.

machine-comprehension-9-638.jpg

Es wird gesagt, dass es Deep Mind gelungen ist, einen Lerndatensatz aus CNN-Nachrichten mechanisch zu erstellen, aber als ich diese Daten verifizierte ...

machine-comprehension-11-638.jpg

Es ist eine Geschichte, dass ich das neuronale Netz mit einem einfachen Modell überwältigen konnte. Als ich nachgeschlagen habe, gab es nur wenige Probleme, die lange Abhängigkeiten und ein Verständnis des Kontexts erforderten, und selbst ein einfaches Modell konnte eine ausreichende Genauigkeit aufzeichnen.

machine-comprehension-12-638.jpg

Mit anderen Worten, auch in diesem Fall war es eine Aufgabe, die selbst mit einem einfachen Modell ausreichend beantwortet werden konnte, so dass es möglich ist, dass selbst mit einem einfachen Modell eine hohe Genauigkeit aufgezeichnet werden konnte und die Aufmerksamkeit in einem kurzen Bereich lag. Um diesen Punkt anzugehen, wurden kürzlich Datensätze entwickelt, die ein hohes Maß an Verständnis erfordern. Stanfords SQuAD und Salesforce's WikiText - Viele Datensätze wie Modeling-Dataset /) wurden allein im letzten Jahr veröffentlicht (Gibt es japanische Daten ...?).

Der andere Punkt ist, dass lange Abhängigkeiten möglicherweise nicht gut erfasst werden. Dies kann teilweise auf den Mangel an Daten zurückzuführen sein, die solche Abhängigkeiten wie oben beschrieben erfordern, aber es scheint Raum für Überlegungen hinsichtlich der Netzwerkkonfiguration und anderer Faktoren zu geben.

In letzter Zeit geht der Trend zu einem externen Speicher.

Es wird auch versucht, die Struktur so zu ändern, dass längerfristige Abhängigkeiten erfasst werden können.

Dies ist eine Sprachstudie, und im Fall von Sprache ist die Datendichte ziemlich hoch (normale Musik hat fast 40.000 Daten pro Sekunde). Daher besteht ein größerer Bedarf an der Erfassung der langfristigen Abhängigkeit. In diesem Sinne kann die Struktur, die zur Erfassung der langfristigen Abhängigkeit geeignet ist, zuerst in der Stimme herauskommen. (Am Anfang dieses Papiers steht ein Satz wie "WaveNet, aber ich denke, dass CNN immer noch keine langfristige Abhängigkeit erkennen kann", und ich fühle mich heiß.)

Das vorgeschlagene Netzwerk hat die Aufgabe, RNNs in einer Pyramidenform zu stapeln und eine längere Abhängigkeit im oberen Teil zu übernehmen. Das Bild zeigt, dass die Rollen nach der Länge der verantwortlichen Abhängigkeit aufgeteilt sind.

p4.PNG

Übrigens wurde auch eine Sprachsynthese unter Verwendung dieses Modells vorgeschlagen.

Es wurden Versuche unternommen, Zellstrukturen zu untersuchen, um LSTM zu ersetzen, das häufig in RNNs verwendet wird. Untersuchungen haben jedoch gezeigt, dass LSTM, eine vereinfachte Version davon, recht gut hergestellt ist und nicht leicht zu übertreffen ist. Es ist abgebildet.

Daher habe ich den Eindruck, dass es besser ist, die gesamte Netzwerkkonfiguration einschließlich der Externalisierung des Speichers zu entwerfen.

Auf diese Weise wird noch an verschiedenen Punkten geforscht. Die Entwicklung über dieses Ende hinaus wird stetig aktualisiert.

Recommended Posts

Unerträgliche Aufmerksamkeitsmangel bei der Verarbeitung natürlicher Sprache
Leistungsüberprüfung der Datenvorverarbeitung in der Verarbeitung natürlicher Sprache
Arten der Vorverarbeitung in der Verarbeitung natürlicher Sprache und ihre Leistungsfähigkeit
Verarbeiten Sie den Namen der Yugioh-Karte in natürlicher Sprache - Yugiou Data Science 2. NLP
[WIP] Vorverarbeiten von Notizen in der Verarbeitung natürlicher Sprache
Einfaches Auffüllen von Daten, die in der Verarbeitung natürlicher Sprache verwendet werden können
Python: Verarbeitung natürlicher Sprache
RNN_LSTM2 Verarbeitung natürlicher Sprache
Python: Tiefes Lernen in der Verarbeitung natürlicher Sprache: Grundlagen
Python: Deep Learning in der Verarbeitung natürlicher Sprache: Implementierung eines Antwortsatzauswahlsystems
Modell unter Verwendung eines Faltungsnetzwerks in der Verarbeitung natürlicher Sprache
Überblick über die Verarbeitung natürlicher Sprache und ihre Datenvorverarbeitung
Verarbeitung natürlicher Sprache 1 Morphologische Analyse
Verarbeitung natürlicher Sprache 2 Wortähnlichkeit
■ [Google Colaboratory] Vorverarbeitung der Verarbeitung natürlicher Sprache & Janome
[Verarbeitung natürlicher Sprache] Ich habe versucht, die Bemerkungen jedes Mitglieds in der Slack-Community zu visualisieren
Studieren Sie die Verarbeitung natürlicher Sprache mit Kikagaku
100 Klicks in der Verarbeitung natürlicher Sprache Kapitel 4 Kommentar
100 Sprachverarbeitung Knock Kapitel 1 in Python
Verarbeitung natürlicher Sprache für vielbeschäftigte Menschen
[Verarbeitung natürlicher Sprache] Vorverarbeitung mit Japanisch
Künstliche Sprache Logivan und Verarbeitung natürlicher Sprache (Verarbeitung künstlicher Sprache)
100 Sprachverarbeitung Knock-59: Analyse der S-Formel
Installationszusammenfassung des Analysators für die Verarbeitung natürlicher Sprache
Zusammenfassung der Mehrprozessverarbeitung der Skriptsprache
Dockerfile mit den notwendigen Bibliotheken für die Verarbeitung natürlicher Sprache mit Python
[Word2vec] Lassen Sie uns das Ergebnis der Verarbeitung von Unternehmensbewertungen in natürlicher Sprache visualisieren
Natürliche Sprache: ChatBot Part2-Sequenz zu Sequenz Aufmerksamkeit
Antworten und Eindrücke von 100 Sprachverarbeitungsklopfen - Teil 1
100 Sprachverarbeitung Knock-91: Vorbereitung von Analogiedaten
Sprachverarbeitung 100 Knocks-44: Visualisierung abhängiger Bäume
100 Sprachverarbeitung Knock-22: Extraktion des Kategorienamens
100 Klopfen der Verarbeitung natürlicher Sprache Kapitel 1 (Vorbereitungsbewegung)
100 Sprachverarbeitung Knock-26: Entfernen von hervorgehobenem Markup
Sie werden in 100 Tagen Ingenieur. ――Tag 66 ――Programmieren ――Über die Verarbeitung natürlicher Sprache
3. Verarbeitung natürlicher Sprache durch Python 2-1. Netzwerk für das gleichzeitige Auftreten
Lernen Sie die Grundlagen der Dokumentklassifizierung durch Verarbeitung natürlicher Sprache, Themenmodell
3. Verarbeitung natürlicher Sprache durch Python 1-1. Word N-Gramm
Ich habe versucht, natürliche Sprache mit Transformatoren zu verarbeiten.
Status jedes Python-Verarbeitungssystems im Jahr 2020
Praktische Warenmitteilung zur Verarbeitung natürlicher Sprache
[Python] [Verarbeitung natürlicher Sprache] Ich habe Deep Learning ausprobiert (auf Japanisch von Grund auf neu erstellt)
[Python] Sortieren Sie die Liste von pathlib.Path in natürlicher Reihenfolge
100 Sprachverarbeitung Knock UNIX-Befehle in Kapitel 2
100 Sprachverarbeitung Klopfen Sie auf reguläre Ausdrücke, die Sie in Kapitel 3 gelernt haben
Zeigen Sie das Ergebnis der Geometrieverarbeitung in Python an
100 Sprachverarbeitung Knock-32 (mit Pandas): Prototyp des Verbs
Sprachverarbeitung 100 Schläge-45: Extraktion von Verbfallmustern
100 Sprachverarbeitung Knock-75 (mit Scicit-Learn): Gewicht der Identität
100 Sprachverarbeitung klopft Morphologische Analyse in Kapitel 4 gelernt
Lassen Sie uns die Verarbeitung natürlicher Sprache mit der COTOHA-API genießen
100 Sprachverarbeitungsklopfen 03 ~ 05
100 Sprachverarbeitungsklopfen (2020): 40
100 Sprachverarbeitungsklopfen (2020): 32
100 Sprachverarbeitungsklopfen (2020): 47
100 Sprachverarbeitungsklopfen (2020): 22
100 Sprachverarbeitungsklopfen (2020): 26
100 Sprachverarbeitungsklopfen (2020): 34
100 Sprachverarbeitungsklopfen (2020): 28