Neural Networks for Knowledge Bases
Tuesday, August 26, 2008 9:32:51 AM
This does not scale infinitely, however. Once you have got several problems with one or more common symptoms it gets increasingly difficult to find the correct problem for your symptoms. For example, a not working internet connection can have dozens of primary causes. Just searching for the terms "internet down" in your knowledge base won't help you much.
A solution to this problem are 'wizards'. They guide you in determining the cause of a symptom by asking you questions like "Can you ping the router?" or "Can you resolve example.com?".
However, such a wizard has to be written and updated for every problem domain. Someone who has a vast knowledge of problems and solutions hard-codes his problem-solving algorithm into such a wizard.
But what about symptoms of problems noone knew about when writing the wizard? What about problem domains where noone has written a wizard yet?
20Q is a pretty cool online game. The computer asks you to think about an object (e.g. a bath tub). It will then ask you twenty questions about this object (e.g. "Is it larger than a cat?", "Can you eat it?"). After yu have answered these questions the computer will try to guess the object you think of. And it guesses the correct solution almost every time.
Behind the curtain a neural network is at work. It selects possible solutions to your answers based on the answers other people have given. If the neural network does not know of an object yet, it will ask you for its name and a question-answer pair which would help determining it.
The more people play this game the more gaps in 20Q's knowledge get filled. I'm absolutely impressed.
Couldn't we use such a neural network for searching knowledge bases? Like in 20Q the network would act like a wizard, asking you some questions about your problem and providing you with a possible solution. If it does not know of a solution yet, the neural network will ask you to find out yourself - and afterwards enter the solution and a question leading to it.
I've carried this idea for several years now. Do you know of any implementation? If not, this might be a nice project. Feel free to take the idea and get immensely rich.