A project to implement a structured determinantal point process from Kulesza and Tuscar [2009]. A DPP is a probability distribution that selectes a subset of a bigger set and encodes the idea that similar items in the subset "repel" each other. The structure comes from a way of splitting the items in the subset up into variables with associated factors. We then use message passing and second order semirings to efficiently work with complex DPPs.
Alex Kulesza and Ben Taskar. 2012. Determinantal Point Processes for Machine Learning. Now Publishers Inc., Hanover, MA, USA.