Web Mining Disciplina de Mineração de Dados CIn-UFPE Web: repositório de informação Sem padronização • Documentos de todo tipo Enorme • Informação de links • Informação de uso e acesso Amplamente distribuído Não estruturado / semi-estruturado Inter-conectado Em evolução WWW: Fatos Crescendo • • • • e mudando muito rapidamente Um servidor WWW a cada 2 horas 5 milhões de documentos em 1995 320 milhões de documentos em 1998 Mais de 1 bilhão em 2000 Índices se tornam inadequados muito rapidamente • Necessidade para uma melhor descoberta de recursos e extração de conhecimento WWW e Web Mining Problemas: • O problema da "abundância" 99% da informação não é do interesse de 99% das pessoas • Cobertura limitada da web Recursos da web escondidos Maioria dos dados em SGBD's 400 a 500 vezes maior que a Web estática • Interface de consulta limitada, baseada em buscas por palavra-chave Envolve outras áreas de computação • Recuperação de Informação Web Mining: Taxonomia Web Mining Web Content Mining Web Page Content Mining Web Structure Mining Search Results Mining Web Usage Mining General Access Pattern Mining Customized Usage Tracking Mineração do Conteúdo da Web: Abordagem Baseado em Agentes Ahoy! (1996-2000) – "achador de homepages" • Motivação: Altavista muito impreciso. Directories pouco dinâmicos • Entrada: nome de uma pessoa, país e instituição • Analisa resultados de vários motores de busca • Resultados analisados sintaticamente usando heurísticas Páginas que contêm frases como "home page” • http://www.help4web.net/search/eMail/Ahoy.html Mineração do Conteúdo da Web: Abordagem Baseado em Agentes Shopbot • Agente de compras • Identifica listas de preço e ofertas especiais. • Aprende a reconhecer estruturas de documentos de catálogos on-line e sites e e-commerce. • Tem que se ajustar às mudanças de conteúdo das páginas. • http://www.edgegain.com Mineração do Conteúdo da Web: Abordagem Baseado em Banco de Dados WebOQL • • • • (1998) Linguagem de consulta declarativa Funcional e select-from-where Retorna informações dentro de documentos Web. Estrutura básica: Árvores ordenadas com arcos nomeados Arco interno: objetos estruturados Arco externo: referências (links) • Exemplo: select [x.Titulo] from x in "books.html" where x.Autor = ”John Smith" Exemplo de Árvore em WebOQL [Tag: html] [Grupo: Inteligência Artificial] [Grupo: Linguagem de Programação] [Título: AIMA, Autor: Russel] [Título: Paradimas de Programação, Autor: John Smith] [Título: Machine Learning, Autor: Tom Mitchel] [Label Full version URL:http://www.cin.ufpe.br] [Label:table of contents URL:http://www.cmu.edu/ML] [Label:book URL:http://www.cmu.edu/ML/book.zip] Mineração do Conteúdo da Web: Abordagem Baseado em Banco de Dados WebSQL • linguagem estilo SQL para extrair documentos pertinentes Estrutura básica • Document: url, title, text, length, type,date • Anchor: base, label, href Exemplo: • Recuperar o título e a URL de todos os documentos que são apontados pelo documento cuja URL é http://www.somewhere.com no mesmo servidor • SELECT d.url, d.title FROM Document d SUCH THAT ”http://www.somewhere.com" -> d Mineração do Conteúdo da Web Atualização de Páginas em Engenhos de Busca Abordagens • Atualizar as páginas na mesma freqüência • Atualizar em freqüências diferentes Aprender como as páginas se comportam à medida que se atualiza Utilizar um classificador para prevê em que classe a página se encontra ¤ Uso de clustering para criar as classes ¤ Uso de técnicas classificação para gerar classificador Organização hierárquica automática de resultados de Busca Motores de Busca atuais • Baseado em palavra-chave • Retorna respostas demais • Respostas de baixa qualidade Hierarquia de Resultados de Busca • Reorganizar os resultados usando uma hierarquia semântica (Zaiane et.al., 2001) Realiza metabusca Mapeia consulta em hierarquias conceituais pré-existentes WordNet Mapeamento das páginas na hierarquia J-Walker Clusterização • http://www.wisenut.com Web Structure Mining Extrair conhecimento das interconexões dos documentos. Método em procedência de jornalismo / biblioteconomia: • O fator de impacto de Garfield (1972): provê uma avaliação numérica na citação de jornais. Enorme quantidade de anotações humanas escondidas • Podem ajudar a inferir noções de "autoridade" em um tópico. Descoberta WWW. de páginas influentes e dominantes na Web Structure Mining HyPursuit (Weiss et.al., 1996) • Engenho de busca hierárquico • Usa relações baseadas no conteúdo e nos links • Grau de similaridade proporcional ao: Número de termos, ancestrais e descendentes em comum Número de links entre documentos (grau de conectividade) Hyperlink Induced Topic Search (HITS) Algoritmo de Jon Kleinberg, 1998, Cornell University Problema • Qualidade das respostas para consultas genéricas em engenhos de busca Hubs e autoridades • Boa autoridade: página apontada por bons hubs • Bom hub: página que aponta para boas autoridades Comunidades competitivas • Ex: consulta “engenho de busca” Etapas do algoritmo HITS Primeira etapa: construção das páginas candidatas • Começando de uma consulta convencional, HITS monta um conjunto inicial S de páginas • O conjunto S é o conjunto raiz. • As páginas são expandidas para um conjunto raiz T adicionando páginas que estão ligadas de ou para qualquer página no conjunto inicial S. T S Etapas do algoritmo HITS Segunda Etapa: propagação de pesos • Cria um vetor de hubs e um vetor de autoridades • HITS então associa com cada página p um peso de hub h(p) e um peso de autoridade a(p), tudo inicializado para um. • HITS então iterativamente atualiza os pesos de hub e autoridade de cada página • Faça pq denotar "a página p tem um link para a página q". HITS atualiza os hubs e autoridades da seguinte forma: a( p) = h( q ) q p h( p ) = a(q ) p q Melhorias para o HITS Deficiências do HITS • O termo não está amarrado à consulta Piora a precisão • Cálculo é feito on-line Problemas de desempenho Sistema CLEVER (Chakrabarti, et.al.,1998-1999) • Baseado tanto no conteúdo como na informação do link • Observa uma janela próxima ao href • As arestas possuem pesos W = 1 + ocorrências + (janela - distância) + raiz_do_grafo GHITS Desenvolvido no Cin Encontrar autoridades na Web independentemente de consulta Processo realizado em batch Peso menor no ranqueamento • R = text * 0.75 + GHHITS(autoridade)*0.25 Melhoria de 10% na qualidade da resposta Page Rank Tenta capturar a noção de importância de uma página Uma boa autoridade aponta para uma boa autoridade Ranqueamento baseado em um modelo de um "browser aleatório“ O número de visitas para cada página é seu Page Rank Usado para selecionar páginas para o crawler Fazer o ranking das páginas em resultados de busca do Google. Independente do tópico Comunidades colaborativas Cálculo do Page Rank Cada página p tem um número de links saindo dele C(p) B(p): páginas que apontam para p PageRank de p é obtido por PR( q ) PR( p) = q E B(p) C ( q ) Cálculo do Page Rank 100 53 50 3 50 9 Comparação Processanento on-line Denpendente de consulta Tipo de comunidade Consultas genéricas HITS sim sim competitiva sim GHITS não não competitiva sim Clever sim sim competitiva sim Page Rank não não colaborativa sim Links de Nepotismo Links entre páginas que estão presentes por razões outras que mérito Spamming • Enganar motores de busca para dar rank alto para alguns documentos Abordagens para combater o problema • Não considerar páginas de mesmo host, mesmo ip • Manter uma lista de páginas que abusam de links • Manter um limiar para o número de backlinks Servidores Web Registram uma entrada de log para cada acesso • Grande quantidade de informação Informações IP ID do usuário normalmente contidas nos logs Timestamp Método URL/caminho Status Tamanho Referência Agente Cookie 129.128.4.21 - [15/Aug/1999:10:45:32 - 0800] “GET /index.html 200 512 /main.html Mozilla/3.04 (Win95) Servidores Web Ferramentas • • • • • • • • comerciais fornecem: Relatório de hits e bytes transferidos URLs mais acessadas Lista de browsers mais usados pelos usuários Hits por hora/dia/semana/mês. Lista de erros. Árvore de diretórios acessados Exemplo: http://www.sane.com/demo/NetTracker/ Problema Desempenho e profundidade de análise limitado Necessidade de minerar Web logs Ganho de performance do servidor Melhora a navegação dentro do site Melhora o design da aplicação web Direcionam os clientes no comércio eletrônico Identificam locais privilegiados para propaganda Preparação de Dados Identificando ações de usuários: • Análise de caminhos Problemas: • Grande quantidade de dados • Identificar os tipos das páginas: páginas de conteúdo ou páginas de navegação (retirar .gifs). • Tentar prever acessos que não foram identificados no log Proxy server e chache de browser Utilização de funções dos browsers (ex.: voltar a página anterior, scrolling up/down...) Solução: utilizar cookies ou realização de login Preparação de Dados Problemas • Identificação de usuários que estão sobre o mesmo ip • Não se sabe quando um usuário sai do site. Usa-se o tempo de inatividade como heurística (20 ou 30 minutos sem uso). • Páginas dinâmicas Diferentes ações de usuários levando ao mesmo CGI Mesma ação do usuário, em horas diferentes, levando a CGIs diferentes Preparação de Dados Uso da estrutura e conteúdo do site • Estrutura: É necessário conhecer estrutura do web site a minerar para analisar a sessão e as transações do usuário. ¤ Ex.: Grafo de links entre as páginas. • Conteúdo: O conteúdo das páginas visitadas pode dar idéia de como realizar a limpeza e seleção dos dados. ¤ Ex.: Página de navegação ou de conteúdo. Mineração dos dados Análise de caminhos Regras de Associação • Descobrir os caminhos mais acessados no site • Exemplo: 80% dos clientes acessaram o site a partir da página /download • Correlação entre acessos a arquivos no Web Server • Ajuda em estratégias de marketing • Exemplo: 40% dos usuários que acessaram a URL /download também acessou a URL /products Seqüência de padrões temporais • Determinar relacionamentos temporais • Exemplo: 60% dos clientes que pediram um produto na URL /company/product também visitaram a URL /download dentro de 15 dias Mineração dos dados Regras de classificação • Categorizar visitantes através da seleção de características do site que melhor descrevem seus comportamentos. • Exemplo: clientes vindos de sites do governo tendem a interessar-se por páginas de produtos Clustering • Agrupamento de transações • Agrupamento de páginas baseado no conteúdo • Agrupar usuários de mesmo comportamento. Sistemas de Web Usage Mining Gerais: • WebLogMiner (Zaïane et al, 1998) filtrar dados para um banco de dados convencional (relacional, OR, OO) Gerar um datacube a partir do banco de dados Usar ferramentas OLAP para realizar ações de drill-down e roll-up no cubo Extração de conhecimento (OLAM) • WUM http://wum.wiwi.hu-berlin.de/demo/ WebSIFT (Cooley et al, 1999) Personalização e recomendação: • WebWatcher (Joachims et al, 1998) Conclusão Usar o log gerado pelo servidor Web pode ajudar a entender o comportamento do usuário e assim melhorar o funcionamento do site (design, aplicação, etc) Nem sempre o log tem informações suficientes OLAP proporciona a visualização em diferentes perspectivas e em diferentes níveis. Web Usage Mining oferece relatórios mais detalhados sobre o uso do site.