In the past few years I had developed a few NLP (Natural Language Processing) systems. Some systems were very simple, and others were extremely complicated. However, in both cases it all started when one of my clients or partners came and requested “A system that understands… (something)”. So – I decided to dedicate this post to share my opinion about the relationship between the term “Understand” and NLP.
The Human Brain:
How does the human brain work? I guess nobody knows the real answer. However, I like the Dual Process theory and Daniel Kahneman approach, that simply states that the human brain is a combination of two systems:
“System 1 is fast; it’s intuitive, associative, metaphorical, automatic, impressionistic, and it can’t be switched off. Its operations involve no sense of intentional control, but it’s the “secret author of many of the choices and judgments you make””. [source]
“System 1 that decides whether you like a person, which thoughts or associations come to mind, and what you feel about something. All of this happens automatically. You can’t help it, and yet you often base your decisions on it.” [source]
“System 2 is slow, deliberate, effortful. Its operations require attention. To set it going now, ask yourself the question “What is 13 x 27?” And to see how it hogs attention” [source]
“System 2, on the other hand, is lazy and only becomes active when necessary. Slow, deliberate thinking is hard work.” [source]
The Computer “Brain”:
Obviously a computer doesn’t have a brain, but it has a very powerful (at least compared to humans) computing unit (CPU) and different types of memory. In some way we can say that a computer is a “Super #2 System”, but still – it doesn’t have a #1 System at all!
My Personal Opinion: (in relation to the NLP world)
#1 System gives us as humans the ability to understand the relation between objects in our world. If you ask a six year old to give you a list of words that are related to the word “Car”, he can do it quite easily. This is, of course, not true in case of a computer. A computer can store in memory a long list of words under the category “Car”, but it doesn’t have any built-in ability to understand the relation between the words in the list, moreover it doesn’t have the ability to get a completely new word/object and immediately understand if and how it is related to the list.
The bottom line, in my opinion, is that a computer can’t really understand anything! This is simply because it doesn’t have a #1 System. Although there are a few theories (See Turing test) that state that a #1 System can be built of a finite number of #2 Systems, I personally don’t agree with them. I truly believe that we need completely new technologies, models and approaches in order to build a machine/computer with a real #1 System.
So, What is NLP all about?
If a computer can’t understand anything, how can we build a NLP system? A system that recognizes a human text as an input and return a meaningful result.
The answer is quite simple. NLP is all about taking a very limited and defined task that is related to human language and building a “Model” that tries to simulate the behavior of #1 System under the circumstances of the given task . We build the “Model” using tools from Computer Science (data structures, algorithms..), Mathematics (Statistics, Probability..) and much more.
In my opinion, defining the task properly and building the right model is the “Art” of NLP.
For example, here is hashtagify.me, a visual graph that shows relations between hashtags on Twitter. On top of this graph it is possible to build a model that recognizes and rank the relationship between tweets and Twitter users.
Timeout – My life outside the NLP world:
Besides being a computer geek, I’m also an amateur cross-fitter. Take a look of what I do for fun in my free time:
Follow me on Twitter or contact me: firstname.lastname@example.org.
It’s not that the computer does not understand anything … it’s that it takes more time to understand it due to Sys1 not being present ….
Good post Shlomi.
It seems lots of people have tried to offer arguments for why computers can’t “understand”, though not so persuasively. Your analogy of Kahneman’s 2 systems view creates a good context for understanding why that’s the case, and how to understand attempts at creating such an understanding.
Please look into “deep learning”, Restricted Boltzmann Machines and the like. They do model the world in a similar way with “system 1”.
The problem you are asking requires imagining the process which language uses. 1. Concepts are the links between Metaphysics and Epistemology. That is existence and our models of existence. 2. Our experiences are in the form of sensory streams which are remembered. 3. Language (concepts strung together) are sound encoded re-presentations of our memories of our experiences. We are reporting our experiences of our internal processes. 4. These sounds/writings are transmitted from speaker to listener. The speakers job is pretty simple; just report what you are experiencing at the moment. This process is pretty much automatic and unconscious (below conscious awareness) because you have been doing it for a long time. 5. Now the problems begin. The listener has no access to the speakers thought or memories. The listener is limited to the serial sound of the speech as it is spoken/transmitted towards him. The first job of the listener is to guess the possible meanings of each concept/word as he hears it, and then, reassemble them into a coherent sentence, as he listens. Then he has to make a guess as to the possible raw meanings of the sentence. That means, the meaning out of any context. 6. Then he has to sort the sentence for his personal understanding for which context this information belongs with so he can integrate it into his own unique set of proper category/categories so he can confirm the tentative meaning he has assigned to the sentence. 7. After these processes have been completed, he must then decide how this new information is related to himself personally. This is the final step which leads to the personal understanding of the meanings which the sentence has to the listener. This is a unique one of a kind meaning which will apply only to this listener.. It has been arrived at by referencing his memories of his unique and personal total life’s experiences in the world up to this point.
There is more to this of course. But this will begin to explain why language is both empowering and slippery. The many places where there exists opportunities for MIS-understandings display how fragile each sentence alone is. And how the only solution is dialog where the mis-understandings can be pulled apart and reconstructed to the satisfaction of the parties.
Pingback: lucidity, or rescuing the project of Enlightenment « Truth of the Lesser Men
is it possible to create list and then find in text, like list of dictionary keywords searching in a text, if you can create article it will give us some idea how to start your own nlp