16 de janeiro de 2012

Recuperação de Informação 2

Em Maio de 2010 escrevi um artigo chamado "Recuperação de Informação", onde contei um pouco sobre esse conceito e qual sua relação com os mecanismos de busca modernos. Para isso, fiz uma rápida contextualização histórica dessa área de conhecimento até os mecanismos de busca atuais e interfaces de busca dentro de websites. Esse artigo que segue tem como objetivo retratar a recuperação de informação de um ponto de vista um pouco mais técnico, que envolve a inteligência artificial. Grande parte desse artigo é construído com base nos conceitos e técnicas explanadas no livro "Inteligência Artificial" de Stuart J. Russel e Peter Norving (vide referências).

Um pouco mais da contextualização histórica

Busca está efetivamente relacionada com recuperação de informação. Segundo Langville e Meyer (2006) depois da invenção do papel, os anciões romanos e gregos gravavam informações em rolos de papiros como nós hoje fazemos em post its, cadernos de anotações, etc. O fato é que como os anciões romanos, gregos, latinos, entre outros povos antigos, nós hoje vivemos a mesma lógica na hora de produzir e armazenar informação. Só que com sofisticações diferentes. A diferença entre ontem e hoje é a tecnologia empregada. Por tecnologia, podemos entender "o campo de estudo referente aos conhecimentos e usos das ferramentas e instrumentos utilizados pelos seres humanos ao longo de sua história" (SANTAELLA, 2007, p.205). Sendo assim, as ferramentas utilizadas hoje fornecem um maior poder de abrangência do que as anteriores, de modo que os métodos de recuperação de informação precisaram evoluir para que chegassem perto da cognição humana e pudessémos assim resolver o problema de obter bons resultados perante uma busca.

Algoritmos inteligentes

Na recuperação de informação moderna, os mecanismos que recuperam informação (conhecidos como mecanismos de busca) são baseados em agentes. Esses agentes são programas autônomos que reconhecem um ambiente. No caso de um agente da Internet, a web é todo seu ambiente, então na linguagem técnica pode ser reconhecido como "ambiente do agente" (RUSSEL; NORVING, 2004). Há também o programa do agente, ou seja, a implementação de suas funções que estão relacionadas à sua arquitetura.

Robôs de mecanismos de busca são agentes da web que rastreiam os websites indexando suas páginas. Eles funcionam através de módulos (LANGVILLE; MEYER, 2006) como a estrutura conceitual apresentada a seguir:
  • Software crawling: Conhecido também como spider, ele cria um robô virtual que consulta permanentemente a web atrás de novas informações e páginas, retornando com informações para sua central;
  • Repositório de páginas: Aqui as aranhas retornam com novas páginas web que são temporariamente estocadas. As novas páginas ficam no repositório até que sejam enviadas para o módulo indexador;
  • Módulo Indexador: No módulo indexador, a cada nova página extraída, é feita uma descrição (resumos importantes) da página, e assim ela é armazenada no índice;
  • Índice: No índice fica uma versão comprimida da página e suas informações;
  • Módulo de pesquisa: Converte a pesquisa do usuário em uma pesquisa nos seus índices, avaliando a relação da pesquisa com as páginas disponíveis no índice, ou seja, os documentos relevantes; e
  • Módulo de ranking: A relevância de um documento é determinada no módulo de ranking de acordo com o critério de cada mecanismo de busca. O desfecho é uma lista ordenada de páginas.
Esses módulos fazem parte (ibidem) da estrutura conceitual de um mecanismo de busca orientado por robôs. Contudo, trata-se de um modelo conceitual, um simples desenho de como pode ser seu funcionamento. Provavelmente, mecanismos de busca como o Google, Bing, dentre outros, possuam modelos mais avançados que esses.

Update 21/01/2012: no vídeo a seguir Matt Cutts explica como funciona o mecanismo de busca do Google.

Rastreamento e ranqueamento de páginas

Perante esse modelo conceitual, o "Crawler" navega através de links por entre páginas web, alimentando-se de seu conteúdo. Dessa forma, são indexadas as páginas de um site nos índices dos mecanismos de busca. O ranqueamento dessas páginas fica por conta do módulo de ranking. Os mecanismos de busca não revelam essas regras, mas sabe-se que alguns itens são favoráveis para que o robô entenda a relação de uma página com uma determinada palavra-chave, dentre eles a presença de palavras-chave em alguns artefatos importantes como:
  • URL
  • Títulos de páginas
  • Cabeçalhos h1, h2, hx
  • Texto âncora de links, dentre outros artefatos
Assim, os robôs utilizam artefatos de uma determinada página para entender do que trata seu conteúdo. Isso porque é utilizada a lógica no comparativo entre palavras expostas nos elementos da página com um possível significado, por exemplo:
  • Mouse, computadores, impressores, CDs e roteadores são equipamentos de informática, logo, se um site possui links, títulos, imagens entre outros artefatos que se relacionam com essas palavras, será um site relevante para a pesquisa da palavra-chave "loja de informática"
Essa lógica faz parte do sistema de funcionamento de um mecanismo de busca baseado em spiders.

Também, os mecanismos de busca modernos utilizam a popularidade/reputação de um website para determinar a importância dele perante determinada informação que precisará ser recuperada. A popularidade será calculada com base nos links que apontam para uma certa página por exemplo, no entanto, não é a quantidade que será o fator determinante, mas sim a qualidade dos links que apontam para uma determinada página.

Imaginemos quando os métodos de recuperação de informação eram pouco sofisticados se comparados com os de hoje, em uma biblioteca no século XVI ou XVII, por exemplo, um bibliotecário mantinha em mente e através de alguns livros índices de outros livros a localização de determinados livros. Certamente, os índices literários poderiam ter em seu conteúdo milhares de livros, no entanto, na memória do bibliotecário estavam mais presentes aqueles livros que com frequencia eram procurados pelas pessoas. Os mecanismos de busca são uma espécie de figura automatizada dessa lógica, onde os sites mais populares são aqueles mais referenciados. Pense nisso

O SEO é a ciência que trata de estudar formas de melhorar a relação entre mecanimos de busca e websites e torná-los, por sua vez, sites melhores, através da qualidade de artefatos como: links, imagens, textos, dentre outros. O SEO também observa requisitos de conteúdo de modo a atrair referências externas.

O Futuro da Recuperação de Informação

O futuro da recuperação de informação se confunde com o futuro dos mecanismos de busca, dos sites de redes sociais, das próximas gerações de websites e tecnologias móveis. Ainda procuramos por informações mesmo sem depender de tecnologias, mas o que ficou claro nesses dois artigos é que a utilização de artefatos de alta tecnologia como mecanismos de busca com inteligência artificial, por exemplo, facilitou a forma como encontramos informação.

Sendo assim, da mesma forma que a lógica da busca da informação continua a mesma, só que mais rápida e automatizada, isto tende a não mudar e ficar cada vez mais parecida com a forma que procuramos no mundo físico. É essa é a grande sacada.

Entender a busca e como funciona seu processo, independentemente do meio online, pois ela começa em outros lugares. Traçar esse caminho e entender que o SEO pode transitar dentre as mídias pode ser o real sucesso de qualquer estratégia de performance.

Referências 

"SEO – Otimização de Sites – Aplicando técnicas de otimização de sites com uma abordagem prática". Erick Formaggio. Rio de Janeiro: Brasport, 2010.
"Inteligência Artificial”. Stuart J. Russel; Peter Norving. Rio de Janeiro: Elsevier, 2004
"Google´s PageRank and Beyond: The Science of Search Engine Rankings". Amy N. Langville; Carl D. Meyer. Pup.princeton.edu, 2006.
"Linguagens líquidas na era da mobilidade". Lucia Santaela, 2007. Paulus.

Como o Google faz melhorias em seu algoritmo de busca

Quer saber como o Google faz melhorias no seu algoritmo? Assista esse ótimo vídeo onde os responsáveis pelo algoritmo do Google explicam um pouco sobre como funciona o processo de modificações e qualidade de busca.

Das coisas mais interessantes, eles comentam que em um ano já chegaram a realizar 500 modificações no algoritmo, sobre como realizam o modelo comparativo de resultados para que possam modelar novas regras e sobre o algoritmo de correção ortográfica.

14 de janeiro de 2012

Previsões de Isaac Asimov em 1988

Entrevista onde Isaac Asimov, em 1988, fala sobre o modelo educacional daquela época e como poderiam acontecer mudanças na educação e busca por informação nos dias de hoje.

12 de janeiro de 2012

Deixe as páginas do seu site mais rápidas

Você é um internauta (como eu) que teve a oportunidade de navegar na Internet nos anos 90? Se sim, leia a história a seguir e relembre. Caso não, a história a seguir serve para entender como funcionava a Internet.

Bom, a primeira coisa a se falar era a conexão. Era lenta e mais cara do que hoje. Lembro que era necessário realizar o acesso à Internet por meio de uma conexão discada, via modem 56kbps, que demorava para ser concluída e vivia caindo. Como se isso não bastasse, a conexão era lenta, muito lenta. Se você entrasse em um site com muitas imagens, Deus me livre! Demorava muito para carregar a página.

A questão é que hoje, embora a velocidade das conexões seja maior e o poder de processamento de computadores, dispositivos móveis (que muitas vezes superam o poder de processamento de computadores daquela época) e servidores aumentou, os sites na verdade ficaram cada vez mais carregados com "apetrechos". A diferença é que hoje, muitas vezes a carga oferecida por esses artefatos não é sentida por conta de todas as evoluções na informática citadas acima.

Verdade seja dita, o ser humano não tem paciência. Uma página que demora mais a carregar, a falta de usabilidade e uma experiência desagradável fará com que o consumidor continue sua busca sem considerar o seu site. É sobre isso que escrevo nesse post.

Fator de rankeamento

Além do usuário, também precisamos agradar o mecanismo de busca. O Google utiliza a velocidade de carregamento de uma página como uma premissa importante para que ela seja ranqueada (da mesma forma que no Quality Score dos Links Patrocinados). É fato que, como no passado recente, o internauta ainda não é muito tolerante a falhas e tempo perdido.

Como sei se uma página está lenta?

Para saber se um site está com o carregamento de suas páginas nos limites do normal, é possível contar com ferramentas que automatizam parte dessa análise.

Há alguns softwares muito bacanas que podem ser utilizados para realizar essa inspeção. O meu predileto é o Yslow.

Imagem 01: Teste do Yslow no Facebook. Estatísticas do HTML, JavaScript e outros componentes.
Outra ferramenta muito interessante que estou utilizando muito, ultimamente, é o WebPageest. Trata-se de uma ferramenta que testa o carregamento em vários navegadores diferentes. Basta, na home da ferramenta, selecionar o navegador e região.

A ferramenta apresenta os dados resumidos e em detalhes, como em "Waterfall View" onde, em modo cascata, são mostradas informações como início da conexão, tempo de download, dentre outras que podem colaborar para a otimização da velocidade das páginas do site.

Imagem 02: Gráficos estatísticos de carregamento de elementos da página do Facebook.

Essas ferramentas servem como apoio para que seja possível entender o que prejudica diretamente o carregamento da página. Por exemplo, na imagem acima é possível perceber que há duas chamadas CSS que consomem um tempo relevante no total e que, se diminuída para somente uma (como na explicação abaixo), pode encurtar o tempo de carregamento da página, como veremos mais a seguir.

Dica: teste sempre modelos de templates das páginas do site. Isso significa testar um exemplar de cada nível estrutural, como: home, categoria, subcategoria e página de produto.

Dicas importantes para deixar as páginas do site mais leves

  • Diminua o código HTML o quanto for possível. Remova espaços e comentários a não ser que sejam muito importantes; 
  • Para código JavaScript e CSS, reúna-os em arquivos externos ".css" e ".js". Essa é uma maneira de tirá-los das páginas do site e posicioná-los nesses arquivos externos, que serão baixados e mantidos no cache do navegador;
Imagem 03: Páginas do site obtêm as instruções CSS e JS de arquivos externos. Do livro "SEO – Otimização de Sites: Aplicando técnicas de otimização de sites com uma abordagem prática".
  • Cuidado ao exportar instruções CSS e JS para não exagerar no número de chamadas. Cada chamada é uma requisição http diferente e cada requisição requer tempo para resposta e carregamento;
  • Diminuição de requisições HTTP, pois segundo Steve Souders (2007) 10 a 20% do tempo de resposta ao usuário final envolve recuperar o documento HTML e os restantes 80 ou 90% componentes como imagens, scripts, dentre outros. Não se trata de comprometer as funcionalidades que esses elementos proporcionam, mas de incluir na empresa uma cultura pró-otimização;
  • Converse com especialistas em CSS e JS afim de buscar maneiras viáveis de otimização de código. Sabe-se que há técnicas para diminuir o número de linhas de instrução em CSS e JS, dessa forma, o próprio arquivo independente também ficará mais rápido;
  • A otimização de imagens também deve ser bem observada, afinal, de todos os artefatos é o que mais leva tempo para carregar. Pense em opções, principalmente em caso de e-commerces de miniaturas e otimização de formatos e tamanhos de imagens. Muitas vezes, em programas para a edição de imagens é possível passar uma imagem de 50kb para 40kb sem comprometer sua qualidade de visualização. Imagine a diferença que isso pode fazer em 10 imagens dentro de uma página;
  • Evitar redirecionamentos desnecessários. Redirecionamento, no SEO, é um assunto que deve ser observado com muito cuidado, por particularidades como de popularidade/reputação, dentre outras. No caso de performance, excesso de redirecionamentos também podem ser prejudiciais. A dica é estudar e avaliar sempre o custo/benefício;
  • Redes de distribuição de conteúdo também são úteis. Segundo Souders (2007), se os servidores estão perto do usuário, o tempo de resposta de uma requisição, será menor. Outra vantagem desse tipo de planejamento é também a absorção de picos de tráfego por causa de propagandas, etc. Nesse caso, é importante observar também tanto a capacidade de processamento dos servidores principais, quanto de redes de distribuição de conteúdo.
Referências

FORMAGGIO, Erick. "SEO – Otimização de Sites – Aplicando técnicas de otimização de sites com uma abordagem prática". Rio de Janeiro: Brasport, 2010.
SOUDERS, Steve. "Alta performance em sites Web". Rio de Janeiro: Alta Books, 2007.

Update 16/01/2012

No grupo SEO Brasil no Facebook o pessoal comentou sobre alguns CDNs gratuitos, seguem alguns:

Coralcdn.org
Globule.org
A Content Distribution Network for PlanetLab

7 de janeiro de 2012

Web Semântica

Vídeo muito legal que a TV1 fez sobre a "Web Semântica" através de uma entrevista com a Martha Gabriel e o Vagner Diniz Gerente do W3C Brasil.