[PYTHON] Satzzusammenfassung mit BERT [für Verwandte]

Modellübersicht

ModelOverview

Ein typisches Encoder-Decoder-Modell (Seq2Seq). Für Seq2Seq ist dieser Bereich hilfreich.

Implementierung von Seq2seq durch PyTorch

BERT wird für den Encoder und Transformer für den Decoder verwendet. Das verwendete BERT-Vorlernmodell wurde am Kurohashi / Kawahara-Labor der Universität Kyoto veröffentlicht. ** BERT kann ein Hochleistungscodierer sein, aber kein Decodierer ** </ font>. Der Grund ist, dass es den Eingang des Encoders nicht empfangen kann. Da BERT jedoch strukturell eine Reihe von Transformatoren ist, kann davon ausgegangen werden, dass es nahezu gleich ist.

Datensatz

Livedoor ** Livedoor News ** wurde als Datensatz für das Training des Modells verwendet. Die Trainingsdaten betragen ca. 100.000 Artikel, die Verifizierungsdaten ca. 30.000 Artikel

--Dataset: Livedoor News

  • Trainingsdaten: 100.000 Artikel
  • Validierungsdaten: 30.000 Artikel
  • Maximale Anzahl von Eingabewörtern: 512 Wörter
  • Maximale Ausgabewörter: 128 Wörter

Dataset

Die rechte Seite des obigen Bildes, der untere Teil ist ** Text (Eingabetext) ** und der Teil, der vom roten Rahmen oben umgeben ist, ist ** Zusammenfassung (Ausgabe) **. Wenn der Text 512 Wörter überschreitet, werden die darunter liegenden Wörter abgeschnitten. 128 Wörter für eine Zusammenfassung. ** Diese Technik wird häufig bei Aufgaben zur Zusammenfassung von Sätzen verwendet und basiert auf der Idee, dass "lange Sätze oft wichtige Dinge haben, die früh geschrieben wurden". ** </ font>

Vorverarbeitung

Diesmal gibt es zwei Hauptarten der Vorverarbeitung. "Word Split" und "Word Piece".

1. Wortteilung

** MeCab + NEologd ** wird zur Wortteilung verwendet. → Warum morphologische Analyse verwenden?

Wie in der Abbildung oben gezeigt, können Sprachen wie Englisch in Wörter mit halber Breite unterteilt werden, Japanisch jedoch nicht. Daher wird es durch das morphologische Analysewerkzeug unterteilt.

  1. WordPiece Übrigens speichert ein solches Modell ein Vokabular im Voraus und verbindet die Wörter im Vokabular, um einen Satz auszugeben. Daher werden ** Wörter, die nicht im Wortschatz enthalten sind, grundsätzlich durch Sonderzeichen wie "[UNK]" ** ersetzt. Die richtige Nomenklatur ist jedoch wichtig für die Satzzusammenfassung. Deshalb ** möchte ich Wörter, die nicht im Wortschatz enthalten sind (im Folgenden unbekannte Wörter), so weit wie möglich reduzieren. ** ** **

Daher wird häufig eine Methode namens "** WordPiece **" verwendet. ** WordPiece dient dazu, unbekannte Wörter (Wörter, die nicht im Vokabular enthalten sind) weiter zu unterteilen und sie durch Kombinieren von Wörtern im Vokabular auszudrücken ** </ font>. Speziell,

Es sieht aus wie auf dem Bild oben. In diesem Fall war das Wort "Garden Village Hotel" nicht in der Vokabelliste enthalten, daher wird es durch eine Kombination von Wörtern im Vokabular wie "Garden", "Villa" und "Hotel" ausgedrückt.

Lernen

Wie in der obigen Abbildung gezeigt, wird ** Eingabetext ** (Artikeltext) im Encoder und ** Ausgabetext ** (Zusammenfassungstext) im Decoder zum Lernen eingestellt.

Das Protokoll zum Zeitpunkt des Lernens ist wie folgt.

Wenn man das Bild oben betrachtet, kann man sehen, dass die Genauigkeit auf der linken Seite allmählich zunimmt und der Verlust auf der rechten Seite allmählich abnimmt.

BERT Ergänzung

Das Folgende ist ein BERT-Papier. Weitere Informationen finden Sie hier. https://arxiv.org/abs/1810.04805

BERT verfügt im Gegensatz zu gewöhnlichen Modellen über zwei Lernprozesse.

  1. ** Pre-Training ** (Pre-Training)
  2. ** Transferlernen ** (Feindrehen)

1. Vorlernen

Vor dem Lernen muss eine bestimmte Aufgabe nur mit dem BERT-Modell trainiert werden. Dies ermöglicht es, den Einbettungsvektor (Einbettungsschichtvektor) jedes Wortes zu lernen. Mit anderen Worten, ** Sie können die Bedeutung eines einzelnen Wortes lernen **.

2. Lernen übertragen

Beim Transferlernen wird ein vorab trainiertes Modell mit anderen Ebenen kombiniert, um Ihre eigenen Aufgaben zu trainieren. Auf diese Weise können Sie ** in kurzer Zeit lernen, verglichen mit dem Erlernen der Aufgabe von Grund auf **. Da das Modell, das BERT verwendet, eine große Anzahl von SOTA (State-of-the-Art) erzeugt, ist es außerdem ** genauer als das von Grund auf neu erlernte Modell **.