Использование Hadoop и Mahout в машинном обучении презентация

Содержание

Hadoop и Mahout Созыкин А.В. Big Data Big Data – задачи обработки больших объемов данных: Терабайты и петабайты Высокая скорость обработки – невозможно сделать традиционными подходами Оценки аналитиков Gartner и

Слайд 1Использование Hadoop и Mahout
в машинном обучении

Созыкин Андрей Владимирович

к.т.н.
зав.кафедрой высокопроизводительных компьютерных

технологий

Слайд 2Hadoop и Mahout Созыкин А.В.
Big Data
Big Data – задачи обработки больших

объемов данных:
Терабайты и петабайты
Высокая скорость обработки – невозможно сделать традиционными подходами
Оценки аналитиков Gartner и IDC:
Big Data входит в ТОП 10 наиболее важных тенденций развития информационных технологий
Рынок Big Data один из самых быстрорастущих
MapReduce – одна из наиболее популярных моделей обработки данных в Big Data


Слайд 3Hadoop и Mahout Созыкин А.В.
План
Основы MapReduce и Apache Hadoop
Экосистема Hadoop

Машинное обучение в Apache Mahout

Слайд 4Hadoop и Mahout Созыкин А.В.
История Hadoop и MapReduce
Технологию MapReduce придумали в

Google для системы поиска в Интернет:
Цель – хранить и обрабатывать большие объемы данных на обычных компьютерах, объединенных сетью
Goggle не распространяет свою реализацию MapReduce
Jeffrey Dean, Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters
Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung. The Google File System
Apache Hadoop – открытая реализация MapReduce:
Разработан на основе идей Google
Написан на Java
http://hadoop.apache.org/

Слайд 5Hadoop и Mahout Созыкин А.В.
Кто использует Hadoop
Кто использует Hadoop:








Самый большой

кластер Hadoop в Yahoo!:
4500 серверов
Используется для поисковой системы и подбора рекламных объявлений

Слайд 6Hadoop и Mahout Созыкин А.В.
Основные технологии Hadoop
HDFS (Hadoop Distributed File

System) – хранение данных
MapReduce – обработка данных

Слайд 7Hadoop и Mahout Созыкин А.В.
HDFS

Файл


Слайд 8Hadoop и Mahout Созыкин А.В.
HDFS

Файл



64МБ
64МБ
64МБ


Слайд 9





Hadoop и Mahout Созыкин А.В.
HDFS

Файл



64МБ
64МБ
64МБ


Слайд 10





Hadoop и Mahout Созыкин А.В.
HDFS









Data Node 1
Data Node 2
Data Node 3
Data

Node 4

Data Node 5

Data Node 6


Name
Node


1, 4, 6


1, 3, 5


1, 2, 5


Слайд 11Hadoop и Mahout Созыкин А.В.
Работа с HDFS
Блоки файлов в HDFS распределены

по разным серверам:
Нельзя смонтировать HDFS
Не работают стандартные команды ls, cp, mv и т.п.
Необходимо использовать специальную команду:
$ hadoop dfs –cmd
Примеры:
$ hadoop dfs -ls
Found 3 items
-rw-r--r-- 1 hadoop supergroup 0 2011-06-22 13:58 /user/hadoop/file1
-rw-r--r-- 1 hadoop supergroup 0 2011-06-22 13:58 /user/hadoop/file2
-rw-r--r-- 1 hadoop supergroup 0 2011-06-22 13:58 /user/hadoop/file3
$ hadoop dfs -put /tmp/file4
$ hadoop dfs -cat file4
Hello, world!

Слайд 12Hadoop и Mahout Созыкин А.В.
Особенности HDFS
HDFS – специализированная файловая система, оптимизированная

для параллельной потоковой работы с большими файлами
Подходит не для всех задач!
Модель Write Once Read Many:
Нельзя изменять файл, можно только добавлять в конец
Большой размер блока:
По-молчанию 64 МБ (часто 128 или 256 МБ)
Не эффективен произвольный доступ (базы данных и т.п.)

Слайд 13Hadoop и Mahout Созыкин А.В.
MapReduce
MapReduce – технология распределенных вычислений
Цель MapReduce

– разделить логику приложения и организацию распределенного взаимодействия:
Программист реализует только логику приложения
Распределенная работа в кластере обеспечивается автоматически
MapReduce работает с данными как с парами Ключ:Значение:
смещение в файле: текст
идентификатор пользователя: профиль
пользователь: список друзей
временная метка: событие в журнале

Источник: http://www.youtube.com/watch?v=SS27F-hYWfU


Слайд 14Hadoop и Mahout Созыкин А.В.
Функции Map и Reduce
Источник: http://developer.yahoo.com/hadoop/tutorial/module4.html


Слайд 15Hadoop и Mahout Созыкин А.В.
Пример MapReduce: WordCount
Задача: посчитать, сколько раз слово

встречается в файле
Количество обращений к Web-страницам
Количество просмотра видео или прослушивания песни
Исходные данные:
Текстовые файлы
Каждый файл делится на пары: Смещение:Тест
Пример:
Цель MapReduce – разделить логику приложения и организацию распределенного взаимодействия. Программист реализует только логику приложения

Слайд 16Hadoop и Mahout Созыкин А.В.
WordCount: функция Map
Исходные данные:
Цель MapReduce –

разделить логику приложения и организацию распределенного взаимодействия. Программист реализует только логику приложения
Результаты обработки:
<цель, 1>, , <разделить, 1>, <логику,1>, <приложения, 1>, <и, 1>, <организацию, 1>, <распределенного, 1>, <взаимодействия, 1>, <программист, 1>, <реализует, 1>, <только,1>, <логику, 1>, <приложения, 1>
Сортировка и группировка по ключу:
, <взаимодействия, 1>, <и, 1>, <логику,1>, <логику, 1>, <организацию, 1>, <приложения, 1>, <приложения, 1>, <программист, 1>, <разделить, 1>, <распределенного, 1>, <реализует, 1>, <только,1>, <цель, 1>.

Слайд 17Hadoop и Mahout Созыкин А.В.
WordCount: функция Reduce
Пары с одинаковыми ключами

передаются в одну функцию Reduce:

<взаимодействия, 1> → <взаимодействия, 1>
<и, 1> → <и, 1>
<логику,1>, <логику, 1> → <логику, 2>
<организацию, 1> → <организацию, 1>
<приложения, 1>, <приложения, 1> → <приложения, 2>
<программист, 1> → <программист, 1>
<разделить, 1> → <разделить, 1>
<распределенного, 1> → <распределенного, 1>
<реализует, 1> → <реализует, 1>
<только,1> → <только,1>
<цель, 1> → <цель, 1>


Слайд 18Hadoop и Mahout Созыкин А.В.
Модель MapReduce
MapReduce – странный подход к

решению задачи WordCount
Есть более простые и интуитивно понятные решения
Достоинства MapReduce:
Возможность автоматического распараллеливания – функции Map и Reduce могут обрабатывать элементы списка параллельно не зависимо друг от друга
Масштабируемость – данные могут размещаться на разных серверах (в HDFS) и обрабатываться также на разных серверах
Отказоустойчивость – при выходе из строя сервера функции Map или Reduce запускаются на другом сервере
Недостатки MapReduce:
Фиксированный алгоритм обработки данных
Высокие накладные расходы на распараллеливание

Слайд 19Hadoop и Mahout Созыкин А.В.
Перемещение вычислений к данным


Слайд 20Hadoop и Mahout Созыкин А.В.
Пример запуска задачи Hadoop
$ hadoop jar

hadoop-examples-*.jar grep input output 'dfs[a-z.]+'
hadoop-examples-*.jar – Имя архива с примерами из дистрибутива Hadoop
grep – Имя команды в архиве с примерами
input – Каталог входных данных (в HDFS)
output – Каталог выходных данных (в HDFS)
'dfs[a-z.]+' – Шаблон для поиска


Слайд 21Hadoop и Mahout Созыкин А.В.
Экосистема Hadoop
MapReduce – мощная модель программирования,

но низкоуровневая
Реализация практически полезных алгоритмов требует высоких трудозатрат
Hadoop сложен в установке и администрировании
На основе Hadoop сложилась экосистема:
Программные продукты для решения различных прикладных задач, использующие Hadoop для масштабирования
Дистрибутивы Hadoop
Облачный хостинг для Hadoop

Слайд 22Hadoop и Mahout Созыкин А.В.
Экосистема Hadoop
Pig – декларативный язык анализа

данных
Hive – анализ данных с использованием языка, близкого к SQL
Oozie – поток работ в Hadoop
Hbase – база данных (нереляционная), аналог Google Big Table
Mahout – машинное обучение
Sqoop – перенос данных из РСУБД в Hadoop и наоборот
Flume – перенос логов в HDFS
Zookeeper, MRUnit, Avro, Giraph, Ambari, Cassandra, HCatalog, Fuse-DFS и т.д.

Слайд 23Hadoop и Mahout Созыкин А.В.
Дистрибутивы Hadoop
Apache
hadoop.apache.org
Оригинальный дистрибутив, только Hadoop
Альтернативные дистрибутивы:
Совместно

Hadoop, HBase, Pig, Hive, Mahout, Sqoop, Zookeeper и др.
Средства автоматизации установки и администрирования, мониторинг, безопасность
Поставщики альтернативных дистрибутивов:
Cloudera
MapR
Hortonworks
Intel

Слайд 24Hadoop и Mahout Созыкин А.В.
Облачный хостинг Hadoop
Amazon Elastic MapReduce (Amazon EMR)
http://aws.amazon.com/elasticmapreduce/


Партнерство с MapR
Apache Hadoop on Rackspace
http://www.rackspace.com/knowledge_center/article/apache-hadoop-on-rackspace-private-cloud
Партнерство с Hortonworks
Microsoft Windows Azure
http://www.windowsazure.com/en-us/home/scenarios/big-data/
Qubole Data Service
http://www.qubole.com/qubole-data-service
Web-интерфейс для анализа данных с Hadoop, Hive, Pig и др. на Amazon EMR

Слайд 25Hadoop и Mahout Созыкин А.В.
Apache Mahout
Масштабируемая библиотека машинного обучения (machine learning)

Режимы работы:
В кластере Hadoop
Отдельно на одном компьютере
Mahout – слово из индийского языка, означает погонщик слонов
Открытые исходные коды:
Написан на Java
Лицензия Apache 2.0
Страница проекта:
http://mahout.apache.org/

Слайд 26Hadoop и Mahout Созыкин А.В.
Машинное обучение в Mahout
Коллаборативная (совместная) фильтрация
Рекомендации
Кластеризация
Объединение

объектов в группы (кластеры, заранее не известные)
Примеры: Google News объединяет новости на одну тему
Алгоритмы в Mahout: K-Means, Fuzzy K-Means, Mean Shift, Dirichlet, Canopy и др.
Классификация:
Определение принадлежности объекта к заданному классу (классы известны заранее)
Примеры: определение спама, определение тематики текста (текст о политике, спорте и т.п.)
Алгоритмы в Mahout: Logistic Regression, Naive Bayes, Support Vector Machines, Online Passive Aggressive и др.

Слайд 27Hadoop и Mahout Созыкин А.В.
Рекомендации


Слайд 28Hadoop и Mahout Созыкин А.В.
Актуальность рекомендаций
Хорошая система рекомендаций может существенно повысит

доход от продаж и рекламы
$1M NetflixPrize:
Компания Netflix устроила соревнования по улучшению алгоритма рекомендации DVD
Размер приза: 1 миллион долларов
Условие получения приза: улучшить алгоритм рекомендации на 10%
Приз получила команда «BellKor’s Pragmatic Chaos» в 2009 г.
Соревнования проходили с 2006 по 2009 г.
Каждый год выплачивался приз за прогресс $50 000
http://www.netflixprize.com/


Слайд 29Hadoop и Mahout Созыкин А.В.
Способы рекомендаций
На основе контента
Пример: пользователь выбрал книгу

Пушкина, значит можно рекомендовать ему другую книгу Пушкина или классическую литературу
Недостаток: система рекомендаций сильно зависит от домена и непереносима
На основе предпочтений
Рекомендации на основе оценок пользователей
Объекты рекомендации могут быть любыми
Можно реализовать общую систему, не зависимую от домена
Реализован в Mahout


Слайд 30Hadoop и Mahout Созыкин А.В.
Предпочтение
Рекомендации в Mahout выдаются на основе предпочтений

пользователей
Предпочтение в Mahout:
Пользователь (целое число)
Объект (целое число)
Предпочтение (число двойной точности)
Пример данных о предпочтениях для Mahout из проекта GroupLens (Университет Минесоты) – оценка пользователями фильмов:
196 242 3 881250949
186 302 3 891717742
22 377 1 878887116
244 51 2 880606923
user id | item id | rating | timestamp

(Не используется
в Mahout)


Слайд 31Hadoop и Mahout Созыкин А.В.
Подходы к рекомендации
На основе пользователей:
Найти пользователей с

похожими вкусами
Посмотреть, что нравится этим пользователям
Рекомендовать объекты в соответствии с предпочтениями похожих пользователей
Недостатки: подход плохо масштабируется, предпочтения быстро меняются
На основе объектов:
Найти объекты, похожие на те, которые понравились пользователю
Рекомендовать наиболее популярные из них
Преимущества: хорошо масштабируется, оценки объектов меняются редко. Рекомендации можно генерировать в автономном режиме (с использованием Hadoop)

Слайд 32Hadoop и Mahout Созыкин А.В.
Рекомендации на основе пользователей
public static void main(String[] args)

throws Exception {
DataModel model = new FileDataModel (new File("u.data"));

UserSimilarity similarity = new PearsonCorrelationSimilarity (model);

UserNeighborhood neighborhood =
new NearestNUserNeighborhood (2, similarity, model);

Recommender recommender = new GenericUserBasedRecommender (
model, neighborhood, similarity);

List recommendations = recommender.recommend(1, 1);

for (RecommendedItem recommendation : recommendations) {
System.out.println(recommendation);
}
}

RecommendedItem [item:643, value:4.27682]

Слайд 33Hadoop и Mahout Созыкин А.В.
Рекомендации на основе пользователей
Источник: Sean Owen, Robin Anil,

Ted Dunning, and Ellen Friedman. Mahout in Action

Слайд 34Hadoop и Mahout Созыкин А.В.
Выбор похожих пользователей
Как определить, что вкусы пользователей

похожи?
Мера «похожести» - число от -1 до 1.
1 – вкусы пользователей совпадают
0 – у пользователей нет общих вкусов
-1 – вкусы пользователей противоположны
Mahout использует несколько алгоритмов расчета «похожести»:
Коэффициент Пирсона
Евклидово расстояние
Корреляция Спирмена
Коэффициент Танимото
Логарифмическое правдоподобие

Слайд 35Hadoop и Mahout Созыкин А.В.
«Соседние» пользователи
Источник: Sean Owen, Robin Anil, Ted Dunning,

and Ellen Friedman. Mahout in Action

Фиксированное число соседей
(NearestNUserNeighborhood )

Соседи в пределах границы
(ThresholdUserNeighborhood)


Слайд 36Hadoop и Mahout Созыкин А.В.
Выбор параметров
Какой тип «похожести» пользователей лучше?
Какой

тип «соседства» лучше?
Критерии оценки:






Однозначного ответа нет
Результаты разные для разных данных
Проводите эксперименты с разными параметрами!

Источник: Sean Owen, Robin Anil, Ted Dunning, and Ellen Friedman. Mahout in Action


Слайд 37Hadoop и Mahout Созыкин А.В.
Рекомендации на основе объектов
public static void main(String[] args)

throws Exception {
DataModel model = new FileDataModel (new File("u.data"));

ItemSimilarity itemSimilarity = new LogLikelihoodSimilarity(dataModel);

ItemBasedRecommender recommender =
new GenericItemBasedRecommender(dataModel, itemSimilarity);

List recommendations =
recommender.recommend(1, 1)

for (RecommendedItem recommendation : recommendations) {
System.out.println(recommendation);
}
}

RecommendedItem [item:271, value:4.27682]

Слайд 38Hadoop и Mahout Созыкин А.В.
Mahout и Hadoop
Источник: Sean Owen, Robin Anil, Ted

Dunning, and Ellen Friedman. Mahout in Action

Слайд 39Hadoop и Mahout Созыкин А.В.
Mahout и Hadoop
Mahout может работать как отдельно,

так и в кластере Hadoop
Запуск рекомендации Mahout в Hadoop выполняется с помощью класса RecommenderJob
Данные о предпочтениях должны быть записаны в HDFS
Полученные рекомендации записываются в HDFS
Рекомендации можно перенести в базу данных с помощью sqoop

Слайд 40Hadoop и Mahout Созыкин А.В.
Пример запуска Mahout в Hadoop
$ hadoop jar mahout-core-0.7-job.jar

\
org.apache.mahout.cf.taste.hadoop.item.RecommenderJob \
-Dmapred.input.dir=input
-Dmapred.output.dir=output
--usersFile users_list.txt

Возможные параметры:
Dmapred.input.dir – каталог с данными о предпочтениях (в HDFS, может быть несколько файлов)
Dmapred.output.dir – каталог, куда записываются сгенерированные рекомендации (в HDFS)
--usersFile – файл с идентификаторами пользователей, для которых нужно сгенерировать рекомендации
--similarityClassname – имя класса, который реализует расчет «похожести»
--numRecommendations – количество рекомендаций на одного пользователя


Слайд 41Hadoop и Mahout Созыкин А.В.
Итоги
MapReduce – программная модель для обработки больших

объемов данных (BigData)
Hadoop – открытая реализация MapReduce
Экосистема Hadoop
Mahout – машинное обучение в Hadoop:
Рекомендации, классификация, кластеризация
Рекомендации в Mahout:
Предпочтения: пользователь, объект, оценка
Рекомендации на основе пользователей и на основе объектов
«Похожесть» пользователей и объектов
«Соседство» пользователей
Запуск Mahout RecommenderJob в Hadoop

Слайд 42Hadoop и Mahout Созыкин А.В.
Вопросы?






Контакты
Андрей Созыкин
avs@imm.uran.ru
www.asozykin.ru



Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика