SlideShare a Scribd company logo
 Обход свежего контента. Людмила Остроумова
Обход свежего контента
Людмила Остроумова
План
›  Кроулер
›  Обход или переобход
›  Приоритизация новых страниц
Часть 1: кроулер
Кроулер
›  Кроулер (робот) – система, которая скачивает (обходит) веб-страницы
›  Кроулер скачивает веб-страницы, извлекает из них урлы, затем скачивает
соответствующие этим урлам страницы и т.д.
Пакетный кроулер
›  Время от времени создается очередь из урлов для обхода
›  Каждый урл встречается в очереди один раз
›  На следующей итерации может использоваться информация с предыдущей
Инкрементальный кроулер
›  Процесс обхода – «бесконечный»
›  Страницы в очереди могут встречаться несколько раз
›  Ресурсы кроулера разделены между обходом новых страниц и переобходом
старых
›  Эффективнее, так как позволяет переобходить страницы с разной частотой
Метрики
Полнота: доля страниц, которые скачаны кроулером
Взвешенная (weighted coverage):
Где – время, прошедшее с начала обхода, – множество скачанных страниц,
– вес страницы
WC(t) =
X
p2C(t)
w(p)
t C(t)
w(p)
Метрики
Свежесть: насколько актуальны скачанные копии страниц по сравнению с текущим
состоянием
Взвешенная (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)
Компромиссы
Выбор между полнотой и свежестью
Выбор между обходом и переобходом
›  Обход: может улучшить полноту, можно найти новые ссылки
›  Переобход: может улучшить свежесть, можно найти новые ссылки
Часть 2: обход или переобход
“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.
Задача
›  Рассматриваем свежие запросы, по которым нужно показать недавно
созданные документы
›  Задача: быстро найти, скачать, проиндексировать недавно созданные
страницы и показать их пользователям в ответ на соответствующие запросы
Две гипотезы
1. Интерес пользователей к новым страницам быстро растет сразу после
их появления, но длится всего несколько дней (такие страницы будем
называть эфемерными)
2. Эфемерные страницы можно найти с помощью небольшого количества
источников контента (хабов)
Эфемерные страницы
50 тысяч случайных страниц (логи бара за 1 неделю):
Источники контента
Рассматриваем пользовательские переходы, которые ведут на эфемерные
страницы.
Идеи
›  Нужно часто переобходить источники контента, чтобы не пропустить ссылки
на новые страницы
›  Новые страницы тоже нужно обходить сразу, так как они быстро устаревают
›  Проблема: найти баланс между обходом и переобходом, максимизируя
некоторую метрику. Но какую?
Метрика
Стандартные метрики не подходят:
›  Полнота? Нет, эта метрика не учитывает устаревание страниц
›  Свежесть? Нет, она вообще не про новые страницы
Метрика
– это прибыль от скачивания страницы i с задержкой , то есть общее
количество заходов пользователей на эту страницу после ее скачивания
(или общее количество кликов на СЕРПе)
Качество кроулера:
Pi( t) t
QT (t) =
1
T
X
i:ti+ ti2[t T,t]
Pi( ti)
Прибыль
Pi( t) ⇡ Pi · e µi· t
Оптимизационная задача
›  Есть несколько источников контента
›  У каждого есть параметры: – частота появления ссылок, – средняя
популярность страниц, – скорость убывания популярности
›  Хотим найти алгоритм, который обходит каждый источник контента
каждые секунд, находит новые ссылки и обходит соответствующие
страницы
›  Цель – найти оптимальные значения
Si
Si i Pi
µi
Si
Ii
Ii
Оптимизационная задача
Ресурсы ограничены:
Хотим максимизировать качество:
X
i
1 + iIi
Ii
 N
Q =
X
i
1
Ii
X
j:pj 2Si^ tj 2[0,Ii]
Pj(M tj) ! max
Решение задачи оптимизации
Заменим на приближение и положимPj( tj) Pie µi tj pi =
Pi
1 e
µi
i
:
(P
i
pi
Ii
1 e µiIi
! max
P
i
1+ iIi
Ii
= N
Решение задачи оптимизации
Воспользуемся методом множителей Лагранжа:
(
pi 1 (1 + µiIi)e µiIi
= !, i = 1, . . . , n ,
P
i
1
Ii
= N
P
i i
Решение задачи оптимизации
g(x) := 1 (1 + x)e x
(
pi g(µiIi) = !, i = 1, . . . , n ,
P
i
1
Ii
= N
P
i i
Параметры
Для применения алгоритма нужно знать:
›  Средний профит и скорость убывания популярности
›  Частоту появления новых ссылок
Параметры оцениваем динамически, используя исторические данные
Pi µi
i
Расписание
Проблема: нельзя гарантировать, что после каждого переобхода будет
обнаружено ровно новых ссылок
Два варианта:
›  ECHO-newpages: всегда скачиваем все найденные новые страницы
›  ECHO-schedule: обходим источники контента с интервалами , свободные
ресурсы тратим на обход новых страниц
ECHO = Ephemeral Content Holistic Ordering
Si
iIi
Ii
Данные
›  Топ-100 популярных новостных сайтов и топ-50 популярных блогов в России
›  3К источников контента, обходили каждые 10 минут в течение 3 недель
›  Таким образом получили динамические ссылки с источников контента
(всего 2.4М ссылок)
›  Пользовательские клики на все обнаруженные страницы в течение 4 недель
Другие алгоритмы
BFS – обходим источники контента по очереди в фиксированном случайном
порядке. Сразу же обходим все найденные страницы.
Fixed-quota – то же, что и ECHO-schedule, но ровно половину ресурсов тратим
на переобход источников контента и половину на обход новых страниц.
Frequency – то же, что и ECHO-schedule, но не используем историческую
информацию о кликах.
ECHO-greedy – обходим источник контента с наибольшим значением ,
где – время, прошедшее с последнего обхода источника . И обходим все
найденные новые страницы.
iPiI0
i
I0
i Si
Частота появления ссылок
Среднее качество за неделю
Часть 3: приоритизация
новых страниц
“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
Задача
›  Есть динамический список недавно обнаруженных урлов
›  Обход одной страницы занимает фиксированное время 𝜏
›  Каждые 𝜏 секунд кроулер выбирает одну страницу из списка и скачивает её
›  Как и раньше, хотим «получить» как можно больше заходов/кликов
Пример
Стратегия
Как уже обсуждалось,
– общая популярность ,
– скорость убывания популярности.
Предсказываем и .
Каждые 𝜏 секунд кроулер выбирает страницу с максимальной ожидаемой
прибылью
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)
Факторы
Предсказываем популярность и скорость убывания популярности только по урлу.
Факторы – из статьи M. Liu, R. Cai, M. Zhang, L. Zhang, User browsing behavior-driven
web crawling, CIKM’11.
Сравнение алгоритмов обхода
Доля полученных заходов:
Алгоритм 𝜏 = 100
5% урлов)
𝜏 = 50
(10% урлов)
𝜏 = 25
(20% урлов)
𝜏 = 10
(50% урлов)
Бейзлайн 0.24 0.34 0.43 0.53
Предсказываем p(𝑢) 0.32 0.42 0.51 0.60
Предсказываем p(𝑢) и 𝜆(𝑢) 0.31 0.40 0.49 0.58
Предсказываем p(𝑢)
настоящее 𝜆(𝑢)
0.36 0.44 0.54 0.64
Спасибо за внимание!
Контакты
ostroumova-la@yandex-team.ru
+79646547903
Людмила Остроумова
Исследователь

More Related Content

Обход свежего контента. Людмила Остроумова

  • 3. План ›  Кроулер ›  Обход или переобход ›  Приоритизация новых страниц
  • 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. Компромиссы Выбор между полнотой и свежестью Выбор между обходом и переобходом ›  Обход: может улучшить полноту, можно найти новые ссылки ›  Переобход: может улучшить свежесть, можно найти новые ссылки
  • 11. Часть 2: обход или переобход
  • 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. Эфемерные страницы можно найти с помощью небольшого количества источников контента (хабов)
  • 15. Эфемерные страницы 50 тысяч случайных страниц (логи бара за 1 неделю):
  • 16. Источники контента Рассматриваем пользовательские переходы, которые ведут на эфемерные страницы.
  • 17. Идеи ›  Нужно часто переобходить источники контента, чтобы не пропустить ссылки на новые страницы ›  Новые страницы тоже нужно обходить сразу, так как они быстро устаревают ›  Проблема: найти баланс между обходом и переобходом, максимизируя некоторую метрику. Но какую?
  • 18. Метрика Стандартные метрики не подходят: ›  Полнота? Нет, эта метрика не учитывает устаревание страниц ›  Свежесть? Нет, она вообще не про новые страницы
  • 19. Метрика – это прибыль от скачивания страницы i с задержкой , то есть общее количество заходов пользователей на эту страницу после ее скачивания (или общее количество кликов на СЕРПе) Качество кроулера: Pi( t) t QT (t) = 1 T X i:ti+ ti2[t T,t] Pi( ti)
  • 20. Прибыль Pi( t) ⇡ Pi · e µi· t
  • 21. Оптимизационная задача ›  Есть несколько источников контента ›  У каждого есть параметры: – частота появления ссылок, – средняя популярность страниц, – скорость убывания популярности ›  Хотим найти алгоритм, который обходит каждый источник контента каждые секунд, находит новые ссылки и обходит соответствующие страницы ›  Цель – найти оптимальные значения Si Si i Pi µi Si Ii Ii
  • 22. Оптимизационная задача Ресурсы ограничены: Хотим максимизировать качество: X i 1 + iIi Ii  N Q = X i 1 Ii X j:pj 2Si^ tj 2[0,Ii] Pj(M tj) ! max
  • 23. Решение задачи оптимизации Заменим на приближение и положимPj( tj) Pie µi tj pi = Pi 1 e µi i : (P i pi Ii 1 e µiIi ! max P i 1+ iIi Ii = N
  • 24. Решение задачи оптимизации Воспользуемся методом множителей Лагранжа: ( pi 1 (1 + µiIi)e µiIi = !, i = 1, . . . , n , P i 1 Ii = N P i i
  • 25. Решение задачи оптимизации g(x) := 1 (1 + x)e x ( pi g(µiIi) = !, i = 1, . . . , n , P i 1 Ii = N P i i
  • 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.
  • 38. Сравнение алгоритмов обхода Доля полученных заходов: Алгоритм 𝜏 = 100 5% урлов) 𝜏 = 50 (10% урлов) 𝜏 = 25 (20% урлов) 𝜏 = 10 (50% урлов) Бейзлайн 0.24 0.34 0.43 0.53 Предсказываем p(𝑢) 0.32 0.42 0.51 0.60 Предсказываем p(𝑢) и 𝜆(𝑢) 0.31 0.40 0.49 0.58 Предсказываем p(𝑢) настоящее 𝜆(𝑢) 0.36 0.44 0.54 0.64