1. A computer-implemented method comprising: obtaining training data that represents a set of users that includes as members a plurality of users and a set of items that includes as members a plurality of user selectable items; assigning each of the plurality of users and each of the plurality items to a respective one of a plurality of user groups and item groups; assigning to each machine in a collection of machines one or more user groups from the plurality of user groups and one or more item groups from the plurality of item groups; calculating, by each machine, respective latent variable states for each user in the one or more user groups assigned to the machine and respective latent variable states for each item in the one or more item groups assigned to the machine, wherein the calculated latent variable states represent a variational probability distribution relating the user groups and item groups assigned to the respective machine; determining, using each machine, a respective first probability distribution relating respective latent variable states to users in the one or more user groups assigned to the machine; determining, using each machine, a respective second probability distribution relating respective latent variable states to items in the one or more item groups assigned to the machine; determining, each machine, one or more respective parameter values for the first and second probability distributions that were determined by the machine, wherein determining the parameter values includes determining maximum likelihood estimates for parameters of the first probability distribution and the second probability distribution that were determined by the machine using the respective calculated latent variable states; using the respective first probability distributions and respective second probability distributions for each machine in the collection of machines to model an overall probability distribution relating users of the set of users to items of the set of items; and recommending items to users using the overall probability distribution.