Uso de algoritmos ML para clasificar documentos de varias páginas: experiencia VTB

Como parte de los transportadores de crédito de personas jurídicas, los bancos solicitan originales de varios documentos a las empresas. A menudo, los escaneos de estos documentos se presentan en forma de un único archivo de varias páginas: "flujo". Para facilitar su uso, los flujos deben segmentarse en documentos separados (una página o varias páginas) y clasificarse. Bajo el corte, hablamos sobre la aplicación de algoritmos de aprendizaje automático en la clasificación de documentos ya segmentados.



El tipo de documento está determinado por el texto y la información visual. Por ejemplo, un pasaporte o libro de trabajo es fácil de distinguir visualmente sin analizar el texto en su interior. Además, la calidad del reconocimiento de texto en dichos documentos es bastante baja si se utilizan soluciones no especializadas. Por lo tanto, el componente visual lleva información mucho más relevante para la clasificación. El contrato de arrendamiento y el estatuto de la empresa pueden ser visualmente similares, sin embargo, la información textual que contienen es significativamente diferente. Como resultado, la tarea de clasificar documentos se reduce a un modelo de fusión de datos, que debe combinar dos fuentes de datos no estructurados: una representación visual del documento y los resultados del reconocimiento de la información del texto.

Tenga en cuenta que en la banca, la clasificación de documentos también se utiliza en los transportadores de personas en escaneos o fotografías de documentos, para clasificar los fondos acumulados de documentos, para filtrar las reseñas de los clientes con el fin de mejorar la calidad del servicio, para clasificar los documentos de pago, para el filtrado adicional de flujos de noticias, etc. . 

Modelo BERT


Para resolver nuestro problema, utilizamos el modelo BERT (Representaciones de codificador bidireccional del transformador) : este es un modelo de lenguaje basado en un transformador de codificación bidireccional multicapa . El transformador recibe una secuencia de tokens (códigos de palabras o partes de palabras) como entrada y, después de las transformaciones internas, produce una representación codificada de esta secuencia: un conjunto de incrustaciones. Además, estas incrustaciones pueden usarse para resolver diversos problemas.


Arquitectura del modelo de transformador

Si con más detalle, se alimenta una secuencia de tokens a la entrada, sumada con los códigos de las posiciones de estos tokens y los códigos de los segmentos (ofertas) en los que se encuentran los tokens. Para cada secuencia de entrada, el transformador genera una representación sensible al contexto (un conjunto de incrustaciones para toda la secuencia) basada en el mecanismo adaptativo de "atención". Cada salida incrustada codificó la "atención" de algunos tokens en relación con otros.


Codificamos la palabra it, parte del mecanismo de "atención" centrado en The Animal y parte fija de su representación en la codificación it (del blog The Illustrated Transfomer )

El modelo BERT se construye en dos pasos: pre-entrenamiento y ajuste de archivos. Durante el entrenamiento previo, el modelo resuelve dos problemas: MLM (Modelo de lenguaje enmascarado) y NSP (Predicción de la siguiente oración). En la tarea MLM, una cierta proporción de tokens en la secuencia de entrada se etiqueta aleatoriamente (enmascarada), y la tarea es restaurar los valores de los tokens que se han enmascarado. La tarea NSP es una clasificación binaria en pares de oraciones cuando es necesario predecir si la segunda oración es una continuación lógica de la primera. Durante la puesta a punto, los transformadores previamente entrenados se vuelven a entrenar en estas tareas específicas. Sintonía con base transformador se ha probado en muchos NLP ( Natural Language Processing ) tareas :. Robots de chat, traductores automáticos, analizadores de texto, y otros transformador de


circuitospara un traductor automático del francés al inglés (del blog The Illustrated Transfomer )

Antes de que apareciera el modelo BERT, se usaron métodos para escaneos de paginación: signos convolucionales de imágenes (obtenidos usando redes neuronales convolucionales CNN ), atributos de texto de frecuencia ( TF-IDF ) , etiquetas de texto temático ( temas LDA ), etiquetas de texto convolucional (convolución 1-D), incrustaciones de palabras ( WordToVec , GloVe ) y sus combinaciones. 

Los métodos desarrollados previamente dan buena calidad. Pero cuanto más se selecciona la calidad al máximo, más difícil es mejorarla. Como mostraremos más adelante, cuando ya teníamos una calidad cercana al máximo, el uso del modelo BERT ayudó a hacerlo aún más alto. 

Dado que trabajamos principalmente con textos en ruso, utilizamos el modelo BERT, pre-entrenado en algunos casos de textos en ruso ( RuBERT, ruso, en caja de DeepPavlov). 

Nuestro conjunto de datos 


Descripción


La selección de documentos en los que resolvimos el problema de clasificación consiste en escaneos de documentos corporativos de compañías acumuladas por VTB Bank durante muchos años. Los documentos corporativos de varias páginas se segmentaron semiautomáticamente del flujo escaneado, y sus páginas se clasificaron por soluciones pagas.

La mayoría de los escaneos son en blanco y negro, y una pequeña proporción son de color (principalmente debido a las impresiones en color).

Los clientes de las unidades de negocio identificaron 10 categorías principales de documentos (aproximadamente 30,000 documentos de varias páginas ya segmentados, ~ 129,000 páginas). Los documentos tuvieron que limpiarse manualmente debido a errores durante la segmentación. También se introdujo una categoría "Otro", en la que se combinaron todas las demás categorías de documentos menos significativos (alrededor de 300 categorías, ~ 43,000 documentos de varias páginas ya segmentados, ~ 128,000 páginas). Como resultado, construiremos un clasificador con 11 clases. También agregamos aproximadamente 18,000 imágenes del conjunto de datos de ImageNet a la categoría "Otro" (para "protección contra el tonto").

Las 10 categorías principales son:

  1. Contrato de arrendamiento
  2. Extracto del registro de participantes.
  3. Carta de la compañía
  4. Certificado de registro ante la autoridad fiscal
  5. Cuestionario para personas jurídicas.
  6. Pasaporte ruso
  7. Hoja de incorporación
  8. Certificado de registro estatal de entidad jurídica
  9. Pedidos / Pedidos
  10. Decisiones / Protocolos

Varias otras tarjetas de identificación (pasaportes extranjeros, tarjetas de migración, etc.), otros certificados, cuestionarios de propiedad intelectual, declaraciones, actos, poderes, cuestionarios, decisiones del tribunal arbitral, imágenes de ImageNet, etc.
se tomaron en la categoría Otros. alrededor del 81% de los documentos de varias páginas ya segmentados (del número de todos esos documentos), dev - 9%, prueba - 10%. Para la pureza del experimento, la selección se dividió de modo que las páginas de cualquier documento segmentado de varias páginas cayeran por completo en una parte: ya sea entrenar, desarrollar o probar.

Páginas cosidas certificadas


A menudo, los clientes corporativos no proporcionan originales, sino copias de documentos, muchos de los cuales están certificados por un notario público o por ejecutivos de la compañía. Además, los documentos de varias páginas a menudo se grapan, prescriben la fecha del firmware y se certifican nuevamente en la última página. 

Por lo tanto, en nuestro conjunto de datos hay muchos documentos de varias páginas, donde en el último escaneo (página) hay sellos, fechas y otra información sobre el firmware o los detalles de los testigos, pero no están relacionados con la clase del documento. A continuación se muestran las últimas páginas de dos documentos de varias páginas diferentes segmentados de la secuencia, que son casi imposibles de clasificar correctamente si no mira el resto de las páginas.


Últimas páginas idénticas de documentos de varias clases.

Calidad de escaneo


Aunque el escaneo de documentos generalmente se lleva a cabo en las oficinas bancarias (utilizando un buen equipo de copia), los clientes a menudo traen copias de documentos escaneados repetidamente. Y la calidad de tales copias sufre enormemente: en los escaneos hay mucho ruido y artefactos que pueden aparecer por la baja calidad de los tóners, por hologramas y texturas en muchos documentos y por otras razones.

Orientación


Hay muchos documentos en el conjunto de datos con la orientación incorrecta del escaneo, esto es especialmente cierto para las tarjetas de identificación y documentos de texto creados en modo horizontal. Pero, básicamente, el texto gira un múltiplo de 90 grados (± 5 grados). Al extraer el texto, determinamos adicionalmente la orientación "correcta" de la imagen para que la mayor parte del texto se orientara verticalmente.

Base


Dado que la mayoría de los documentos comienzan a escanearse desde la primera página, generalmente hay suficiente información para determinar la clase, y muchos documentos de varias páginas difieren bien en una primera página.

Por lo tanto, crearemos nuestro clasificador de referencia para documentos de varias páginas solo en sus primeras páginas. 

Tenga en cuenta que aunque no consideramos el problema de la segmentación de flujos de varias páginas (PSS - Segmentación de flujo de página) en este artículo, pero si agregamos las páginas restantes de documentos a la capacitación de nuestro clasificador, y no solo la primera, podemos obtener fácilmente una solución al problema de la segmentación de PSS con clasificación binaria : para páginas de la secuencia, se predicen dos clases a su vez: "nuevo documento" o "mismo documento". 

Preprocesamiento


Dado que muchas imágenes de escaneos son grandes, y esto afecta la velocidad de procesamiento, inicialmente comprimimos todos los escaneos para que ambos tamaños de imagen (ancho y alto) no superen los 2000 píxeles.

Para extraer texto de imágenes, utilizamos el paquete gratuito Tesseract 4.0 de Google. La versión 4.0 (y superior) de este paquete funciona bastante bien con el ruido (a diferencia de las versiones anteriores), por lo tanto, no eliminamos el ruido de los textos, sino que determinamos la orientación "correcta" antes de extraer el texto de la imagen escaneada, para lo cual también utilizamos funciones especiales en Tesseract 4.0.

Clasificador convolucional en imágenes


De cada documento, obtuvimos signos convolucionales utilizando una red neuronal convolucional pre-entrenada ( ResNet34 ). Para esto, se tomaron las salidas de la última capa convolucional, un vector de 512 signos convolucionales. Antes de correr a través de una red neuronal, las imágenes de escaneos del tren experimentaron un aumento para resistir el reciclaje.

Como modelo del clasificador en signos convolucionales, se intentó la regresión logística y los aumentos con la selección de parámetros en dev.

La calidad del mejor modelo clasificador convolucional en la prueba fue de aproximadamente 76.1% (precisión) en la regresión logística.

Este método nos permitió clasificar escaneos que aparentemente son muy diferentes entre sí. Pero para ejecutar las imágenes a través de la red neuronal, se comprimieron al tamaño de la entrada de la red neuronal (ResNet34 tiene un tamaño de 224x224 píxeles en la entrada) y, por lo tanto, la calidad de la clasificación es baja: la letra pequeña de los documentos se vuelve ilegible y el clasificador puede "capturarse" solo para algunos signos convolucionales, obtenido de una fuente grande, algunos objetos en una página con una disposición especial, etc., pero dicho clasificador no tiene en cuenta la esencia del texto.


El escaneo de la primera página del contrato de arrendamiento y la primera página de los estatutos de la compañía son visualmente muy diferentes.

Pero resolvemos el problema de clasificar documentos corporativos, donde muchos tipos de documentos contienen principalmente información textual, y es difícil de distinguir visualmente: es difícil "atrapar" visualmente solo en "puntos alargados" de líneas con encabezados de documentos idénticos:


copias reducidas de escaneos de certificados de dos categorías diferentes visualmente casi indistinguible

Suponemos que los atributos de texto mejorarán la calidad y, por lo tanto, agregamos atributos de texto, o mejor dicho, creamos un clasificador de texto para el modelo de línea base.

Clasificador de texto


Para el modelo de línea de base, construiremos un clasificador de texto solo en los signos TF-IDF (Frecuencia de término - Frecuencia de documento inversa) en textos extraídos de escaneos. Antes de compilar la matriz térmica TF-IDF, los textos se redujeron a minúsculas; puntuación, las palabras de parada se eliminaron de los textos; Las palabras fueron verificadas para la ortografía y reducidas a la forma inicial por lematización (paquete Pymystem3). 

Como modelo clasificador, intentamos nuevamente la regresión logística y los aumentos, los parámetros se seleccionaron en dev. Dado que las matrices térmicas son de gran tamaño y muy escasas, la regresión logística mostró buena calidad, y la calidad fue del 85,4% (precisión) por prueba.

Conjunto de clasificadores


Para obtener el conjunto, tomamos una combinación de clasificadores convolucionales y de texto con pesos seleccionados en la muestra de desarrollo. Es decir, para cada exploración S tomamos con el peso α el conjunto de probabilidad Y CNN (11 dígitos por el número de categorías), emitido por el clasificador convolucional, también tomamos el conjunto de probabilidad de 11 dígitos Y TF-IDF , emitido por el clasificador de texto, con el peso 1 - α, y Resuma estos conjuntos ponderados, obteniendo el resultado del clasificador de línea de base mixto:

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

Como resultado, obtuvimos la calidad del clasificador mixto 90.2% (precisión) en la prueba.
Resultados del clasificador: convolucional (Y CNN ), texto basado en tf-idf (YTF-IDF ) y su conjunto (Y CNN + TF-IDF ):

  • Y CNN - 76.1%
  • Y tf-idf - 85.4%
  • Y CNN + TF-IDF - 90.2%

Clasificación en dos pasos


Al analizar los resultados del conjunto de clasificadores, resultó que a menudo comete errores en los escaneos de la categoría "Pasaporte (RF)", clasificando los pasaportes como "Otros", ya que esta categoría contiene muchas tarjetas de identidad. Además, sus escaneos, así como los escaneos de pasaportes, a menudo también son de baja calidad, lo que interfiere con la clasificación cualitativa.
Por lo tanto, decidimos llevar a cabo la clasificación en dos pasos.

Paso 1


Transferimos a la categoría "Pasaporte de la Federación de Rusia" todas las tarjetas de identificación de la categoría "Otro" de acuerdo con la división inicial en tren, desarrollo y prueba.

Las 10 categorías principales:

  1. Contrato de arrendamiento
  2. Extracto del registro de participantes.
  3. Carta de la compañía
  4. Certificado de registro ante la autoridad fiscal
  5. Cuestionario para personas jurídicas.
  6. Pasaporte de la Federación de Rusia + varias tarjetas de identificación (pasaportes extranjeros, tarjetas de migración, etc.)
  7. Hoja de incorporación
  8. Certificado de registro estatal de entidad jurídica
  9. Pedidos / Pedidos
  10. Decisiones / Protocolos

Categoría "Otro":

  • Otra evidencia
  • Cuestionarios de IP
  • Declaraciones
  • Hechos
  • Poder legal
  • Cuestionarios
  • Decisiones del tribunal de arbitraje, etc.

Capacitamos a un conjunto de clasificadores en una muestra tan modificada. 

Paso 2 


Como segundo paso, realizamos una clasificación binaria dentro de la categoría 6 obtenida en el primer paso: "Pasaporte de la Federación de Rusia" (clase 1) versus "Varios documentos de identidad" (clase 0). Para hacer esto, por analogía, entrenamos clasificadores convolucionales y de texto (en ambos modelos hubo una regresión logística) y sopesamos sus resultados, después de haber recibido el conjunto.

La calidad de clasificación general en dos pasos resultó ser del 95,7% (precisión) por prueba. En este caso, la calidad cumple con los requisitos de nuestros clientes comerciales (umbral - 95%).

Signos BERT


Creamos una clasificación de dos pasos, similar a lo que hicimos anteriormente, pero en cada paso, en lugar de las características TF-IDF, utilizamos la incrustación de texto de páginas obtenidas del modelo RuBERT. Para cada página, el texto se tokenizó y se proporcionó una secuencia de los primeros 256 tokens a la entrada del modelo RuBERT (con relleno de almohadilla de hasta 512, es decir, al tamaño de la entrada del modelo). 

Para una mayor eficiencia, antes de recibir incrustaciones de texto, preentrenamos el modelo del Modelo de lenguaje enmascarado (MLM) en los textos de nuestro conjunto de datos, de forma similar a como lo hicieron los autores del modelo BERT: cuando alimentamos una secuencia de tokens a la entrada del modelo RuBERT, reemplazamos una cierta fracción con el token [MASK] fichas tomadas Para la pureza del experimento, el pre-entrenamiento se realizó solo en textos del tren. Se tomaron secuencias de fichas en todas las páginas de documentos segmentados, y no solo en la primera. El comienzo de las secuencias se seleccionó al azar del texto tokenizado.
En la etapa de incrustación, el vector promedio de las salidas resultantes del modelo RuBERT se tomó como la incrustación de texto de la página.

El entrenamiento previo dio una mejora en una clasificación de dos pasos: cuando se usan incrustaciones de texto obtenidas del modelo RuBERT, la calidad aumentó a 96.3% (precisión) por prueba. Tenga en cuenta el hecho de que cuanto mayor sea la precisión al 100%, más difícil será mejorar. Por lo tanto, el aumento resultante de 0.6% puede considerarse significativo.

Un aumento en la longitud de las secuencias de token de entrada a 512 (hasta el tamaño de entrada del modelo BERT) no produjo un aumento notable.

Lo que tenemos


El esquema final del modelo:



la calidad de todos los modelos probados:

  • Y CNN - 76.1%,
  • Y TF-IDF - 85.4%,
  • Y CNN + TF-IDF - 90.2%,
  • Y CNN + TF-IDF + 2 pasos - 95.7%,
  • Y CNN + RuBERT + 2 pasos - 96.3%,

donde Y CNN es un clasificador convolucional, Y TF-IDF es un clasificador de texto sobre los atributos de TF-IDF. 

Y CNN + TF-IDF - conjunto de clasificadores (Y CNN + TF-IDF (S) = α Y CNN + (1 - α) Y TF-IDF, α = 0.45).

Y CNN + TF-IDF + 2 pasos: clasificación en dos pasos: 1) Las tarjetas de identificación se incluyen en la categoría "Pasaportes de la Federación de Rusia + tarjetas de identificación", y se construye un conjunto de clasificadores en la muestra resultante con 11 clases; 2) en la categoría "Pasaportes de la Federación de Rusia + Tarjetas de identidad", se está creando un conjunto de clasificadores con dos clases: clase 1 - el pasaporte de la Federación de Rusia, clase 0 - tarjetas de identidad.

Y CNN + RuBERT + 2 pasos- clasificación en dos pasos; en lugar de signos TF-IDF, se toman incrustaciones de texto del modelo RuBERT pre-entrenado en nuestro conjunto de datos.

All Articles