From an applications perspective, my research is focused on analysing and understanding consumer behaviour. A better understanding of the patterns that emerge from individual decisions to buy or not to buy a particular product could potentially be beneficial to a number of fields, from marketing to economic policy design. The kind of data we have available takes the form of a transaction history, detailing when and how much a consumer bought of any particular product. Furthermore we have some information on the characteristics of individual products and consumers. Using this microscopic information, we attempt to extract larger scale patterns that are more readily interpretable.


To bridge the gap between the microscopic information available and the larger scale patterns of interest, we use techniques from network theory, in particular community detection. Transaction histories can be represented as a temporal, weighted, bipartite network, where consumers and products form the two classes of nodes, that are linked by the transactions. This network representation allows us to use community detection algorithms to find groups of nodes that are more densely connected than would be expected if customers bought products randomly. Finding the best partition of the network into groups of this kind quickly becomes intractable as the size of the network grows. As a result, the best we can do is to use heuristic methods to find good partitions. Large networks will often exhibit many good partitions that can be structurally quite different. One focus of my research has been on developing methods to combine the information from multiple runs of a stochastic heuristic to obtain a more nuanced picture of the structure of the network.