Empowering Spreadsheet Users with Probabilistic Programs
Andrew D. Gordon
Microsoft Research


Probabilistic programming is a declarative form of machine learning: the user writes a probabilistic model of their data as a short piece of code, while the compiler turns the code into an efficient inference routine to learn and predict properties of the data. A remarkably wide range of machine learning tasks - regression, classification, ranking, recommendation, and so on - can all be expressed as probabilistic programs. The hope of the field is that practical programmers without PhDs in machine learning can get to grips with probabilistic models by writing and running pieces of probabilistic code. The purpose of this tutorial is to introduce the area from first principles, and show how to develop a series of models of data from scratch. Running examples are all based on the Tabular Excel-addin from Microsoft Research. No previous experience with machine learning or probabilistic models is assumed. Come to this tutorial to understand how many machine learning problems can be coded as probabilistic functional programs.


I am a Principal Researcher at Microsoft Research, Cambridge, where I manage Programming Principles and Tools. As a part-time position, I also hold the Chair in Computer Security and am a member of the Laboratory for Foundations of Computer Science and the Security and Privacy group in the School of Informatics in the University of Edinburgh. I convene the University of Edinburgh Microsoft Research Joint Initiative in Informatics. I participate in the Data Science PhD programme. My current research is on probabilistic programming for machine learning.