Escalonamento de Atualizac¸ ˜oes de
P ´aginas Web Usando Programac¸ ˜ao
Gen ´etica
A ´ecio Solano Rodrigues Santos
Orientador: Nivio Ziviani
Departamento de Ci ˆencia da Computac¸ ˜ao Universidade Federal de Minas Gerais
Problema
I Web consiste em +30 trilh ˜oes de p ´aginas
Fonte: https://www.google.com/insidesearch/howsearchworks/thestory/
I M ´aquinas de busca armazenam c ´opias da Web I C ´opias locais devem ser atualizadas
I Recursos s ˜ao limitados
I Coletar p ´aginas que n ˜ao mudaram ´e desperd´ıcio Atualizar p ´aginas com maior probabilidade de
Soluc¸ ˜ao Proposta
I Arcabouc¸o baseado em aprendizado de m ´aquina I Uso de Programac¸ ˜ao Gen ´etica:
I Gerar func¸ ˜oes que atribuem scores para p ´aginas I Score de acordo com probabilidade de mudanc¸a
I Aprendizado de m ´aquina j ´a foi usado antes
I Classificac¸ ˜ao em frequ ˆencia de mudanc¸a I Agrupamento por comportamento de mudanc¸a
I Nenhum trabalho usou aprendizado para definir a
Objetivos e Desafios da Coleta
I Coverage – coletar uma grande parte das
p ´aginas dispon´ıveis na Web
I Freshness – manter c ´opias locais atualizadas I Quality – p ´aginas mais importantes devem ser
coletadas mais cedo
I User Experience – evitar mostrar p ´aginas que
n ˜ao existem mais ou s ˜ao irrelevantes
I Discoverability – descobrir rapidamente p ´aginas
Conceitos B ´asicos
&
Formas de Coleta
1. Batch Crawling
I Cada p ´agina ´e coletada somente uma vez I N ˜ao s ˜ao necess ´arias p ´aginas atualizadas
2. Incremental Crawling
I P ´aginas s ˜ao coletadas v ´arias vezes I E um processo cont´ınuo´
I Necessidade de p ´aginas atualizadas
Batch Crawling
I O objetivo ´e coletar p ´aginas mais importantes I Weighted Coverage (W C):
W C(t) = X
p∈C(t)
w(p)
I t ´e o tempo desde in´ıcio da coleta
I C(t) ´e o conjunto de p ´aginas coletado at ´et I w(p) ´e a import ˆancia da p ´aginap
Incremental Crawling
A cada ciclo, deve balancear duas ac¸ ˜oes:
1. Coletar p ´agina nova:
1.1 Aumenta cobertura (Coverage)
1.2 Prov ˆe links novos
I Melhora estimativa de import ˆancia I Melhora detecc¸ ˜ao de spam
2. Atualizar p ´agina velha:
2.1 Aumenta freshness
2.2 Detecta remoc¸ ˜ao de p ´aginas
2.3 Prov ˆe links novos
Weighted Freshness
I Objetivo ´e maximizar p ´aginas atualizadas I Weighted Freshness (WF ):
WF (t) = X
p∈C(t)
w(p) · f (p, t)
I WF (t) – freshness do reposit ´orio no momentot I C(t) – conjunto de p ´aginas coletado at ´et
I w(p)– import ˆancia da p ´aginap
Modelos de Freshness
Modelo Bin ´ario:
f (p, t) = 1 se p ´e igual `a c ´opia da Web
0 caso contr ´ario.
Modelos Cont´ınuos:
1. Idade
I Tempo que as c ´opias divergiram
2. Longevidade de Conte ´udo
I Quantidade de fragmentos atualizados
3. Centrado no usu ´ario
Pol´ıticas de Atualizac¸ ˜ao
I Modelo de Poison para mudanc¸a de p ´aginas
(Coffman et al., 1998)
I Estimadores de frequ ˆencia de mudanc¸a
(Cho e Garcia-Molina, 2003)
I Caso de web crawler: informac¸ ˜ao incompleta
I Clustering-based (Tan e Mitra, 2010)
I Amostras em n´ıvel clusters
I Caracter´ısticas est ´aticas e din ˆamicas I Probabilidades de mudanc¸a adaptativas
Pol´ıticas de Atualizac¸ ˜ao
I Sampling-based : amostras em n´ıvel de web site
(Cho e Ntoulas, 2002)
I Embarrassment-level: minimiza embarac¸amento
(Wolf et al., 2002)
I Classification-based : primeiros a usar conte ´udo
(Barbosa et al., 2005)
I User-centric: considera impacto nas buscas
(Pandey e Olston, 2005)
I Content longevity : minimiza conte ´udo incorreto
Programac¸ ˜ao Gen ´etica (GP)
I T ´ecnica para soluc¸ ˜ao de problemas baseada na
teoria da evoluc¸ ˜ao das esp ´ecies (Koza, 1992)
I Heranc¸a biol ´ogica
I Evoluc¸ ˜ao gen ´etica de indiv´ıduos I Mutac¸ ˜ao
I Cross-over
I Populac¸ ˜ao ´e composta de indiv´ıduos I Indiv´ıduos s ˜ao representados em ´arvores I Busca por soluc¸ ˜oes aproximadas em grandes
GP2C – Programac¸ ˜ao Gen ´etica
para Coleta Incremental
Indiv´ıduos
I Combina informac¸ ˜oes ´uteis para estimar de
probabilidade de uma p ´agina ter mudado
I Cada indiv´ıduo representa uma func¸ ˜ao que d ´a
score para cada p ´agina
Terminais e Func¸ ˜oes
I Terminais:
n N ´umero de vezes que a p ´agina foi visitada X N ´umero de mudanc¸as nas n visitas
t N ´umero de ciclos desde a ´ultima visita
I Terminais extraidos dos baselines I Outros terminais podem ser utilizados I Func¸ ˜oes: +,−, /, ∗,log,pow, exp
Operac¸ ˜oes Gen ´eticas: Crossover
Operac¸ ˜oes Gen ´eticas: Mutac¸ ˜ao
Operac¸ ˜oes Gen ´eticas: Mutac¸ ˜ao
Func¸ ˜ao de Fitness
I Func¸ ˜ao de fitness avalia a qualidade da func¸ ˜ao
de escalonamento
I Adotamos a m ´etrica Change Ratio:
Ci =
Dci Di
I Di– # p ´aginas coletadas no ciclo i I Dc
i – # de p ´aginas coletadas que mudaram
Simulac¸ ˜ao de Coleta
I Utiliza dados coletados previamente para
determinar quando cada p ´agina mudou
I Coleta p ´aginas Nw vezes para obter informac¸ ˜oes
b ´asicas
I Para cada ciclo dispon´ıvel:
1. Computa score de cada p ´agina usando indiv´ıduo
2. Seleciona p ´aginas de maior score
3. Usa dados para verificar se p ´agina mudou no ciclo
4. Computa Change Ratio do ciclo
Selec¸ ˜ao de Melhores Indiv´ıduos
I GP2CBest – melhor indiv´ıduo conjunto treino I GP2CAvg – considera m ´edia entre treino e
validac¸ ˜ao, menos desvio padr ˜ao
I GP2CSum – considera soma entre treino e
validac¸ ˜ao, menos desvio padr ˜ao
I Executado com v ´arias sementes aleat ´orias para
Baselines
I Consideradas melhores func¸ ˜oes que exploram
mudanc¸a de p ´aginas
I Estimador de frequ ˆencia de mudanc¸a
(Cho e Garcia-Molina, 2003) CG = − log n − X + 0.5 n + 0.5
I n – quantidade de visitas `a p ´agina
Baselines
I Probabilidade de mudanc¸a (Tan e Mitra, 2010)
ϕ = P r{T ≤ t} = 1 − eλpt λp = n X i=1 wi · Ii(p) I NAD:w1= w2= · · · = wn = 1 n I SAD:w1= w2= · · · = wn−1 = 0, wn = 1 I AAD:wi= Pni i=1i GAD:w = 2i−1
Dataset
I BRDC’12 – Brazilian Daily Crawl 2012 I Coletada usando InWeb Crawler
I Coleta em largura apartir de 15.000sites mais
populares de acordo com Alexa
I Selec¸ ˜ao de sites usando amostra estratificada I P ´aginas de cada site escolhido aleatoriamente I Recoleta di ´aria de Setembro a Novembro/2012 I An ´alise de dados e remoc¸ ˜ao de anomalias I http://homepages.dcc.ufmg.br/˜aeciosantos/datasets/brdc12
Dataset
BRDC’12 Dataset
Per´ıodo de monitoramento 57 dias
# de p ´aginas web 417.048
# web sites 7.171
# min p ´aginas web por site 1 # max p ´aginas web por site 2.336 M ´edia de p ´aginas por web site 58,15
Metodologia
I Validac¸ ˜ao cruzada com 5 folds
I 4 folds: Divididos em 2 para treino e validac¸ ˜ao I 1 fold: Teste
I M ´etrica de avaliac¸ ˜ao: Change Ratio I Simulac¸ ˜ao de coleta
I k igual 5% de p ´aginas do reposit ´orio I Ciclos de “warm-up” Nw = 2
I Teste t pareado com 95% de confianc¸a
Par ˆametros de GP
I Selec¸ ˜ao de valores por “forc¸a bruta”
Par ˆametro Valor
Indiv´ıduos 300
Gerac¸ ˜oes 50
Selec¸ ˜ao de indiv´ıduos Torneio de tamanho 2
Crossover 90%
Reproduc¸ ˜ao 15%
Mutac¸ ˜oes 5%
Altura m ´axima de ´arvore 10
GP2C
Best× GP2C
Avg× GP2C
SumI Empate estat´ıstico na maioria dos dias
I GP 2CBest melhor queGP 2CAvg em 1 dias
GP2C
BestChange Ratio das melhores func¸ ˜oes GP 2CBest
Fold Train set Validation set Test set
1 0,7093 0,7080 0,7035
2 0,7049 0,6981 0,7068
3 0,7180 0,7158 0,7118
4 0,7066 0,7088 0,7130
Exemplo de Func¸ ˜ao Gerada
I GP2C pode ser usado para entender melhor as
features
I Melhores func¸ ˜oes geradas seguem um padr ˜ao:
I Os terminais X etaparecem frequentemente I n n ˜ao impacta muito o resultado
I Exemplo de func¸ ˜ao simples gerada:
X ∗ t
GP2C
Best× Baselines
I GP 2CBest ´e superior na maioria dos ciclos
GP2C
Best× Baselines
NAD AAD GAD CG Superior 22 27 49 50 Inferior 0 2 1 0
Change Ratio M ´edio
Pol´ıtica Fold 1 Fold 2 Fold 3 Fold 4 Fold 5 M ´edia
Rand 0.1853 0.1866 0.1855 0.1855 0.1853 0.1856 Age 0.2121 0.2139 0.2127 0.2135 0.2129 0.2130 NAD 0.6837 0.6936 0.6865 0.6941 0.6880 0.6892 SAD 0.5094 0.5189 0.5151 0.5237 0.5156 0.5165 AAD 0.6272 0.6425 0.6280 0.6424 0.6314 0.6343 GAD 0.5974 0.6074 0.5967 0.6057 0.6007 0.6016 CG 0.6399 0.6502 0.6377 0.6481 0.6435 0.6439 GP 2CBest 0.7035 0.7068 0.7118 0.7130 0.6937 0.7058 GP 2CSum 0.7033 0.7052 0.7114 0.7079 0.6760 0.7007
Uso em Coletor de Larga Escala
I O Processo GP2C deve ser executado off-line I A func¸ ˜ao aprendida ´e usada on-line, em conjunto
com uma ordenac¸ ˜ao para pegar as top-k p ´aginas
I N ˜ao ´e vi ´avel realizar acessos aleat ´orios para
atualizar dados das p ´aginas
I Atualizac¸ ˜ao pode ser realizada em batches junto
com verificac¸ ˜ao de unicidade:
I Acumular p ´aginas coletadas em um buffer I Atualizar em uma ´unica passada no reposit ´orio I Quando o crawler percebe que uma p ´agina j ´a
Custo Computacional
I On-line:
I Custo de computar score: O( |R| ) I Ordenac¸ ˜ao: O( |R| × log |R| )
I Off-line:
I Tarefa mais cara ´e a simulac¸ ˜ao de coleta:
O( No× |R| × log |R| )
I Quantidade de simulac¸ ˜ao de coletas realizadas:
Desempenho
I Tempo (s) de 5 folds (5 treinos + 5 validac¸ ˜oes) I Coeficiente de variac¸ ˜ao entre seeds ´e 1.5%
Seeds Fase 111 222 333 444 555 Total % T 43213 44321 44452 43095 44236 219316 99.624% V 161 149 196 142 171 819 0.372% T+V 43374 44470 44647 43237 44407 220136 99.996% Total 43375 44472 44649 43239 44409 220144 100.00%
Conclus ˜oes e Trabalhos Futuros
I Foi proposto um arcabouc¸o baseado em PG para
escalonamento de atualizac¸ ˜ao de p ´aginas
I GP2C foi capaz de gerar func¸ ˜oes t ˜ao boas ou
melhores que baselines
I Caso novas caracter´ısticas sejam fornecidas,
novas func¸ ˜oes podem ser geradas facilmente
I Pode ser adaptado para considerar:
I Probabilidade de p ´agina ser exibida em buscas I Clique de usu ´arios
Conclus ˜oes e Trabalhos Futuros
I Estudar o uso do arcabouc¸o para gerar func¸ ˜oes
para coletar p ´aginas importantes mais cedo
I Balancear objetivos de coleta:
Coverage× Freshness
Contribuic¸ ˜oes
I Proposta do GP2C
I Primeiro a usar GP
I Oportunidades de trabalhos futuros I Soluc¸ ˜ao fl ´exivel e vi ´avel
I Aplicac¸ ˜ao do GP2C em atualizac¸ ˜ao de p ´aginas I Avaliac¸ ˜ao experimental do arcabouc¸o
I Integrac¸ ˜ao em um web crawler de larga escala I Artigo submetido:
Learning to Schedule Web Page Updates Using Genetic Programming. SIGIR, 2013.
Escalonamento de Atualizac¸ ˜oes de
P ´aginas Web Usando Programac¸ ˜ao
Gen ´etica
A ´ecio Solano Rodrigues Santos
Orientador: Nivio Ziviani
Departamento de Ci ˆencia da Computac¸ ˜ao Universidade Federal de Minas Gerais