Verwenden von ML-Algorithmen zum Klassifizieren mehrseitiger Dokumente: VTB-Erfahrung

Im Rahmen der Kreditförderer juristischer Personen fordern Banken Originale verschiedener Dokumente von Unternehmen an. Oft werden diese Dokumente in Form einer einzigen mehrseitigen Datei gescannt - „Stream“. Zur Vereinfachung der Verwendung mĂŒssen Flows in separate Dokumente (einseitig oder mehrseitig) unterteilt und klassifiziert werden. Unter dem Schnitt sprechen wir ĂŒber die Anwendung von Algorithmen fĂŒr maschinelles Lernen bei der Klassifizierung bereits segmentierter Dokumente.



Die Art des Dokuments wird sowohl durch Text als auch durch visuelle Informationen bestimmt. Beispielsweise ist ein Reisepass oder eine Arbeitsmappe visuell leicht zu unterscheiden, ohne den darin enthaltenen Text zu analysieren. DarĂŒber hinaus ist die QualitĂ€t der Texterkennung in solchen Dokumenten eher gering, wenn nicht spezialisierte Lösungen verwendet werden. Daher enthĂ€lt die visuelle Komponente wesentlich relevantere Informationen fĂŒr die Klassifizierung. Der Mietvertrag und die Satzung des Unternehmens können optisch Ă€hnlich sein, die darin enthaltenen Textinformationen unterscheiden sich jedoch erheblich. Infolgedessen wird die Aufgabe der Klassifizierung von Dokumenten auf ein Datenfusionsmodell reduziert, das zwei Quellen unstrukturierter Daten kombinieren sollte: eine visuelle Darstellung des Dokuments und die Ergebnisse der Erkennung von Textinformationen.

Beachten Sie, dass im Bankwesen die Klassifizierung von Dokumenten auch in den FörderbĂ€ndern von Personen auf Scans oder Fotos von Dokumenten verwendet wird, um die angesammelten Geldmittel zu sortieren, Kundenbewertungen zu filtern, um die ServicequalitĂ€t zu verbessern, um Zahlungsdokumente zu sortieren, um NachrichtenflĂŒsse zusĂ€tzlich zu filtern usw. . 

BERT-Modell


Um unser Problem zu lösen, verwendeten wir das BERT- Modell (Bidirectional Encoder Representations from Transformer) - ein Sprachmodell, das auf einem mehrschichtigen bidirektionalen Coding Transformer basiert . Der Transformator empfÀngt eine Folge von Token (Wortcodes oder Wortteile) als Eingabe und erzeugt nach internen Transformationen eine codierte Darstellung dieser Folge - eine Reihe von Einbettungen. Ferner können diese Einbettungen verwendet werden, um verschiedene Probleme zu lösen.


Transformatormodellarchitektur

Wenn dies detaillierter ist, wird der Eingabe eine Folge von Token zugefĂŒhrt, die mit den Positionscodes dieser Token und den Codes der Segmente (Angebote), in denen sich die Token befinden, zusammengefasst ist. FĂŒr jede Eingabesequenz generiert der Transformer eine kontextsensitive Darstellung (eine Reihe von Einbettungen fĂŒr die gesamte Sequenz) basierend auf dem adaptiven Mechanismus der „Aufmerksamkeit“. Jede Ausgabe, in die die "Aufmerksamkeit" einiger Token relativ zu anderen eingebettet ist.


Wir kodieren das Wort "it", einen Teil des "Aufmerksamkeits" -Mechanismus, der sich auf "The Animal" konzentriert, und einen festen Teil seiner Darstellung in der it-Codierung (aus dem Blog "The Illustrated Transfomer" ).

Das BERT-Modell besteht aus zwei Schritten: Vorschulung und Dateioptimierung. WĂ€hrend des Vortrainings löst das Modell zwei Probleme: MLM (Masked Language Model) und NSP (Next Satz Prediction). In der MLM-Aufgabe wird ein bestimmter Anteil der Token in der Eingabesequenz zufĂ€llig gekennzeichnet (maskiert), und die Aufgabe besteht darin, die Werte der maskierten Token wiederherzustellen. Die NSP-Aufgabe ist eine binĂ€re Klassifizierung von Satzpaaren, wenn vorhergesagt werden muss, ob der zweite Satz eine logische Fortsetzung des ersten Satzes ist. WĂ€hrend des Tunings trainieren vorgefertigte Transformatoren diese spezifischen Aufgaben neu. Die transformatorbasierte Abstimmung hat sich in vielen NLP-Aufgaben ( Natural Language Processing ) bewĂ€hrt : automatische Chat-Bots, Übersetzer, Textanalysatoren und andere. Transformator-


SchaltkreisefĂŒr einen automatischen Übersetzer vom Französischen ins Englische (aus dem Illustrated Transfomer-Blog )

Bevor das BERT-Modell erschien, wurden Methoden fĂŒr Paging-Scans verwendet: Faltungszeichen aus Bildern (erhalten unter Verwendung von CNN- Faltungs-Neuronalen Netzen ), Frequenztextattribute ( TF-IDF ) , thematische Text-Tags ( LDA- Themen), Faltungstext-Tags (1-D-Faltung), Worteinbettungen ( WordToVec , GloVe ) und deren Kombinationen. 

Zuvor entwickelte Methoden ergeben eine gute QualitĂ€t. Je nĂ€her die QualitĂ€t dem Maximum kommt, desto schwieriger ist es, sie zu verbessern. Wie wir spĂ€ter zeigen werden, hat die Verwendung des BERT-Modells, als wir bereits eine nahezu maximale QualitĂ€t hatten, dazu beigetragen, diese noch höher zu machen. 

Da wir hauptsĂ€chlich mit russischen Texten arbeiten, haben wir das BERT-Modell verwendet, das in einigen FĂ€llen russischer Texte vorab trainiert wurde ( RuBERT, russisch, aus DeepPavlov). 

Unser Datensatz 


Beschreibung


Die Auswahl der Dokumente, mit denen wir das Klassifizierungsproblem gelöst haben, besteht aus Scans von Unternehmensdokumenten von Unternehmen, die die VTB Bank ĂŒber viele Jahre hinweg gesammelt hat. Mehrseitige Unternehmensdokumente wurden halbautomatisch aus dem gescannten Stream segmentiert und ihre Seiten nach kostenpflichtigen Lösungen klassifiziert.

Die meisten Scans sind schwarzweiß und ein kleiner Teil ist farbig (hauptsĂ€chlich aufgrund von Farbdrucken).

Kunden von GeschĂ€ftsbereichen identifizierten 10 Hauptkategorien von Dokumenten (etwa 30.000 bereits segmentierte mehrseitige Dokumente, ~ 129.000 Seiten). Dokumente mussten aufgrund von Fehlern bei der Segmentierung manuell bereinigt werden. Eine Kategorie „Sonstige“ wurde ebenfalls eingefĂŒhrt, in die alle anderen Kategorien weniger bedeutender Dokumente zusammengefasst wurden (etwa 300 Kategorien, ~ 43.000 bereits segmentierte mehrseitige Dokumente, ~ 128.000 Seiten). Als Ergebnis werden wir einen Klassifikator mit 11 Klassen erstellen. Außerdem haben wir der Kategorie "Andere" (zum Schutz vor dem Narren) etwa 18.000 Bilder aus dem ImageNet-Datensatz hinzugefĂŒgt .

Die 10 Hauptkategorien sind:

  1. Mietvertrag
  2. Auszug aus dem Teilnehmerregister
  3. Unternehmenscharta
  4. Bescheinigung ĂŒber die Registrierung bei der Steuerbehörde
  5. Fragebogen fĂŒr juristische Personen
  6. Russischer Pass
  7. GrĂŒndungsblatt
  8. Bescheinigung ĂŒber die staatliche Registrierung der juristischen Person
  9. Bestellungen / Bestellungen
  10. Entscheidungen / Protokolle

Verschiedene andere Ausweise (auslÀndische PÀsse, Migrationskarten usw.), andere Zertifikate, IP-Fragebögen, ErklÀrungen, Handlungen, Vollmachten, Fragebögen, Entscheidungen des Schiedsgerichts, Bilder von ImageNet und andere wurden in die Kategorie Andere aufgenommen.
Der Zug wurde genommen Etwa 81% der bereits segmentierten mehrseitigen Dokumente (von der Anzahl aller dieser Dokumente), dev - 9%, test - 10%. Aus GrĂŒnden der Reinheit des Experiments wurde die Auswahl so aufgeteilt, dass die Seiten eines segmentierten mehrseitigen Dokuments vollstĂ€ndig in einen Teil fielen: entweder Zug oder Entwickler oder Test.

Zertifiziert gestickte Seiten


Firmenkunden stellen hĂ€ufig keine Originale zur VerfĂŒgung, sondern Kopien von Dokumenten, von denen viele von einem Notar oder von FĂŒhrungskrĂ€ften des Unternehmens beglaubigt sind. DarĂŒber hinaus werden mehrseitige Dokumente hĂ€ufig geheftet, das Firmware-Datum vorgeschrieben und auf der letzten Seite erneut zertifiziert. 

Daher gibt es in unserem Datensatz viele solcher mehrseitigen Dokumente, in denen auf dem letzten Scan (Seite) Siegel, Daten und andere Informationen zur Firmware oder zu Details der Zeugen enthalten sind, die sich jedoch nicht auf die Klasse des Dokuments beziehen. Unten finden Sie die letzten Seiten von zwei verschiedenen mehrseitigen Dokumenten, die aus dem Stream segmentiert sind und die sich kaum richtig klassifizieren lassen, wenn Sie den Rest der Seiten nicht betrachten.


Identische letzte Seiten von Dokumenten verschiedener Klassen

ScanqualitÀt


Obwohl das Scannen von Dokumenten normalerweise in BankbĂŒros erfolgt (mit guten KopiergerĂ€ten), bringen Kunden hĂ€ufig wiederholt gescannte Kopien von Dokumenten mit. Und die QualitĂ€t solcher Kopien leidet stark: Bei Scans treten viele Rauschen und Artefakte auf, die durch schlechte TonerqualitĂ€t, Hologramme und Texturen auf vielen Dokumenten und aus anderen GrĂŒnden auftreten können.

Orientierung


Der Datensatz enthĂ€lt viele Dokumente mit der falschen Ausrichtung des Scans. Dies gilt insbesondere fĂŒr ID-Karten und Textdokumente, die im Querformat erstellt wurden. GrundsĂ€tzlich wird der Text jedoch um ein Vielfaches von 90 Grad (± 5 Grad) gedreht. Beim Extrahieren des Textes haben wir zusĂ€tzlich die „richtige“ Ausrichtung des Bildes festgelegt, sodass der grĂ¶ĂŸte Teil des Textes vertikal ausgerichtet war.

Basislinie


Da die meisten Dokumente von der ersten Seite an zu scannen beginnen, sind normalerweise genĂŒgend Informationen vorhanden, um die Klasse zu bestimmen, und viele mehrseitige Dokumente unterscheiden sich auf einer ersten Seite erheblich.

Daher werden wir unseren Basisklassifikator fĂŒr mehrseitige Dokumente nur auf ihren ersten Seiten erstellen. 

Beachten Sie, dass wir in diesem Artikel zwar das Problem der Segmentierung von mehrseitigen FlĂŒssen (PSS - Page Stream Segmentation) nicht berĂŒcksichtigen. Wenn wir jedoch die verbleibenden Seiten von Dokumenten zum Training unseres Klassifikators hinzufĂŒgen und nicht nur die erste, können wir leicht eine Lösung fĂŒr das Problem der PSS-Segmentierung mit binĂ€rer Klassifizierung erhalten : FĂŒr Seiten aus dem Stream werden nacheinander zwei Klassen vorhergesagt: "neues Dokument" oder "dasselbe Dokument". 

Vorverarbeitung


Da viele Bilder von Scans groß sind und dies die Verarbeitungsgeschwindigkeit beeinflusst, komprimieren wir zunĂ€chst alle Scans so, dass beide BildgrĂ¶ĂŸen (Breite und Höhe) nicht mehr als 2000 Pixel betragen.

Um Text aus Bildern zu extrahieren, haben wir das kostenlose Tesseract 4.0- Paket von Google verwendet. Version 4.0 (und höher) dieses Pakets funktioniert ziemlich gut mit Rauschen (im Gegensatz zu frĂŒheren Versionen), daher haben wir kein Rauschen aus Texten entfernt, sondern die „richtige“ Ausrichtung ermittelt, bevor wir Text aus dem Scanbild extrahiert haben, fĂŒr das wir auch spezielle Funktionen in Tesseract verwendet haben 4.0.

Faltungsklassifikator in Bildern


Aus jedem Dokument erhielten wir Faltungszeichen unter Verwendung eines vorab trainierten neuronalen Faltungsnetzwerks ( ResNet34 ). Hierzu wurden die Ausgaben der letzten Faltungsschicht - ein Vektor mit 512 Faltungszeichen - genommen. Vor dem Durchlaufen eines neuronalen Netzwerks wurden Bilder von Scans aus dem Zug vergrĂ¶ĂŸert, um einer Umschulung zu widerstehen.

Als Modell des Klassifikators fĂŒr Faltungszeichen wurden logistische Regressionen und Boostings mit der Auswahl von Parametern fĂŒr dev versucht.

Die QualitÀt des besten Faltungsklassifikatormodells im Test betrug etwa 76,1% (Genauigkeit) bei logistischer Regression.

Mit dieser Methode konnten wir Scans klassifizieren, die sich offensichtlich stark voneinander unterscheiden. Um die Bilder durch das neuronale Netzwerk zu fĂŒhren, wurden sie auf die GrĂ¶ĂŸe des Eingangs des neuronalen Netzwerks komprimiert (ResNet34 hat eine GrĂ¶ĂŸe von 224 x 224 Pixel am Eingang), und daher ist die KlassifizierungsqualitĂ€t gering: Das Kleingedruckte von Dokumenten wird unlesbar, und der Klassifizierer kann nur fĂŒr einige Faltungszeichen „fangen“. erhalten von einer großen Schriftart, einigen Objekten auf einer Seite mit einer speziellen Anordnung usw., aber ein solcher Klassifizierer berĂŒcksichtigt nicht die Essenz des Textes.


Der Scan der ersten Seite des Mietvertrags und der ersten Seite der Satzung des Unternehmens unterscheidet sich optisch

Wir lösen jedoch das Problem der Klassifizierung von Unternehmensdokumenten, bei denen viele Arten von Dokumenten hauptsĂ€chlich Textinformationen enthalten und visuell schwer zu unterscheiden sind. Es ist schwierig, nur „lĂ€ngliche Stellen“ von Zeilen mit identischen Dokumentenköpfen visuell zu „fangen“:


Reduzierte Kopien von Scans von Zertifikaten aus zwei verschiedenen Kategorien visuell Fast nicht zu unterscheiden

Wir gehen davon aus, dass Textattribute die QualitĂ€t verbessern und daher Textattribute hinzufĂŒgen oder vielmehr einen Textklassifizierer fĂŒr das Basismodell erstellen.

Textklassifizierer


FĂŒr das Basismodell erstellen wir einen Textklassifizierer nur auf den Zeichen TF-IDF (Term Frequency - Inverse Document Frequency) fĂŒr aus Scans extrahierte Texte. Vor dem Zusammenstellen der thermischen Matrix TF-IDF wurden die Texte auf Kleinbuchstaben reduziert; Interpunktion, Stoppwörter wurden aus Texten gelöscht; Die Wörter wurden auf Rechtschreibung ĂŒberprĂŒft und durch Lemmatisierung (Pymystem3-Paket) auf die ursprĂŒngliche Form reduziert. 

Als Klassifikatormodell haben wir erneut versucht, logistische Regressionen und Boostings durchzufĂŒhren. Die Parameter wurden auf dev ausgewĂ€hlt. Da die thermischen Matrizen groß und sehr spĂ€rlich sind, zeigte die logistische Regression eine gute QualitĂ€t und die QualitĂ€t betrug 85,4% (Genauigkeit) pro Test.

Ensemble von Klassifikatoren


Um das Ensemble zu erhalten, haben wir eine Mischung aus Faltungs- und Textklassifikatoren mit Gewichten verwendet, die fĂŒr das Entwicklungsbeispiel ausgewĂ€hlt wurden. Das heißt, fĂŒr jeden Scan S nehmen wir mit dem Gewicht α die vom Faltungsklassifikator ausgegebene Wahrscheinlichkeitssatz Y CNN (11-stellig durch die Anzahl der Kategorien), und wir nehmen auch den vom Textklassifizierer ausgegebenen 11-stelligen Wahrscheinlichkeitssatz Y TF-IDF mit dem Gewicht 1 - α und Fassen Sie diese gewichteten SĂ€tze zusammen, um die Ausgabe des gemischten Basislinienklassifikators zu erhalten:

Y CNN + TF-IDF (S) = α Y CNN + (1 - α) Y TF-IDF

Als Ergebnis haben wir die QualitÀt des gemischten Klassifikators beim Test mit 90,2% (Genauigkeit) erhalten.
Klassifikatorergebnisse: Faltung (Y CNN ), Text basierend auf tf-idf (Y.TF-IDF ) und ihr Ensemble (Y CNN + TF-IDF ):

  • Y CNN - 76,1%
  • Y tf-idf - 85,4%
  • Y CNN + TF-IDF - 90,2%

Zweistufige Klassifizierung


Bei der Analyse der Ergebnisse des Ensembles von Klassifikatoren stellte sich heraus, dass er hĂ€ufig Fehler bei Scans aus der Kategorie „Passport (RF)“ macht und PĂ€sse als „Sonstige“ klassifiziert, da diese Kategorie viele Ausweise enthĂ€lt. DarĂŒber hinaus sind ihre Scans sowie Pass-Scans hĂ€ufig von schlechter QualitĂ€t, was die qualitative Klassifizierung beeintrĂ€chtigt.
Daher haben wir uns entschlossen, die Klassifizierung in zwei Schritten durchzufĂŒhren.

Schritt 1


Wir haben alle Ausweise aus der Kategorie „Sonstige“ gemĂ€ĂŸ der anfĂ€nglichen Aufteilung in Zug, Entwickler und Test in die Kategorie „Reisepass der Russischen Föderation“ ĂŒbertragen.

Die 10 Hauptkategorien:

  1. Mietvertrag
  2. Auszug aus dem Teilnehmerregister
  3. Unternehmenscharta
  4. Bescheinigung ĂŒber die Registrierung bei der Steuerbehörde
  5. Fragebogen fĂŒr juristische Personen
  6. Reisepass der Russischen Föderation + verschiedene ID-Karten (auslÀndische PÀsse, Migrationskarten usw.)
  7. GrĂŒndungsblatt
  8. Bescheinigung ĂŒber die staatliche Registrierung der juristischen Person
  9. Bestellungen / Bestellungen
  10. Entscheidungen / Protokolle

Kategorie "Sonstige":

  • Andere Beweise
  • IP-Fragebögen
  • Aussagen
  • Apostelgeschichte
  • Vollmacht
  • Fragebögen
  • Entscheidungen des Schiedsgerichts usw.

Wir haben ein Ensemble von Klassifikatoren fĂŒr eine solche modifizierte Stichprobe geschult. 

Schritt 2 


In einem zweiten Schritt fĂŒhrten wir eine binĂ€re Klassifizierung innerhalb der Kategorie 6 durch, die im ersten Schritt erhalten wurde: „Reisepass der Russischen Föderation“ (Klasse 1) gegenĂŒber „Verschiedene Ausweise“ (Klasse 0). Zu diesem Zweck haben wir analog Faltungs- und Textklassifikatoren trainiert (in beiden Modellen gab es eine logistische Regression) und ihre Ergebnisse abgewogen, nachdem wir das Ensemble erhalten hatten.

Die GesamtklassifizierungsqualitÀt in zwei Schritten betrug 95,7% (Genauigkeit) pro Test. In diesem Fall entspricht die QualitÀt den Anforderungen unserer GeschÀftskunden (Schwelle - 95%).

BERT-Zeichen


Wir haben eine zweistufige Klassifizierung erstellt, Ă€hnlich wie oben, aber bei jedem Schritt haben wir anstelle der TF-IDF-Funktionen die Texteinbettung von Seiten verwendet, die aus dem RuBERT-Modell stammen. FĂŒr jede Seite wurde der Text mit einem Token versehen und eine Sequenz der ersten 256 Token wurde an die Eingabe des RuBERT-Modells geliefert (mit Pad-Padding bis zu 512, d. H. An die GrĂ¶ĂŸe der Modelleingabe). 

Um die Effizienz zu steigern, haben wir vor dem Erhalt von Texteinbettungen das MLM-Modell (Masked Language Model) fĂŒr die Texte aus unserem Datensatz vorab trainiert, Ă€hnlich wie es die Autoren des BERT-Modells getan haben: Als wir der Eingabe des RuBERT-Modells eine Folge von Token zugefĂŒhrt haben, haben wir einen bestimmten Bruchteil durch das Token [MASK] ersetzt Token genommen. FĂŒr die Reinheit des Experiments wurde das Vortraining nur an Texten aus dem Zug durchgefĂŒhrt. Token-Sequenzen wurden auf allen Seiten segmentierter Dokumente und nicht nur auf der ersten Seite erstellt. Der Anfang der Sequenzen wurde zufĂ€llig aus dem tokenisierten Text ausgewĂ€hlt.
In der Phase der Einbettung wurde der Durchschnittsvektor der resultierenden Ausgaben des RuBERT-Modells als Texteinbettung der Seite verwendet.

Das Pre-Training ergab eine Verbesserung in einer zweistufigen Klassifizierung: Bei Verwendung von Texteinbettungen aus dem RuBERT-Modell stieg die QualitÀt durch Test auf 96,3% (Genauigkeit). Beachten Sie die Tatsache, dass es umso schwieriger ist, die Genauigkeit zu verbessern, je nÀher sie an 100% liegt. Daher kann der resultierende Anstieg von 0,6% als signifikant angesehen werden.

Eine Erhöhung der LĂ€nge der Eingabe-Token-Sequenzen auf 512 (bis zur EingabegrĂ¶ĂŸe des BERT-Modells) fĂŒhrte zu keiner merklichen Erhöhung.

Was wir haben


Das endgĂŒltige Schema des Modells:



Die QualitÀt aller getesteten Modelle:

  • Y CNN - 76,1%,
  • Y TF-IDF - 85,4%,
  • Y CNN + TF-IDF - 90,2%,
  • Y CNN + TF-IDF + 2 Schritte - 95,7%,
  • Y CNN + RuBERT + 2 Schritte - 96,3%,

wobei Y CNN ein Faltungsklassifikator ist, ist Y TF-IDF ein Textklassifikator fĂŒr die Attribute von TF-IDF. 

Y CNN + TF-IDF - Ensemble von Klassifikatoren (Y CNN + TF-IDF (S) = α Y CNN + (1 - α) Y TF-IDF, α = 0,45).

Y CNN + TF-IDF + 2 Schritte - zweistufige Klassifizierung: 1) ID-Karten werden in die Kategorie „PĂ€sse der Russischen Föderation + ID-Karten“ geworfen, und auf der resultierenden Stichprobe wird ein Ensemble von Klassifizierern mit 11 Klassen aufgebaut. 2) In der Kategorie „ReisepĂ€sse der Russischen Föderation + Personalausweise“ wird ein Ensemble von Klassifikatoren mit zwei Klassen aufgebaut: Klasse 1 - Reisepass der Russischen Föderation, Klasse 0 - Personalausweise.

Y CNN + RuBERT + 2 Schritte- zweistufige Klassifizierung; Anstelle von TF-IDF-Zeichen werden Texteinbettungen des RuBERT-Modells verwendet, die in unserem Datensatz vorab trainiert wurden.

All Articles