Article "Algorithms and Data Structures Big Data for large-scale graphs" presented on School-conference on Mathematical Problems of Informatics http://omskconf2013.oscsbras.ru/index.html by Alexey Zinoviev
2. О себе
● аспирант ОмГУ, математик
● занимаюсь теорией графов,
прогнозированием пробок, исследованием
транспортных систем
● большой фанат различных Maps API
3. Зачем ездить в Computer Science
школы?
● Если вы закончили матфак и в вас до сих пор играет
ретивое
● Мощный networking с учеными-практиками
● Возможность быть в первых рядах, павших за BigData
● Отличная возможность прокачать English
● Можно увидеть, как куча чудаков всю ночь делает
домашку, а потом сорваться и сделать ее самому
4. Откуда BigData есть быти?
BigData прошлого:
● Астрономический
вычисления
● Данные
многолетних
наблюдений за
погодой
● Данные торговых
операций
● Морские маршруты
5. А теперь
●
●
●
●
●
●
●
Web-граф (модель Интернета)
Граф почтовых сообщений
Данные с БАК
Астрономия
Генетический код
Граф друзей на Facebook
Анализ текстов, публикаций
9. Они следят за нами
● Уже на первых занятиях все
решили посчитать, а может ли
АНБ, а прав ли Сноуден?
● Все собравшиеся отчетливо
понимали, что их наука немного
evil
● BigData не было бы без человека,
генерирующего своим
существованием тонны
персональной информации
10. Этические вопросы
Выгоды разумного правительства и общества
●
●
●
●
прямая демократия
принятие оптимальных решений
снижение преступности вследствие тотальной слежки
снижение экономических издержек (реабилитация
централизованного планирования)
Выгоды IT - бизнеса
●
●
●
●
●
конвертация продуктов в сервисы
создание новых рынков
возможность изменить мир
Интернет по всему миру
доступ к гос.ресурсам
11. Большой брат?
●
●
●
●
Автоматическое правосудие
Полная публичность
Защита данных как услуга
Война патентов и защита
инноваций
● Ни один грех не будет забыт,
а если и будет, то за большие
деньги
● Исчезновение анонимности
● Нет бесплатных программ,
мы платим персональными
данными
12. Nearest Neighbor Search (NNS)
● найти ближайшую точку к данной на большом
множестве точек;
● расcтояние может быть любым, в том числе быть
длиной кратчайшего маршрута на графе.
Основные приложения
●
●
●
●
●
сервисы рекомендаций, генетические исследования;
распознавание образов;
классификация текстов;
рекомендательные и экспертные системы;
динамическое размещение рекламы в Интернете.
13. Nearest Neighbor Search (NNS)
Диаграмма Вороного
● Если мы сумеем построить
такое разбиение плоскости, то
любая точка внутри ячейки
находится ближе к "центру"
своей ячейки. Точки на границе
равноудалены от "центров".
● Двумерный случай прост, в nмерном случае используются
приближенные алгоритмы.
14.
15. Эксперимент Милграма
Facebook
4.74
712 M
69 G
Twitter
3.67
----
5G follows
180 M
1.3 G arcs
MSN Messenger (1 6.6
month)
● Hyper ANF - новый алгоритм, основанный на счетчиках
HyperLogLog и вычислении функции соседства
● HyperLogLog - статистический счетчик (6% отклонение,
5 - 7 bits)
● Диаметр Facebook - 10 hours, 1TB RAM
16.
17.
18. Node Centrality Problem
Зачем искать множество центральных точек?
● влияние таких точек больше остальных
● удаление важных вершин снижает надежность
системы
Основные приложения
●
●
●
●
●
●
астрофизика
биоинформатика
социальные связи
дорожные сети
изучение топологии интернета и выявление спама
системы рекомендаций
19. Но как работать с такими
данными?
● Hadoop + MapReduce тут не поможет
● Google для частного ряда задач
создал систему Pregel, аналогичная
система есть у компании Яндекс
● АНБ + KeyScore
● Вычисление доминаторных деревьев
в потоке информации, важных
персон
● Необходима линейность по времени
и логарифмичность по памяти
● Можно задавать некоторые сетки,
делать вычисления для подграфов
20. Pregel - система для вычислений
на больших графах
В основе Pregel лежит вершинный подход, а сама
система основана на модели Bulk Synchronous Parallel
Программы обработки графов в Pregel представлены в
виде последовательностей итераций, которые
называются супершагами. При выполнении супершага
для каждой вершины графа запускается определенная
пользователем функция, и все функции выполняются
параллельно.
21. Pregel - система для вычислений
на больших графах
Вершины обмениваются сообщениями, а также могут
изменять свое состояние и состояние смежных ребер,
согласно полученной информации.
Pregel: A System for Large-Scale Graph Processing
(Грегорц Малевич [Grzegorz Malewicz] и др., 2010 г.).
На следующей картинке приведен пример обмена
сообщениями между набором вершин графа для
определения максимального значения вершины.
23. Кратчайшее расстояние на
графе Европы
Поиск кратчайшего расстояния на графе - одна из
важнейших задач оптимизации, причем классические
подходы в данной области не оправдывают себя на
больших графах.
24. Требования к системе обработки
● Необходимо быстро (10 мс) находить кратчайшее
расстояние между двумя точками
● Линейность алгоритмов
● Этап предварительной обработки (препроцессинг)
● Не хранить все расстояния между вершинами (O(n^2)
по памяти)
● Ответ может быть точным с определнной вероятностью
● Учитывание геоспецифики графа
● Использование сжатия и перекодировки для хранения
на диске
25. Алгоритмы для вычисления
кратчайшего расстояния
Dijkstra
ALT
RE
HH
CH
TN
HL
2 008 300
24 656
2444
462.0
94.0
1.8
0.3
ALT: [Goldberg & Harrelson 05], [Delling & Wagner 07]
RE: [Gutman 05], [Goldberg et al. 07]
HH: [Sanders & Schultes 06]
CH: [Geisberger et al. 08]
TN: [Geisberger et al. 08]
HL: [Abraham et al. 11]
26. Оптимизационные задачи на
больших графах
Однако, при решении оптимизационных задач на графах,
изменяющих структуру самого графа, фаза
препроцессинга длиною в несколько часов становится
бессмысленной.
Пример задачи: есть 1 млрд рублей на развитие
дорожной сети. Каким образом можно инвестировать его,
чтобы уменьшить среднее время, затрачиваемое на
ежедневные межрайонные корреспонденции граждан?
Еще пример: дорожная сеть подверглась воздействию
стихии, ожидается еще один удар. Где проложить новые
дороги, чтобы система была максимально устойчивой?
27.
28.
29.
30. I/O Efficient Algorithms and Data
Structures
● Традиционный подход состоит в случайном чтении из
RAM
● Однако, стоит помнить, что уровней памяти много
● Чем дальше от CPU, тем больше и медленнее
● Данные перемещаются между уровнями большими
блоками
● Часто OS берет на себя предсказание и подгрузку
● Диск в 10^6 медленнее RAM
● Разбиение на небольшие блоки и выполнение
операций внутри каждого блока с объединением
результата уменьшает число I/O операций
31. Graphs and Memory Errors
Что может привести к ошибкам?
● космическое излучение
● битый кусок винчестера
● ошибка при передаче данных из RAM в кэш
Чем чревато?
● классические алгоритмы (слияние списков, например)
не готовы к ошибкам
● выходом из строя критического оборудования
● редкость ошибок - миф (эксперимент Google)
Разработка алгоритмов, устойчивых к ошибкам, ведется
уже 50 лет!
32. Итоги
● Для анализа большого графа
достаточно небольшого
вычислительного кластера
● Инструменты визуализации и
алгоритмы на больших графах
являются восходящим трендом
● Невозможна хаотичная работа
с большими данными без
соответствующего
математического аппарата и
программного обеспечения