Crawling e inteligência arti�cial: o novo jogo daimitação.
Rodrigo ArrigoniNov 18, 2017 · 9 min read
Esse texto apresenta conceitos, temas e circunstâncias vividos ao longo de, quase, 15
anos desenvolvendo sistemas de crawling. Há um bom tempo os robôs navegam a Web
com significativas porções de inteligência artificial aplicada. O encontro de projetos de
crawling com sistemas de inteligência artificial é, potencialmente, um catalisador de
conhecimento e mineração informacional. A capacidade robótica de conhecer e
interpretar os conteúdos e relações em quantidades e qualidades cresce diariamente e
aquece a importância do diálogo sobre uma Web descentralizada.
Web crawling pode ser considerado um gêmeo tardio da Web. Assim que os primeiros
protagonistas e pensadores do ecossistema virtual vislumbram a quantidade
informacional crescendo, os primeiros conceitos de web crawling são implantados. A
partir da impossibilidade humana de absorver e, principalmente, priorizar a ingestão
da quantidade informacional já disponível em 1993, assistimos os primeiros robôs
navegando por endereços e ou territórios habitados por conteúdos ainda estáticos.
Quatro sistemas de crawling nasceram em 93, World_Wide_Web Wanderer, Jump
Station, World_Wide_Web Worm e RBSE spider. Os sistemas basicamente indexavam
urls.
Um ano depois, nasce o primeiro web crawler distribuído, chamado WebCrawler, com
capacidade de processar 15 urls simultaneamente. Um salto quântico para o período.
Nessa época um crawler precisava apenas saber realizar uma chamada HTTP GET e
seguir os hiperlinks de uma página. Armazenar conteúdo ainda era custoso e a febre da
informação ainda não havia contaminado o mercado.
O primeiros crawlers são considerados os Crawlers Tradicionais que, apesar da
limitação interpretativa do conteúdo disposto em websites, podem ser um modelo
extremamente eficiente em casos específicos. Os 2 primeiros objetivos arquitetônicos
de um crawler nasce nesses primeiros anos de vida do setor, completeness and
freshness. Nessa mesma época o campo da inteligência artificial deixava seu segundo
inverno que durava mais de 5 anos. Já em 1997 o Deep Blue da IBM ganha a famosa
partida de xadrez com Garry Kasparov considerado por muitos o maior enxadrista de
todos os tempos.
De 1993 a 2001 tivemos uma mão cheia de crawlers e empresas nascendo ao redor do
tema da indexação e extração informacional da Web. Em 1998 nasce o Google
atacando grandes temas operacionais de um crawler como escalabilidade e
interpretação informacional. Se um dos objetivos arquitetônicos era/é completeness,
a totalidade dos sites da Web indexados, a demanda, certamente, seria escalabilidade.
Em 2001, a IBM lança o WebFountain um sistema de crawling completamente
distribuído que além de indexar, armazenava uma cópia das páginas visitadas.
Teoricamente era uma sistema que deveria crescer com a Web — a simulação da época
começou com 500 milhões páginas que dobravam a cada 400 dias.
Apesar dos esforços e investimentos, uma pesquisa acadêmica de 1998 intitulada
“Searching the world wide Web” afirmou que 80% do conteúdo da web estava um nível
abaixo da capacitação de mineração dos crawlers, ou seja, 80% do conteúdo já estava
na Deep Web. Em 2000, uma empresa especializada chamada BrightPlanet sugere que
esse conteúdo não indexado já passava em 500 vezes a web visível ao motores de
busca.
A grande diferença entre o escondido e o revelado deu-se porque até então os motores
de buscas e outros diferentes crawlers ainda não consideravam o conteúdo dinâmico
dos sites, ou seja, apenas indexavam as url verus os documentos entregues e não
interessavam-se por preencher forms para solicitar informações adicionais. Então,
nasceram os Deep Web Crawlers e a conversa entre os sistemas robóticos cliente-
servidor, crawler- Aplicação_Web, ganhou complexidade gramatical e de lógica. Agora
os crawlers perguntavam por objetos e/ou informações para um banco de dados
dinâmico.
Em 1997 outro grande desafio é apresentado aos sistemas de crawling. Assistimos o
nascimento da CAPTCHA (Completely Automated Public Turing test to tell Computers
and Humans Apart). Em 1996, um cientista chamado Moni Naor escreve um rápido
artigo (Verification of a human in the loop, or Identification via the Turing Test) sobre
como identificar robôs na Web. De tudo, o fato mais curioso é que ele pensou sobre
charadas que ainda não eram facilmente resolvíveis pelos sistemas de inteligência
artificial da época. O limite de navegação, descobrimento e acesso informacional foi
diretamente relacionado à capacidade de aprendizagem de máquina: aqui, o novo jogo
da imitação foi inaugurado entre 2 sistemas computacionais, um que simula um usuário
humano e outro que foca em descobrir se o usuário em comunicação é humano ou
máquina.
Os crawlers que desejavam consumir conteúdo Web sem restrições de alcance também
precisam resolver as charadas das modernas esfinges digitais. Então, o crawler também
precisa “enxergar” para resolver as famosas CAPTCHAS. Um fato interessante é que a
equipe de cientistas produtora do primeiro (ou um dos primeiros) sistema dessas
barreiras de Turing utilizou o manual de um scanner para desenhar pontos de ruído
para uma OCR automatizada. No encontro do crawling com as CAPTCHAS ressalta-se
como as demandas para uma sistema navegar de forma automatizada pelas aplicações
Web forçaram o casamento do web crawling com a inteligência artificial — nesse caso,
o Machine Learning.
Para um crawler resolver uma tradicional CAPTCHA — da época em questão — era
necessário capturar a imagem, identificar os limites do conjunto de caracteres, recortar
e finalmente identificar os caracteres. Hoje não seria muito diferente, talvez a mudança
seja que em alguns casos no lugar de capturar a imagem seja necessário tirar um
screenshot e daí recortar a imagem da CAPTCHA.
Com o aprendizado de máquina nasce a demanda por preconceitos. Imaginem que
após recortar os caracteres de mais de 100 CAPTCHAS reparamos quais são as áreas
máximas e mínimas de cada caractere (isso considerando que existe o padrão) e não
mais gastamos computação em encontrar os limites de cada caractere mas apenas
recortamos as respectivas áreas. Com isso economizamos computação e tempo de
crawling graças a um preconceito. Considerando as diferentes proporções e
circunstâncias, podemos apontar para esse mesmo tipo procedimento (criação de
preconceitos), inevitável para a criação da inteligência, como um grandes
preocupações dos pensadores do campo de estudo de Machine Learning. Hoje temos
inúmeros casos em que um algoritmo torna-se socialmente preconceituoso ou que um
sistema cognitivo torna-se, por exemplo, machista e/ou racista.
Passado o desafio interpretativo das CAPTCHAS, chegamos em 2005 e no último fato
histórico que apresento: a publicação de Jesse James Garrett que propõe o AJAX e faz o
Javascript acordar de um período dormente. Enfim, entramos na era dos crawlers de
RIA (Rich Internet Application) que precisam considerar o behavior de interação do
usuário e, certamente, renderizar Javascript (código) client-side. Em um possível
exemplo prático, somos encarregados pelo pipeline de dados de um site de jornalismo
investigativo. E, a redação acaba de avisar que deseja minerar todos os discursos dos
presidentes que lideraram o país democraticamente até hoje. Portanto, vamos ao site
do governo e estudamos a seção de discursos. Precisamos estar atentos a paginação,
morfologia do texto, estilo de load da página e outros.
Logo montamos um crawler que realiza uma chamada GET simples e apenas recebe o
documento entregue sem renderizar qualquer código client-side e já encontramos
problemas em simplesmente retornar a página pois as chamadas de background da
página não são realizadas impedindo o load e a entrega do documento fica em “hang”.
Então, utilizamos um browser headless com renderização de javascript e recebemos o
conteúdo que um usuário comum receberia.
Dependendo do objetivo analítico do captação informacional você precisará ou não da
renderização de Javascript. Na verdade isso já não é uma realidade para muitos casos
porque não só as CAPTCHAS evoluíram como também surgiram inúmeros serviços
anti-crawling como alguns produtos da CloudFlare e de projetos como Are you Human.
Mas antes de seguir para essa questão que é base do fechamento da apresentação
apresento aqui alguns tipos de crawlers e suas características.
Terminamos o itinerário de uma irresponsável apresentação sobre a história do ganho
de complexidade de Web crawling e iniciamos a parte mais conceitual do diálogo.
Voltamos as CAPTCHAs, mas não exatamente, pois gostaria de utilizar a reCAPTCHA do
Google para elucidar a atual evolução em demanda para um sistema de crawling. A
slogan ou conceito do Google, “no CAPTCHA reCAPTCHA” é a grande diferença da
proposta inicial de Mori com 9 possíveis perguntas ou charadas, O Google já considera
o invisível em sua decisão sobre humano ou robótico, a decisão é antes de qualquer
coisa behaviorista. Lembrem-se que grande parte dos websites sentados sobre nossa
querida Web utilizam o Google Analytics ou que muitos usuários utilizam o Gmail,
Google Drive e por aí vai. E, sabemos que todos esses serviços utilizam cookies e
anotam padrões. Portanto, agora, chegamos ao contemporâneo jogo da imitação, o
jogo behaviorista, o jogo em que crawler também precisa ser um pseudo-sujeito
histórico para não ter problemas em acessar conteúdos. Não é mais apenas sobre
perguntas e respostas. Os atores do experimento de Turing em nosso grande big
brother digital agora também são filmados, medidos e pesados de segundo a segundo.
Portanto, hoje, os sistemas de crawling também são hábitos que imitam um sujeito sem
qualquer noção de identidade. Do mesmo jeito que do outro lado não é um juiz de
direito ou um médico atestando sua real existência humana.
Desse diálogo específico podemos estender a interessante circunstância da conversa
interpretativa dos robôs da Web e vislumbrar a criação de uma potencial camada
robótica entre o humano e a Web, como se o Modelo OSI ganhasse uma camada nova.
É um reflexão que exige um grande esforço imaginal se considerarmos apenas o tema
das CAPTCHAS, mas a robotização da Web não para aí. Sistemas de inteligência
artifical que geram conteúdo são apresentados diariamente com interessantes graus de
maturidade. Temos sistemas que criam o design de websites, temos robôs para escrever
os textos e, claro, temos sistemas que navegam e afirmam decidir o que usuário vai
consumir da Web considerando apenas o usuário em si (a personalização pelo hábito).
O perigo dessa imagem é que em uma web centralizadora como a que temos hoje é de
interesse capital aplicar diferentes tipos de automatização para alimentar de forma
personalizada, em broadcast, a grande massa de usuários. Uma Web com esse tipo de
camada intermediária significava planetas de informação e direcionamento de
navegação que podem estar a mercê de poucos atores da rede.
É o que precisamos para abandonarmos definitivamente nossa responsabilidade crítica
já posta no colo dos grandes emissores informacionais. Não à toa o fake news é
realidade e preocupação. As associações informacionais e conceituais em um sistema
de AI ainda carecem de espírito crítico e, principalmente, quando funcionam dentro da
Web são impactadas por hábitos, quantidades e qualidade muitas vezes nocivos ao
social. Um exemplo, é a pesquisa de Latanya Sweeney, realizada em 2013, sobre o
sistema de Ads do Google ter uma escolha de entrega de anúncios preconceituosa. A
pesquisadora de Harvard provou que entre 81% a 95% das buscas por nomes
tipicamente utilizados por Afro descendentes disparava anúncios relacionados a prisão
(i.e. anúncios de plataformas de pesquisa do histórico criminal).
Finalmente, a imagem dos diálogos robóticos também pode ser significada de maneira
diferente e podemos ter uma Web mais democrática. As possibilidades tecnológicas de
grande escala, hoje, são acessíveis ao grande público de desenvolvedores.
Armazenamento, deploy e construção de sistemas complexos em times bem pequenos
pode talvez revolucionar e transcender a Web para além dos grandes núcleos de
produção informacional. Precisamos valorizar e investir como usuários e produtores
em empresas que signifiquem a democratização produtiva e a diversidade
interpretativa. A sociedade deixou de acreditar no valor da informação enquanto o
capital está localizado na mineração de dados em toda e qualquer indústria. Enfim,
termino com uma matéria publicada no MIT Technology Review em Abril de 2017 em
que o jornalista, em visita a um grande player do mercado de chips, narra certa aflição
em ser conduzido por veículo autônomo em que os engenheiros não tinham a menor
idéia de como input era transformado em decisão, ou seja, o carro sabia o que fazer por
causa de matemática mágica realizada por camadas e camadas de neurônios artificiais.
E talvez nosso grande problema seja que conseguimos rapidamente ser simpáticos a
aflição de ser transportado por uma carro que sabe e ninguém sabe como, mas não
como somos direcionados em todo nosso conteúdo informacional por motores de
busca com formatos decisivos indecifráveis.
Web Crawling Inteligencia Arti�cial Algoritmos Web
About Help Legal
Get the Medium app