5. Кроулер
› Кроулер (робот) – система, которая скачивает (обходит) веб-страницы
› Кроулер скачивает веб-страницы, извлекает из них урлы, затем скачивает
соответствующие этим урлам страницы и т.д.
6. Пакетный кроулер
› Время от времени создается очередь из урлов для обхода
› Каждый урл встречается в очереди один раз
› На следующей итерации может использоваться информация с предыдущей
7. Инкрементальный кроулер
› Процесс обхода – «бесконечный»
› Страницы в очереди могут встречаться несколько раз
› Ресурсы кроулера разделены между обходом новых страниц и переобходом
старых
› Эффективнее, так как позволяет переобходить страницы с разной частотой
8. Метрики
Полнота: доля страниц, которые скачаны кроулером
Взвешенная (weighted coverage):
Где – время, прошедшее с начала обхода, – множество скачанных страниц,
– вес страницы
WC(t) =
X
p2C(t)
w(p)
t C(t)
w(p)
9. Метрики
Свежесть: насколько актуальны скачанные копии страниц по сравнению с текущим
состоянием
Взвешенная (weighted freshness):
где – свежесть страницы в момент времени , например
, если сохраненная копия страницы совпадает с актуальной
, в противном случае
WF(t) =
X
p2C(t)
w(p) · f(p, t) ,
f(p, t)
f(p, t) =
⇢
1
0
f(p, t)f(p, t)
10. Компромиссы
Выбор между полнотой и свежестью
Выбор между обходом и переобходом
› Обход: может улучшить полноту, можно найти новые ссылки
› Переобход: может улучшить свежесть, можно найти новые ссылки
12. “Timely crawling of high-quality ephemeral new content”
Damien Lefortier, Liudmila Ostroumova, Egor Samosvat, Pavel Serdyukov.
ACM International Conference on Information and Knowledge Management, CIKM 2013.
13. Задача
› Рассматриваем свежие запросы, по которым нужно показать недавно
созданные документы
› Задача: быстро найти, скачать, проиндексировать недавно созданные
страницы и показать их пользователям в ответ на соответствующие запросы
14. Две гипотезы
1. Интерес пользователей к новым страницам быстро растет сразу после
их появления, но длится всего несколько дней (такие страницы будем
называть эфемерными)
2. Эфемерные страницы можно найти с помощью небольшого количества
источников контента (хабов)
17. Идеи
› Нужно часто переобходить источники контента, чтобы не пропустить ссылки
на новые страницы
› Новые страницы тоже нужно обходить сразу, так как они быстро устаревают
› Проблема: найти баланс между обходом и переобходом, максимизируя
некоторую метрику. Но какую?
18. Метрика
Стандартные метрики не подходят:
› Полнота? Нет, эта метрика не учитывает устаревание страниц
› Свежесть? Нет, она вообще не про новые страницы
19. Метрика
– это прибыль от скачивания страницы i с задержкой , то есть общее
количество заходов пользователей на эту страницу после ее скачивания
(или общее количество кликов на СЕРПе)
Качество кроулера:
Pi( t) t
QT (t) =
1
T
X
i:ti+ ti2[t T,t]
Pi( ti)
21. Оптимизационная задача
› Есть несколько источников контента
› У каждого есть параметры: – частота появления ссылок, – средняя
популярность страниц, – скорость убывания популярности
› Хотим найти алгоритм, который обходит каждый источник контента
каждые секунд, находит новые ссылки и обходит соответствующие
страницы
› Цель – найти оптимальные значения
Si
Si i Pi
µi
Si
Ii
Ii
26. Параметры
Для применения алгоритма нужно знать:
› Средний профит и скорость убывания популярности
› Частоту появления новых ссылок
Параметры оцениваем динамически, используя исторические данные
Pi µi
i
27. Расписание
Проблема: нельзя гарантировать, что после каждого переобхода будет
обнаружено ровно новых ссылок
Два варианта:
› ECHO-newpages: всегда скачиваем все найденные новые страницы
› ECHO-schedule: обходим источники контента с интервалами , свободные
ресурсы тратим на обход новых страниц
ECHO = Ephemeral Content Holistic Ordering
Si
iIi
Ii
28. Данные
› Топ-100 популярных новостных сайтов и топ-50 популярных блогов в России
› 3К источников контента, обходили каждые 10 минут в течение 3 недель
› Таким образом получили динамические ссылки с источников контента
(всего 2.4М ссылок)
› Пользовательские клики на все обнаруженные страницы в течение 4 недель
29. Другие алгоритмы
BFS – обходим источники контента по очереди в фиксированном случайном
порядке. Сразу же обходим все найденные страницы.
Fixed-quota – то же, что и ECHO-schedule, но ровно половину ресурсов тратим
на переобход источников контента и половину на обход новых страниц.
Frequency – то же, что и ECHO-schedule, но не используем историческую
информацию о кликах.
ECHO-greedy – обходим источник контента с наибольшим значением ,
где – время, прошедшее с последнего обхода источника . И обходим все
найденные новые страницы.
iPiI0
i
I0
i Si
33. “Crawling Policies Based on Web Page Popularity Prediction”
L. Ostroumova, I. Bogatyy, A. Chelnokov, A. Tikhonov, G. Gusev
36th European Conference on Information Retrieval, ECIR 2014
34. Задача
› Есть динамический список недавно обнаруженных урлов
› Обход одной страницы занимает фиксированное время 𝜏
› Каждые 𝜏 секунд кроулер выбирает одну страницу из списка и скачивает её
› Как и раньше, хотим «получить» как можно больше заходов/кликов
36. Стратегия
Как уже обсуждалось,
– общая популярность ,
– скорость убывания популярности.
Предсказываем и .
Каждые 𝜏 секунд кроулер выбирает страницу с максимальной ожидаемой
прибылью
Pu( t) ⇡ p(u) · e (u)· t
,
p(u) = Pu(0)
r(u) = p(u)e (u) t
(u)
(u)
Pu( t) ⇡ p(u) · e (u)· t
,
p(u) = Pu(0)
37. Факторы
Предсказываем популярность и скорость убывания популярности только по урлу.
Факторы – из статьи M. Liu, R. Cai, M. Zhang, L. Zhang, User browsing behavior-driven
web crawling, CIKM’11.