2,032 karma · joined December 30, 2014
The insight of fasttext is to notice that these high dimension, unit vector word embeddings aren't an ideal way to learn - since they are orthogonal, during training time, a datapoint giving signal between the "spam" word vector and the label gives you no information about "spammer", or indeed any other word. Explicitly modelling and learning word vectors helps with this as now these are two points in a vector space that can be moved relative to one another.
[1] this remains true for LR if you rescale the vectors using e.g. TFIDF or use the hashing trick (a la vowpalwabbit).
- accuracy generally a few points better than NB
- better generalisability due to the word embeddings acting as a bottleneck on expressiveness compared to NB or logistic regression which essentially model all words / bigrams as independent
- trained with cross-entropy, meaning that model scores can be used more effectively as a 'confidence' - e.g. for spam if you want to say something like "if prediction score > X, then filter", Naive Bayes is not ideal due to the 'naive' assumption which makes the scores very un-calibrated (it tends to give extremely high or low confidence scores, which gets worse with document length).
- is completely linear (or at least log-linear like NB), so explainability is super simple.
disclaimer: I haven't really thought about NLP for about 3 years so there may be something better than this now
IMO logistic regression, or better fasttext (rank-limited logistic regression) should be the "default" baseline models you should use for NLP classification. They are trained with cross-entropy loss, so the scores are generally fairly well calibrated to an actual confidence score. Moreover since everything is linear (or at least logit-linear), you can do all the same explainability tricks as with NB (a little more effort for fasttext, but it is doable).
Disagree here, I think neural nets are quite bad at implicitly learning low entropy transforms, similar to how they struggle to model the identity function, necessitating residual connections. In both cases the change doesn't increase expressivity, but it does bake these needle-in-a-haystack transformations into the model that may be hard to access with gradient descent.
Can't speak to how useful it is though.
This is true of base LLM models that are just trained on missing-word prediction on the training corpus, but one of the main points of RLHF[1] is to tune this model to make these kind of inferences the way a human would expect. For example if you asked an untuned model to write a poem in the style of ... etc., a valid internet response might be "hmm no thanks, you go first", you need to steer the model away from replying like this.
I'm not saying it's perfect, but it's wrong to say e.g. GPT-4 has had no information about the difference between a good and bad response and is just generating internet-like text at random, the big players have made progress on this already.
[1] https://en.wikipedia.org/wiki/Reinforcement_learning_from_hu...
Even then it doesn't always work out - UK rail services have that system - the infrastructure is maintained by a public body [1], but the operators are private. UK rail is quite expensive, and mediocre in quality compared to our EU counterparts.
One of the issues is that it's basically impossible to have competition on a single rail journey joining two large cities - there's aren't enough tracks to support it without making it unprofitable for operators. So rail networks bid every few years on sections of the rail network, and then have no competition for their term. Again the incentives that make the free market efficient are just not there. A nice video that summarises this mess here: [2]
A brave decision from the authors though, I imagine they would have got less flak matching the more popular 0-index languages.
I also don't think the comparison quite works, because no one is saying that we need to get down to zero humans for this to to be profoundly disruptive, just enough humans to code review and make relatively small changes, I wouldn't be amazed if that's what software engineering becomes in the coming decades.
I've seen a lot of comments on here like "well LLMs are good at writing snippets, but could never write or maintain large codebases to accomplish a larger goal" - but are you SURE about that 'never' given the current generation is already doing things people suspected they could never do? "But they'll never be able to manage / interpret stakeholders", Are you SURE that LLMs will have to adapt to fit stakeholders, and not the other way round? I don't know for sure, and even if this is coming, I've no idea on the timelines. But I'm not completely writing it off as a possibility anymore either.
a) no-one's telling you to just throw the AI output up on to a website unedited, b) does it not give you at least a bit of pause how quickly this is advancing right now?