ART – Ein neues Tool zur automatischen Generierung von Finanzberichten

|
|

Einen großen Bereich beim Führen eines Unternehmens stellt die Erstellung von Aufzeichnungen und Berichten dar. Unter diesen ist wohl die Finanzierung eines der wichtigsten Felder. Alle Unternehmen müssen detaillierte Informationen über Finanzen, Kapital, Investitionen, Ausgaben, etc. aufbewahren. Dies wird vor allem aus rechtlichen Gründen gemacht, kann aber auch bei der Zusammenarbeit mit Analyst*innen und Investor*innen nützlich sein. Unternehmen stellen jährlich – manchmal auch für jedes Quartal – ihre Daten, Ergebnisse und Strategien in einem Finanzbericht vor. Diese Berichte sind oft umfangreich und langwierig und erfordern daher einen hohen Zeit- und Arbeitsaufwand. Es ist davon auszugehen, dass viele Unternehmen viel Geld und Arbeitsstunden für diese Berichte investieren. Das Automatisieren dieses Prozesses, auch nur teilweise, hat das Potential die Effizienz zu steigern und die Ausgaben für Unternehmen zu reduzieren. 

Die Herausforderungen der Automatisierung 

Natürlich wäre es großartig, wenn der gesamte Bericht auf magische Weise über einen Knopfdruck erstellt werden würde – die Technik ist aktuell jedoch noch nicht ganz so weit. Daher müssen wir etwas realistischer bleiben und schauen, was überhaupt alles automatisiert werden kann. Finanzberichte sind ein Sammelsurium aus Zahlen, Diagrammen und Tabellen gekoppelt durch schriftliche Abschnitte. Die wesentlichen schriftlichen Teile eines Finanzberichts, können in zwei Kategorien unterteilt werden: Narratives und Finanzbericht. Narratives ist jener Text, der sich nicht direkt auf die vorhandenen Daten stützt oder diese beschreibt und ist in der Regel etwas, das sich nicht auf die Finanzen bezieht. Finanzberichte sind mehr oder weniger das genaue Gegenteil und sind sehr stark mit den Finanzen verknüpft; hierunter fallen auch die Beschreibungen der Diagramme und Tabellen. Diese Berichte ähneln den nachfolgenden in der Regel und haben daher im Allgemeinen wenig Abwechslung. 

Durch diese beiden Kategorien ist es klar, dass Finanzberichte ein besseres Automatisierungspotential aufweisen. Zum Beispiel ist das Beschreiben einer Tabelle ziemlich objektiv und bietet kaum Möglichkeiten der Interpretation (Bitte nicht verwechseln mit der Erklärung einer Tabelle!). Sicherlich könnte man ein Automatisierungstool entwickeln, welches die Tabellenwerte liest und diese daraufhin in Satzvorlagen einbettet, allerdings wären diese Texte sehr langweilig zu lesen. Während die Bedeutung eines Satzes immer gleich bleibt, bleiben Satzbau und Wortwahl dem/der Autor*in überlassen. Das klingt immer mehr nach einem Problem der maschinellen Übersetzung, was durchaus realistisch ist. Im Wesentlichen möchten wir ein Modell entwickeln, das mit einer Tabelle von Finanzunterlagen versehen werden kann, und anschließend Sätze generiert, die die Tabelle beschreibt. 

 Wie liest und beschreibt man eine Tabelle?

Es ist leicht einer Person eine Tabelle zu geben und zu bitten diese zu beschreiben. Je nach Tabelle brauchen sie vielleicht einige Sekunden, um herauszufinden was die Tabelle aussagt, doch fast jeder ist in der Lage diese Aufgabe erfolgreich zu meistern. Es ist allerdings nicht so einfach, ein neuronales Netz mit all den Tabellen zu füttern und einen fertigen Bericht als Ausgabe zu erwarten. Ein Netzwerk dieser Größe zu bauen, würde eine fast schon komische Menge an Rechenleistung erfordern und es gäbe keine Garantie, dass es auch wirklich funktioniert. Das Problem muss also zuerst etwas heruntergebrochen werden: Anstatt sich auf ganze Tabellen und Berichte zu fokussieren, können wir das Problem vereinfachen, indem wir einen Satz nach dem anderen generieren.  

Indem wir uns nur auf einen Satz konzentrieren, können wir die Komplexität des Problems, ebenso wie die Größe des finalen Modells erheblich reduzieren. Das bedeutet auch, dass wir überlegen müssen, wie unsere eingegebenen Daten aussehen sollen. Rückwärts gedacht haben wir einen Satz, welcher etwas über eine Tabelle aussagt; dieser Satz stützt sich nur auf einige wenige Zellen der Tabelle. Die anderen Zellen der Tabelle könnten also genauso gut nicht existieren, um diesen Satz zu schreiben, was bedeutet, dass die Eingabedaten jeder Stichprobe kleiner sind als die vollständige Tabelle. Wenn man mit Menschen darüber nachdenkt, macht es also Sinn: Gib ihnen eine Tabelle in die Hand und sage einfach: „Beschreibe es“, ist es weniger deutlich, als wenn man sagt: „Beschreibe was diese Zahl bedeutet“. Unsere Aufgabe hat sich geringfügig verändert, aber das Ziel bleibt am Ende dasselbe. Wir möchten jetzt ein Modell, welches einen Unterabschnitt oder eine Liste von Zellen aus einer Tabelle verarbeiten und einen Satz generieren kann, der sie beschreibt. 

Wie sollten die Daten aussehen? 

Es gibt verschiedene Wege eine Tabelle als Merkmalsvektor darzustellen. Eine Möglichkeit wäre es, die Tabelle als Liste von Sätzen weiterzugeben, beispielsweise Zeile für Zeile oder Spalte für Spalte. Das klingt annehmbar, jedoch gehen auf diese Weise viele Informationen verloren, da wir nicht mehr wissen, wo die Zeilen oder Spalten beginnen und enden. Wir können einige spezielle Token hinzufügen, um dies zu verfolgen und es sogar erweitern, um weitere Informationen wie Zellen und Überschriften sowie Tabellentitel aufzunehmen. Diese hinzugefügten Token lassen unsere Eingabedaten ähnlich wie HTML aussehen, mit Eigenschaften, denen die Token folgen. Beispielsweise befindet sich nach jeder Zelle eine </cell> Token und nach jeder Zeile eine </row> Token und so weiter. 

Ein eingegebener „Satz“ könnte zum Beispiel wie folgt aussehen: 

Insurance and Guarantee Program Liabilities of September 30, 2020 and 2019</section_title> 2020</col_header> 2019</col_header></row> 
Federal Crop Insurance - Department of Agriculture</row_header> 7.7</cell> 8.9</cell></row>. 

Da wir wissen, wie die Daten aussehen, müssen wir nun herausfinden, welche Zellen aus der vollständigen Tabelle an erster Stelle ausgewählt werden. Zu diesem Punkt hatten wir bereits mehr oder weniger einen Korpus aus Sätzen eines Berichts, der mit der Tabelle, welchen sie beschrieben, gepaart waren. Ein Algorithmus wurde verwendet, um den Satz zu verarbeiten und alle Wörter oder Geldbeträge abzugleichen, die sich ebenfalls in der Tabelle befanden. Diese übereinstimmenden Zellen bilden zusammen mit ihren jeweiligen Zeilen- und Spaltenüberschriften und dem Tabellentitel die Untertabelle, die als Eingabedaten angegeben werden. Der Satz wird dann zu den Zieldaten, welche die Maschine zu reproduzieren versucht. 

Transformer Network 

Ein relativ neues, aber populäres neurales Netz sind Transformer-basierte Modelle. Transformer können für verschiedenste Aufgaben genutzt werden, aber vor allem werden sie beim Natural Language Processing, der Textgenerierung und der maschinellen Übersetzung verwendet. Zuvor wurde erwähnt, dass es sich bei dieser Aufgabe im Wesentlichen um maschinelle Übersetzung handelt, insbesondere darum, wie wir einen Satz in unserer „Tabellen-Sprache“ zu einem Satz in einer vertrauteren Sprache wie Deutsch oder Englisch übersetzen möchten. Für diese Aufgabe haben wir einen BERT2BERT-Transformer verwendet, welcher aus zwei verbundenen BERT-Modellen besteht. 

Transformer werden mit Encodern und Decodern gebaut und verlassen sich stark auf Attention, insbesondere Multi-Head Self-Attention. Attention ist eine Technik, die es neuronalen Netzen ermöglicht, sich mehr auf wichtige Merkmale und Informationen zu konzentrieren sowie Abhängigkeiten und Muster innerhalb von Daten leichter zu lernen. Ebenfalls macht es Attention für Netzwerke möglich, mit längeren Informationssequenzen zu arbeiten, wenn man dies beispielweise mit rekurrenten neuronalen Netzen vergleicht. Transformer haben ein paar weitere Tricks, welche es ihnen erlauben effizienter und schneller zu trainieren. Obwohl sie mit sequentiellen Daten arbeiten, trainieren sie nicht-sequentiell mit Hilfe von Positionskodierungen. Der Vorteil davon ist, dass sie in der Lage sind, die gesamte Sequenz gleichzeitig zu trainieren, anstatt die Teile der Sequenz einzeln zu verarbeiten. In Kombination mit einer GPU kann dieses parallelisierte Training stark beschleunigt werden.  

Funktioniert das? 

Table-to-Text-Experimente werden schon seit einigen Jahren durchgeführt und man kann verschiedene Erfolge mit Transformer erkennen. Die Aufgabe, Finanzberichte zu erstellen, sollte theoretisch besser funktionieren als typische Table-to-Text-Experimente. Ein typischer Datensatz, der dafür verwendet wird, heißt ToTTo und besteht aus 120.000 Tabellen, die in Wikipedia gefunden wurden. Dieser Datensatz hat uns eine Inspiration gegeben, wie unser Datensatz erstellt wurde, nämlich die Tabellen, die in kleinere Untertabellen aufgeteilt wurden, sowie der Matching-Algorithmus zur Bestimmung, welche Zellen für den Satz relevant waren. Der ToTTo-Datensatz behandelt viele verschiedene Themen, daher muss ein Modell extrem universell einsetzbar sein. Das Team von Google konnte mit BERT2BERT einen BLEU-Score von 0,44 in seinem ursprünglichen ToTTo-Paper erreichen. 

Nach unseren Experimenten war es unserem BERT2BERT-Modell möglich einen überraschenden BLEU score von 0.63 zu erreichen. Da sich unser Modell nur mit Finanztabellen auseinander setzt, muss es nicht universell sein. Dies könnte auch erklären, warum es das BERT2BERT-Modell bei ToTTo-Daten übertraf. Die Sätze, die das Modell produzierte, waren von hoher Qualität und entsprachen den Daten in der Tabelle. Die Grammatik und Flüssigkeit waren ebenfalls erstklassig, und selbst Sätze mit niedriger Punktzahl hatten, wenn überhaupt, nur wenige grammatikalische Fehler. Als Prototyp zeigt dieses Modell sicherlich Potenzial und könnte nach ein paar kleinen Optimierungen oder mit einem Trainingsset von höherer Qualität sogar serienreif sein.

Prof. Dr. Rafet Sifa

Rafet Sifa ist seit 2023 Professor für Applied Machine Learning an der Universität Bonn. Am Fraunhofer IAIS leitet er die Abteilung Media Engineering und das Geschäftsfeld Cognitive Business Optimization. Der Schwerpunkt seiner aktuellen Forschung liegt auf dem Gebiet des hybriden Maschinellen Lernens. Seit 2020 übt Rafet Sifa eine Lehrtätigkeit am Bonn-Aachen International Center for Information Technology (b-it) aus. Seine Lehrveranstaltungen behandeln insbesondere das Thema Data Mining. Seine Promotion und seinen […]

Weitere Blogartikel