Обзор современных подходов к обработке больших данных и их применение для построения рекомендательных систем Павел Клеменков parser@cs.msu.su МГУ имени.

Презентация:



Advertisements
Похожие презентации
BigData изнутри: технологии и алгоритмы Александр Сербул руководитель направления, разработчик Партнерская конференция «1С-Битрикс»
Advertisements

Hadoop Лекция 1. Введение в Hadoop и MapReduce. Что такое Hadoop Инфраструктура (framework) для параллельной обработки больших объемов данных (терабайты)
Классификация БД. СУБД и ее компоненты. Логическое и физическое описание данных.
BIG DATA Революция в области хранения и обработки данных Выполнили студенты Кибец Юлия Усатов Константин.
Базы данных Михайлова Елена Георгиевна, мат.-мех. ф-т, кафедра информатики, доцент.
Докладчик – Альперин Борис NOT ONLY SQL NOSQL 1. Различные модели представления информации: иерархическая, сетевая, реляционная, объектная, … Реляционная.
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ СТАВРОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ.
Как Map/Reduce спас Яндекс.Статистику. Background Взрывной рост объема данных, за 8 лет объем дневных данных вырос в 2000 раз с 2ГБ до 4ТБ Скорости процессоров,
Стек технологий Apache Hadoop. Распределённая файловая система HDFS Сергей Рябов.
Технология хранения, поиска и сортировки информации в базах данных
Распределенная обработка информации Разработано: Е.Г. Лаврушиной.
OLAP и OLTP системы OLTP – оперативная транзакционная обработка данных OLAP – оперативная аналитическая обработка данных.
Винников Олег. NET Developer. Почему NoSQL Особенности NoSQL решений Модели данных NoSQL Масштабирование MongoDB.
«Особенности файловой системы WinFS» Сравнение с предыдущими файловыми системами.
Администрирование информационных систем Лекция 4. Система управления базами данных.
Система фрагментированного программирования Перепелкин В.А. Всероссийская молодежная школа по параллельному программированию МО ВВС ИВМиМГ 2009 г.
Big Data пришли в Россию Объем данных в компаниях.
Базы данных Назначение и основные функции Гусельникова Е.В. МБОУ Лицей 130 имени академика М.А.Лаврентьева Новосибирск, 2011.
1. Краткая характеристика MS Access1. Краткая характеристика MS Access 2. Достоинства и недостатки 3. Типы БД 4. Базы данных и системы управления базами.
Архитектура ПС. Классические архитектуры Централизованная архитектура; Архитектура "файл-сервер"; Двухзвенная архитектура "клиент-сервер"; Многозвенная.
Транксрипт:

Обзор современных подходов к обработке больших данных и их применение для построения рекомендательных систем Павел Клеменков МГУ имени М.В. Ломоносова Объединенная компания «Афиши» и «Рамблера»

По оценкам IDC размер цифровой вселенной в 2006 г. составлял 0.18 зеттабайт А к 2011 г. должен был достигнуть 1.8 зеттабайт Продемонстрировав десятикратный рост за 5 лет! Цифровая вселенная

Нью-Йоркская фондовая биржа генерирует около терабайта данных в день Объем хранилищ Facebook каждый день увеличивается на 50 ТБ Internet Archive уже хранит 2 ПБ данных и прирастает 20 ТБ в месяц Эксперименты на БАК могут генерировать до 1 ПБ данных в секунду! Источники данных

Большие данные характеризуются объемом, разнообразием и скоростью, с которой структурированные и неструктурированные данные поступают по сетям передачи в процессоры и хранилища, наряду с преобразованием этих данных в ценную для бизнеса информацию [Gartner] Что такое большие данные?

Volume (объем) Variety (разнообразие) Velocity (скорость) Value (ценность) 4V

Упор на дисковое хранение и индексацию Многопоточность, чтобы скрыть задержки Блокировки Журнализация транзакций Немасштабируемы Архитектура большинства СУБД почти идентична System R (70-е годы): The End of an Architectural Era

Вертикальное масштабирование? Бесконечно мощного сервера нет! Вертикальный рост конечен.

Оптимизация запросов? Создание индексов? Дополнительные операции. Деградация под нагрузкой

Кэш на чтение? Отказ от строгой консистентности. Усложнение клиентского ПО.

Очередь операций вставки/обновления? Размер очереди ограничен. Персистентность очереди.

Денормализация схемы? Избыточность данных. Аномалии.

Горизонтальное масштабирование? Отказ от нормализации. Отказ от join. Усложнение клиентского ПО.

Отказ от строгой консистентности Уход от нормализации и внедрение избыточности Потеря выразительности SQL и моделирование части функций программно Усложнение клиентского ПО Сложность поддержания работоспособности и отказоустойчивости Промежуточные итоги

NoSQL – это не бездумный отказ от реляционной модели! NoSQL - название реляционной СУБД, не использующей SQL (1998 г.) Бум NoSQL обусловлен ростом Интернет- индустрии NoSQL

Решение для задачи, а не наоборот Неограниченное горизонтальное масштабирование Свободная схема или ее отсутствие Консистентность в жертву производительности Простота развертывания и администрирования Большинство программ императивные Мантра NoSQL

NoSQL и CAP

Классификация NoSQL хранилищ по модели данных Тип Примеры Хранилища ключ-значениеRedis Scalaris Riak Tokyo Tyrant Документные хранилищаSimpleDB CouchDB MongoDB Колоночные хранилищаBigTable Hbase Cassandra Хранилища на графахNeo4j

Простая модель данных – ассоциативный массив Доступ к данным только по ключу Информация о структуре значений не сохраняется Обычно все данные хранятся в памяти с возможностью сохранения на диск Хранилища ключ-значение

Документ – множество пар ключ-значение Документы могут быть вложены и объединяться в коллекции Отсутствие схемы как в документе, так и в коллекции Доступ к значениям по ключу или с помощью языка запросов MapReduce Документные хранилища

Все изменения пишутся в конец файла При ошибках всегда можно восстановить последнее состояние Запись не блокирует чтение Б-деревья только на добавление

Таблица – упорядоченный ассоциативный массив строк Строка – ассоциативный массив семейств колонок Семейство колонок – ассоциативный массив колонок с зафиксированными ключами Колонка – кортеж Колоночные хранилища

Данные естественным образом представляются графом Граф – это вершины с атрибутами и ребра со свойствами Доступ к вершинам и ребрам по индексам на атрибутах и свойствах Вычисления – обход графа по ребрам с заданными свойствами Хранилища на графах

Производительность. Вставки

Производительность. Чтение

Производительность. Обновления

Производительность. Чтение

Средняя производительность HDD ~100МБ/c Прочесть 1 ТБ ~ 2.5 часа Прочесть 1 ТБ параллельно со 100 дисков ~ 2 минуты Произвольный доступ к диску медленный Последовательный доступ быстрый! Почему MapReduce?

MapReduce – модель распределенных вычислений (Google, 2004)

2002 – поисковый движок Nutch 2003 – GFS (Google) 2004 – Nutch Distributed File System (NDFS) 2004 – MapReduce (Google) 2005 – Nutch MapReduce 2006 – Nutch Hadoop 2008 – Yahoo! анонсирует Hadoop кластер 2008 – Apache Hadoop История Hadoop

Очень большие файлы (ГБ, ТБ, ПБ) Пакетный доступ к данным (пишем один раз, читаем много) Аппаратные сбои неизбежны (репликация и лог для метаданных) Локальность вычислений Дизайн-принципы HDFS

Чтение файла из HDFS

Запись файла в HDFS

Hadoop MapReduce

Размер Число узлов Число map Число reduce Степень репликации Время 500 Гб сек 1 ТБ сек 100 ТБ мин 1 ПБ мин Сортировка записей по 100 байт Май 2009, Yahoo! Производительность Hadoop

Hive – распределенное хранилище (HDFS, HiveQL) Pig – среда исполнения и язык программирования вычислений Hbase – распределенное колоночное хранилище ZooKeeper – высоко доступный координационный сервис Экосистема Hadoop

Функциональный ЯП Создавался Ericsson для управления коммутационным оборудованием Легковесные процессы взаимодействуют в соответствии с моделью акторов Порождение процессов ~ 10 мкс Отказоустойчивость оборудования – % (Ericsson) О Erlang в двух словах

Фреймворк MapReduce вычислений на больших данных (Nokia Research Center) Ключевое свойство - простота: Нет планировщика Облегченный доступ к локальным ресурсам Независимый от ЯП протокол Упрощенная DDFS с децентрализацией метаданных Disco

Подсчет слов в файле (1 Б) Время (мс) Hadoop12324 PDisco359 ODisco35 Disco vs Hadoop (задержки)

Подсчет слов в английской Википедии Disco vs Hadoop (производительность)

DDFS vs HDFS (чтение)

DDFS vs HDFS (запись)

Анализ данных в реальном времени Высокочастотная торговля Поисковые системы реального времени Социальные сети Персонализация контента... В поисках Hadoop реального времени

Предоставить простой интерфейс поточной обработки данных Обеспечить горизонтальное масштабирование и высокую доступность кластера Минимизировать задержки, используя только оперативную память узлов Создать децентрализованное, симметричное решение без единой точки отказа Yahoo! S4

Вычисление – граф Вершины – вычислительные элементы (PE) Ребра – потоки событий PE – это актор с изолированным состоянием Yahoo! S4

Событие – кортеж именованных значений События группируются по именам значений в кортеже Группировка важна, потому что состояние хранится в памяти узла и изолировано PE может или создать новый поток, или опубликовать результат События

Событий/c ОшибкаСкорость передачи (Мб/c) % % % % % % % %26.7 Кластер из 8 узлов (4 процессора, 16 ГБ) Производительность S4

Storm (Twitter) – распределенная система вычислений в реальном времени Первый публичный релиз через год после S4 Устраняет недостатки S4 Storm

Два варианта использования: обработка потоков событий распределенный RPC Прозрачное горизонтальное масштабирование Гарантия обработки сообщений Отказоустойчивость, перераспределение вычислений Независимость от ЯП Особенности Storm

Вычисление – топология (граф) Ребра – маршруты передачи данных Вершины: трубы (spout) – генерируют данные молнии (bolt) – производят вычисления Модель вычислений

Событие – кортеж (как в S4) Кортеж полностью обработан, если обработан каждый кортеж дерева Избежать повторных вычислений можно с помощью транзакций

Задача рекомендательной системы – дать человеку направление до наиболее интересных и полезных для него объектов в пространстве возможных вариантов Рекомендательная система – программа, задачей которой является предсказать оценку, которую пользователь поставит объекту, с которым он еще не встречался, на основании характеристик этого объекта и/или профиля пользователя Рекомендательные системы

Классификация: Логистическая регрессия Байесовские классификаторы Случайный лес Кластеризация K-Means Иерархическая кластеризация MinHash Apache Mahout

Понижение размерности: SVD PCA Рекомендательные алгоритмы: Фильтрация по схожести пользователей Фильтрация по схожести объектов Slope One И многие другие... Apache Mahout

Найти пользователей, чьи интересы наиболее схожи с интересами данного пользователя На основе рейтингов K наиболее похожих пользователей предсказать рейтинг, который поставит данный пользователь предметам, которые он еще не видел Порекомендовать предметы с наибольшим предсказанным рейтингом Фильтрация по схожести пользователей

DataModel model = new FileDataModel(new File(data.txt)); UserSimilarity sim = new PearsonCorrelationSimilarity(model); UserNeighborhood neighbor = new NearestNUserNeighborhood(3, sim, model); Recommender recommender = new GenericUserBasedRecommender(model,neighbor, sim); List recommendations = recommender.recommend(1234, 10); Фильтрация по схожести пользователей

Сложность O(MN) На практике – O(M+N), т.к. векторы очень разрежены Слишком медленный для Веба Предварительное вычисление матрицы схожести сильно влияет на качество Фильтрация по схожести пользователей

Фильтрация по схожести объектов

DataModel model = new FileDataModel(new File(data.txt)); ItemSimilarity sim = new PearsonCorrelationSimilarity(model); Recommender recommender = new GenericItemBasedRecommender(model, sim); List recommendations = recommender.recommend(1234, 10); Фильтрация по схожести объектов

Сложность O(N 2 M) На практике O(NM), т.к. у большинства пользователей мало оценок Более устойчив к предварительному вычислению матрицы схожести Применяется Amazon (2003 г.) Фильтрация по схожести объектов

Мера Жаккарда

MinHash

Сигнатура множества вычисляется один раз Размер сигнатуры не меняется Одна хеш-функция имеет высокую дисперсию, поэтому нужно использовать среднее нескольких хеш-функций Особенности MinHash

Фильтрация логов во временном окне MAPMAP Кластеризация

Фильтрация логов во временном окне Множество уникальных URL MAPMAP REDUCEREDUCE Кластеризация

Фильтрация логов во временном окне Множество уникальных URL Подсчет значений хеш-функций MAPMAP REDUCEREDUCE Кластеризация

Фильтрация логов во временном окне Множество уникальных URL Подсчет значений хеш-функций Вычисление минимума MAPMAP REDUCEREDUCE Кластеризация

Фильтрация логов во временном окне Множество уникальных URL Подсчет значений хеш-функций Вычисление минимума Группировка минимумов (кластеры) MAPMAP REDUCEREDUCE Кластеризация

Фильтрация логов во временном окне Множество уникальных URL Подсчет значений хеш-функций Вычисление минимума Группировка минимумов (кластеры) Отсечение небольших кластеров MAPMAP REDUCEREDUCE Кластеризация

Фильтрация логов во временном окне MAPMAP Рекомендации

Фильтрация логов во временном окне Множество уникальных URL MAPMAP REDUCEREDUCE Рекомендации

Фильтрация логов во временном окне Множество уникальных URL Подсчет кликов по группам MAPMAP REDUCEREDUCE Рекомендации

Фильтрация логов во временном окне Множество уникальных URL Подсчет кликов по группам MAPMAP REDUCEREDUCE Рекомендации

Фильтрация логов во временном окне Множество уникальных URL Подсчет кликов по группам Группировка новостей MAPMAP REDUCEREDUCE Рекомендации

Фильтрация логов во временном окне Множество уникальных URL Подсчет кликов по группам Группировка новостей Отсечение непопулярных новостей MAPMAP REDUCEREDUCE Рекомендации

Hadoop кластер из 8 узлов Временное окно кластеризации – 5 суток (8 ГБ логов) Время кластеризации – 7 минут Временное окно рекомендаций – 5 часов Время генерации рекомендаций – минуты Производительность

Кузнецов Сергей Дмитриевич Добров Борис Викторович Когаловский Михаил Рувимович Калиниченко Леонид Андреевич Благодарности

Вопросы?