5 ms·
That still doesn't mean that your training data is right for the predictions you're going to make. Here's an example detached from any sort of politics. If you
by rspeer 8y ago
That still doesn't mean that your training data is right for the predictions you're going to make.
Here's an example detached from any sort of politics. If you are training a language model, the maximum-likelihood model is one where the frequency of every word is the frequency that you observed that word, and the frequency of unseen words is 0.
On your training data, you'll measure the maximum-likelihood model as making more accurate predictions than any other model. But it's also useless, because when you use it on new data, it assigns an impossible probability, 0, to any sentence containing a word it's never seen.
This is a bias. You can't correct it by getting more data. You correct it by being an intelligent human who knows the maximum-likelihood model is wrong, and applying a correction on top of it (smoothing).
Now account for the bias (observed by Arvind Narayanan) that all your training data is in the past, and all the predictions you want to make are in the future, but circumstances change between the past and the future.
- JoeAltmaier 8y agoI think that's false. A model may never reduce any probability to zero. Novel data is a normal feature of modelling.
- rspeer 8y ago> A model may never reduce any probability to zero. That's the entire point. You can't teach a model not to reduce probabilities to zero just by showing it more data. There will always be more unseen data. And you, a human, know that there will always be more data. So you apply smoothing to the model so that your model isn't nonsense. I'm giving an example of a bias that you can't solve with data, that you must solve with design.
- nl 8y agoTo be specific, what is the probability that the next word is "sdh7777asljashd_"? Any word level model trained on any dataset will say it is zero. But that is incorrect; humans know that there is always a probability that some arbitrary sequence of characters will suddenly appear in text (think a GUID in technical documentation). To account for this, the model's author has to make sure to smooth the output so it doesn't produce these zero probabilities. No amount of data can ever fix this problem (although more data can put better bounds on the smoothing factor).
- JoeAltmaier 8y agoAnd I'm saying, depends on how the model is built. If it is a simple dictionary then yes. But there are better ways to build a model. Its a naïve view that all models are like some strawman.
- nl 8y agoI don't understand what you are arguing. >>> the maximum-likelihood model is one where the frequency of every word is the frequency that you observed that word, and the frequency of unseen words is 0 >> I think that's false. A model may never reduce any probability to zero. Novel data is a normal feature of modelling. > But there are better ways to build a model. Yes of course there are. That's exactly what the OP said ("You correct it by being an intelligent human who knows the maximum-likelihood model is wrong, and applying a correction on top of it") but you seemed to be arguing against it. (And to be clear, there are also alternatives to the maximum likelihood model)
- haberman 8y agoWhen is a model ever evaluated based on its ability to predict the training data? That is classic overfitting. This is why the training set is kept separate from test/validation sets. https://en.wikipedia.org/wiki/Training,_test,_and_validation_sets https://en.wikipedia.org/wiki/Training,_test,_and_validation...
- nl 8y agoI think you missed the point here. The author is showing exactly why this is a big problem in NLP, beyond the test/train split issue. Even with test/train splits you still need to smooth your model's predictions because it will always get unseen words. That's just the nature of word based lanugage models.
- rspeer 8y agoEveryone capable of understanding this thread knows what overfitting is, and the difference between training and test data. That is the topic we are talking about. Because test data is unseen at training time, it cannot possibly affect the way your model is trained. The test data is not how you prevent overfitting, it's how you measure overfitting. To prevent overfitting, you need to design features such as smoothing into your model.
- haberman 8y agoI think your point was a straw man. You can tell if your model is good by measuring its predictive power on data outside your training set. You seemed to be arguing that only way to know the model is wrong is to insert a human who just knows a priori that the model is wrong and what "correction" to apply. But I think this is a false analysis. You can measure a model's accuracy by seeing how well it predicts data outside the training set. If the model is highly predictive, you have a good model. It doesn't take a human's subjective analysis or principled intervention to determine whether the model is accurate with respect to the available data. This article concerns cases where the model is admittedly accurate (with respect to the available data), but is subjectively considered objectionable. That is a totally different issue.