2012.11.06 машинное обучение с помощью vw

Preview:

Citation preview

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.

Recommended