Bei Gini arbeiten wir ständig an Verbesserungen der Extraktionsqualität aus Dokumenten. Da unsere Extraktoren immer besser werden, wenden wir verschiedene Metriken an, um die Gesamtqualität unserer Extraktoren wie Genauigkeit, Präzision, Rückruf, F1-Score usw. einzuschätzen.
Eine sehr wichtige Frage bleibt jedoch immer: ist diese spezielle Extraktion in diesem speziellen Dokument richtig oder nicht? Nicht im Durchschnitt, sondern genau in diesem Dokument. Diese Information ist für unsere Partner sehr wichtig: wenn sie sich (sicher) darauf verlassen können, dass diese speziellen Extraktionen genau richtig waren, könnten sie sich die mühsame manuelle Überprüfung ersparen. In diesem Fall nähern wir uns einem vollautomatisierten Prozess der Informationsextraktion aus Dokumenten an. Dies ist einer der Hauptgründe, warum wir bei Gini so überzeugt sind, dass es so wichtig ist, ein realistisches und angemessenes Konfidenzniveau unserer Extraktionen bereitzustellen.
Aber was sind eigentlich nützliche Vorhersagen? Die meisten unserer Extraktoren sind in der Lage, Konfidenzen ihrer selbst geschätzten Extraktionen bereitzustellen. Schauen wir uns einen Extraktor an, der auf einem neuronalen Netz basiert. Neuronale Netze geben immer Wahrscheinlichkeiten ihrer Ergebnisse zurück. Theoretisch könnten wir diese Wahrscheinlichkeiten als Konfidenzvorhersagen anwenden. Wir sind uns jedoch nicht sicher, ob diese Wahrscheinlichkeiten unseren Anforderungen entsprechen, d.h. realistisch und angemessen sind.
Lass uns eine Analogie zum leichteren Verständnis des Problembereichs verwenden. Stellen wir uns eine Gruppe von mehreren verschiedenen neuronalen Netzmodellen als Gruppe von Studenten vor. Ein Student, unser bester Student, ist gut und überzeugt von den Antworten. Der zweite ist auch gut, aber immer unsicher in den Ergebnissen. Ein solches neuronales Netz gibt meist richtige Antworten zurück, jedoch mit geringeren Wahrscheinlichkeiten. Der dritte Student ist schlecht und weiß das. Ein solches neuronales Netz gibt oft falsche Antworten und entsprechend geringe Wahrscheinlichkeiten dieser Antworten zurück. Der vierte Student ist schlecht, aber sehr zuversichtlich in den Antworten (wir alle kennen solche Studenten!).
Infolgedessen weisen nur der erste und der dritte Student Konfidenzniveaus auf, die angemessen sind und weiter angewendet werden könnten. Wie unsere Studenten können neuronale Netzmodelle in ihrem Verhalten sehr unterschiedlich sein.

Interessanterweise und auch sehr ähnlich wie bei Studenten sind Extraktormodelle in Bezug auf Leistung und Vertrauen nicht immer konsistent. Foto von Annie Spratt auf Unsplash
Was brauchen wir in diesem Fall? Verwenden wir noch einmal unsere geliebte Analogie: Wir brauchen einen Lehrer, der die Leistung der Studenten einschätzen kann! Versuche, es folgendermaßen zu betrachten: alle Algorithmen des maschinellen Lernens verwenden Trainingsdaten als Lehrer. In unserer Analogie würden sich Datensätze mit einem Lehrer darauf beziehen, dass unsere “Studenten“ mehrere Vorlesungen oder Unterricht bei diesen verschiedenen Lehrern mit ihren individuellen Datensätzen haben. Im Wesentlichen brauchen wir also einen Lehrer, der die Arbeit jedes einzelnen Studenten nach dem Training bewertet. Glücklicherweise haben wir kürzlich einen solchen Lehrer eingeführt und ihn „Prof. Confident“, also Professor Zuversichtlich genannt. Was sind seine herausragenden Fähigkeiten?
Unsere Kunden geben oft Feedback zu unseren Extraktionen (sind sie richtig oder nicht?). Wenn unser Prof. Confident ein Dokument mit Extraktionen („eine studentische Arbeit“) erhält, sucht er/sie nach sehr ähnlichen Dokumenten mit bereits gegebenem Feedback und nur solchen Dokumenten, die mit demselben Extraktor verarbeitet wurden („derselbe Student“) . Unser Lehrer macht also zwei wichtige Dinge:
- er/sie sucht bereits evaluierte und sehr ähnliche Aufgaben eines bestimmten Studenten
- er/sie erwartet die gleichen Ergebnisse bei einer neuen ähnlichen Aufgabe, da unser Student zwischendurch keine Umschulung („neue Lektionen“) gemacht hat.
Wenden wir dieses Konzept nun auf unser eigentliches Problem an: Wenn unser Extraktor für die IBAN-Extraktion von zehn sehr ähnlichen Dokumenten des gleichen Formats korrekt war, dann erwarten wir die gleiche Qualität von einem neuen Dokument des gleichen Formats (das Vertrauen der IBAN-Extraktion ist gleich 1,0). Wenn der Extraktor bei fünf solcher Dokumente von zehn falsch war, schätzt Prof. Confident die Konfidenz für die IBAN-Extraktion eines neuen ähnlichen Dokuments auf 0,5. Natürlich müssen wir nach der Umschulung unseres “Studenten“ von Anfang an Feedback einholen. Unsere Forschungsergebnisse haben bestätigt, dass solche Konfidenzvorhersagen fast immer richtig sind. Dies war zu erwarten, da ein professioneller Lehrer bei der Einschätzung der Studentenarbeit fast nie größere Fehler macht. Unser Prof. Confident hängt jedoch stark vom Feedback unserer Kunden ab. Ohne genügend ähnliche Dokumente mit bereits gegebenem Feedback kann Prof. Confident keine wertvolle Vorhersage zurückgeben.
Unsere Studenten werden regelmäßig fortgebildet, um ihre Ergebnisse zu verbessern. In diesem Fall ist Prof. Confident nicht in der Lage, die Arbeiten der Studierenden anhand der bisherigen Ergebnisse einzuschätzen. Daher ist es nach jeder Umschulung erforderlich, neues Feedback zu sammeln. Basierend auf unseren Forschungsergebnissen reicht es aus, zu mindestens fünf ähnlichen Dokumenten neues Feedback zu geben.
Jetzt können wir tiefer in die Details eintauchen und versuchen, Fragen zu beantworten wie: Wie sucht unser Prof. Confident nach sehr ähnlichen Dokumenten? Um dies zu beantworten, haben wir uns entschieden, auf jedes Dokument eine speziell entwickelte Vektorisierung anzuwenden. Es kombiniert sowohl die lexikalischen als auch die Formatmerkmale eines Dokuments. Für diese Vektorisierung haben wir ein kleines Lexikon der häufigsten Wörter gesammelt, die in vielen Dokumenten vorkommen. Für jedes Dokument berechnen wir also die durchschnittliche Position (x, y) jedes Wortes aus dem Lexikon. Schließlich sind wir in der Lage, all diese Positionen zu einem Vektor pro Dokument zu verketten. Diese Vektorisierung charakterisiert das Format eines Dokuments, da es nicht von sehr spezifischen Informationen wie konkreten Namen, Adressen oder Beträgen abhängt.
Wenn wir diese Methode auf verschiedene Rechnungen desselben Formats anwenden, die von derselben Firma stammen, erhalten wir sehr ähnliche oder sogar gleiche Vektordarstellungen dieser Rechnungen. Basierend auf dieser Vektorisierung sind wir in der Lage, Ähnlichkeiten zwischen Dokumenten anhand der Abstände zwischen den entsprechenden Vektoren zu berechnen und sind nun in der Lage, sehr ähnliche zwischen ihnen zu finden. Wir haben die Möglichkeit, einen vordefinierten Schwellenwert für Vektorähnlichkeiten anzuwenden, und das Überschreiten dieses Schwellenwerts bedeutet, dass wir ähnliche Dokumente des gleichen Formats haben. Derzeit verwenden wir die Kosinusähnlichkeit mit einem Schwellenwert von 0,9.

Eine Illustration der Dokumentvektorisierung und der Kosinusähnlichkeit zwischen Vektoren. Wir zeigen die Dokumentenvektorisierung in 2-dimensionale Vektoren basierend auf einem Wort aus dem Vokabular. In Wirklichkeit werden 2*N-dimensionale Vektoren angewendet, wobei N die Vokabulargröße ist.
Eine Illustration der Dokumentvektorisierung und der Kosinusähnlichkeit zwischen Vektoren. Wir zeigen die Dokumentenvektorisierung in 2-dimensionale Vektoren basierend auf einem Wort aus dem Vokabular. In Wirklichkeit werden 2*N-dimensionale Vektoren angewendet, wobei N die Vokabulargröße ist.
Lass uns im weiteren Verlauf unserer Untersuchung den technischen Problembereich noch tiefer einsehen. Wie Du Dir vorstellen kannst, ist es keine gute Idee, einen Vektor mit allen zuvor gesehenen (und gespeicherten) Vektoren zu vergleichen, da dies ein sehr zeitaufwändiger Prozess wäre. Derzeit bewahren wir Hunderttausende von Vektoren aller eingehenden Dokumente der letzten 28 Tage auf – und wir müssen uns mit dem Löschen von Vektoren veralteter Dokumente befassen. Es ist offensichtlich, dass Hunderttausende von Vektor-Ähnlichkeitsvergleichen für jedes eingehende Dokument wirklich eine schlechte Idee ist. Um dieses Problem zu lösen, haben wir uns entschieden, sogenanntes Locality-Sensitive Hashing basierend auf Random Binary Projections anzuwenden. Die Verwendung dieses Ansatzes ermöglicht es uns, einen einzelnen Vektor mit nur einer kleinen Teilmenge bereits gespeicherter Vektoren zu vergleichen und somit die Rechenaufwände erheblich zu reduzieren.
Wie Du siehst, ist Ginis „Professor Confident“ in der Lage, die Konfidenzen unserer Extraktionen mit fast 100%iger Genauigkeit zu schätzen, und der Professor kann mit jeder Art von Extraktoren arbeiten – unabhängig von den Algorithmen und Einstellungen dahinter. Alle Bedürfnisse von Prof. Confident sind Rückmeldungen unserer Kunden. Und je besser die Reichweite und Qualität dieses vom Kunden bereitgestellten Feedbacks ist, desto besser wird unser Professor als Lehrer.
. . .
Wenn Du Spaß daran hast, Herausforderungen des Machine Learnings wie diese zu meistern, solltest Du Dir unsere offenen Stellen ansehen. Wir sind immer auf der Suche nach exzellenten Entwicklern, die sich uns anschließen möchten!