Resolvendo Captchas

usando Raspagem de Dados e Aprendizado Fracamente Supervisionado

Julio Trecenti

Instituto de Matemática e Estatística

Orientador: Victor Fossaluza

Universidade de São Paulo

Resumo

  • Queremos resolver Captchas: -> "1158"
  • Criamos uma nova técnica para isso!
  • A proposta une conceitos de raspagem de dados e aprendizado fracamente supervisionado
  • A técnica baixa dados da internet e usa os dados para treinar o modelo
  • Os resultados são bons!
  • Criamos um novo pacote em R, bases de dados públicas e modelos para incentivar pesquisas na área!

Motivação

O que é Captcha?

  • Completely Automated Public Turing Test to Tell Computers and Humans Apart
  • O desafio deve ser fácil de resolver para humanos, mas difícil para máquinas
  • Criado em 2002 em Carnegie Mellon
  • É uma variação do teste de Turing: a avaliação da humanidade é feita pelo robô

Nosso foco está em Captchas de texto em imagem, porque é um dos mais utilizados em serviços públicos.

Captchas impedem transparência ativa

  • Transparência passiva: pedidos de Lei de Acesso à Informação (LAI)
  • Transparência ativa: dados abertos


Judiciário e dados abertos

  • Os dados são públicos, mas não são abertos
  • Muitos sites de tribunais possuem Captchas
  • Dificulta a atividade fim da Associação Brasileira de Jurimetria (ABJ)
  • Tribunais dificilmente respondem a pedidos de LAI
  • Raspagem de dados é a única alternativa


O mercado de Captcha explora pessoas

  • Captchas impedem especializam o acesso automatizado
  • É possível passar a imagem do Captcha para outra pessoa resolver…

Fonte: F5


O mercado de Captcha explora pessoas

  • Captchas impedem especializam o acesso automatizado
  • É possível passar a imagem do Captcha para outra pessoa resolver…

Resolver Captchas é bom para a ciência

  • Captcha e inteligência artificial estão conectados
  • Quando se resolvem Captchas, a ciência se desenvolve

Estado da arte

Uma luta de geradores e resolvedores

Desafios atuais de pesquisa

  • Reduzir a quantidade anotações necessárias para resolver um Captcha
  • Criar resolvedores de Captcha universais
  • Abordagens recentes: redes generativas adversariais (GANs) e similares
  • Trabalhos recentes: Ye et al. (2018); Wang et al. (2021).

Nova abordagem

Objetivo

Desenvolver um método inovador, chamado WAWL (Web Automatic Weak Learning) para resolver Captchas, misturando técnicas de aprendizado fracamente supervisionado com raspagem de dados.

Objetivos específicos

Desenvolver um método inovador, chamado WAWL (Web Automatic Weak Learning) para resolver Captchas, misturando técnicas de aprendizado fracamente supervisionado com raspagem de dados.

  1. Descrever o método proposto e estudar suas características.
  2. Construir e disponibilizar um repositório de dados para realização de mais pesquisas no ramo.
  3. Ajustar modelos e testar a eficácia do método.
  4. Disponibilizar um pacote computacional aberto que possibilita a implementação de soluções para resolver Captchas presentes em serviços públicos.

Contribuições

Pesquisa

  • União entre áreas de aprendizado de máquinas e raspagem de dados
  • Aplicação inovadora do aprendizado fracamente supervisionado com base potencialmente infinita

Aplicações

  • O WAWL traz bons resultados empíricos
  • Novos modelos disponíveis
  • Facilitamos pesquisas aplicadas no Brasil

Sociedade

  • Novo pacote {captcha} disponível para comunidade
  • Novas bases de dados disponíveis
  • Desincentivo aos mercados que exploram pessoas

Oráculo: a oportunidade

  • Quando preenchemos um Captcha no site, ele nos diz se acertamos ou não
  • Mas a informação é limitada: o site só diz de acertamos ou erramos.
  • É como um oráculo, que sempre nos diz verdade, mas de forma incompleta.

Fonte: The Matrix

Nossa solução

Web Automatic Weak Learning (WAWL)

  • Parte de um modelo inicial

  • Obtém novos dados automaticamente

  • Atualiza o modelo

Como funciona?

  • Modelo inicial: pode ser ajustado com uma pequena base completamente anotada ou pode ser um super-modelo generalista.

Vantagens do WAWL

  • Aproveita os recursos disponíveis: base de dados virtualmente infinita
  • Fácil de implementar: só precisa de uma mudança na função de perda
  • Depende de um raspador, cujo tempo de desenvolvimento é negligenciável devido à necessidade de construí-los na prática

Adaptação da função de perda

  • Função de perda adaptada para informação limitada do oráculo

\[\mathcal L(g(\mathbf x), {\mathbf y}) = -\log\left[1 - \sum_{y \in \mathcal A} {g_y}(\mathbf x) I(y\notin {\mathbf y})\right]\]

  • Quando a informação é completa, utilizamos a função de perda original.
  • Quando a informação é parcial, a perda é maior quando o modelo dá alta probabilidade para um rótulo incorreto.

Simulação

Lista de Captchas

Nome Exemplo Descrição
cadesp cadesp Centro de Apoio ao Desenvolvimento da Saude Publica
esaj esaj Tribunal de Justica da Bahia
jucesp jucesp Junta Comercial de Sao Paulo
rfb rfb Receita Federal
sei sei Sistema Eletronico de Informacoes - ME
tjmg tjmg Tribunal de Justica de Minas Gerais
tjpe tjpe Tribunal de Justica de Pernambuco
tjrs tjrs Tribunal de Justica do Rio Grande do Sul
trf5 trf5 Tribunal Regional Federal 5
trt trt Tribunal Regional do Trabalho 3

Também consideramos Captchas artificiais, criados diretamente no R.

Para baixar os dados

Raspagem de dados

  • Cada Captcha ganhou uma função captcha_access() e outra captcha_test().
  • Códigos disponíveis no pacote {captchaDownload}.

Bases disponíveis

  • As bases de dados com imagens anotadas foram disponibilizadas na aba de lançamentos (releases) do repositório principal do projeto de pesquisa.

  • As bases e modelos ajustados estão disponíveis para quem tiver interesse em fazer novas pesquisas e utilizar os resultados em suas aplicações.

Simulação em 3 passos



1. Modelo Inicial

Obter modelos preditivos de Captchas com diferentes acurácias

2. Dados

Construir bases de dados utilizando o oráculo

3. Modelo Final

Ajustar modelo final para as bases de treino construídas



Experimentos adicionais

  • Aplicação iterada do WAWL para verificar melhorias
  • Aprendizado online: download de dados dentro do minibatch

Resultados

Resultados do WAWL

Ganho relativo maior que 3x; ganho absoluto de 33%.

Figura 4: Resultados da simulação por captcha, quantidade de tentativas e modelo inicial.

Aplicação iterada

A utilização da técnica levou o modelo a uma acurácia de 100%.

Figura 5: Resultados da aplicação iterativa do WAWL

O resultado sugere que o método WAWL pode ser aplicado iterativamente para aprimorar o aprendizado do modelo.

Aprendizado online

A partir do modelo inicial 11% de acurácia.

Figura 6: Resultados do experimento com aprendizado online

Após 100 épocas, o modelo baixou 6391 imagens e chegou em uma acurácia de 87% na base de teste.

Pacote {captcha}

Conclusões

Principais avanços

Pesquisa bibliográfica

  • Histórico dos Captchas
  • Uso em serviços públicos
  • Incentivo para mão de obra precária
  • Estado da arte na parte estatística

Avanço metodológico

  • Método WAWL
  • Raspagem de dados
  • Aprendizado estatístico com rótulos parciais
  • Aumento de acurácia sem anotação manual

Resultados empíricos

  • Acurácia do modelo aumentada em 3x
  • Possibilidade de aplicação iterada para maior poder preditivo
  • Possibilidade de aplicação de aprendizado online

Próximos passos

Aprimoramentos

  • Resultados matemáticos mais robustos
  • Aprofundamento dos estudos de aplicação iterada e aprendizado online

Extensões

  • Modelo geral de resolução de Captchas
  • Integração com GPT-4?

Obrigado!

Referências usadas na apresentação

Feng, Lei, Jiaqi Lv, Bo Han, Miao Xu, Gang Niu, Xin Geng, Bo An, e Masashi Sugiyama. 2020. "Provably Consistent Partial-Label Learning". Advances in Neural Information Processing Systems 33: 10948–60.
Wang, Yao, Yuliang Wei, Mingjin Zhang, Yang Liu, e Bailing Wang. 2021. "Make Complex Captchas Simple: A Fast Text Captcha Solver Based on a Small Number of Samples". Information Sciences 578: 181–94.
Ye, Guixin, Zhanyong Tang, Dingyi Fang, Zhanxing Zhu, Yansong Feng, Pengfei Xu, Xiaojiang Chen, e Zheng Wang. 2018. "Yet Another Text Captcha Solver: A Generative Adversarial Network Based Approach". Em Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security, 332–48.
Yu, Xiyu, Tongliang Liu, Mingming Gong, e Dacheng Tao. 2018. "Learning with Biased Complementary Labels". Em Proceedings of the European Conference on Computer Vision (ECCV), 68–83.

Para uma lista completa de referências, ver o repositório da tese.