Research
My work has moved across several domains, from parliamentary archives to protein networks to consumer credit, but the methods underneath have been fairly stable. What follows is organised by problem rather than by field, which is closer to how I actually think about it. The full list is on the publications page.
Retrieval and ranking
My doctoral work was on probabilistic graphical models for information retrieval and text classification. I built retrieval models for structured documents, where the unit being ranked is not a flat document but a nested element, and where relevance has to propagate through the document tree. I also worked on automatic indexing against a thesaurus, in both supervised and unsupervised settings, and on classification in linked environments, where the links between documents carry information that the text alone does not.
The systems from that period were Garnata, a retrieval engine for structured documents built on influence diagrams, and an earlier XML indexing engine written in C++ that ended up powering the search system for the proceedings of the Parliament of Andalusia. Both were evaluated at INEX over several years.
Semi-supervised learning on graphs
A recurring problem in my work is the following: a property is known for a small subset of the nodes of a network and unknown for the rest, and the structure of the network is informative about that property. This is the semi-supervised setting on graphs, and label propagation and diffusion methods are the natural tools for it.
The clearest example is S2F, a method for annotating the proteins of organisms for which little more than the sequence is known. The idea is to build a composite network by transferring functionally relevant information from well-studied organisms, and then diffuse the few known labels over it. It was published in Nature Machine Intelligence. The same framing underlies work on gene-disease association, where the question is how best to combine several heterogeneous networks before propagating.
Semantic similarity
Measuring how similar two entities are when the only thing relating them is their position in an ontology is a surprisingly subtle problem, and the answer depends heavily on what the similarity will be used for. I wrote GOssTo, a tool for computing several of these measures over the Gene Ontology, published in Bioinformatics. I also worked on similarity between diseases built from ontology structure and text, which matters most for rare diseases, where molecular information is scarce or absent.
Multi-label and hierarchical classification
Many real classification problems are not single-label: a document belongs to several categories at once, those categories are organised in a hierarchy, and the labels are correlated in ways a set of independent binary classifiers cannot capture. I worked on probabilistic approaches to this, and on the related question of how such systems should be evaluated, which is an area where the standard metrics are chosen badly more often than not.
Models that run in production
Since 2015 most of my work has been applied. The problems have been credit scoring with alternative data sources, fraud detection over transactional and graph-structured data, entity resolution and approximate matching on business names, algorithmic fairness, and privacy-preserving learning. More recently, retrieval-augmented systems over document collections.
This side of the work rarely produces papers, but it changes how I think about the rest. A method that is elegant and a method that survives contact with real data, real latency budgets and real maintenance are not always the same method, and the gap between them is itself interesting.