Utilisation d'algorithmes ML pour classer des documents multipages: expérience VTB

Dans le cadre des transporteurs de crédit des personnes morales, les banques demandent des originaux de divers documents aux entreprises. Souvent, les numérisations de ces documents se présentent sous la forme d'un fichier multipage unique - «flux». Pour faciliter l'utilisation, les flux doivent être segmentés en documents séparés (une seule page ou multi-pages) et classés. Sous la coupe, nous parlons de l'application d'algorithmes d'apprentissage automatique dans la classification de documents déjà segmentés.



Le type de document est déterminé par des informations textuelles et visuelles. Par exemple, un passeport ou un cahier de travail est facile à distinguer visuellement sans analyser le texte à l'intérieur. De plus, la qualité de la reconnaissance de texte dans ces documents est plutôt faible si des solutions non spécialisées sont utilisées. Par conséquent, le composant visuel contient des informations beaucoup plus pertinentes pour la classification. Le contrat de location et la charte de l'entreprise peuvent être visuellement similaires, cependant, les informations textuelles qu'ils contiennent sont sensiblement différentes. En conséquence, la tâche de classification des documents est réduite à un modèle de fusion de données, qui devrait combiner deux sources de données non structurées: une représentation visuelle du document et les résultats de la reconnaissance des informations textuelles.

A noter qu'en banque, la classification des documents est également utilisée dans les convoyeurs de particuliers sur scans ou photographies de documents, pour trier les fonds accumulés de documents, pour filtrer les avis clients afin d'améliorer la qualité de service, pour trier les documents de paiement, pour filtrer davantage les flux d'actualités, etc. . 

Modèle BERT


Pour résoudre notre problème, nous avons utilisé le modèle BERT (Bidirectional Encoder Representations from Transformer) - un modèle de langage basé sur un transformateur de codage bidirectionnel multicouche . Le transformateur reçoit une séquence de jetons (codes de mots ou parties de mots) en entrée et, après des transformations internes, produit une représentation codée de cette séquence - un ensemble de plongements. De plus, ces plongements peuvent être utilisés pour résoudre divers problèmes.


Architecture du modèle de transformateur

Si plus en détail, alors une séquence de jetons est envoyée à l'entrée, résumée avec les codes de position de ces jetons et les codes de segments (offres) dans lesquels les jetons sont situés. Pour chaque séquence d'entrée, le Transformer génère une représentation contextuelle (un ensemble d'incorporation pour la séquence entière) basée sur le mécanisme adaptatif de «l'attention». Chaque sortie incorporant "l'attention" codée de certains jetons par rapport à d'autres.


Nous encodons le mot it, une partie du mécanisme «d'attention» concentré sur l'animal et une partie fixe de sa représentation dans l'encodage it (du blog The Illustrated Transfomer )

Le modèle BERT est construit en deux étapes: pré-formation et réglage des fichiers. Lors de la pré-formation, le modèle résout deux problèmes: MLM (Masked Language Model) et NSP (Next Sentence Prediction). Dans la tâche MLM, une certaine proportion de jetons dans la séquence d'entrée est étiquetée de manière aléatoire (masquée) et la tâche consiste à restaurer les valeurs des jetons qui ont été masqués. La tâche NSP est une classification binaire sur des paires de phrases lorsqu'il est nécessaire de prédire si la deuxième phrase est une suite logique de la première. Pendant le réglage, les transformateurs pré-formés se recyclent sur ces tâches spécifiques. Réglage à base de transformateur a prouvé dans de nombreux PNL ( Natural Language Processing ) Tâches :. Robots collecteurs de chat automatique, traducteurs, analyseurs de texte et d' autres transformateurs


de circuitspour un traducteur automatique du français vers l'anglais (du blog The Illustrated Transfomer )

Avant l'apparition du modèle BERT, des méthodes de radiomessagerie étaient utilisées: signes convolutifs à partir d'images (obtenus à l'aide de réseaux de neurones convolutifs CNN ), attributs de texte de fréquence ( TF-IDF ) , les balises de texte thématiques ( sujets LDA ), les balises de texte convolutionnelles (convolution 1-D), les incorporations de mots ( WordToVec , GloVe ) et leurs combinaisons. 

Les méthodes développées précédemment donnent une bonne qualité. Mais plus la qualité est choisie au maximum, plus il est difficile de l'améliorer. Comme nous le montrerons plus loin, alors que nous avions déjà une qualité proche du maximum, l'utilisation du modèle BERT a contribué à la rendre encore plus élevée. 

Étant donné que nous travaillons principalement avec des textes russes, nous avons utilisé le modèle BERT, pré-formé sur certains cas de textes russes ( RuBERT, russe, boîtier de DeepPavlov). 

Notre ensemble de données 


La description


La sélection des documents sur lesquels nous avons résolu le problème de classification consiste en des scans de documents corporatifs d'entreprises accumulés par VTB Bank sur plusieurs années. Les documents d'entreprise de plusieurs pages ont été segmentés semi-automatiquement du flux numérisé et leurs pages ont été classées par des solutions payantes.

La plupart des numérisations sont en noir et blanc, et une petite proportion est en couleur (principalement en raison des impressions couleur).

Les clients des unités commerciales ont identifié 10 catégories principales de documents (environ 30 000 documents multipages déjà segmentés, ~ 129 000 pages). Les documents ont dû être nettoyés manuellement en raison d'erreurs lors de la segmentation. Une catégorie «Autre» a également été introduite, dans laquelle toutes les autres catégories de documents moins importants ont été combinées (environ 300 catégories, ~ 43 000 documents multipages déjà segmentés, ~ 128 000 pages). En conséquence, nous allons construire un classificateur avec 11 classes. Nous avons également ajouté environ 18 000 images de l' ensemble de données ImageNet à la catégorie «Autre» (pour «protection contre le fou»).

Les 10 principales catégories sont:

  1. Contrat de bail
  2. Extrait du registre des participants
  3. Charte d'entreprise
  4. Certificat d'enregistrement auprès de l'administration fiscale
  5. Questionnaire pour les personnes morales
  6. Passeport russe
  7. Fiche d'incorporation
  8. Certificat d'enregistrement d'État de la personne morale
  9. Commandes / Commandes
  10. Décisions / protocoles

Diverses autres cartes d'identité (passeports étrangers, cartes de migration, etc.), d'autres certificats, des questionnaires de propriété intellectuelle, des déclarations, des actes, des procurations, des questionnaires, des décisions du tribunal arbitral, des images d'ImageNet et d'autres ont été inclus dans la catégorie Autre.
Le train a été pris environ 81% des documents multipages déjà segmentés (du nombre de tous ces documents), dev - 9%, test - 10%. Pour la pureté de l'expérience, la sélection a été divisée de sorte que les pages de tout document multipage segmenté tombent entièrement en une seule partie: soit train, soit dev, soit test.

Pages assemblées certifiées


Souvent, les entreprises clientes ne fournissent pas d'originaux, mais des copies de documents, dont beaucoup sont certifiés par un notaire ou par des chefs d'entreprise. De plus, les documents de plusieurs pages sont souvent agrafés, prescrivent la date du micrologiciel, et à nouveau certifiés sur la dernière page. 

Par conséquent, dans notre ensemble de données, il existe de nombreux documents de plusieurs pages, où sur la dernière numérisation (page), il y a des sceaux, des dates et d'autres informations concernant le micrologiciel ou les détails des témoins, mais sans rapport avec la classe du document. Vous trouverez ci-dessous les dernières pages de deux documents multipages différents segmentés du flux, qui sont presque impossibles à classer correctement si vous ne regardez pas le reste des pages.


Dernières pages identiques de documents de différentes classes

Qualité de numérisation


Bien que la numérisation des documents ait généralement lieu dans les bureaux de banque (en utilisant un bon équipement de copie), les clients apportent souvent des copies numérisées de documents à plusieurs reprises. Et la qualité de ces copies en souffre énormément: sur les numérisations, il y a beaucoup de bruit et d'artefacts qui peuvent apparaître à cause de la mauvaise qualité des toners, des hologrammes et des textures sur de nombreux documents et pour d'autres raisons.

Orientation


Il y a beaucoup de documents dans le jeu de données avec la mauvaise orientation de la numérisation, cela est particulièrement vrai pour les cartes d'identité et les documents texte créés en mode paysage. Mais fondamentalement, le texte pivote d'un multiple de 90 degrés (± 5 degrés). Lors de l'extraction du texte, nous avons également déterminé l'orientation «correcte» de l'image afin que la plupart du texte soit orienté verticalement.

Référence


Comme la plupart des documents commencent à numériser à partir de la première page, il y a généralement suffisamment d'informations dessus pour déterminer la classe et de nombreux documents de plusieurs pages diffèrent bien sur une première page.

Par conséquent, nous construirons notre classificateur de référence pour les documents multipages uniquement sur leurs premières pages. 

Notez que bien que nous ne considérions pas le problème de la segmentation des flux multi-pages (PSS - Page Stream Segmentation) dans cet article, mais si nous ajoutons les pages restantes de documents à la formation de notre classificateur, et pas seulement la première, nous pouvons facilement obtenir une solution au problème de la segmentation PSS avec la classification binaire : pour les pages du flux, deux classes sont prévues à tour de rôle: «nouveau document» ou «même document». 

Prétraitement


Étant donné que de nombreuses images de numérisation sont grandes et que cela affecte la vitesse de traitement, nous compressons initialement toutes les numérisations de sorte que les deux tailles d'image (largeur et hauteur) ne dépassent pas 2000 pixels.

Pour extraire du texte à partir d'images, nous avons utilisé le package gratuit Tesseract 4.0 de Google. La version 4.0 (et supérieure) de ce package fonctionne plutôt bien avec le bruit (contrairement aux versions précédentes), nous n'avons donc pas supprimé le bruit des textes, mais déterminé l'orientation «correcte» avant d'extraire le texte de l'image numérisée, pour laquelle nous avons également utilisé des fonctions spéciales dans Tesseract 4.0.

Classificateur convolutionnel en images


À partir de chaque document, nous avons obtenu des signes convolutifs à l'aide d'un réseau neuronal convolutif pré-formé ( ResNet34 ). Pour cela, les sorties de la dernière couche convolutionnelle - un vecteur de 512 signes convolutionnels - ont été prises. Avant de traverser un réseau de neurones, les images des scans du train ont subi une augmentation pour résister à la reconversion.

En tant que modèle du classifieur sur les signes convolutifs, la régression logistique et les boostings ont été essayés avec la sélection des paramètres sur dev.

La qualité du meilleur modèle de classificateur convolutif testé était d'environ 76,1% (précision) lors de la régression logistique.

Cette méthode nous a permis de classer les scans qui sont apparemment bien différents les uns des autres. Mais pour exécuter les images à travers le réseau neuronal, elles ont été compressées à la taille de l'entrée du réseau neuronal (ResNet34 a une taille de 224x224 pixels à l'entrée), et donc la qualité de la classification est faible: les petits caractères des documents deviennent illisibles, et le classificateur ne peut "attraper" que pour certains signes convolutionnels, obtenu à partir d'une grande police, de certains objets sur une page avec une disposition spéciale, etc., mais un tel classificateur ne prend pas en compte l'essence du texte.


Le scan de la première page du contrat de location et de la première page de la charte de l'entreprise diffère visuellement

Mais nous résolvons le problème de la classification des documents d'entreprise, où de nombreux types de documents contiennent principalement des informations textuelles, et il est difficile de distinguer visuellement - il est difficile de «capturer» visuellement uniquement sur des «taches allongées» de lignes avec des en-têtes de documents identiques:


Réduit visuellement les copies de numérisations de certificats de deux catégories différentes visuellement presque indiscernable

Nous supposons que les attributs de texte amélioreront la qualité, et ajouterons donc des attributs de texte, ou plutôt créerons un classificateur de texte pour le modèle de base.

Classificateur de texte


Pour le modèle de référence, nous allons construire un classificateur de texte uniquement sur les signes TF-IDF (Term Frequency - Inverse Document Frequency) sur des textes extraits de scans. Avant de compiler la matrice thermique TF-IDF, les textes ont été réduits en minuscules; la ponctuation, les mots vides ont été supprimés des textes; l'orthographe des mots a été vérifiée et réduite à la forme initiale par lemmatisation (package Pymystem3). 

En tant que modèle classificateur, nous avons essayé à nouveau la régression logistique et les boostings, les paramètres ont été sélectionnés sur dev. Étant donné que les matrices thermiques sont de grande taille et très clairsemées, la régression logistique a montré une bonne qualité, et la qualité était de 85,4% (précision) par test.

Ensemble de classificateurs


Pour obtenir l'ensemble, nous avons pris un mélange de classificateurs convolutionnels et de texte avec des poids sélectionnés sur l'échantillon de dev. Autrement dit, pour chaque balayage S, nous prenons avec le poids α l'ensemble de probabilité Y CNN (11 chiffres par le nombre de catégories), émis par le classificateur convolutionnel, nous prenons également l'ensemble de probabilité à 11 chiffres Y TF-IDF , émis par le classificateur de texte, avec le poids 1 - α, et résumer ces ensembles pondérés pour obtenir la sortie du classificateur de base mixte:

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

En conséquence, nous avons obtenu la qualité du classificateur mixte 90,2% (précision) lors du test.
Résultats du classificateur: convolutionnel (Y CNN ), texte basé sur tf-idf (YTF-IDF ) et leur ensemble (Y CNN + TF-IDF ):

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

Classification en deux étapes


Lors de l'analyse des résultats de l'ensemble des classificateurs, il s'est avéré qu'il faisait souvent des erreurs sur les numérisations de la catégorie «Passeport (RF)», classant les passeports comme «Autre», car cette catégorie contient beaucoup de cartes d'identité. De plus, leurs scans, ainsi que les scans de passeport, sont également souvent de mauvaise qualité, ce qui interfère avec la classification qualitative.
Par conséquent, nous avons décidé d'effectuer la classification en deux étapes.

Étape 1


Nous avons transféré dans la catégorie «Passeport de la Fédération de Russie» toutes les cartes d'identité de la catégorie «Autre» conformément à la répartition initiale en train, dev et test.

Les 10 principales catégories:

  1. Contrat de bail
  2. Extrait du registre des participants
  3. Charte d'entreprise
  4. Certificat d'enregistrement auprès de l'administration fiscale
  5. Questionnaire pour les personnes morales
  6. Passeport de la Fédération de Russie + diverses cartes d'identité (passeports étrangers, cartes de migration, etc.)
  7. Fiche d'incorporation
  8. Certificat d'enregistrement d'État de la personne morale
  9. Commandes / Commandes
  10. Décisions / protocoles

Catégorie "Autre":

  • Autre preuve
  • Questionnaires IP
  • Déclarations
  • Actes
  • Procuration
  • Questionnaires
  • Décisions du tribunal arbitral, etc.

Nous avons formé un ensemble de classificateurs sur un tel échantillon modifié. 

Étape 2 


Dans un deuxième temps, nous avons effectué une classification binaire au sein de la catégorie 6 obtenue au cours de la première étape: «Passeport de la Fédération de Russie» (classe 1) contre «Diverses cartes d'identité» (classe 0). Pour ce faire, par analogie, nous avons formé des classificateurs convolutionnels et textuels (dans les deux modèles, il y avait une régression logistique) et pesé leurs résultats, après avoir reçu l'ensemble.

La qualité globale de la classification en deux étapes s'est avérée être de 95,7% (précision) par test. Dans ce cas, la qualité répond aux exigences de nos clients professionnels (seuil - 95%).

Signes BERT


Nous avons construit une classification en deux étapes, similaire à ce que nous avons fait ci-dessus, mais à chaque étape, au lieu des fonctionnalités TF-IDF, nous avons utilisé l'incorporation de texte des pages obtenues à partir du modèle RuBERT. Pour chaque page, le texte a été symbolisé et une séquence des 256 premiers jetons a été fournie à l'entrée du modèle RuBERT (avec un remplissage de pavé jusqu'à 512, c'est-à-dire à la taille de l'entrée du modèle). 

Pour plus d'efficacité, avant de recevoir des incorporations de texte, nous avons pré-formé le modèle MLM (Masked Language Model) sur les textes de notre ensemble de données, de la même manière que les auteurs du modèle BERT l'ont fait: lorsque nous avons alimenté une séquence de jetons à l'entrée du modèle RuBERT, nous avons remplacé une certaine fraction par le jeton [MASK] pris des jetons. Pour la pureté de l'expérience, la pré-formation n'a été effectuée que sur des textes de train. Des séquences de jetons ont été prises sur toutes les pages de documents segmentés, et pas seulement sur la première. Le début des séquences a été sélectionné au hasard dans le texte symbolisé.
Au stade de l'incorporation, le vecteur moyen des sorties résultantes du modèle RuBERT a été pris comme incorporation du texte de la page.

La pré-formation a permis d'améliorer une classification en deux étapes: lors de l'utilisation des incorporations de texte obtenues à partir du modèle RuBERT, la qualité a augmenté à 96,3% (précision) par test. Notez le fait que plus la précision est proche de 100%, plus il est difficile de l'améliorer. Par conséquent, l'augmentation résultante de 0,6% peut être considérée comme significative.

Une augmentation de la longueur des séquences de jetons d'entrée à 512 (jusqu'à la taille d'entrée du modèle BERT) n'a pas produit d'augmentation notable.

Ce que nous avons


Le schéma final du modèle:



La qualité de tous les modèles testés:

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

où Y CNN est un classificateur convolutionnel, Y TF-IDF est un classificateur de texte sur les attributs de TF-IDF. 

Y CNN + TF-IDF - ensemble de classificateurs (Y CNN + TF-IDF (S) = α Y CNN + (1 - α) Y TF-IDF, α = 0,45).

Y CNN + TF-IDF + 2 étapes - classification en deux étapes: 1) Les cartes d'identité sont transférées dans la catégorie «Passeports de la Fédération de Russie + cartes d'identité», et un ensemble de classificateurs est construit sur l'échantillon résultant avec 11 classes; 2) dans la catégorie «Passeports de la Fédération de Russie + Cartes d'identité», un ensemble de classificateurs à deux classes est en cours de construction: classe 1 - le passeport de la Fédération de Russie, classe 0 - Cartes d'identité.

Y CNN + RuBERT + 2 étapes- classification en deux étapes; au lieu des signes TF-IDF, des incorporations de texte du modèle RuBERT pré-formé sur notre jeu de données sont prises.

All Articles