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 1 Heloisa Camargo MD - junho/2008 Abordagens de Web Mining ● Mineração de conteúdo (Web content mining) – ● Mineração de estrutura (Web structure mining) – ● Extração de conhecimento do conteúdo de páginas e suas descrições 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 2 Heloisa Camargo MD - junho/2008 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 3 Heloisa Camargo MD - junho/2008 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 4 Heloisa Camargo MD - junho/2008 ● ● 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) 5 Heloisa Camargo MD - junho/2008 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 6 Heloisa Camargo MD - junho/2008 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 7 Heloisa Camargo MD - junho/2008 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 8 Heloisa Camargo MD - junho/2008 Estruturas interessantes 9 Heloisa Camargo MD - junho/2008 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 10 Heloisa Camargo MD - junho/2008 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 11 Heloisa Camargo MD - junho/2008 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 12 Heloisa Camargo MD - junho/2008 ● 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 13 Heloisa Camargo MD - junho/2008 Fontes de dados ● Dados do servidor Web – Web server log – Cookies – Dados de consultas 14 Heloisa Camargo MD - junho/2008 ● 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 15 Heloisa Camargo MD - junho/2008 ● 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 16 Heloisa Camargo MD - junho/2008 Web server log ● Tipos de logs – – – – – ● Error Segurança Referência Browser (Agente) Accesso Formatos – – Common Log Extended log formats 17 Heloisa Camargo MD - junho/2008 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 AltaVistaIntranet/V2.3A+([email protected]) - 1999-12-25 00:03:39 194.237.174.119 - GET /statistics/ExpIntHits1.asp - 200 10519 AltaVistaIntranet/V2.3A+([email protected]) - 1999-12-25 00:26:54 209.67.247.158 - GET /robots.txt - 200 303 FASTWebCrawler/2.0.9+([email protected];+http://www.fast.no/…) - 1999-12-25 00:32:47 194.237.174.119 - GET /issue2/default.asp - 200 5332 AltaVistaIntranet/V2.3A+([email protected]) - 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=22e0a17296b8c2ed1f774 60cde75c27f 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=22e0a17296b8c2ed1f774 60cde75c27f 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=22e0a17296b8c2ed1f774 60cde75c27f 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) MD - junho/2008 ASPSESSIONIDGQQGQGAD=IIHCBIFDIECKPAPGICDEOJII;+SITESERVER=ID=22e0a17296b8c2ed1f774 Heloisa60cde75c27f Camargo http://www.exploit-lib.org/issue1/webtechs/ 18 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 19 Heloisa Camargo MD - junho/2008 Web Server Log – Exemplo KDnuggets.com Server Conteúdo da Página 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 … 20 Heloisa Camargo MD - junho/2008 Web (Server) Log Uma linha (exemplo) do log 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)" 21 Heloisa Camargo MD - junho/2008 Web log: IP 152.152.98.11 IP address – pode ser convertido para o nome do host, por exemplo: xyz.example.com 22 Heloisa Camargo MD - junho/2008 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), … 23 Heloisa Camargo MD - junho/2008 Top-Level Domains – código do país (ccTLD) Alguns dos mais comuns 24 Heloisa Camargo MD - junho/2008 Web log: Name, Login - Name: 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 “-”) 25 Heloisa Camargo MD - junho/2008 Web log: Date/Time/TZ [16/Nov/2005:16:32:50 -0500] Date: DD/MM/AAAA Time: HH:MM:SS Time Zone: (+|-)HH00 relativo ao GMT 26 Heloisa Camargo MD - junho/2008 Web log: Request "GET /jobs/ Method: GET HEAD POST OPTIONS … URL: Relativo ao domínio HTTP/1.1" Protocolo HTTP: e.g. HTTP/1.0 or HTTP/1.1 Nota: a requisição é armazenada como é enviada, assim, pode conter erros, falhas, e qualquer tipo de coisa estranha. 27 Heloisa Camargo MD - junho/2008 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 ● … 28 Heloisa Camargo MD - junho/2008 Web log: Object size 15140 O tamanho do objeto retornado ao cliente (em bytes) Pode ser “-” se o código de status for 304 29 Heloisa Camargo MD - junho/2008 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 30 Heloisa Camargo MD - junho/2008 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 31 Heloisa Camargo MD - junho/2008 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 32 Heloisa Camargo MD - junho/2008 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 33 Heloisa Camargo MD - junho/2008 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. 34 Heloisa Camargo MD - junho/2008 ● 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. 35 Heloisa Camargo MD - junho/2008 ● ● ● 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. 36 Heloisa Camargo MD - junho/2008 Processo de Web usage mining ● Pré-processamento ● Descoberta de Padrões ● Análise de Padrões 37 Heloisa Camargo MD - junho/2008 38 Heloisa Camargo MD - junho/2008 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 39 Heloisa Camargo MD - junho/2008 Pré-processamento ● ● Identificar: – Usuários – Sessões do servidor Usando: – Endereço de IP – Agente – Cadeia de requisições (click-streams) 40 Heloisa Camargo MD - junho/2008 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. 41 Heloisa Camargo MD - junho/2008 ● 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. 42 Heloisa Camargo MD - junho/2008 Exemplo- web server log 43 Heloisa Camargo MD - junho/2008 Identificação de usuários Soluções: usar ● Cookies ● logins ● IP/agentes/caminhos 44 Heloisa Camargo MD - junho/2008 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 45 Heloisa Camargo MD - junho/2008 ● 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 46 Heloisa Camargo MD - junho/2008 Referência a páginas com cópias locais 47 Heloisa Camargo MD - junho/2008 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 48 Heloisa Camargo MD - junho/2008 Registros de tempos de acesso errados no servidor Tempo de acesso real 49 Heloisa Camargo MD - junho/2008 Visitas a páginas não registradas no sevidor 50 Heloisa Camargo MD - junho/2008 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 51 Heloisa Camargo MD - junho/2008 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 52 Heloisa Camargo MD - junho/2008 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 53 Heloisa Camargo MD - junho/2008 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 54 Heloisa Camargo MD - junho/2008 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 55 Heloisa Camargo MD - junho/2008 Exemplos ● ● 60% dos clientes que acessaram /products também acessaram /products/software/webminer.htm 30% dos clientes que acessaram /specialoffer.htm submeteram um pedido on-line para /products/software 56 Heloisa Camargo MD - junho/2008 Agrupamento ● ● Características – 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 57 Heloisa Camargo MD - junho/2008 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 ● 58 Heloisa Camargo MD - junho/2008 Classificação ● ● Características: – 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 59 Heloisa Camargo MD - junho/2008 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 60 Heloisa Camargo MD - junho/2008 Análise de Padrões ● Filtra as regras ou padrões que não tem utilidade 61 Heloisa Camargo MD - junho/2008 62 Heloisa Camargo MD - junho/2008