Really, how hard is this NLP?
by Hrisheekesh R, Senior Data Analyst
Since I started working, I always try to correlate the difficulty of a machine learning problem with how hard of a problem it is for a kid to solve.
Once aspect of machine learning problem in image analytics is called “image classification” in which you try to teach a computer to differentiate between different objects in an image. This task is quite similar to the way my friend Siju teaches his two year old son, Naithan, to differentiate between simple objects (such as cat, dog, etc).
When I visited them last week, I showed Naithan a picture of a dog and asked him what it is. Interestingly Naithan said it’s “Messi”. I was expecting him to say dog, however, Siju has a labrador named Messi who Naithan is very familiar with. As far as he’s concerned, all dogs in this world are Messis.
Soon enough Naithan will learn how to differentiate between various types of dog breeds, but wait until he sees a Hungarian komondor. This type of breed is commonly known as the “mop dog”. Now whether it be a toddler or an adult sometimes it can be rather difficult to identify this breed of dog, as a dog. So if Siju cannot differentiate between a mop and a breed of dog, then nor can Naithan.
See for yourself in the below video.
The problem will get a bit more harder if you ask Naithan to find out every single dog in an image, and where it is. This is a much harder machine learning problem. Naithan will need to understand all the different breeds of Dog and and the exact position of that dog in that image to draw a bounding box over it. This is something my five-year old Nephew can solve.
Things get interesting when we move to a Natural Language Processing problem. If I ask Naithan to read William Shakespeare’s Othello and ask him “Why Iago was pissed when Othello gave Cassio a promotion?”, he would tell me that he wouldn’t understand the deep social constructs and emotions hidden inside the Shakespeare’s language at two years old, and wouldn’t be able to answer that question, but ask him again in sixteen years.
The answer I would looking for is something like jealousy- a human emotion, something an adult reader would interpret subjectively, because of his life experience and the understanding of the text, subtexts and contexts in linguistics. Because interpretations are subjective, even if Shakespeare meant one thing with his writing, hundred experts in the field of linguistics comprehended the exact same text in a hundred different ways, all of which are subjectively true for that person.
This is an incredible hard machine learning problem now, different people could say same sentence at different times, in different situations and contexts and mean completely different things, a thousand people could hear this sentence and interpret as a thousand different things.
So there’s no absolute answer to understanding a text, only subjective interpretations.
This has some nice messages about how language is this uncertain evolved system of communication but somehow we have enough agreed that we can communicate. So, even if the linguistics is super complex, we can somehow use some probabilistic inference of guessing what people mean. So, we can use this probabilistic inferences to tackle very specific NLP problems like text classifications, caption generation etc. and some harder problems like question answering, text summarisation etc with lower accuracy.
To answer the question, how hard natural language understanding for a machine is. In my opinion, multi-task natural language understanding is probably the hardest machine learning problem, but with representational learnings, and transformer based approaches like BERT and GPT-2, the NLP community is pushing it’s limits to solve multi-task problems and are doing amazing job in it, it’s a revolution.
You can see it around, your Alexa can turn on the bulbs now, who cares if Amazon monitors what you guys talk about in your kitchen. It’s not like they have an online shopping platform where they could recommend you products based on your activity. Right?