Blog   

Aus der NLG-Forschung: (wie) funktioniert Textgenerierung mit Neuronalem Netz?

Teilen

Mehrmals im Jahr findet Retrescos interner Hackathon statt: Das bedeutet zwei Tage Zeit, sich neuen Thematiken abseits des Tagesgeschäfts zu widmen, einen Blick über den Tellerrand zu riskieren und neue Ansätze auszuprobieren, die helfen, die eigenen Technologien aus anderen Perspektiven zu betrachten und innovativ voranzutreiben.

Inspiriert von der E2E NLG Challenge, die 2017 von der Heriot-Watt Universität ausgerufen wurde, hat ein Team von Retresco-Entwicklern sich daran gemacht, den traditionellen Prozess der Textgenerierung durch ein neuronales Netz zu ersetzen.

Der End2End Ansatz zielt darauf ab, dass ein NLG-System sich den Prozess der Textgenerierung von den strukturierten Daten bis hin zum fertigen Text – also von einem Ende zum anderen – selbst aneignet. Die große Hoffnung hierbei wäre, dass dieses System zukünftig einfach mit Daten gefüttert werden kann, von ihnen lernt und sie selbständig abstrahiert, sodass ohne menschliches Zutun neue Formulierungen und Texte entstehen.

Um Ausmaße und Vorteile der End2End-Textgenerierung zu verstehen, ist es hilfreich, sich den Status Quo der „traditionellen“ Textgenerierung noch einmal zu vergegenwärtigen.

Wie funktioniert automatische Textgenerierung?

Bevor die automatische Textgenerierung mit einem System wie der rtr textengine beginnt, wird in einem initialen Setup der strukturelle Rahmen des gewünschten Textoutputs im Programmcode festgelegt: Sämtliche Eingabeparameter von Thematik und Textart bis hin zum Umfang des Endproduktes sind folglich im Vorhinein in einem „Story Plot“ definiert. Der anschließende Prozess der Textgenerierung lässt sich in verschiedene Schritte einteilen, wobei die Übergänge fließend sind.

Im ersten Schritt der Textgenerierung entscheidet ein Algorithmus welche Informationen im Text kommuniziert werden sollen. Dazu wird der strukturierte Datensatz nach relevanten Aspekten wie bspw. Extremwerten durchsucht und diese in sogenannten „Aussagen“ aggregiert. Da hierfür nur schwer ein allgemein gültiges Modell konstruiert werden kann, stellt das Extrahieren der wirklich relevanten und spannenden Informationen oft die größte Herausforderung für die Textgenerierung dar.

Der „Textplaner“ bringt diese Aussagen nun anhand des vorher definierten Story Plots in eine sinnvolle Reihenfolge; im darauffolgenden „Satzplaner“ werden ihnen sprachspezifische Informationen zugeordnet. Dazu wählt das System die passendsten Formulierungen aus seinem Repertoire und füllt sie mit den ausgewählten Datenwerten.

Es handelt sich dabei aber um weitaus mehr als ein bloßes Einsetzen der Datenwerte; es findet eine Lexikalisierung der Daten statt: den Wörtern wird eine Bedeutung gegeben. Das fängt schon damit an, dass die textengine die Wörter je nach Satzbau in der grammatikalisch richtigen Form verwenden muss. Eine Lexikalisierung kann aber auch bedeuten, dass die textengine in einem vom FC Bayern München handelnden Text Umschreibungen wie ‚der Serienmeister’ oder ‚der Rekordhalter’ verwendet, um dem Text Varianz zu geben.

Im letzten Schritt kommt der Text in sein finales Ausgabeformat. Dazu können Feinheiten wie das Einfügen von Absätzen oder die Kontrolle von Groß- und Kleinschreibung erfolgen, damit der generierte Text bereit für die Veröffentlichung ist.

Der gesamte Prozess findet in Echtzeit statt. Bezogen auf die automatisierte Berichterstattung im Fußball bedeutet das etwa, dass direkt nach Abpfiff eines Spiels zahlreiche, einzigartige Texte zum Abruf bereitstehen. Damit der Prozess aber überhaupt stattfindet, müssen Anwender ihn für jeden Anwendungsbereich einmalig neu aufsetzen: das Wunschformat des Ausgabecontents muss strukturiert, Schwellenwerte definiert und variantenreiche Formulierungen eingepflegt werden. Im Anschluss daran ist die skalierbare Textgenerierung möglich.

Was wäre also, wenn ein neuronales Netz diesen Mittelteil übernehmen würde? Man nähme auf der einen Seite Daten, auf der anderen Seite Texte – und in der Mitte ein neuronales Netz, das alles Weitere erledigt.

Wie funktioniert die End2End Textgenerierung?

Bei der End2End-Textgenerierung wird die traditionelle Generierungspipeline durch ein neuronales Netz ersetzt. Das bedeutet, dass alle eben beschriebenen Schritte des klassischen Prozesses in einem Modell zusammengefasst werden. Dieses Modell soll dann lernen automatisch auszuwählen, was es sagen will, in welcher Reihenfolge es seine Aussagen treffen will, und welche sprachliche Form sich dazu am besten eignet.

Der Ansatz stammt eigentlich aus der maschinellen Übersetzung, bei der ein solches Modell bspw. einen französischen Satz in einen englischen übersetzt. Für die End2End-Textgenerierung ersetzt man den französischen Satz einfach durch eine Kodierung strukturierter Daten und das Modell lernt direkt von den Daten in den dazugehörigen Text zu „übersetzen.“ Neben der maschinellen Übersetzung findet dieser Ansatz beispielsweise bei Speech-to-Text oder für eine automatische Zusammenfassung von Text bereits Gebrauch.

Übertragen auf NLG könnte ein solches End2End-System durch Input großer Mengen an strukturierten Daten sowie den dazu passenden Texten selbständig lernen neue Formulierungen und Texte zu produzieren. Der große Vorteil liegt auf der Hand: neue Anwendungsfälle ließen sich innerhalb kürzester Zeit erschließen und eine erhebliche Leistungssteigerung würde ermöglicht – und das ohne initiales Setup durch Menschenhand.

Eine maßgebliche Voraussetzung für das Funktionieren dieses Ansatzes ist jedoch ein Training des Modells mit unglaublich vielen Datensatz-Text-Paaren, deren Erstellung wiederum einen nicht unerheblichen Aufwand bedeuten würde.

Funktioniert die End2End Textgenerierung?

Mehr oder weniger.

Es bestätigt sich der Eindruck aus der Forschung: Zwar sind die Texte flüssig lesbar und teilweise entstehen neue Formulierungen, allerdings werden auch die Schwächen schnell deutlich.

Die Intention des generierten Texts ist erkennbar, aber abgesehen von der grammatikalischen Inkorrektheit passieren auch inhaltliche Fehler – oder seit wann nutzt Mac Windows 10?

Der große Vorteil der Selbständigkeit bedeutet nämlich gleichzeitig ein Abgeben von Eingriffsmöglichkeiten: Ein autonom handelndes System bedarf zwar im besten Fall keiner Korrektur, ermöglicht aber auch keine mehr. Fehlerhafte Inhalte und Formulierungen sind die Folge.

Diese ließen sich aber nur durch eine entsprechende Datenlage verhindern. Für ein realistischeres Ergebnis bräuchte man unglaublich große Mengen an Trainingsdaten – vor allem solche, die konsistent sind und mit den eingespeisten Texten übereinstimmen – was die End2End-Textgenerierung wiederum unrealistisch macht.

Umsonst war das Projekt jedoch keineswegs: Zwar ist End2End kein Ersatz für die ausgefeilte Technologie unserer rtr textengine, führte jedoch zu einem tieferen Verständnis der zugrundeliegenden Technologie. Die neuen Erkenntnisse könnten wir an verschiedenen Stellen für die Optimierung einzelner Komponenten unserer Pipeline nutzen. Durch Nutzung der End2End-Architektur ist beispielsweise eine automatisierte Erzeugung neuer Formulierungen durch Kombination bereits bekannter Phrasen oder eine Optimierung des Lexikalisierungsprozesses durch Erlernen der Wortbildungsregeln einer Sprache denkbar. Die End2End-Architektur könnte also partiell helfen unsere Technologie noch besser und effizienter machen.

Der Hackathon zeigte damit einmal mehr, wie wichtig es ist, dass unser Team immer wieder die Gelegenheit bekommt, sich mit Ansätzen abseits des Tagesgeschäfts auseinanderzusetzen, um unsere Technologien noch besser zu verstehen und neue Ideen zu entwickeln. Wer beim nächsten internen Hackathon mit dabei sein möchte, schaut gerne einmal hier vorbei.

Zurück zur Newsübersicht