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

Post on 23-Jun-2015

79 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Обход свежего контента

TRANSCRIPT

Обход свежего контента

Людмила Остроумова

План

›  Кроулер

› Обход или переобход

› Приоритизация новых страниц

Часть 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

Спасибо за внимание!

Контакты

ostroumova-la@yandex-team.ru

+79646547903

Людмила Остроумова

Исследователь

top related