FIG. 2 illustrates bicliques in accordance with an example implementation. Consider two bicliques as two communities that have some nodes in common; each missing link between the non-overlapping nodes from the two communities contributes to the formation of a bigger community that benefits all the nodes. If the two communities have many nodes in common, each of the few missing links that can be added carries more value, as a bigger biclique can be formed fairly easily. On the other hand, if the two communities have less in common, then many more links need to be added to merge the two bicliques into a larger one, and each of the missing links carries less value.
Following this intuition, example implementations involve an algorithm to re-rank the missing link lists generated by the above similarity-based methods. In example implementations, the proposed algorithm computes weights, we, for all missing links (in M4 in FIG. 2) based on the information of bicliques in the network. The weight of a link is the sum of all the values calculated when processing each pair of bicliques, in which the value is determined by the sizes of the difference of the two bicliques and their overlap. Intuitively, as shown in FIG. 2, the value computed in each iteration corresponds to the area of the intersection M1 divided by the area of the missing part M4. Then, the weights and the similarity scores are normalized by their maximum values, and generate a new ranked list with the new scores with s′(x,y)=w(x,y)·x(x,y). The above approach can be used together with any existing common similarity-based link prediction to produce a family of algorithms.