Heloisa Camargo
1MD - junho/2008
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
Heloisa Camargo
2MD - junho/2008
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
Heloisa Camargo
3MD - 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
Heloisa Camargo
4MD - 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
Heloisa Camargo
5MD - 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)
Heloisa Camargo
6MD - 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
Heloisa Camargo
7MD - 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
Heloisa Camargo
8MD - 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
Heloisa Camargo
9MD - junho/2008
Estruturas interessantes
Heloisa Camargo
10MD - 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
Heloisa Camargo
11MD - 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
Heloisa Camargo
12MD - 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
Heloisa Camargo
13MD - 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
Heloisa Camargo
14MD - junho/2008
Fontes de dados● Dados do servidor Web
– Web server log– Cookies– Dados de consultas
Heloisa Camargo
15MD - 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
Heloisa Camargo
16MD - 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
Heloisa Camargo
17MD - junho/2008
Web server log● Tipos de logs
– Error – Segurança – Referência– Browser (Agente) – Accesso
● Formatos– Common Log– Extended log formats
Heloisa Camargo
18MD - 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 AltaVista-
Intranet/V2.3A+([email protected]) - - 1999-12-25 00:03:39 194.237.174.119 - GET /statistics/ExpIntHits1.asp - 200 10519 AltaVista-
Intranet/V2.3A+([email protected]) - - 1999-12-25 00:26:54 209.67.247.158 - GET /robots.txt - 200 303 FAST-WebCrawler/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
AltaVista-Intranet/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=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/
Heloisa Camargo
19MD - junho/2008
●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/webtechs.html> and downloaded a HTML page and several images
Heloisa Camargo
20MD - junho/2008
Web Server Log – Exemplo
http://www.kdnuggets.com/jobs/
KDnuggets.comServer
Web server log152.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 …
Conteúdo da Página
Heloisa Camargo
21MD - junho/2008
Web (Server) Log
Uma linha (exemplo) do log152.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)"
Heloisa Camargo
22MD - junho/2008
Web log: IP
152.152.98.11
IP address – pode ser convertido para o nome do host, por exemplo: xyz.example.com
Heloisa Camargo
23MD - 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), …
Heloisa Camargo
24MD - junho/2008
Top-Level Domains – código do país (ccTLD)
Alguns dos mais comuns
Heloisa Camargo
25MD - 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 “-”)
Heloisa Camargo
26MD - 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
Heloisa Camargo
27MD - junho/2008
Web log: Request
"GET /jobs/ HTTP/1.1"
Method:
GETHEADPOSTOPTIONS…
URL:Relativo aodomínio
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.
Heloisa Camargo
28MD - junho/2008
Web log: Status code200
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● …
Heloisa Camargo
29MD - 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
Heloisa Camargo
30MD - junho/2008
Web log: Referrer
http://www.google.com/search?q=salary+for+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 casode uma requisição direta (bookmark, por exemplo)
Esta é uma informação valiosa
Heloisa Camargo
31MD - 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.0OS: Windows NT 5.1 (XP SP2) with .NET Framework 1.1 installed
Heloisa Camargo
32MD - 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
Heloisa Camargo
33MD - 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
Heloisa Camargo
34MD - 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.
Heloisa Camargo
35MD - 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.
Heloisa Camargo
36MD - 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.
Heloisa Camargo
37MD - junho/2008
Processo de Web usage mining
● Pré-processamento
● Descoberta de Padrões
● Análise de Padrões
Heloisa Camargo
38MD - junho/2008
Heloisa Camargo
39MD - 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
Heloisa Camargo
40MD - junho/2008
Pré-processamento● Identificar:
– Usuários – Sessões do servidor
● Usando:– Endereço de IP– Agente– Cadeia de requisições (click-streams)
Heloisa Camargo
41MD - 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.
Heloisa Camargo
42MD - 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.
Heloisa Camargo
43MD - junho/2008
Exemplo- web server log
Heloisa Camargo
44MD - junho/2008
Identificação de usuários
Soluções: usar● Cookies● logins● IP/agentes/caminhos
Heloisa Camargo
45MD - 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
Heloisa Camargo
46MD - 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
Heloisa Camargo
47MD - junho/2008
Referência a páginas com cópias locais
Heloisa Camargo
48MD - 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
Heloisa Camargo
49MD - junho/2008
Registros de tempos de acesso errados no servidor
Tempo de acesso real
Heloisa Camargo
50MD - junho/2008
Visitas a páginas não registradas no sevidor
Heloisa Camargo
51MD - 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
Heloisa Camargo
52MD - 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
Heloisa Camargo
53MD - 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
Heloisa Camargo
54MD - 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
Heloisa Camargo
55MD - 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
Heloisa Camargo
56MD - junho/2008
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
Heloisa Camargo
57MD - 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
Heloisa Camargo
58MD - 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
●
Heloisa Camargo
59MD - 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
Heloisa Camargo
60MD - 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
Heloisa Camargo
61MD - junho/2008
Análise de Padrões● Filtra as regras ou padrões que não tem
utilidade
Heloisa Camargo
62MD - junho/2008