HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
VowpalWabbit
vowpal_wabbit
C++2009–2017
VowpalWabbit / vowpal_wabbit

vowpal_wabbit

Vowpal Wabbit is a machine learning system which pushes the frontier of machine learning with techniques such as online, hashing, allreduce, reductions, learning2search, active, and interactive learning.

20Distinct people
22Mentions
1Explicit recommenders
8.7KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Vowpal Wabbit is a machine learning system which pushes the frontier of machine learning with techniques such as online, hashing, allreduce, reductions, learning2search, active, and interactive learning.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

This is a interesting take and why I love machine learning and its intersection with HPC. First the seemingly blind decision to implement an SVM for improved performance. An…

HamSession used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year22 dated mentions

Observed mentions: 2009-12-30 06:00:28 UTC to 2017-10-28 14:39:13 UTC.

02462009-01-01 00:00:00 UTC to 2010-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20092010-01-01 00:00:00 UTC to 2011-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2011-01-01 00:00:00 UTC to 2012-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments20132014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2017

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20092009-01-01 00:00:00 UTC2010-01-01 00:00:00 UTC101
20102010-01-01 00:00:00 UTC2011-01-01 00:00:00 UTC000
20112011-01-01 00:00:00 UTC2012-01-01 00:00:00 UTC211
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC000
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC404
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC202
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC413
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC707
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC202

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
This is the Vowpal Wabbit fast online learning code. Why Vowpal Wabbit? Vowpal Wabbit is a machine learning system which pushes the frontier of machine learning with techniques such as online, hashing, allreduce, reductions, learning2search, active, and interactive learning. There is a specific focus on reinforcement learning with several contextual bandit algorithms implemented and the online nature lending to the problem well. Vowpal Wabbit is a destination for implementing and maturing state of the art algorithms with performance in mind. Input Format. The input format for the learning algorithm is substantially more flexible than might be expected. Examples can have features consisting of free form text, which is interpreted in a bag-of-words way. There can even be multiple sets of free form text in different namespaces. Speed. The learning algorithm is fast -- similar to the few other online algorithm implementations out there. There are several optimization algorithms available with the baseline being sparse gradient descent (GD) on a loss function. Scalability. This is not the same as fast. Instead, the important characteristic here is that the memory footprint of the program is bounded independent of data. This means the training set is not loaded into main memory before learning starts. In addition, the size of the set of features is bounded independent of the amount of training data using the hashing trick. Feature Interaction. Subsets of features can be internally paired so that the algorithm is linear in the cross-product of the subsets. This is useful for ranking problems. The alternative of explicitly expanding the features before feeding them into the learning algorithm can be both computation and space intensive, depending on how it's handled. Visit the wiki to learn more. Getting Started For the most up to date instructions for getting started on Windows, MacOS or Linux please see the wiki. This includes: Installing with a package manager Building Tutorial Examples and Demos demo/ - Command-line demos and experiments organized by VW feature python/docs/source/examples/ - Python Jupyter notebook examples python/docs/source/tutorials/ - Python and CLI tutorials
Read the full README on GitHub

What Hacker News says

22 sources
As with almost all things machine learning, python libraries are where you will find most of the action. I can recommend https://spacy.io for a low fuss solution to get you up and running quickly. Oversimplifying quite a bit, if spacy focuses on syntax, then gensim focuses on semantics (https://en.wikipedia.org/wiki/Distributional_semantics). Gensim has an active community and is well documented. https://radimrehurek.com/gensim/ If you have the data, can spend a few days experimenting and if you want something that can be orders of magnitude faster than deep learning to train, there's vowpal wabbit. Prediction speed is blazing. Results can be nearly state of the art but with a cost that's a great deal less. It's C++ but with bindings for many languages. It's very poorly documented. https://github.com/JohnLangford/vowpal_wabbit/wiki/Learni
Read the rest
ng%... I've never taken a gander at Facebook's fastText.
In Deep Learning for NLP Best Practices
You could absolutely do it. Here's a few things you could do to get started (feel free to email me if you need more specific help, or have any additional questions- my email's in my profile): 1. Get as much data about each site as possible. Try to find data that you think will separate the non-ecommerce sites from the ecommerce sites. This data should be in a table form- think of an Excel spreadsheet, where each row represents a different site. 2. Label the data as belonging to each type of site. This is going to be tedious and take some time. You can also try hiring people via Mechanical Turk to do this. 3. Use [Weka](http://www.cs.waikato.ac.nz/ml/weka/) or [Vowpal Wabbit](https://github.com/JohnLangford/vowpal_wabbit/wiki) to run some preliminary estimations on the model. Weka and VW are great tools as they come with a lot of the confi
Read the rest
guration done out of the box, so you won't have to write any code to get started. Check your results and see how happy you are with them. Weka has a lot of visualization capacities, so you can see how the data that you've collected aligns with the different types of sites. Now, you can start iterating, which is the key part of any ML project. Consider which aspects of the model you think you can improve on- adding more data, adding more kinds of sites, using a different machine learner.
In Artificial Intelligence Lecture Videos
> - How significant are the estimates of lifestyle factors? Do you have p-values? If you bootstrap resample, how much do the rankings change at the extremes? His VW script does do bootstrapping ('--bootstrap 16') but he doesn't report it anywhere I see. https://github.com/JohnLangford/vowpal_wabbit/wiki/using-vw-... seems to not report any sort of p-value or confidence interval which might be derived from the bootstrapping. (The 'relevance' is 'the relative distance of each variable from the best constant prediction', not sure what that means.) So if you want to know, it looks like you'll have to run it yourself and visualize the output. I would guess that the uncertainties are huge and none of them reach even p<0.05 - it simply should not be possible to get mean loss of like 0.2 and reliable estimates of hundreds of variables like 'melon
Read the rest
' out of less than 4 months of data when the random measurement error of the scale itself is on the order of half a pound (I have an Omron body fat scale, and even taking 2-3 measurements daily, there's a lot of error) unless his VW regression is grossly overfitting.
In Machine Learning and Ketosis
Just to mirror what was said on the thread a month ago when the paper came out[1], if you're interested in FastText I'd strongly recommend checking out Vowpal Wabbit[2] and BIDMach[3]. My main issue is that the FastText paper [7] only compares to other intensive deep methods and not to comparable performance focused systems like Vowpal Wabbit or BIDMach. Many of the features implemented in FastText have been existing in Vowpal Wabbit (VW) for many years. Vowpal Wabbit also serves as a test bed for many other interesting, but all highly performant, ideas, and has reasonable strong documentation. The command line interface is highly intuitive and it will burn through your datasets quickly. You can recreate FastText in VW with a few command line options[6]. BIDMach is focused on "rooflining", or working out the exact performance characterist
Read the rest
ics of the hardware and aiming to maximize those[4]. While VW doesn't have word2vec, BIDMach does[5], and more generally word2vec isn't going to be a major slow point in your systems as word2vec is actually pretty speedy. To quote from my last comment in [1] regarding features: Behind the speed of both methods [VW and FastText] is use of ngrams^, the feature hashing trick (think Bloom filter except for features) that has been the basis of VW since it began, hierarchical softmax (think finding an item in O(log n) using a balanced binary tree instead of an O(n) array traversal) and using a shallow instead of deep model. ^ Illustrating ngrams: "the cat sat on the mat" => "the cat", "cat sat", "sat on", "on the", "the mat" - you lose complex positional and ordering information but for many text classification tasks that's fine. [1]: https://news.ycombinator.com/item?id=12063296 [2]: https://github.com/JohnLangford/vowpal_wabbit [3]: https://github.com/BIDData/BIDMach [4]: https://github.com/BIDData/BIDMach/wiki/Benchmarks#Reuters_D... [5]: https://github.com/BIDData/BIDMach/blob/master/src/main/scal... [6]: https://twitter.com/haldaume3/status/751208719145328640 [7]: https://arxiv.org/abs/1607.01759
In FastText – Library for fast text representation and classification
For anyone who is interested in efficiently classifying text, I can't recommend Vowpal Wabbit[1] (VW) enough. It's blazingly fast and has been used in both production and research. It also has a billion options out of the box for various different set-ups. Other researchers have noted[2] that with a set of command line flags that vw is almost the same as the system described in the paper, specifically, "vw --ngrams 2 --log_multi [K] --nn 10". Behind the speed of both methods is use of ngrams^, the feature hashing trick (think Bloom filter except for features) that has been the basis of VW since it began, hierarchical softmax (think finding an item in O(log n) using a balanced binary tree instead of an O(n) array traversal) and using a shallow instead of deep model. I am still interested in the more detailed insights the team from Facebook
Read the rest
AI Research may provide but the initial paper is a little light and they're still in the process of releasing the source code. ^ Illustrating ngrams: "the cat sat on the mat" => "the cat", "cat sat", "sat on", "on the", "the mat" - you lose complex positional and ordering information but for many text classification tasks that's fine. [1]: https://github.com/JohnLangford/vowpal_wabbit/wiki [2]: https://twitter.com/haldaume3/status/751208719145328640
In Bag of Tricks for Efficient Text Classification
I think the author is too constrained to promote Matlab, so the better (production-ready) alternatives are left out. Furthermore, I do not understand why this is called an "insider look", when it is about someone reading a blog from 2012 and basically giving a recap. Finally, I think it is time to move past this trope of "Netflix wasted 1 million dollars on a solution they did not even use". Probably the entire top 20 of the Netflix competition had a good enough score to build upon -- no need to focus only on the solution from the (rather lucky) winners. We are six years after this competition and the community is still talking about it. Now how is that for marketing? There is no mention of Factorization Machines ( http://www.libfm.org/ ). A technique spawned with this competition which revolutionized recommendation engines and is definit
Read the rest
ely in use at Netflix now. Instead they keep harping on 'Collaborative Filtering' when that is a very basic technique (obviously supported by Matlab). I miss a mention of power tools (Vowpal Wabbit has fast production-ready scalable matrix factorization which can fit on a 1 million dataset on a laptop: https://github.com/JohnLangford/vowpal_wabbit/tree/master/de... ) and of customers actually running Matlab based recommendation engines on scale.
In The Netflix Prize and Production Machine Learning Systems: An Insider Look
For new entrants, here's an email I sent out to some colleagues of mine just getting into ML. I'm wrapping up a project that's using Mahout, and am getting into Spark & MLlib now. I've regurgitated this on reddit already. I've been following Apache Spark [0], a new-ish Apache project created by UC Berkeley to replace Hadoop MapReduce [1], for about a month now; and, I finally got around to spending some time with it last night and earllllllly this morning. Added into the Spark mix about a year ago was a strong Machine Learning library (MLlib) [2] similar to Mahout [3] that promises much better performance (comparable/better than Matlab [4]/Vowpal Wabbit [5]) MLlib is a lower level library, which offers a lot of control/power for developers. However, Berkeley's Amplab has also created a higher level abstraction layer for end users called M
Read the rest
LI [6]. It's still being actively developed, and although updates are in the works, they haven't been made available to the public repository for a while [7] Check out an introduction to the MLlib on youtube here: https://www.youtube.com/watch?v=IxDnF_X4M-8 Getting up to speed with Spark itself is really pain-free compared to some tools like Mahout etc. There's a quick-start guide for Scala [8], a getting started guide for Spark [9], and lots of other learning/community resources available for Spark [10] [11] [0] http://spark.apache.org/ [1] http://hadoop.apache.org/ [2] http://spark.apache.org/mllib/ [3] https://mahout.apache.org/ [4] http://www.mathworks.com/products/matlab/ [5] https://github.com/JohnLangford/vowpal_wabbit/wiki [6] http://www.mlbase.org/ [7] http://apache-spark-user-list.1001560.n3.nabble.com/Status-o... [8] www.artima.com/scalazine/articles/steps.html [9] http://spark.apache.org/docs/latest/quick-start.html [10] http://ampcamp.berkeley.edu/4/exercises/ [11] https://spark.apache.org/community.html
In Apache Spark 1.0.0

Showing the 15 most recent of 22 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.