Sebastian is a Reader in the Department of Computer Science at University College London and leads the UCL Machine Reading group. He is an Allen Distinguished Investigator and received $1M award from the Paul Allen Foundation to 'move the needle' towards answering broad scientific questions in AI. He is a Marie Curie fellow, was a finalist for the Microsoft Research Faculty Award and received a Google Focused Research award. Sebastian is generally interested in the intersection of Natural Language Processing and Machine Learning, and particularly interested in teaching machines to read and to reason with what was read.
Inferbeddings: Reading, Reasoning and Programming with Vector Representations
We want to build machines that read, and make inferences based on what was read. A long line of work in the field has focussed on approaches where language is converted (possibly using machine learning) into a symbolic and relational representation. A reasoning algorithm (such as a theorem prover) then derives new knowledge from this representation. This allows for rich knowledge to captured, but generally suffers from two problems: acquiring sufficient symbolic background knowledge and coping with noise and uncertainty in data. Probabilistic logics (such as Markov Logic) offer a solution, but are known to often scale poorly.
In recent years a third alternative emerged: deep and shallow neural networks that operate on low dimensional vector space embeddings. Such approaches scale well and are robust to noise, but they raise their own set of questions: What type of inferences do they support? How can explicit background knowledge be injected into neural archictures? How can we provide “proofs” that justify predictions? In this talk I present some initial answers to these questions based on work we have developed recently. I will discuss how logic can be injected into embeddings and how neural networks can learn to simulate the behaviour of backward chaining theorem provers. I will also show how to train a model to generate better training data to train a neural network, and how we can neuralize a program interpreter that allows us to write partial programs that capture our procedural background knowledge, and learn the rest of the program from data.