Live data from Hacker News

How Quid uses deep learning with small data

quid.com

41–49 of 49 posts

Re: How Quid uses deep learning with small data

#41
post #34

The link to LIME looks a bit out of place - LIME is an algorithm of explaining classifier decisions which is most useful for cases when you can't inspect weights and map them back to features. For TF*IDF + Logistic Regression there is no need to use LIME, one can just use weights and feature names directly. LIME is more helpful for all other models (there is a lot of caveats though), not for the basic tfidf + linear…

This is actually a great point. Thanks for sharing. I should maybe considering removing LIME in that context or changing the wording.

Re: How Quid uses deep learning with small data

#43

Is all machine learning called "deep learning" now? Where is the line between "normal" machine learning algorithms and deep learning?

I think deep learning can be seen as a class of machine learning techniques with more flexibility and which uses neural networks (usually with quite a few layers).

Re: How Quid uses deep learning with small data

#44
post #32

There's something strange about the ROC curve here. It seems that the feature engineered and logistic regression methods can pick out some examples very easily (20% true positive rate at a very low false positive rate) but the CNN seems to not be able to make many predictions at a low false positive rate. It then catches up later. It's almost like it can't pick out the easy examples, but does just as good a job on th…

This is a great point, would be worth further investigation. And I agree with your general interpretation. It would be interesting to look further at where CNN is failing to detect bad ones and where the feature engineered one picks them up.

Re: How Quid uses deep learning with small data

#45
post #33

> A downfall of CNNs for text is that unlike for images, the input sequences are varying sizes (i.e., varying size sentences), which means most text inputs must be “padded” with some number of 0’s, so that all inputs are the same size. Actually Kim's model you're using doesn't require padding because it uses k-Max over time pooling. Also kuddos for NOT updating your word embeddings during training! A lot of people ar…

Are you sure about the padding? On page 1746, bottom right it says "padded as necessary". And intuitively it makes sense that all your inputs need to be the same size for a CNN.

Re: How Quid uses deep learning with small data

#46
post #2

The baseline I'd like to see this compared to is the not-very-deep-learning "bag of tricks" that's conveniently implemented in fastText [1]. [1] https://github.com/facebookresearch/fastText

why not vowpal wabbit? fast text is practically a ad-hoc version of mathematically proven vowpal wabbit?

I've used both. fastText will openly tell you that it's basically Vowpal Wabbit but faster (hence the name), with a way to stick word embeddings in without pre-processing, and with fewer ways to shoot yourself in the foot.

Re: How Quid uses deep learning with small data

#47

about that detecting generic text that conveys little information Can I have that for my email? (Seriously) And as browser plugin? Oh and on telephone, TV, radio and in real-life would be also nice. It's probably also a nice predictor of startup success, developer quality and sales guy effectiveness. I just wonder if I would ever read or hear a Politician again. Very inspiring...

haha, absolutely. It takes a lot of intelligence to detect non-informativeness. you might enjoy: http://journal.sjdm.org/15/15923a/jdm15923a.pdf

Re: How Quid uses deep learning with small data

#48
post #29

Since word embeddings were the starting point, I'm wondering what would the impact be if they'd stretched the vector sequences to the same length using linear or whatever interpolation as opposed to zero padding the sentences.

Could you elaborate? I'm not sure if I follow

Re: How Quid uses deep learning with small data

#49
It's worth keeping in mind that learning from few examples is not such a big deal. What is really hard to do (and a long-standing problem in machine learning) is learning a model that generalises well to unseen data.

So the question is: does the OP really show good generalisation?

It's hard to see how one would even begin to test this, in the case of the OP. The OP describes an experiment where a few hundred instances were drawn from a set of 50K, and used both for training and testing (by holding out a few, rather than cross-validating, if I got that right).

I guess one way to go about it is to use the trained model to label your unseen data (the rest of the 50k) and then go through that model-labelled data by hand, and try to figure out how well the model did.

We're talking here about natural language, however, where the domain is so vast that even the full 50k instances are very few to learn well. That doesn't have to do anything with the model being trained, deep or shallow. It has everything to do with the fact that you can say the same thing in 100k different ways, and still not exhaust all the ways to say that one thing. So 50k examples are either not enough examples of different ways to say the same thing, or not enough examples of the different things you can say, or, most probably, both.

It's also worth remembering that deep nets can overfit much worse than other methods, exactly because they are so good at memorising training data. It's very hard to figure out what a deep net is really learning, but it would not be at all surprising to find out that your "powerful" model is just a very expensive alternative to Ctrl + C.

It's just memorised your examples, see?

Post reply on HN