(continuação da parte 1)
Em sua palestra, Luiz André Barroso explicou que a tarefa que o Google se propõe a realizar é espantosamente complexa. O primeiro passo é sair varrendo a web para indexar conteúdo, num processo denominado
crawling (
crawl em inglês significa engatinhar e pronuncia-se "cruól"), em que é necessário manter o instável equilíbrio entre o tamanho do que se quer armazenar e o tempo necessário para capturar estas informações. As necessidades de largura de banda são incrivelmente altas e, em alguns casos, o simples fato de a aranha do Google percorrer a teia de um site faz com que o servidor sendo vasculhado simplesmente caia. A equipe técnica da empresa está atenta a isso e, quando o site sendo varrido é pequeno, a aranha é, digamos, amansada.
Outro obstáculo, ainda na fase do crawling, é coibir a ação dos spammers. Para o Google, o conceito de spam é ligeiramente diferente daquele a que estamos acostumados. Spammer para o Google é quem arranja formas de ludibriar o algoritmo de classificação do sistema, colocando um site relativamente obscuro e pouco visitado em posição de destaque na lista de popularidade da ferramenta, conhecida como PageRank.
A fase seguinte do Google é indexar as informações capturadas, um trabalho que dura vários dias rodando em milhares de computadores. São indexados mais de 20 bilhões de documentos, entre páginas web, imagens, notícias e mensagens da Usenet. Nesta fase existem também as duras tarefas de eliminar duplicidade de informações e de realizar a compressão dos dados armazenados. Apenas esclarecendo, a mencionada duplicidade é um problema muito sério pois, ao vasculhar a web, a quantidade de páginas idênticas apontadas por links diferentes é absolutamente inimaginável. Guardar todas essas cópias seria extremamente oneroso para o Google e evitar que tal ocorra é trabalhoso, mas vale a pena.
Durante a indexação também é calculado o PageRank de cada página, que é um número que independe das consultas (
queries) feitas pelos usuários e tem a ver, isso sim, com o número de vezes que determinada página web é linkada por outras.
Uma vez que a web já foi vasculhada ("
crawlada" -- eca!) e indexada, já é possível atender às queries que nós internautas fazemos ao Google, sempre ávidos por uma resposta rápida e que satisfaça nossos anseios, sem que precisemos passar horas avaliando sites não diretamente ligados ao assunto que pesquisamos.
Para encontrar no meio do gigantesco banco de dados do Google as páginas relevantes em resposta a uma consulta, Luiz mostrou que a query primeiro passa pelo servidor web do Google, depois pelos servidores de índice e em seguida pelos servidores de documentos, para só então serem entregues as respostas ao usuário. A medida de relevância de cada
hit (hit = cada site devolvido como resposta) é calculada com base em fatores dependentes da query e fatores independentes dela.
Ciclo do atendimento a uma query no Google
O usuário comum às vezes se pergunta como é que o Google consegue sobreviver, já que é de uso gratuito. A resposta são os anúncios, vulgo Google Ads. Para a empresa, o Google Ads é a segunda coisa mais importante do sistema, perdendo só para a máquina de busca. A implementação deste sub-sistema é uma tarefa tão desafiadora como a própria pesquisa por palavras-chave, só que tem o complicador da semântica transacional.
Quando na sua palestra o Luiz jogou este termo "semântica transacional" alguns dos presentes fizeram cara de abobado, eu inclusive. Trata-se de mais uma daquelas expressões da moda entre os sumo-sacerdotes da tecnologia. Uma explicação completa pode ser encontrada num
ótimo artigo (em inglês) da Developer Pipeline. Simplificando bastante, semântica transacional é um jeito de empacotar uma série de diferentes transações num conjunto de bancos de dados de modo elas sejam vistas pelo usuário como uma operação única. No caso do Google, para o usuário parece mágica essa coisa de digitar umas palavrinhas bobas e o sistema devolver uma lista imensa de sites relevantes. E mais, com base na busca solicitada, o sistema também exibe na tela de resposta diversos anúncios que têm tudo a ver com o assunto pesquisado. Uma query assim desencadeia uma série de operações nos bancos de dados que, até ser atendida, precisa ser vista pelo internauta como um bloco funcional único -- o que interessa a ele é a resposta e talvez alguns anúncios.
Quanto à escolha das propagandas, brincalhão, Luiz comparou o processo de escolher quais anúncios o Google Ads vai mostrar na tela de resposta com a cena de um vidente lendo os pensamentos do cliente. Só que aquilo que parece um processo adivinhatório tem por trás de si algoritmos de alta complexidade. Na verdade o Google Ads é composto por dois sub-sistemas distintos, um para posicionamento dos anúncios nas páginas de resultado de buscas e outro para anúncios nas páginas de navegação em sites e emails. Este segundo sub-sistema é conhecido no Google como
Content Ads System (sistema de anúncios por conteúdo) e utiliza uma variedade de algoritmos de agrupamento e classificação para extrair significado contextual das páginas web. O sistema precisa fazer o mesmo para os dados dos anunciantes pagantes do Google. Em seguida é necessário reunir as informações que combinam com o assunto da página e atribuir-lhes um escore. Para arrematar, o mais difícil: fazer tudo isso com um tempo de resposta menor do que o do próprio provedor original de conteúdo.
No próximo bloco, começarei da parte em que o Luiz falou sobre mais um dos terríveis desafios internos do Google: a tradução.
(continua na parte 3)