Web Mining Aplicação de técnicas de Mineração de Dados para descoberta de padrões na Web Motivações: Encontrar informação relevante Gerar conhecimento a partir da informação disponível na Web Personalizar a informação Aprender sobre consumidores ou usuários individuais
Abordagens de Web Mining Mineração de conteúdo (Web content mining) Extração de conhecimento do conteúdo de páginas e suas descrições Mineração de estrutura (Web structure mining) Obtenção de conhecimento a partir da organização da web e da referência cruzada de ligações. Mineração de uso (Web usage mining) Geração de padrões interessantes com o uso dos registros de acesso da web
Mineração de conteúdo (Web content mining) Extração de conhecimento do conteúdo de páginas e suas descrições Inclui a Mineração de texto (text mining) Aplicações Classificação de textos Detecção e acompanhamento de evento Extração de regras
Documentos não estruturados Texto livre Representação: bag of words Palavras do texto são atributos Booleano Baseado em frequência Ignora a sequência em que palavras aparecem Usa estatísticas sobre palavras isoladas
Outras formas de seleção: Remover pontuação, palavras pouco frequentes, palavras muito frequentes Stemming – extrair o radical das palavras Outras formas de representação: Posição da palavra no documento N-grams (sequências de palavras de tamanho até n)
Documentos semi-estruturados Tem informação estrutural adicional (HTML e hiperlinks) no documento de hipertexto Aplicações: Classificação de hipertextos Agrupamento Aprendizado de relações entre documentos web Extração de Padrões ou regras
Mineração de estrutura (Web structure mining) Tenta descobrir o modelo por trás da estrutura de links na web. Informação extraída: Links apontando para um documento podem indicar sua popularidade Links saindo de um documento podem indicar a riqueza ou variedade de tópicos tratados pelo documento
Estrutura típica Páginas = nós, hyperlinks = arcos conectando páginas Hyperlinks tem duas finalidades: Permitir navegação Apontar para páginas com “autoridade” no mesmo tópico da página contendo o link
Estruturas interessantes
Informações a serem extraídas: Qualidade da página web Autoridade de uma página Ranking de páginas Estruturas interessantes co-citação, escolha social, etc
Mineração de uso (Web usage mining) Aplicação das técnicas de mineração de dados para descobrir padrões de uso a partir de registros de acesso à web Tendências: extração de padrão geral de acesso personalização
Tendências - Definidas pelo tipo de aplicação: Extração de padrão geral de acesso Analisa dados do web log file e outras fontes para descobrir padrões e tendências de acesso Pode ser usado para: Reestruturação dos sites em grupos mais eficientes Localizar pontos para propaganda mais efetiva Direcionar campanhas específicas para usuários específicos
Uso personalizado Analisa tendências de usuários individuais Pode ser utilizado para: Personalizar dinamicamente a cada usuário, com base no padrão de acesso ao longo do tempo a informação apresentada, a profundidade do site e o formato dos recursos
Fontes de dados Dados do servidor Web Web server log Cookies Dados de consultas
Dados do cliente Agente remoto (Javascripts ou Java applets) Modificação do código fonte de um browser Requer a cooperação do usuário
Dados do proxy Web proxy atua como um nível intermediário entre browsers de clientes e servidores web Pode ser usado para reduzir o tempo de carregar uma página web Desempenho depende da habilidade de prever acessos futuros Dados podem revelar requisição de múltiplos usuários a múltiplos servidores web
Web server log Tipos de logs Formatos Error Segurança Referência Browser (Agente) Accesso Formatos Common Log Extended log formats
Exemplo: Web log #Software: Microsoft Internet Information Server 4.0 #Version: 1.0 #Date: 1999-12-25 00:00:21 #Fields: date time c-ip cs-username cs-method cs-uri-stem cs-uri-query sc-status sc-bytes cs(User-Agent) cs(Cookie) cs(Referer) 1999-12-25 00:00:21 194.237.174.119 - GET /issue1/jobs/Default.asp - 200 20407 AltaVista-Intranet/V2.3A+(www.altavista.co.uk+jan.gelin@av.com) - - 1999-12-25 00:03:39 194.237.174.119 - GET /statistics/ExpIntHits1.asp - 200 10519 AltaVista-Intranet/V2.3A+(www.altavista.co.uk+jan.gelin@av.com) - - 1999-12-25 00:26:54 209.67.247.158 - GET /robots.txt - 200 303 FAST-WebCrawler/2.0.9+(crawler@fast.no;+http://www.fast.no/…) - - 1999-12-25 00:32:47 194.237.174.119 - GET /issue2/default.asp - 200 5332 AltaVista-Intranet/V2.3A+(www.altavista.co.uk+jan.gelin@av.com) - - 1999-12-25 01:49:54 206.186.25.7 - GET /resources/images/main/bg.gif - 200 300 Mozilla/2.0+(compatible;+MSIE+3.02;+AK;+Windows+NT) ASPSESSIONIDGQQGQGAD=IIHCBIFDIECKPAPGICDEOJII;+SITESERVER=ID=22e0a17296b8c2ed1f77460cde75c27f http://www.exploit-lib.org/issue1/webtechs/ 1999-12-25 01:49:54 206.186.25.7 - GET /issue1/webtechs/Default.asp - 200 24659 Mozilla/2.0+(compatible;+MSIE+3.02;+AK;+Windows+NT) - http://www.statslab.cam.ac.uk/%7Esret1/analog/webtechs.html 1999-12-25 01:49:54 206.186.25.7 - GET /resources/images/main/global_home_h.gif - 200 487 Mozilla/2.0+(compatible;+MSIE+3.02;+AK;+Windows+NT) ASPSESSIONIDGQQGQGAD=IIHCBIFDIECKPAPGICDEOJII;+SITESERVER=ID=22e0a17296b8c2ed1f77460cde75c27f http://www.exploit-lib.org/issue1/webtechs/ 1999-12-25 01:49:54 206.186.25.7 - GET /resources/images/main/global_search.gif - 200 534 Mozilla/2.0+(compatible;+MSIE+3.02;+AK;+Windows+NT) ASPSESSIONIDGQQGQGAD=IIHCBIFDIECKPAPGICDEOJII;+SITESERVER=ID=22e0a17296b8c2ed1f77460cde75c27f http://www.exploit-lib.org/issue1/webtechs/ 1999-12-25 01:49:56 206.186.25.7 - GET /resources/images/main/local_home01.gif - 200 663 Mozilla/2.0+(compatible;+MSIE+3.02;+AK;+Windows+NT) ASPSESSIONIDGQQGQGAD=IIHCBIFDIECKPAPGICDEOJII;+SITESERVER=ID=22e0a17296b8c2ed1f77460cde75c27f http://www.exploit-lib.org/issue1/webtechs/
Este arquivo de log mostra visitas ao web site Exploit Interactive de 00:00:00 em 25 de Dezembro de 1999: A visit from an AltaVista robot in UK, downloading several text files A visit from a FAST-Crawler robot in Norway A visit from a PC (WinNT) user of an IE browser who followed a link at <http://www.statslab.cam.ac.uk/%7Esret1/analog/web techs.html> and downloaded a HTML page and several images
Web Server Log – Exemplo Conteúdo da Página KDnuggets.com Server http://www.kdnuggets.com/jobs/ Web server log 152.152.98.11 - - [16/Nov/2005:16:32:50 -0500] "GET … HTTP/1.1" 200 152.152.98.11 - - [16/Nov/2005:16:32:50 -0500] "GET /gps.html HTTP/1.1" 200 152.152.98.11 - - [16/Nov/2005:16:32:50 -0500] "GET /jobs/ HTTP/1.1" 200 …
Web (Server) Log Uma linha (exemplo) do log 152.152.98.11 - - 152.152.98.11 - - [16/Nov/2005:16:32:50 -0500] "GET /jobs/ HTTP/1.1" 200 15140 "http://www.google.com/search?q=salary+for+data+mining&hl=en&lr=&start=10&sa=N" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)“ 152.152.98.11 - - [16/Nov/2005:16:32:50 -0500] "GET /jobs/ HTTP/1.1" 200 15140 "http://www.google.com/search?q=salary+for+data+mining&hl =en&lr=&start=10&sa=N" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"
Web log: IP 152.152.98.11 IP address – pode ser convertido para o nome do host, por exemplo: xyz.example.com
Top-Level Domains (TLD) A última parte do domínio é o TLD TLD Generico .com (comercial) – geralmente mas não necessariamente USA .net (ISP, network providers) .edu – US educacional, e.g. conncoll.edu Outros: .gov (governo), .org (organizações sem fins lucrativos), …
Top-Level Domains – código do país (ccTLD) Alguns dos mais comuns
Web log: Name, Login - Name: - Login: nome do usuário remoto (normalmente omitido e trocado por um traço “-”) - Login: Login do usuário remoto (também é normalmente omitido e trocado por um traço “-”)
Web log: Date/Time/TZ [16/Nov/2005:16:32:50 -0500] Date: Time: HH:MM:SS Time Zone: (+|-)HH00 relativo ao GMT Date: DD/MM/AAAA
Web log: Request "GET /jobs/ HTTP/1.1" GET HEAD POST OPTIONS … Method: GET HEAD POST OPTIONS … Protocolo HTTP: e.g. HTTP/1.0 or HTTP/1.1 URL: Relativo ao domínio Nota: a requisição é armazenada como é enviada, assim, pode conter erros, falhas, e qualquer tipo de coisa estranha.
Web log: Status code 200 Status (Response) code. Os mais importantes são: 200 – OK (é o mais frequente, ainda bem!) 206 – acesso parcial 301 – redirecionamento permanente 302 – redirecionamento temporário 304 – não modificado 404 – não encontrado …
Web log: Object size 15140 O tamanho do objeto retornado ao cliente (em bytes) Pode ser “-” se o código de status for 304
Web log: Referrer http://www.google.com/search?q=salary+f or+data+mining&hl=en&lr=&start=10&sa =N URL que da qual o visitante veio (neste exemplo é uma query do Google: “salary for data mining”, 2a. Página de resutados– começando de 10) Também pode ser uma página estática, interna, externa ou “-” no caso de uma requisição direta (bookmark, por exemplo) Esta é uma informação valiosa
Web log: User agent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)" User agent (browser) http://en.wikipedia.org/wiki/User_agent Por razões históricas, quase todos os browsers começam com Mozilla Em muitos casos pode-se ter informações adicionais: Browser type, version : MSIE 6.0 - Internet Explorer 6.0 OS: Windows NT 5.1 (XP SP2) with .NET Framework 1.1 installed
Programas para análise de Web Log Free Analog, awstats, webalizer Google analytics (ver http://www.analog.cx/) Comerciais WebTrends, WebSideStory, … www.kdnuggets.com/software/web-mining.html
Programas para análise de Web Log Podem fazer análises e emitir relatórios como por exemplo: lista de IPs conectados a um website “pie chart” detalhando quais arquivos foram acessados com mais frequência, e muitos outros
Itens identificados a partir dos dados coletados Usuário Click-streams – seqüência de requisições de acessos a páginas. Os dados disponíveis pelo servidor nem sempre fornece informação para reconstruir um click-stream completo para um site Visões de páginas – uma única ação do usuário e pode consistir de vários arquivos: frames, gráficos, scripts. O usuário requer uma “web-page” e não cada um dos componentes.
Sessões – click-stream de páginas para um único usuário por toda a web Sessões – click-stream de páginas para um único usuário por toda a web. Tipicamente, apenas a parte de cada sessão de usuário acessando um site específico pode ser usada para análise, pois informações de acesso não são públicas.
Visita ou sessão do servidor – conjunto de acessos a páginas em uma sessão de usuário para um web site em particular. Um conjunto de visitas é a entrada necessária para qualquer ferramenta de análise de uso ou de mineração de dados. Episódios – subconjunto de uma sessão de usuário ou de servidor que tem significado semântico.
Processo de Web usage mining Pré-processamento Descoberta de Padrões Análise de Padrões
Processo de Web Usage Mining Pré-processamento Consiste em converter os dados disponíveis nas várias fontes de dados identificando itens necessários para a descoberta de padrões. Considerada a etapa mais difícil em Web usage mining devido aos dados disponíveis não serem completos
Pré-processamento Identificar: Usando: Usuários Sessões do servidor Endereço de IP Agente Cadeia de requisições (click-streams)
Identificação de usuários Problemas: IP único / Múltiplas sessões de servidor Um proxy pode ter vários usuários acessando um Web site, no mesmo período de tempo – registros do usuário não serão sequenciais nem no tempo correto. Múltiplos IPs / Sessão de servidor única por motivo de segurança, o provedor pode atribuir aleatoriamente um entre vários endereços de IP a cada requisição de um usuário.
Múltiplos IP / Usuário único um usuário que acessa a Web de máquinas diferentes terá IPs diferentes a cada sessão, dificultando registro de visitas repetidas do mesmo usuário. Múltiplos agentes / Usuário único o usuário pode usar diferentes browsers, de uma mesma máquina, pode parecer mais de um usuário.
Exemplo- web server log
Identificação de usuários Soluções: usar Cookies logins IP/agentes/caminhos
Identificação de sessões (depois de identificados cada usuário) Dividir o click-stream de cada usuário em sessões Dificuldades: saber quando um usuário saiu de um website Requisições de outros websites não estão disponíveis Usar intervalo de tempo
Inferir referências a páginas em cache Exige monitoramento de uso do lado do cliente O campo de referência pode ser usado para detectar quando paginas em cache foram vistas
Referência a páginas com cópias locais
A-B-F-O-F-B-G L-R A-B-A-C-J Exemplo IP 123.456.78.9 é responsável por 3 sessões IPs 209.456.78.2 e 209.45.78.3 são responsáveis por uma sessão. Usando informações de referência e agente, linhas 1 a 11 podem ser divididas em: A-B-F-O-G L-R A-B-C-J Complementando os caminhos seriam adicionadas páginas: A-B-F-O-F-B-G L-R A-B-A-C-J
Registros de tempos de acesso errados no servidor Tempo de acesso real
Visitas a páginas não registradas no sevidor
Detecção de robots e filtragem Web robots são programas que percorrem automaticamente a estrutura de hyperlinks para localizar e recuperar informações. Porque distinguir: Recuperam informação não autorizada Sobrecarga de tráfego Dificultam o acompanhamento de clik-streams
Identificação de transações Depois de identificadas as sessões, transações devem ser inferidas Possível critério: transação é um caminho dentro de uma sessão, terminando em uma página de conteúdo Páginas devem estar classificadas em : navegação e conteúdo
Descoberta de padrões Algoritmos e métodos de mineração de dados são aplicados aos dados obtidos da web Análises estatísticas Método mais comum Análises estatísticas descritivas: média, frequência, mediana..) Variáveis: visões de páginas, tempo de permanência, comprimento do caminho de navegação. Utilidade: melhorar desempenho do sistema, melhorar a segurança, facilitar tarefas de modificação do site, apoiar decisões de mercado
Regras de Associação Características: Pode relacionar páginas que são acessadas com mais frequência em uma mesma sessão. Podem não estar relacionadas por um link Exemplo: relação entre usuários que visitaram uma página de produtos eletrônicos e aqueles que visitaram uma página de equipamentos esportivos
Regras de Associação Utilidade: Aplicações de negócios e comércio Reestruturação de web sites Pré-recuperação de documentos para reduzir a latência percebida pelo usuário para carregar página de um site remoto
Exemplos 60% dos clientes que acessaram /products também acessaram /products/software/webminer.htm 30% dos clientes que acessaram /special- offer.htm submeteram um pedido on-line para /products/software
Agrupamento Características Utilidade: Grupos de usuários: identifica grupos de usuários com padrões de navegação semelhantes Grupos de páginas: identifica grupos de páginas tendo conteúdo semelhante Utilidade: Inferir dados demográficos para segmentação de mercado em e-commerce Personalização Sites de busca Provedores de assistência na web
Agrupamento Páginas podem ser criadas para sugerir hyperlinks para o usuário de acordo com as consultas do usuário ou históricos de necessidades de informação
Classificação Características: Utilidade: Identifica atributos que melhor descrevem as características de uma dada classe Exemplo: 30% dos usuários que compraram alguma coisa no setor Produto/Musica estão na faixa de 18-25 anos e moram na região sudeste. Utilidade: Permite define perfis de usuários que pertencem a uma classe ou categoria
Exemplos – agrupamento e classificação Clientes que frequentemente acessam /products/software.webminer.htm tendem a ser de instituições de ensino Clientes que fizeram pedido on-line para software tendem a ser estudantes na faixa etária de 20-25 e moram nos EUA 75% dos clientes que fizeram download de softwares de products/software/demos visitam entre 7 e 11 pm nos finais de semana
Análise de Padrões Filtra as regras ou padrões que não tem utilidade