Get started Features Tutorials Blog Research

What does Vowpal Wabbit do?

Vowpal Wabbit provides a fast, flexible, and open interactive machine learning solution for reinforcement learning, supervised learning, and other machine learning paradigms.

The contextual bandit approach

The vast majority of real-world reinforcement learning systems use an interactive contextual bandits approach. This approach enables people and organizations to learn and adapt continuously.

For an overview of a contextual bandit approach to reinforcement learning and how to use Vowpal Wabbit, see the contextual bandit reinforcement learning tutorial.

Learning to search (L2S)

Learning to Search (L2S) is a form of guided reinforcement learning used for solving complex joint prediction problems based on learning to search through a problem-defined search space.

For more on how to use Vowpal Wabbit in an L2S setting, see the learning to search tutorial.

Active learning algorithms

Active learning allows a learning algorithm to choose which examples to label given what it knows and a source of unlabeled examples. Vowpal Wabbit provides several active learning algorithms to use that minimize the cost of labeling datasets.

Extreme classification

In the extreme multi-class learning setting, there are a vast number of classes to predict amongst. Vowpal Wabbit’s classification algorithms that run in logarithmic time have applications in document tagging, ranking, and recommendation systems.

Online machine learning

Most learning algorithms require all data before they start learning. Vowpal Wabbit enables efficient learning from a continuously growing data source for situations where a problem changes.

Speed and scalability

Vowpal Wabbit handles learning problems with any number of sparse features. It is the first published tera-scale learner[1] achieving great scaling. It features distributed, out-of-core learning and pioneered the hashing techniques[2] [3], which together make its memory footprint bounded independent of training data size.

Flexible input format and manipulation

Vowpal Wabbit’s input format allows examples with features consisting of free form text and multiple sources to be explicitly represented and used later. It includes example manipulators for ease of deployment and to maximize performance by suppressing or combining different feature sources.

Adaptable deployment

Vowpal Wabbit is available on the command line, as a library, as a daemon, and as a service via the Microsoft Azure Cognitive Services Personalizer and Microsoft Machine Learning for Apache Spark (MMLSpark).

How it works

In order to understand how Vowpal Wabbit works, you first need to understand what kind of problem you are trying to solve. The most common problem applications include reductions and contextual bandits.

Anatomy of a reduction stack

Many problems in machine learning can be efficiently reduced to other solved problems in machine learning. This allows one to derive many important bounds of one algorithm in terms of other well-known and efficient algorithms. We call this a reduction stack.
flowchart for reduction stack

Real-world reduction

Vowpal Wabbit supports solutions to a range of real-world problems through reductions to standard learning algorithms. This versatility empowers you to frame learning problems effectively and achieve the best solution.
flowchart for real world reductions

Community contributions

Vowpal Wabbit is a mature, open source project and the result of community contributions and research since 2007. Hosted on GitHub, people all over the world contribute code and research to Vowpal Wabbit technology.

See community examples on GitHub and contribute to the development of Vowpal Wabbit technology.

Get started with Vowpal Wabbit

Install Vowpal Wabbit and start exploring with easy-to-access tutorials and documentation.