A computer-implemented method, at least a portion of the method being performed by a collaborative filtering computing system comprising at least a first computing device and a second computing device, the method comprising:
- accessing, by the computing system, a data structure representing a bipartite graph comprising a first plurality of nodes representing users and a second plurality of nodes representing a plurality of items, wherein the first plurality of nodes is interconnected with the second plurality of nodes by a plurality of edges representing a direct relationship between a specific user and a specific item;
- selecting, by the computing system, a first set of nodes from the first plurality of nodes to organize a first computing group, the first set of nodes being selected based on a relationship between at least two nodes within the first set of nodes;
- selecting, by the computing system, a second set of nodes from the first plurality of nodes to organize a second computing group, wherein the first and second sets of nodes are selected at least based on computing resources allocated to perform a computation, the second set of nodes being selected based on a relationship between at least two nodes within the second set of nodes;
- associating, by the computing system, the first computing group to a first computing device;
- associating, by the computing system, a first set of items represented by a first portion of the second plurality of nodes with the first computing device;
- associating, by the computing system, the second computing group to a second computing device;
- associating, by the computing system, a second set of items represented by a second portion of the second plurality of nodes with the second computing device;
- performing, by the first computing device, the computation between each node of the first set of nodes and each item of the first set of items to generate a first intermediate result comprising a first rating matrix representing an interest level between each node of the first set of nodes and each item of the first set of items;
- performing, by the second computing device, the computation between each node of the second set of nodes and each item of the second set of items to generate a second intermediate result comprising a second rating matrix representing an interest level between each node of the second set of nodes and each item of the second set of items;
- storing, by the first computing device, the first intermediate result in the first computing device;
- storing, by the second computing device, the second intermediate result in the second computing device;
- receiving, at the second computing device, the first intermediate result;
- receiving, at the first computing device, the second intermediate result;
- performing, by the second computing device, the computation between each node of the first set of nodes and each item of the second set of items to generate an updated first intermediate result, wherein the updated first intermediate result comprises a third rating matrix representing an interest level between each node of the first set of nodes and each item of the first and second sets of items;
- performing, by the first computing device, the computation between each node of the second set of nodes and each item of the first set of items to generate an updated second intermediate result, wherein the updated second intermediate result comprises a fourth rating matrix representing an interest level between each node of the second set of nodes and each item of the first and second sets of items;
- generating, by the computing system, a collective result at least based on the updated first and second intermediate results;
- and
- saving, by the computing system, a prediction of a behavior of the plurality of users based on the collective result.