Wer, wie, was: Textanalyse über Natural Language Processing mit BERT

Seite 2: ELMo verlangt Training

Inhaltsverzeichnis

Das historisch erste Verfahren, das die Kontextualisierung angeht und eine gewisse Popularität erlangt hat, nennt sich ELMo. Die Gruppe AllenNLP am Allen Institute for AI hat es veröffentlicht, und es ähnelt im Großen und Ganzen anderen Verfahren wie den sogenannten Universal Sentence Encoder von Google, auch wenn die beiden im Detail etwas anders funktionieren.

Die Grundidee von ELMo ist, die Sätze beziehungsweise größere Einheiten wie Absätze kontextualisiert zu betrachten. Dazu reicht es nicht, die Sätze nur in eine Richtung zu lesen, da sich mancher Inhalt erst semantisch am Ende des Satzes richtig erschließt. (vgl. Abb. 6). Der Spruch "Lass mich ausreden!" erfährt somit eine linguistische Begründung.

Die Bedeutung des Homonyms "Bank" erschließt sich erst aus dem Zusammenhang und auf der rechten Seite erst nach dem Wort (Abb. 6).

ELMo betreibt für die Analyse einen erheblichen Aufwand. Es trainiert Kaskaden von Long Short-Term Memories (LSTMs) vorwärts und rückwärts. Als Ausgangspunkt dienen unkontextualisierte Wortvektoren, die mit Convolutional Neural Networks (CNNs) auf Buchstaben-N-Gramme trainiert werden, um Vor- und Nachsilben mit zu berücksichtigen. Besonders wichtig ist das bei sogenannten agglutinierenden Sprachen, in denen Nachsilben die grammatische Funktion bestimmen. Abbildung 7 zeigt ein Übersichtsbild.

ELMo nutzt LSTMs, um Sätze zu analysieren (Abb. 7).

Die Komplexität und damit die Trainingszeit von ELMo ist erheblich. Dafür kann es bereits mit kleinen Datenmengen gute Resultate erreichen. Als Beispiel dienen die Schlagzeilen des Heise-Newstickers aus dem Jahr 2019. Aufgabe von ELMo ist, die semantisch ähnlichsten zu ermitteln. Ohne Grafikkarte dauert die Berechnung äußerst lang, weshalb erneut ein Colab-Notebook die Arbeit übernimmt, dessen Ausführung auf Googles Rechnern erfolgt. Da ELMo jedesmal neu trainiert werden muss, dauert die Ausführung sogar auf Colab bis zu 20 Minuten. Wer die Codebeispiele testen möchte, sollte unbedingt eine GPU bei Colab nutzen und dazu unter Runtime/Change Runtime Type "GPU" auswählen):

Die Ergebnisse von ELMo im Colab (Abb. 8)

Die Ergebnisse für die ähnlichsten Meldungen sind leider bis auf die fast identischen nicht sehr überzeugend. Das liegt an dem Batch-Training und an der Datenmenge, die für ein Training auf der gründen Wiese etwas zu klein ist.

ELMo benötigt eine äußerst hohe Rechenleistung. Leider lassen sich errechnete Ergebnisse nicht direkt weiterverwenden, sondern für einen neuen Anwendungsfall muss eine separate Berechnung mit gleichem Aufwand erfolgen.

Neben dem hohen Rechenaufwand benötigt ELMo durch seine Architektur zudem viel Speicher. Auch leistungsfähige Grafikkarten stoßen daher schnell an ihre Grenzen, weil sie oft "nur" mit 8 GByte RAM ausgestattet sind, was für viele Anwendungszwecke nicht mehr ausreicht.