Usando algoritmos ML para classificar documentos de várias páginas: experiência em VTB

Como parte dos transportadores de crédito de pessoas jurídicas, os bancos solicitam originais de vários documentos das empresas. Muitas vezes, as digitalizações desses documentos vêm na forma de um único arquivo de várias páginas - "fluxo". Para facilitar o uso, os fluxos precisam ser segmentados em documentos separados (uma página ou várias páginas) e classificados. Abaixo, falamos sobre a aplicação de algoritmos de aprendizado de máquina na classificação de documentos já segmentados.



O tipo de documento é determinado pelas informações visuais e de texto. Por exemplo, é fácil distinguir visualmente um passaporte ou pasta de trabalho sem analisar o texto interno. Além disso, a qualidade do reconhecimento de texto nesses documentos é bastante baixa se soluções não especializadas forem usadas. Portanto, o componente visual carrega informações muito mais relevantes para classificação. O contrato de locação e a carta da empresa podem ser visualmente semelhantes, no entanto, as informações textuais que elas contêm são significativamente diferentes. Como resultado, a tarefa de classificar documentos é reduzida a um modelo de fusão de dados, que deve combinar duas fontes de dados não estruturados: uma representação visual do documento e os resultados do reconhecimento de informações de texto.

Observe que, no setor bancário, a classificação dos documentos também é usada nos transportadores de pessoas em digitalizações ou fotografias de documentos, para classificar os fundos acumulados, para filtrar as análises de clientes, a fim de melhorar a qualidade do serviço, para classificar documentos de pagamento, para filtrar adicionalmente os fluxos de notícias etc. . 

Modelo BERT


Para resolver nosso problema, usamos o modelo BERT (Representações do codificador bidirecional do Transformer) - este é um modelo de linguagem baseado em um transformador de codificação bidirecional de múltiplas camadas . O transformador recebe uma sequência de tokens (códigos de palavras ou partes de palavras) como entrada e, após transformações internas, produz uma representação codificada dessa sequência - um conjunto de incorporação. Além disso, esses embutimentos podem ser usados ​​para resolver vários problemas.


Arquitetura do modelo de transformador

Se mais detalhadamente, uma sequência de tokens é alimentada na entrada, resumida com os códigos das posições desses tokens e com os códigos dos segmentos (ofertas) nos quais os tokens estão localizados. Para cada sequência de entrada, o Transformer gera uma representação sensível ao contexto (um conjunto de incorporações para toda a sequência) com base no mecanismo adaptativo de "atenção". Cada incorporação de saída codificava "atenção" de alguns tokens em relação a outros.


Codificamos a palavra it, parte do mecanismo de “atenção” focado em The Animal e fixamos parte de sua representação na codificação (do blog The Illustrated Transfomer )

O modelo BERT é construído em duas etapas: pré-treinamento e ajuste de arquivos. Durante o pré-treinamento, o modelo resolve dois problemas: MLM (Modelo de Linguagem Mascarada) e NSP (Previsão de Próxima Sentença). Na tarefa MLM, uma certa proporção de tokens na sequência de entrada é rotulada aleatoriamente (mascarada) e a tarefa é restaurar os valores dos tokens que foram mascarados. A tarefa NSP é uma classificação binária em pares de sentenças quando é necessário prever se a segunda sentença é uma continuação lógica da primeira. Durante o ajuste, os Transformadores pré-treinados treinam novamente essas tarefas específicas. Sintonia com base Transformer provou em muitos NLP ( Natural Language Processing ) tarefas :. Bots de bate-papo automática, tradutores, analisadores de texto e outros Transformer


circuitospara um tradutor automático de francês para inglês (do blog The Illustrated Transfomer )

Antes do surgimento do modelo BERT, métodos de varredura de paginação eram usados: sinais convolucionais de imagens (obtidas usando redes neurais convolucionais da CNN ), atributos de frequência de texto ( TF-IDF ) , tags de texto temáticas ( tópicos da LDA ), tags de texto convolucionais (convolução 1-D), incorporação de palavras ( WordToVec , GloVe ) e suas combinações. 

Métodos previamente desenvolvidos oferecem boa qualidade. Porém, quanto mais próxima a qualidade for selecionada do máximo, mais difícil será melhorá-la. Como mostraremos mais adiante, quando já tínhamos uma qualidade próxima do máximo, o uso do modelo BERT ajudou a torná-lo ainda mais alto. 

Como trabalhamos principalmente com textos em russo, usamos o modelo BERT, pré-treinado em alguns casos de textos em russo ( RuBERT, russo, do DeepPavlov). 

Nosso conjunto de dados 


Descrição


A seleção de documentos nos quais resolvemos o problema de classificação consiste em digitalizações de documentos corporativos de empresas acumuladas pelo VTB Bank ao longo de muitos anos. Os documentos corporativos de várias páginas foram segmentados semi-automaticamente a partir do fluxo digitalizado, e suas páginas foram classificadas por soluções pagas.

A maioria das digitalizações é em preto e branco, e uma pequena proporção é colorida (principalmente devido a impressões coloridas).

Os clientes das unidades de negócios identificaram 10 categorias principais de documentos (cerca de 30.000 documentos de várias páginas já segmentados, ~ 129.000 páginas). Os documentos tiveram que ser limpos manualmente devido a erros durante a segmentação. Uma categoria "Outros" também foi introduzida, na qual todas as outras categorias de documentos menos significativos foram combinadas (cerca de 300 categorias, ~ 43.000 documentos com várias páginas já segmentadas, ~ 128.000 páginas). Como resultado, criaremos um classificador com 11 classes. Também adicionamos cerca de 18.000 imagens do conjunto de dados do ImageNet à categoria "Outros" (para "proteção ao tolo").

As 10 principais categorias são:

  1. Contrato de locação
  2. Extrato do registro de participantes
  3. Carta da Empresa
  4. Certificado de registro junto à autoridade tributária
  5. Questionário para pessoas jurídicas
  6. Passaporte russo
  7. Folha de incorporação
  8. Certificado de registro estadual da pessoa jurídica
  9. Encomendas / Encomendas
  10. Decisões / Protocolos

Vários outros cartões de identificação (passaportes estrangeiros, cartões de migração, etc.), outros certificados, questionários IP, declarações, age, procurações, questionários, as decisões do tribunal arbitral, imagens de IMAGEnet, e outros foram incluídos na categoria Outros.
O trem foi levado cerca de 81% dos documentos de várias páginas já segmentados (do número de todos esses documentos), dev - 9%, teste - 10%. Para a pureza do experimento, a seleção foi dividida para que as páginas de qualquer documento segmentado de várias páginas se dividissem inteiramente em uma parte: train, ou dev, ou test.

Páginas costuradas certificadas


Frequentemente, os clientes corporativos não fornecem originais, mas cópias de documentos, muitos dos quais são certificados por um notário público ou por executivos da empresa. Além disso, os documentos com várias páginas geralmente são grampeados, prescrevem a data do firmware e novamente certificados na última página. 

Portanto, em nosso conjunto de dados existem muitos desses documentos de várias páginas, onde na última digitalização (página) há selos, datas e outras informações sobre o firmware ou os detalhes das testemunhas, mas não relacionados à classe do documento. Abaixo estão as últimas páginas de dois documentos diferentes de várias páginas segmentados a partir do fluxo, que são quase impossíveis de classificar corretamente se você não olhar o restante das páginas.


Últimas páginas idênticas de documentos de várias classes

Qualidade de digitalização


Embora a digitalização de documentos geralmente ocorra em escritórios bancários (usando um bom equipamento de cópia), os clientes geralmente trazem cópias digitalizadas repetidamente. E a qualidade de tais cópias sofre muito: nas digitalizações, há muito ruído e artefatos que podem surgir da baixa qualidade dos toners, de hologramas e texturas em muitos documentos e por outros motivos.

Orientação


Existem muitos documentos no conjunto de dados com a orientação incorreta da digitalização, o que é especialmente verdadeiro para cartões de identificação e documentos de texto criados no modo paisagem. Mas, basicamente, o texto é girado em um múltiplo de 90 graus (± 5 graus). Ao extrair o texto, determinamos adicionalmente a orientação "correta" da figura, para que a maior parte do texto fosse orientada verticalmente.

Linha de base


Como a maioria dos documentos começa a digitalizar a partir da primeira página, geralmente há informações suficientes para determinar a classe e muitos documentos com várias páginas diferem bem em uma primeira página.

Portanto, criaremos nosso classificador de linha de base para documentos de várias páginas apenas nas primeiras páginas. 

Observe que, embora não consideremos o problema de segmentação de fluxos de várias páginas (PSS - Segmentação de fluxo de página) neste artigo, mas se adicionarmos as páginas restantes dos documentos ao treinamento de nosso classificador, e não apenas o primeiro, podemos facilmente obter uma solução para o problema de segmentação de PSS com classificação binária : para páginas do fluxo, duas classes são previstas por sua vez: "novo documento" ou "mesmo documento". 

Pré-processando


Como muitas imagens de digitalizações são grandes e isso afeta a velocidade do processamento, inicialmente compactamos todas as digitalizações para que os dois tamanhos de imagem (largura e altura) não ultrapassem 2000 pixels.

Para extrair texto das imagens, usamos o pacote gratuito Tesseract 4.0 do Google. A versão 4.0 (e superior) deste pacote funciona muito bem com ruído (diferente das versões anteriores), portanto, não removemos o ruído dos textos, mas determinamos a orientação "correta" antes de extrair o texto da imagem digitalizada, para a qual também usamos funções especiais no Tesseract 4.0

Classificador convolucional em imagens


Em cada documento, obtivemos sinais convolucionais usando uma rede neural convolucional pré-treinada ( ResNet34 ). Para isso, foram obtidos os resultados da última camada convolucional - um vetor de 512 sinais convolucionais. Antes de percorrer uma rede neural, as imagens das digitalizações do trem sofreram algum aumento para resistir à reciclagem.

Como modelo do classificador de sinais convolucionais, tentativas de regressão logística e reforços foram selecionadas com a seleção de parâmetros em dev.

A qualidade do melhor modelo de classificador convolucional em teste foi de cerca de 76,1% (precisão) na regressão logística.

Esse método nos permitiu classificar varreduras aparentemente bem diferentes uma da outra. Mas, para executar as imagens pela rede neural, elas foram compactadas no tamanho da entrada da rede neural (o ResNet34 tem um tamanho de 224x224 pixels na entrada) e, portanto, a qualidade da classificação é baixa: a boa impressão dos documentos se torna ilegível e o classificador pode "capturar" apenas alguns sinais convolucionais, obtido de uma fonte grande, alguns objetos em uma página com um arranjo especial etc., mas esse classificador não leva em consideração a essência do texto.


O escaneamento da primeira página do contrato de arrendamento e da primeira página da carta da empresa são visualmente bem diferentes

Mas estamos resolvendo o problema de classificar documentos corporativos, onde muitos tipos de documentos contêm principalmente informações textuais e é difícil distinguir visualmente - é difícil "capturar" visualmente apenas em "pontos alongados" de linhas com cabeçalhos idênticos:


cópias reduzidas de digitalizações de certificados de duas categorias diferentes visualmente quase indistinguível

Supomos que os atributos de texto melhoram a qualidade e, portanto, adicionam atributos de texto, ou melhor, criam um classificador de texto para o modelo de linha de base.

Classificador de texto


Para o modelo de linha de base, construiremos um classificador de texto apenas nos sinais TF-IDF (Frequency Term - Frequência Inversa de Documentos) em textos extraídos de digitalizações. Antes de compilar a matriz térmica TF-IDF, os textos foram reduzidos para minúsculas; pontuação, palavras de parada foram excluídas dos textos; as palavras foram verificadas quanto à ortografia e reduzidas à forma inicial por lematização (pacote Pymystem3). 

Como modelo classificador, tentamos novamente a regressão logística e os reforços, os parâmetros foram selecionados no dev. Como as matrizes térmicas são grandes em tamanho e muito esparsas, a regressão logística mostrou boa qualidade, e a qualidade foi de 85,4% (precisão) por teste.

Conjunto de classificadores


Para obter o conjunto, fizemos uma mistura de classificadores convolucionais e de texto com pesos selecionados na amostra dev. Ou seja, para cada varredura S que levamos com o peso α a probabilidade definida Y CNN (11 dígitos pelo número de categorias), emitida pelo classificador convolucional, também usamos o conjunto de probabilidade 11 dígitos Y TF-IDF , emitida pelo classificador de texto, com o peso 1 - α e resuma esses conjuntos ponderados, obtendo a saída do classificador de linha de base misto:

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

Como resultado, obtivemos a qualidade do classificador misto 90,2% (precisão) em teste.
Resultados do classificador: convolucional (Y CNN ), texto baseado em tf-idf (YTF-IDF ) e seu conjunto (Y CNN + TF-IDF ):

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

Classificação em duas etapas


Ao analisar os resultados do conjunto de classificadores, ele frequentemente comete erros nas digitalizações da categoria "Passaporte (RF)", classificando os passaportes como "Outros", uma vez que essa categoria contém muitos cartões de identidade. Além disso, suas varreduras, bem como as de passaporte, também são geralmente de baixa qualidade, o que interfere na classificação qualitativa.
Portanto, decidimos realizar a classificação em duas etapas.

Passo 1


Transferimos para a categoria "Passaporte da Federação Russa" todos os cartões de identificação da categoria "Outros", de acordo com a divisão inicial em trem, desenvolvimento e teste.

As 10 principais categorias:

  1. Contrato de locação
  2. Extrato do registro de participantes
  3. Carta da Empresa
  4. Certificado de registro junto à autoridade tributária
  5. Questionário para pessoas jurídicas
  6. Passaporte da Federação Russa + vários cartões de identificação (passaportes estrangeiros, cartões de migração, etc.)
  7. Folha de incorporação
  8. Certificado de registro estadual da pessoa jurídica
  9. Encomendas / Encomendas
  10. Decisões / Protocolos

Categoria "Outros":

  • Outra evidência
  • Questionários IP
  • Afirmações
  • Atos
  • Procuração
  • Questionários
  • Decisões do tribunal de arbitragem, etc.

Nós treinamos um conjunto de classificadores em uma amostra tão modificada. 

Passo 2 


Como segundo passo, realizamos uma classificação binária na categoria 6 obtida no primeiro passo: "Passaporte da Federação Russa" (classe 1) versus "Vários cartões de identidade" (classe 0). Para fazer isso, por analogia, treinamos classificadores convolucionais e de texto (em ambos os modelos houve uma regressão logística) e pesamos suas saídas, tendo recebido o conjunto.

A qualidade geral da classificação em duas etapas foi de 95,7% (precisão) por teste. Nesse caso, a qualidade atende aos requisitos de nossos clientes corporativos (limite - 95%).

Sinais BERT


Construímos uma classificação em duas etapas, semelhante à que fizemos acima, mas em cada etapa, em vez dos recursos do TF-IDF, usamos incorporação de páginas de texto obtidas a partir do modelo RuBERT. Para cada página, o texto foi tokenizado e uma sequência dos primeiros 256 tokens foi fornecida à entrada do modelo RuBERT (com preenchimento de pad de até 512, ou seja, ao tamanho da entrada do modelo). 

Para maior eficiência, antes de receber incorporações de texto, pré-treinamos o modelo Masked Language Model (MLM) nos textos de nosso conjunto de dados, semelhante à maneira como os autores do modelo BERT fizeram: quando alimentamos uma sequência de tokens na entrada do modelo RuBERT, substituímos uma certa fração pelo token [MASK] fichas usadas. Para a pureza do experimento, o pré-treinamento foi realizado apenas em textos do trem. Sequências de tokens foram obtidas em todas as páginas de documentos segmentados, e não apenas na primeira. O início das seqüências foi selecionado aleatoriamente no texto tokenizado.
No estágio de incorporação, o vetor médio das saídas resultantes do modelo RuBERT foi tomado como a incorporação de texto da página.

O pré-treinamento proporcionou uma melhoria na classificação em duas etapas: ao usar incorporação de texto obtida no modelo RuBERT, a qualidade aumentou para 96,3% (precisão) por teste. Observe que, quanto mais próxima a precisão for de 100%, mais difícil é melhorar. Portanto, o aumento resultante de 0,6% pode ser considerado significativo.

Um aumento no comprimento das seqüências de tokens de entrada para 512 (até o tamanho da entrada do modelo BERT) não produziu um aumento perceptível.

O que temos


O esquema final do modelo:



A qualidade de todos os modelos testados:

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

onde Y CNN é um classificador convolucional, Y TF-IDF é um classificador de texto nos atributos de TF-IDF. 

Y CNN + TF-IDF - conjunto de classificadores (Y CNN + TF-IDF (S) = a Y CNN + (1 - a) Y TF-IDF, α = 0,45).

Y CNN + TF-IDF + 2 passos - classificação em duas etapas: 1) os cartões de identificação são lançados na categoria "Passaportes da Federação Russa + cartões de identificação", e um conjunto de classificadores é construído na amostra resultante com 11 classes; 2) na categoria “Passaportes da Federação Russa + Cartões de Identidade”, está sendo construído um conjunto de classificadores com duas classes: classe 1 - o passaporte da Federação Russa, classe 0 - cartões de identidade.

Y CNN + RuBERT + 2 passos- classificação em duas etapas; em vez de sinais de TF-IDF, são incorporadas incorporações de texto do modelo RuBERT pré-treinadas em nosso conjunto de dados.

All Articles