Skip to main content


Dr Fabrizio Costa

Project proposals

I am interested in supervising projects related to machine learning in structured domains (i.e. domains where data is best encoded as strings, trees or graphs) and in particular in the problem of constructive machine learning or machine learnable design tasks. Examples of such problems range from learning how to design molecular compounds to learning how to design web pages based primarily on samples of good and bad solutions.  

In general I am interested in supervising projects that have to do with constructing or generating structured instances, using a mixture of combinatorial techniques and machine learning, so if you are interested in a specific applicaiton domain let me know.

Here are some project ideas:


[1] Learning to construct computer game assets.

Characteristic elements of a computer game such as maps, characters, weapons, entire level descriptions and even music can be designed by human experts or generated automatically using procedural content generation (PCG) techniques. These generative methods are often quite constrained via hand-coded heuristics to ensure high quality.

In this project the candidate will develop strategies to encode computer game assets as graphical structures and develop predictive techniques under the Bayesian optimization framework to automatically improve their design based on user responses.


[2] Learning to personalize user curricula.

When students want to learn a novel concept, access to encyclopedic knowledge, even if organized as a network of linked articles (e.g. Wikipedia), is not enough: students might not know how to autonomously navigate a vast body of knowledge, and if they do not perceive that they are moving toward their goal of understanding at a sufficiently fast pace they become demotivated. Traditionally one would use a course book which orders topics and concepts in such a way as to allow to grasp subsequent concepts given that the preceding ones have been understood. However, a course book is a one-size-fit-all solution and does not take into account a student’s prior knowledge. Increased efficiency in learning could be obtained by personalizing the curriculum taking into account the student's background knowledge and skills. An optimal sequence of concepts to learn can be obtained by identifying at each step the concepts that lie on the surface that separates understood concepts from non understood concepts ('borderline' concepts). In Machine Learning a popular strategy for 'active learning' is to acquire supervised information on the elements closest to the current decision surface of the learning algorithm. In some sense, these elements are the most informative.

In this project the candidate will formulate the identification of the borderline concepts as an optimization problem over a network of available concepts.


[3] Learning to optimize a web page design.

One way to simplify the construction of web pages is using some form of sketch that can later be transformed in fully functional code. Currently, the translation from web pages mockups to code is  mainly done via rigid parametric systems such as e.g. SquareSpace or WebFlow. Recently there have been attempts to apply machine learning techniques to map web pages mockups directly to code (AirBnB's Sketching Interfaces or Beltramelli's pix2code) using deep neural networks systems. These end-to-end approaches however, while more flexible, require considerable post-processing effort to obtain viable code. An alternative approach is to ask the user to rank alternative web designs in order of preference and automatically generate a solution in an extremely large combinatorial space with stronger guarantees of correctness.

In this project the candidate will develop strategies to represent the code underlying web pages as graphical structures, use flexible graph grammars to automatically capture the syntactic constraints and use machine learning systems based on graph kernel to learn user preferences to generate improved versions.  


[4] Interactive image generation

It is easy for humans to rank images according to a personal sense of aestetics (i.e. how much one likes specific images). It is however more difficult to explicitly state the reasons for such choices. Machine Learning techniques can be used to automatically extract what are the elements that characterize a set of preferred items and generative systems can be employed to build images that use preferentially the identified elements in novel combinations. In this project a user will start from a collection of selected images and will be able to interact with an image generator capable to build novel but tailored images. The system will consider the user feedback as to which part of the image needs to be changed and will allow the continous generation of complex but pleasing images using a simple point and click interface.

In this project the candidate will 1) develop segmentation techniques to automatically identify relevant elements in images, 2) convert images to networks of connected elements, 3) employ graph grammars (F. Costa, Learning an efficient constructive sampler for graphs. Artificial Intelligence 2017) and graph kernel machine learning techniques (F. Costa, K. De Grave. "Fast neighborhood subgraph pairwise distance kernel.” ICML 2010) to induce the generative rules and inform an optimization algorithm on which actions to perform to generate a novel image.