Илья Трофимов - машинное обучение с помощью vw

22
МАШИННОЕ ОБУЧЕНИЕ С ПОМОЩЬЮ VOWPAL WABBIT + HADOOP Илья Трофимов, Яндекс [email protected]

Upload: pavel-mezentsev

Post on 26-Jun-2015

398 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: Илья Трофимов - машинное обучение с помощью vw

МАШИННОЕ ОБУЧЕНИЕ

С ПОМОЩЬЮ VOWPAL WABBIT +

HADOOP

Илья Трофимов, Яндекс[email protected]

Page 2: Илья Трофимов - машинное обучение с помощью vw

ДЕВИЗ There are two ways to have a fast

learning algorithm: (a) start with a slow algorithm and speed it up, or (b) build an intrinsically fast learning algorithm. This project is about approach (b), and it's reached a state where it may be useful to others as a platform for research and experimentation.

Page 3: Илья Трофимов - машинное обучение с помощью vw

VOWPAL WABBIT

Начало:12/21/2007 Написан на C/C++ Проект разрабатывался в Yahoo Research,

сейчас – Microsoft Research Open Source – BSD лицензия

https://github.com/JohnLangford/vowpal_wabbit/wiki

http://tech.groups.yahoo.com/group/vowpal_wabbit/

Page 4: Илья Трофимов - машинное обучение с помощью vw

ОСНОВНЫЕ ВОЗМОЖНОСТИ Обучение линейных функций с разными

функциями потерь: квадратичной, логистической, hinge, quantile;

Методы оптимизации: SGD, сопряженные градиенты, L-BFGS;

Многоклассовая классификация; Поддержка весов объектов; Обучение на объектах со структурой; Matrix factorization; Latent Dirichlet Allocation; Для работы Vowpal Wabbit не обязателен

Hadoop-кластер.

Page 5: Илья Трофимов - машинное обучение с помощью vw

ЭФФЕКТИВНАЯ РЕАЛИЗАЦИЯ РАСПРЕДЕЛЕННОЙ ЛИНЕЙНОЙ РЕГРЕССИИ Обобщенная линейная регрессия

Проблема: архитектура MapReduce плохо приспособлена для итеративных алгоритмов машинного обучения;

Пример: нет эффективной распределенной реализации Logistic Regression в Mahout;

Реальные данные для исследований лежат на Hadoop/MapReduce кластере !

Хочется иметь метод, работающий с миллиардами событий и миллионами параметров!

Page 6: Илья Трофимов - машинное обучение с помощью vw

ОБУЧЕНИЕ НА БОЛЬШИХ ДАННЫХ“BIG DATA”

Нужна распределенная система обучения:все данные не могут лежать на одном

серверенужно увеличение производительности

Hadoop:файловая система HDFS JobTrackerspeculative execution

Page 7: Илья Трофимов - машинное обучение с помощью vw

РЕШЕНИЕ Нужна операция AllReduce, которая

агрегирует данные со всех нод и сообщает обратно всем результат.

Page 8: Илья Трофимов - машинное обучение с помощью vw

ALLREDUCE: SUM - 1

1

2 3

4 5 6 7

Page 9: Илья Трофимов - машинное обучение с помощью vw

ALLREDUCE: SUM - 2

1

11 16

4 5 6 7

Page 10: Илья Трофимов - машинное обучение с помощью vw

ALLREDUCE: SUM - 3

28

11 16

4 5 6 7

Page 11: Илья Трофимов - машинное обучение с помощью vw

ALLREDUCE: SUM - 4

28

28 28

28 28 28 28

Page 12: Илья Трофимов - машинное обучение с помощью vw

ALLREDUCE Аналогичная реализация:

Вычисление количества Среднее значениеСредневзвешенное значение

Page 13: Илья Трофимов - машинное обучение с помощью vw

SPANNING_TREE На кластере запускается процесс spanning_tree ;

Каждый mapper запускает vw в режиме стриминга;

vw подключается к spanning_tree и обменивается с остальными ip & port;

из мэпперов выстраивается дерево, после этого процесс spanning_tree не нужен;

дерево из мэпперов выполняет операции AllReduce.

Page 14: Илья Трофимов - машинное обучение с помощью vw

РЕАЛИЗАЦИЯ Все работает в одной операции map:

hadoop jar $HADOOP HOME/hadoop-streaming.jar

-Dmapred.job.map.memory.mb=2500 -input <input>

-output <output> -file vw -file runvw.sh –mapper runvw.sh <output> <span server> -reducer NONE

Page 15: Илья Трофимов - машинное обучение с помощью vw

ПРЕДЕЛЫ ПРОИЗВОДИТЕЛЬНОСТИ

Yahoo:

17*109 событий

16*106 параметров

1000 серверов

Yandex:

1*109 событий

16*106 параметров

60 серверов

… 70 мин

… 20 мин

A. Agarwal, O. Chapelle, M. Dudik, J. LangfordA Reliable Effective Terascale Linear Learning System,http://arxiv.org/abs/1110.4198

Page 16: Илья Трофимов - машинное обучение с помощью vw

ЛИНЕЙНОЕ УСКОРЕНИЕ

A. Agarwal, O. Chapelle, M. Dudik, J. LangfordA Reliable Effective Terascale Linear Learning System,http://arxiv.org/abs/1110.4198

Page 17: Илья Трофимов - машинное обучение с помощью vw

СПЕКУЛЯТИВНОЕ ВЫПОЛНЕНИЕ

A. Agarwal, O. Chapelle, M. Dudik, J. LangfordA Reliable Effective Terascale Linear Learning System,http://arxiv.org/abs/1110.4198

Page 18: Илья Трофимов - машинное обучение с помощью vw

SGD & L-BFGS

Наиболее эффективная комбинация – это один проход SGD с последующими итерациями L-BFGS

A. Agarwal, O. Chapelle, M. Dudik, J. LangfordA Reliable Effective Terascale Linear Learning System,http://arxiv.org/abs/1110.4198

Page 19: Илья Трофимов - машинное обучение с помощью vw

ПРИМЕНЕНИЯ Задачи “Big Data” с большим

количеством параметров (бинарные и категориальные переменные)

Анализ пользовательских логов Предсказание кликов

O. Chapelle. Click Modeling for Display Advertising, ICML 2012.

Предсказание конверсии Задачи из генетики

Splice site recognition A. Agarwal, O. Chapelle, M. Dudik, J. Langford. A Reliable Effective

Terascale Linear Learning System

Page 20: Илья Трофимов - машинное обучение с помощью vw

КОД Hadoop: https://github.com/JohnLangford/vowpal_wabbit/tree/master/cluster

Yandex MapReduce:обращаться к trofim

Page 21: Илья Трофимов - машинное обучение с помощью vw

REFERENCES Alekh Agarwal, Olivier Chapelle, Miroslav Dudik, John Langford A

Reliable Effective Terascale Linear Learning System, http://arxiv.org/abs/1110.4198

K. Weinberger, A. Dasgupta, J. Langford, A. Smola, and J.Attenberg, Feature Hashing for Large Scale Multitask Learning, ICML 2009.

O. Chapelle. Click Modeling for Display Advertising, ICML 2012. J. Nocedal, Updating Quasi-Newton Matrices with Limited Storage. C. Teo, Q. Le, A. Smola, V. Vishwanathan, A Scalable Modular. Convex Solver for Regularized Risk Minimizationavg. G. Mann et

al. Ecient large-scale distributed training of conditional maximum entropy models.

M. Zinkevich, M. Weimar, A. Smola, and L. Li, Parallelized Stochastic Gradient Descent.

Page 22: Илья Трофимов - машинное обучение с помощью vw

СПАСИБО ЗА ВНИМАНИЕ!