Обход свежего контента. Людмила Остроумова
-
Upload
yandex -
Category
Technology
-
view
77 -
download
1
description
Transcript of Обход свежего контента. Людмила Остроумова
Обход свежего контента
Людмила Остроумова
План
› Кроулер
› Обход или переобход
› Приоритизация новых страниц
Часть 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) =
⇢10
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 + �iIiIi
N
Q =
X
i
1
Ii
X
j:pj2Si^�tj2[0,Ii]
Pj(M tj) ! max
Решение задачи оптимизации
Заменим на приближение и положим
Pj(�tj) Pie�µi�tj pi =
Pi
1� e�µi�i
:
(Pipi
Ii
�1� e�µiIi
�! max
Pi1+�iIi
Ii= N
Решение задачи оптимизации
Воспользуемся методом множителей Лагранжа:
(pi
�1� (1 + µiIi)e�µiIi
�= !, i = 1, . . . , n ,
Pi
1Ii
= N �P
i �i
Решение задачи оптимизации
g(x) :=�1� (1 + x)e�x
�
(pi g(µiIi) = !, i = 1, . . . , n ,P
i1Ii
= 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 – обходим источник контента с наибольшим значением , где – время, прошедшее с последнего обхода источника . И обходим все найденные новые страницы.
�iPiI0i
I 0i 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
Спасибо за внимание!