Automatische Generierung von Text: Aktueller Stand und Herausforderungen

11.03.2020

Zurück zur Übersicht

In unserem Beitrag „Automatische Textzusammenfassung: Das Wichtigste im Überblick haben wir über die Möglichkeiten der automatisierten Textzusammenfassung gesprochen und die gängigen Herangehensweisen vorgestellt. Hier der letzte Artikel in zwei Sätze gepackt:

Diese Flut an Informationen führt dazu, dass eine manuelle Zusammenfassung in zunehmendem Maße nicht mehr möglich ist und automatisierte Verfahren sich zu einer der populärsten und wichtigsten Teildisziplinen des Natural Language Processing (NLP) entwickelt haben. Im Zentrum steht dabei, den Inhalt eines Textes automatisch auf die wichtigsten Kernaussagen zu reduzieren.

Dies war übrigens eine maschinell erstellte Zusammenfassung, die mithilfe der Textmarker-Methode (extraktiver Ansatz) erstellt wurde. Dabei werden Wörter, Phrasen oder Sätze aus dem bestehenden Text extrahiert und nach Relevanz sortiert. Die relevantesten Elemente werden als Zusammenfassung verwendet.

Zusätzlich gibt es noch die Kugelschreiber-Methode (abstraktiver Ansatz). Hier lernt der Algorithmus anhand vieler Beispiele was eine gute Zusammenfassung für einen langen Text ausmacht, und generiert anhand dieser Zusammenhänge einen völlig neuen Text.

Eine kleine Geschichte der automatischen Textgenerierung

Schon 1959 erzeugte Theo Lutz, Student der Technischen Hochschule Stuttgart, auf seiner Zuse 22 automatisch generierten Gedichte. Dabei nutzte er einen recht simplen Ansatz: Die Wörter der richtigen Wortart werden per Zufall aus einem Repertoire an Wörtern aus bestehenden Gedichten ausgewählt und nach einem fest vorgegebenen Schema an Regeln zu Phrasen zusammengefügt. So entstehen seine „Stochastischen Texte“, die er in einer Zeitschrift unter einem Pseudonym veröffentlichen ließ.

Viele Jahre später hat sich die gängige Taktik zur automatischen Textgenerierung trotz vieler theoretischer Erkenntnisse nicht stark verändert. Ein vordefiniertes Regelwerk bietet bei einem wiederkehrenden Schema, wie z.B., bei Wetter- oder Spielberichten im Sport, die Möglichkeit Daten in Fließtexte zu wandeln.

Auch die meisten Chatbots nutzen dasselbe Prinzip zur Textgenerierung: Für jede zu beantwortende Frage wird eine passende Antwort vordefiniert. Ändert sich die Formulierung der Frage minimal, sodass sie dem Regelwerk nicht bekannt ist, kann die Frage nicht beantwortet werden und die Standard „Das weiß ich leider nicht“ Rückmeldung wird ausgegeben.

Im Bereich E-Commerce ist die Generierung von automatischen Produkt-Texten auf diese Art und Weise sehr gängig. Anhand der Produkteigenschaften, wie z.B. Hersteller oder Produktkategorie wird ein grober Entwurf des Textes erzeugt.  Ein Mensch muss diesen dann kontrollieren, veredeln und eventuell fehlende Informationen nachpflegen. Auf diesem Weg kann einiges an manueller Arbeit eingespart werden.

Mit künstlicher Intelligenz hat das alles nicht viel zu tun, ebenso fehlt dem Algorithmus jede Form von Verständnis des Inhaltes des Textes.

Durch die gesteigerte Rechenkapazität moderner Rechner, in Verbindung mit innovativen Software-Architekturen haben sich neue Möglichkeiten ergeben. Insbesondere künstliche, neuronale Netze (auch Deep Learning genannt) ermöglichen die Entwicklung von komplexen Sprachmodellen.

Der große Durchbruch erfolgte hierbei Ende 2018 mit BERT, seitdem werden Innovationen praktisch im Wochentakt bekannt gegeben und führen zu immer neuen Sensationen.

Wer oder was zur Hölle ist BERT?

Etwa der Bert aus der Sesamstraße? Nicht ganz! BERT steht für Bidirectional Encoder Representations from Transformers und ist ein State-Of-The-Art Sprachmodell, das von Google-Forschern entwickelt wurde. BERT punktet in annähernd allen Disziplinen des Natural Language Processing und setzte neue Maßstäbe.

Die Funktionsweise von BERT lässt sich auch ohne mathematische Formeln und theoretische Details erklären:

BERT ist der Encoder eines Encoder-Decoder-Modells.

Vorstellen kann man sich das am besten an Hand eines maschinellen Text-Übersetzers (z.B. Google Translate).

Ein Wort wird in einer Sprache enkodiert und erhält eine abstrakte Repräsentation. In einer anderen Sprache wird dieses Wort dann wieder dekodiert und damit übersetzt.

Zum Beispiel kann das deutsche Wort lernen mit der Zahl 1 enkodiert werden. Das Wort, für welches die Repräsentation in der anderen Sprache steht, wird anstatt dieser Zahl zurück dekodiert. So erhält man die korrekte Übersetzung in verschiedenen Sprachen.

Sprache ist jedoch stark vom Kontext abhängig und der Sinn eines Wortes kann sich je nach umliegenden Wörtern verändern. Im Deutschen ist ein klassisches Beispiel hierfür das Wort umfahren, das sowohl niederfahren, als auch vorbeifahren bedeuten kann.

Frei von Kontext ist so die wahre Bedeutung von Wörtern schwer zu fassen und eine Übersetzung in eine andere Sprache mit hoher Wahrscheinlichkeit falsch.

Wenn wir nun die Texte nur enkodieren, ohne sie zurück zu dekodieren, schaffen wir so eine (Achtung Mathe: vektorisierte) Repräsentation des eingegangenen Textes. Damit haben wir die Möglichkeit zu lernen welche Abhängigkeit Wörter zueinander haben und können diese Informationen weiterverwenden.

Genau hier setzt BERT an. Der Clou dabei ist, dass dies nicht nur auf der Wort-Ebene geschieht, sondern ganze Texte enkodiert werden, wodurch auch Kontext miteinbezogen wird und so die kodierten Repräsentationen sich je nach Umstand ändern. Dadurch sind wir in der Lage viele Eigenheiten der Sprache zu erfassen, und können somit auch deren Semantik “verstehen”. Im Falle des maschinellen Übersetzers ist es so auch möglich nicht nur einzelne Wörter zu übersetzen, sondern ganze Texte.

Diese Repräsentationen können auf verschiedene Art und Weise genutzt werden. So kann man durch einen Vergleich der Repräsentationen auf eine semantische Ähnlichkeit schließen, einen maschinellen Übersetzer erstellen, oder eben Texte automatisiert generieren.

Vom Sprachmodell zum Textgenerator

Mit BERT haben wir nun eine abstrakte Repräsentation von Texten und Wörtern, in denen Sinn und Eigenheiten der Sprache implizit vorhanden sind. Texte generieren kann das Modell aber noch nicht -dies muss erst erlernt werden. Hierzu wird der Decoder-Teil mit einer großen Menge an Daten „trainiert“. Die Idee dabei ist, dass das Modell aus einem gegebenen Kontext das Wort vorhersagt, dass am wahrscheinlichsten als nächstes folgt. Die grammatikalischen Eigenheiten der Sprache sind bereits angelernt und können hier einfließen.

Andere Modelle (z.B GPT-2) werden speziell so gebaut, dass das Generieren von Text in der Architektur inkludiert ist. Die Ergebnisse hier waren so gut, dass die Autoren moralische Bedenken hatten, das Modell öffentlich zugänglich zu machen und veröffentlichten nur eine abgespeckte Version.

Man kann sich von der Güte der Ergebnisse über folgenden Link (https://transformer.huggingface.co/doc/distil-gpt2) selbst überzeugen. Verschiedene State-Of-The-Art Modelle können hier einen beliebigen, englischsprachigen Text automatisch vervollständigen. Hierzu muss in der Regel mindestens ein Satz angegeben werden, da wie zuvor erwähnt mehr Kontext die Ergebnisse verbessert.

Herausforderungen

So beeindruckend die Ergebnisse auch sind, offenbaren sich auch einige Schwächen. Es fällt auf, dass die Zusammenstellung der Textbausteine willkürlich ist. Das Modell schlägt die Wörter vor, die es für wahrscheinlich hält. Da die Generierung von Content aber stets mit einer Absicht, oder Message verbunden ist, gibt es oft eine Diskrepanz zwischen erwartetem und generiertem Text.

Bei einem klar definierten Ziel kann das Modell speziell für diese Aufgabe trainiert werden. So gibt es bei unserem Eingangs-Beispiel, der automatischen Zusammenfassung, einen klaren Zusammenhang zwischen dem Ausgangstext und einer kürzeren Zusammenfassung, im Sinne von: „Wie komme ich von einem langen Text zu einer Zusammenfassung?“, erlernt das Modell die latenten Eigenschaften, die dies ermöglichen. Voraussetzung dafür ist immer ein Datensatz, der aus Textpaaren von Original und Zusammenfassung besteht. Typischerweise bestehen diese Datensätze aus mehr als 100.000 Paaren. Zum Erlernen der Zusammenhänge sind viele Stunden an Rechenzeit nötig, wobei die Anforderungen an die Rechenleistung die eines gewöhnlichen Computers übersteigen.

Alle genannten Beispiele beruhen auf Modellen der englischen Sprache. Die Algorithmen lassen sich aber auch für Deutsch nutzen. So wurden für BERT schon deutsche Versionen veröffentlicht. Der Haken: Es fehlen ausreichend große Datensätze zum Trainieren. Idealerweise sind diese frei verfügbar, damit Ergebnisse und Verbesserungen über Arbeitsgruppen hinweg vergleichbar gemacht werden können.

Schluss

Die aktuellen Durchbrüche in dem Feld der automatisierten Textgenerierung bieten uns nie dagewesene Möglichkeiten, die allerdings durch einen hohen Aufwand erkauft werden. So wird insbesondere daran geforscht, die Ergebnisse zu verbessern, aber auch das Training weniger aufwändig zu machen. Dies wiederum ermöglicht schneller neue Erkenntnisse zu gewinnen, die zu weiteren Optimierungen beitragen können.

Zurück zur Übersicht