Deep learning is great, but no, it won't be able to do everything. The only way to make progress in AI is to put together building blocks that are there already, but no current AI system combines. Adding knowledge to the mix, getting over prejudice against "good old AI", and scaling it up, are all necessary steps in the long and winding road to reboot AI.
This is a summary of the thesis taken by scientist, best-selling author, and entrepreneur Gary Marcus towards rebooting AI. Marcus, a cognitive scientist by training, has been doing interdisciplinary work on the nature of intelligence -- artificial or otherwise -- more or less since his childhood.
Marcus, known in AI circles among other things for his critique on deep learning, recently published a 60-page long paper titled "The Next Decade in AI: Four Steps Towards Robust Artificial Intelligence." In this work, Marcus goes beyond critique, putting forward concrete proposals to move AI forward.
As a precursor to Marcus' recent keynote on the future of AI in Knowledge Connexions, ZDNet engaged with him on a wide array of topics. We set the stage by providing background on where Marcus is coming from, and elaborated on the fusion of deep learning and knowledge graphs as an example of his approach.
Today we wrap up with a discussion on how to best use structured and unstructured data, techniques for semantics at scale, and future-looking technologies.
Picking up knowledge: From Wikipedia to DBpedia and Wikidata
Marcus acknowledges that there are real problems to be solved to pursue his approach, and a great deal of effort must go into constraining symbolic search well enough to work in real-time for complex problems. But he sees Google's knowledge graph as at least a partial counter-example to this objection.
Knowledge graphs are a rebranding of the semantic web approach and technology stack, introduced by Sir Tim Berners Lee 20 years ago. Marcus emphasized there is a lot of knowledge which is not picked up by AI on the web, and adding more semantics and metadata using standards like RDF would help.
A prime example is Wikipedia. People can read it it, and advance their knowledge by doing so. Wikipedia has been targeted by knowledge and data engineers too, in order to achieve what Marcus described. One of the first knowledge graphs, established before the term was even coined, and still one of the biggest ones today, is DBpedia.
What the people behind DBpedia have done is they have created sophisticated mechanisms to extract structured knowledge from Wikipedia. Imagine having all the knowledge in Wikipedia, but being able to query it like you would query a database. Marcus noted the content in Wikipedia boxes is what is most accessible to current techniques:
They're already somewhat useful for things like disambiguation and what a particular use of a word is going to be. There's a lot of knowledge in Wikipedia that's in the form of unstructured text that doesn't go in those boxes and we're not nearly as good as leveraging that. So if you have a historical description of what somebody did during some particular war, the system's probably not going to be able to understand that at this moment.
But it will be able to like look up that this person's title was captain. They were alive during these years. They were they died in this year. The names of their children were this and that. So the latter is data that's more structured, and is more easily leveraged by the current techniques. And there's a whole lot of other data that we're not using.
I'm glad to see that we're starting to use at least some of it. I don't think we're using it as well as one could in principle, because if you don't understand the conceptual relations between all these entities, it's hard to maximize the use that you get out of it.
The people in DBpedia get that apparently. This is why they have created the DBpedia Ontology: a shallow, cross-domain ontology, which has been manually created based on the most commonly used infoboxes within Wikipedia. Ontologies, in the context of knowledge graphs, can be thought of as the schema used to populate the knowledge graph with facts.
In addition, we also have Wikidata. Wikidata is in a way the reverse of DBpedia: where DBpedia creates a structured version of unstructured knowledge in Wikipedia, Wikidata acts as central storage for the structured data of its Wikimedia sister projects, including Wikipedia. It's a free and open knowledge base that can be read and edited by both humans and machines.
Embeddings and neuromorporhic chips
Another way to leverage semantics and knowledge in machine learning which is gaining in popularity is embeddings. This is a way of representing complex structure in simpler ways, in order to speed up calculations. As graphs are increasingly being recognized as a rich structure to represent knowledge, graph embeddings are gaining in popularity too.
Graph embeddings are the transformation of graphs to a vector or a set of vectors. Embedding should capture the graph topology, edge-to-edge relationships, and other relevant information about graphs, subgraphs, and edges. There are specific techniques developed for knowledge graphs, too.
When asked about embeddings, Marcus replied with a quote from computational linguist Ray Mooney: "You can't cram the meaning of a whole $&!#* sentence into a single $!#&* vector."
"Vectors, at least as we understand them right now, often take a lot of different things, make a similarity measure around that, but don't really represent things with precision. And so they're often a mixed bag. You get something out of them, but you don't know exactly what. And sometimes it works, but it's not really all that reliable. I've yet to see that kind of architecture be supremely reliable".
In his paper, Marcus mentioned something else which piqued our interest. Being someone who has studied human cognition, Marcus does not believe that the way to artificial intelligence necessarily goes through trying to mimic the human brain. We wondered what is his take on neuromorphic chips, i.e. AI chips that claim to mimic the human brain:
We should not be imitating human brains -- we should be learning from them, or from human minds. The best AI systems will have some of the properties of human minds and some properties of machines. They will put them together in new ways that exceed either what we could do with current machines or with current human brains.
In the case of neuromorphic chips, the idea is to learn from how the brain works in order to make better chips. So far, I'm totally sympathetic in principle. The reality is we don't know enough about neuroscience yet to make that work all that well. And I worry about people like Jeff Hawkins who try to stick only to the things we already know about the brain. I think we just don't know enough about the brain to really do that effectively yet.
You know, maybe 20 years from now we will be able to do that. But right now, our understanding of brain operation is pretty limited. And as a consequence, I think that the neuromorphic chips field has been more promise than results. There's not a lot of concrete applications from it yet.
We may have some reasons to think that it might lead us, for example, to lower power alternatives to the technologies that we're using right now. So far, I haven't seen anything really that useful come out of that literature. It will, but maybe we need to know a little bit more about how the brain works before we can really leverage that.
Software 2.0, Robotics, and Robust AI
Another forward-looking idea, this time from software, is so-called Software 2.0. The traditional approach to software has been to build algorithms that encode in a really detailed way what software does. The idea behind Software 2.0 is that for really complex processes, it's very hard or even impossible to do that.
Instead of specifying how software works, the Software 2.0 approach is to use data from existing processes and machine learning to figure out a pattern, and produce something that we can use. There are some issues with the approach: not all processes have enough data we can use, and the machine learning development lifecycle is work in progress. Marcus, however, questions the approach altogether:
Nobody tries to build a Web browser by taking supervised learning over a bunch of logs of what users typed and what they saw on their screens. That's what the machine learning approach would be -- rather than sit there and laboriously code, you would just induce it from the data. And that doesn't really work. Nobody's even trying to make that work.
It's nice that we have some new techniques available. But if people think we're not going to need anybody to code..well, certainly in the short term, that's just not true. I think that the real revolution might come, but it's going to be a long time from what Charles Simoni called intentional programming.
Instead of writing all the lines of code that you want, have the machine figure out what is the logic of what you want to do. Maybe you do that with some machine learning, and some classical logic-driven programming, but we're not anywhere close to being able to do that.
Some people may be trying to get the Software 2.0 approach to work. As for Marcus, his focus is on Robust.ai, the company he founded. Rather than just being operated and working the assembly lines, Robust AI wants to build robots that work in a wide range of environments -- homes, retail, elder care, construction and so forth.
When asked why focus on robotics, Marcus' answer was similar to Facebook's Yann LeCun, one of Deep Learning's most vocal proponents. Facebook is also doubling down on robotics, and LeCun believes we're missing something in terms of how humans can learn so fast. The best ideas so far, he went on to add, have come out of robotics.
Marcus said he sees things somewhat similarly, but not entirely similar. He thinks robots are really interesting because they force us beyond approximation, towards systems that really can cope with the real world:
If you're dealing with speech recognition, you can solve the problem by just gathering a lot of data because words don't change that much from one day to the next. But if you want to build a robot that can say, wander the streets and clean them up, it has to be able to deal with the fact that every street is going to be different every hour, every day.
Robots have to be as resourceful as people, if we're going to put them out in the real world. Right now, robots mostly work in very well controlled environments with either no humans or humans limited to a particular place. Robots are very restricted in what they can do right now. And that allows us to sidestep the question of how do you make robots that are really autonomous and able to deal with things on their own.
This is part of the definition of a robot. I think that's a fascinating intellectual problem, and one that will push the field of AI forward considerably as we move robots more and more into the real world as a function of the business. This will be a huge opportunity -- not that much of the world is automated with robots right now.
Marcus said that robotics right now is maybe a 50 billion dollar industry, but it could be much bigger. In order to get to that place, we need to make robots safe, reliable, trustworthy, and flexible. Robust AI just raised $15 million, so apparently progress is under way.