** Ich habe Deep Learning2 Natural Language Processing ** von Grund auf studiert. Es gibt ** Aufmerksamkeit ** in Kapitel 8, aber nur 4 Seiten waren ** Transformer ** gewidmet, der Grundlage von ** BERT **, das derzeit Mainstream ist.
Tatsächlich ist dies nicht unangemessen, da Zero Tsuku 2 im Juli 2018, Transformer im Dezember 2017 und BERT im Oktober 2018 veröffentlicht wurden.
Dieses Mal möchte ich von ** Zero Tsuku 2 Attention ** zu ** Transformer ** 's Paper ** Attention Is All You Need ** übergehen, was als Grundlage für die aktuelle Verarbeitung natürlicher Sprache angesehen werden kann.
Um die Leistung des ** Seq2Seq-Übersetzungsmodells ** zu verbessern, achten Sie in Kapitel 8 Achtung von Zero Tsuku 2 auf das "I" von Encoder, wenn Sie "I" mit Decoder ** übersetzen. Aufmerksamkeit implementieren **.
Berechnen Sie zunächst mit Attention Weight das ** innere Produkt **, um die Ähnlichkeit zwischen dem I-Vektor des Decoders und jedem Wortvektor des Encoders zu ermitteln, und multiplizieren Sie das Ergebnis mit ** Softmax **, um das ** Gewicht a zu erhalten. ** Fragen. Unter Berücksichtigung des leichteren Verständnisses wird das innere Produkt jedoch durch ** Multiplikation + H-Achsensumme ** berechnet.
Dann wird in der Aufmerksamkeitssumme die ** gewichtete Summe ** jedes Wortvektors von Encoder aus dem Gewicht a berechnet und der ** Kontextvektor ** erhalten. Dieser Kontextvektor spiegelt den Wortvektor von "I" stark wider und zeigt an, dass "I" auf "I" achten sollte.
Der Prozess des Nullsetzens 2 gibt dem leichteren Verständnis Vorrang und wird absichtlich durch ** Multiplikation + Achsensumme ** ohne Verwendung des ** inneren Produkts ** berechnet. Was passiert dann, wenn Sie mit dem inneren Produkt richtig rechnen?
Sowohl die Gewichtsberechnung als auch die Gewichtssummenberechnung werden auf diese Weise aktualisiert, wenn sie in Form eines inneren Produkts vorliegen. Das ist rationaler, nicht wahr?
Übrigens ist in Achtung im Allgemeinen das zu berechnende Ziel ** Abfrage **, der für die Ähnlichkeitsberechnung verwendete Satz von Wortvektoren ist ** Schlüssel ** und der für die Berechnung der gewichteten Summe verwendete Satz von Vektoren ist ** Wert **. sagen. Wenn Sie die Abbildung überprüfen, um diese wiederzugeben,
Das zu berechnende Ziel ** "I" ist Abfrage **, die Menge der für die Ähnlichkeitsberechnung verwendeten Wortvektoren ** hs ist Schlüssel ** und die Menge der für die Berechnung der gewichteten Summe verwendeten Vektoren ** hs ist Wert **. In Zero Tsuku 2 sind Schlüssel und Wert gleich, aber wenn Sie beide unabhängig machen, wird die Ausdruckskraft verbessert.
Eine andere Sache ist im Allgemeinen, dass die Aufmerksamkeit danach aufgeteilt wird, woher die Eingabe kommt.
Wenn Qurery und Key / Value von verschiedenen Orten kommen, heißt es ** Sorce Taget Attention **, und wenn Quety, Key und Value alle vom selben Ort (Self) kommen, heißt es ** Self Attention **. .. Aufmerksamkeit mit Null heißt Sorce Taget Aufmerksamkeit.
Lassen Sie uns nun den Schreibstil ein wenig ändern und einen Begriff im Format ** Self Attention ** hinzufügen.
Ich habe den Abschnitt ** hinzugefügt, der durch das Root-dk ** geteilt wird. Der Grund für die Division durch die Wurzel dk ist, dass bei einem Wert, der in der Berechnung des inneren Produkts zu groß ist, beim Multiplizieren mit ** Softmax ** die anderen Werte 0 sind und ** der Gradient verschwindet **. Verhindern Sie dies. Machen. dk ist die Anzahl der Dimensionen des wortverteilten Ausdrucks, die im Papier 512 beträgt.
Übrigens verwendet Transformer keine RNN, die eine sequentielle Verarbeitung erfordert, und besteht nur aus Attention, die eine parallele Verarbeitung ermöglicht. Daher ist es nicht erforderlich, jede Abfrage einzeln zu berechnen, und ** alle Abfragen können gleichzeitig berechnet werden **, sodass sie wie folgt ausgedrückt werden können.
![Screenshot 2020-09-04 23.07.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/209705/ebf59620-7432-2f75-6714- 4e37375c7af9.png)
Im Papier "Aufmerksamkeit ist alles, was Sie brauchen" wird dies als "Skalierte Punktprodukt-Aufmerksamkeit" bezeichnet und durch die folgende Formel ausgedrückt. Dies ist das Herz von Transformer.
4.Attention Is All You Need Um das im Dezember 2017 veröffentlichte Papier ** Achtung ist alles, was Sie brauchen ** zu verstehen, werde ich nun die Zahlen erläutern, die in dem Papier erscheinen.
Zunächst das Aufmerksamkeitsdiagramm für skalierte Punktprodukte. ** Matmul ** ist das innere Produkt und ** Scale ** ist die Wurzel dk. ** Mask (opt) ** bedeutet, dass der aufgefüllte Teil maskiert wird, wenn die Anzahl der einzugebenden Wörter kürzer als die Sequenzlänge ist. Sie können sehen, dass es als Aufmerksamkeitsgleichung (Q, K, V) codiert ist.
Es handelt sich um ** Multi-Head Attention **, einschließlich der bereits erwähnten Scaled Dot-Produkt Attention. Ein Ausgang der vorherigen Stufe wird als Q, K, V über drei ** lineare (vollständig verbundene Schichten) ** eingegeben. Mit anderen Worten sind Q, K und V die Ausgänge der vorherigen Stufe multipliziert mit den Gewichten Wq, Wk bzw. Wv, und diese Gewichte werden durch Lernen erhalten.
Eine Reihe von Abfragen, Schlüsseln und Werten heißt ** Kopf **. Es ist besser, mehrere kleine Köpfe zu haben, den latenten Ausdruck für jeden zu berechnen und sich am Ende zu konzentrieren, als einen großen Kopf zu haben. Deshalb verwenden wir Multi-Head. In dem Papier beträgt die Ausgabe der vorherigen Stufe 512 Dimensionen und wird durch den Kopf mit 64 Dimensionen in 8 unterteilt.
Die Gesamtkonfiguration ist ** Encoder-Decoder-Übersetzungsmodell **. Ziel ist es, die RNN der sequentiellen Berechnung zu stoppen und nur Attention zu konfigurieren, die eine parallele Berechnung durchführen kann, um die Verarbeitung zu beschleunigen. Nx bedeutet, dass dieselbe Konfiguration N-mal wiederholt wird und N = 6 im Papier.
① Input Embedding Eingaben sind (Anzahl der Stapel, Anzahl der Wort-ID-Spalten). Gibt den konvertierten Vektor unter Verwendung der vorab trainierten Wortverteilungsdarstellung aus (Anzahl der Stapel, Anzahl der Wort-ID-Spalten, Anzahl der Dimensionen). Die Anzahl der Abmessungen des Papiers beträgt 512.
② Positional Encoding Bei der Berechnung der Gewichtssumme gehen ** Wortordnungsinformationen verloren ** ("Ich mag sie" und "Sie mag mich" können nicht unterschieden werden), so dass die Positionsinformationen von Wörtern (Sündenfunktion) im verteilten Ausdruck Und das Muster der cos-Funktion) werden hinzugefügt, um das Lernen von ** relativen Wortpositionen ** zu erleichtern. Mit anderen Worten, dasselbe Wort hat unterschiedliche Vektoren, wenn es sich an unterschiedlichen Stellen befindet. Die Formel für die Positionsinformationen im Papier lautet wie folgt.
③ Add & Norm Verwenden Sie ** Verbindung überspringen **, um eine Normalisierung durch ** Ebenennormalisierung ** und eine Regularisierung durch Dropout durchzuführen. Die Ebenennormalisierung normalisiert jede Dateneinheit (Satz) im Stapel, nicht in Stapeleinheiten.
④ Feed Foward Die Ausgabe der Aufmerksamkeitsebene wird in Features mit zwei vollständig verbundenen Ebenen konvertiert.
⑤ Masked Multi-Head Attention Wenn Sie bei der Berechnung der Aufmerksamkeit von "I" "am", "a" und "cat" angeben, können Sie das vorherzusagende Wort abbrechen, um das vorherige Wort in Key unsichtbar zu machen Setzen Sie die Maske auf.
Transformer wurde als Übersetzungsmodell vorgeschlagen, aber im Verlauf der Forschung wurde klar, dass ** die Fähigkeit von Self Attention, die Bedeutung von Sätzen zu extrahieren **, ziemlich mächtig war und verschiedene Entwicklungen vorgenommen wurden, so dass es einfach ist. Ich werde darauf eingehen.
Juni 2018. Wenn nur die Encoder-Seite von Transformer verwendet wird, wurde die Leistung durch zweistufiges Lernen von ** Vorlernen + Feinabstimmung ** verbessert. Vor dem Lernen wird ** erraten, was das nächste Wort ist **, und es ist nicht gut, zukünftige Informationen zu kennen, daher sind die folgenden Sätze maskiert.
Es ist eine bekannte Tatsache, dass es strukturell einen Nachteil gibt, dass der hintere Kontext nicht verwendet werden kann, und wenn der hintere Kontext verwendet werden kann, kann eine weitere Leistungsverbesserung erreicht werden.
Februar 2018. Um den Back-Kontext irgendwie zu verwenden, habe ich den Vorteil der Parallelverarbeitung durch Attention aufgegeben und versucht, den Back-Kontext mit dem mehrschichtigen bidirektionalen LSTM zu verwenden. Es stellt sich heraus, dass dies die Leistung verbessert.
Oktober 2018. Eine revolutionäre Methode in der Verarbeitung natürlicher Sprache ** BERT ** wurde angekündigt. Kurz gesagt, indem wir das GPT-Vorlernen durch die folgenden zwei Aufgaben ersetzt haben, haben wir eine parallele Verarbeitung unter Verwendung des Kontextes des Kontexts realisiert. Sozusagen die Geburt eines bidirektionalen Transformators.
** ① Maskiertes Sprachmodell **: Lösen Sie das Problem beim Ausfüllen der Lücke. Wählen Sie 15% der Wörter, maskieren Sie 80%, ersetzen Sie 10% durch andere Wörter und lassen Sie 10% unverändert. ** ② Vorhersage des nächsten Satzes **: Bestimmen Sie, ob die Kontexte der beiden Sätze miteinander verbunden sind.
Recommended Posts