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.
Начало: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/
Обучение линейных функций с разными функциями потерь: квадратичной, логистической, hinge, quantile;
Методы оптимизации: SGD, сопряженные градиенты, L-BFGS;
Многоклассовая классификация;
Поддержка весов объектов;
Обучение на объектах со структурой;
Matrix factorization;
Latent Dirichlet Allocation;
Для работы Vowpal Wabbit не обязателен Hadoop-кластер.
Нужна распределенная система обучения:
все данные не могут лежать на одном сервере
нужно увеличение производительности
Hadoop:
файловая система HDFS
JobTracker
speculative execution
Нужна операция AllReduce, которая
агрегирует данные со всех нод и сообщает
обратно всем результат.
1
2 3
4 5 6 7
1
11 16
4 5 6 7
28
11 16
4 5 6 7
28
28 28
28 28 28 28
Аналогичная реализация:
Вычисление количества
Среднее значение
Средневзвешенное значение
На кластере запускается процесс spanning_tree ;
Каждый mapper запускает vw в режиме
стриминга;
vw подключается к spanning_tree и
обменивается с остальными ip & port;
из мэпперов выстраивается дерево, после
этого процесс spanning_tree не нужен;
дерево из мэпперов выполняет операции
AllReduce.
Все работает в одной операции 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
Yahoo:
17*109 событий
16*106 параметров
1000 серверов
Yandex:
1*109 событий
16*106 параметров
60 серверов
… 70 мин
… 20 мин
A. Agarwal, O. Chapelle, M. Dudik, J. Langford
A Reliable Effective Terascale Linear Learning System,
http://arxiv.org/abs/1110.4198
A. Agarwal, O. Chapelle, M. Dudik, J. Langford
A Reliable Effective Terascale Linear Learning System,
http://arxiv.org/abs/1110.4198
A. Agarwal, O. Chapelle, M. Dudik, J. Langford
A Reliable Effective Terascale Linear Learning System,
http://arxiv.org/abs/1110.4198
Наиболее эффективная комбинация – это один
проход SGD с последующими итерациями L-BFGS
A. Agarwal, O. Chapelle, M. Dudik, J. Langford
A Reliable Effective Terascale Linear Learning System,
http://arxiv.org/abs/1110.4198
Задачи “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
Hadoop:
https://github.com/JohnLangford/vowpal_wab
bit/tree/master/cluster
Yandex MapReduce:
обращаться к trofim
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.