Exploiting the Structure of Bipartite Graphs for Algebraic and Spectral Graph Theory Applications
Abstract
In this article, we extend several algebraic graph analysis methods to bipartite networks. In various areas of science, engineering and commerce, many types of information can be represented as networks, and thus the discipline of network analysis plays an important role in these domains. A powerful and widespread class of network analysis methods is based on algebraic graph theory, i.e., representing graphs as square adjacency matrices. However, many networks are of a very specific form that clashes with that representation: They are bipartite. That is, they consist of two node types, with each edge connecting a node of one type with a node of the other type. Examples of bipartite networks (also called twomode networks) are persons and the social groups they belong to, musical artists and the musical genres they play, and text documents and the words they contain. In fact, any type of feature that can be represented by a categorical variable can be interpreted as a bipartite network. Although bipartite networks are widespread, most literature in the area of network analysis focuses on unipartite networks, i.e., those networks with only a single type of node. The purpose of this article is to extend a selection of important algebraic network analysis methods to bipartite networks, showing that many methods from algebraic graph theory can be applied to bipartite networks with only minor modifications. We show methods for clustering, visualization and link prediction. Additionally, we introduce new algebraic methods for measuring the bipartivity in nearbipartite graphs.
Introduction
The term network analysis refers to an area of research covering the social sciences, computer science, economy, and others. The analysis of networks is central to sociology, in which the relations between people are modeled as networks, as well as to recent studies of the World Wide Web, Web Science and others. The emerging field of Network Science is solely dedicated to the study of networks – owing its existence to the fact that a large number of diverse data can be modeled as networks: Not only ties between people, as in social networks, but also communication between people can be modeled as a network in which each act of communication is a link between two persons, transportation networks such as road, railroad and airport networks in which nodes are places and links represent transportation corridors, but also reference networks between publications or pages on the Web. Other examples are found in biology, where interactions between metabolites form a metabolic network, and in linguistics, where semantic relationships between words form a semantic network. Although they are taken from a highly diverse set of application areas, these examples all have in common the underlying model of a network: a set of nodes connected by links.
The advantages of network analysis become clear once we consider the breadth of mathematical tools available for analysing networks: From simple numerical characterizations of networks such as the clustering coefficient and the diameter to the analysis of distributions associated with a network such as the degree distribution, a single network analysis method can be applied to all types of networks, giving insight to any type of network, even those not envisioned by the developers of the original method. Another important class of network analysis methods is given by the specialized subfield of algebraic graph theory, in which graphs are analysed using algebraic methods. Its main tool consists in representing a graph by a matrix, and using matrix decompositions and other methods to derive properties of the network.
Although networks are ubiquitous in many areas, networks are not all similar: Many special types of networks exist, such as directed networks, signed networks, weighted networks, and so on. Although these networks have differing definitions, network analysis methods for simple networks can mostly be applied to them. For instance, instead of defining the adjacency matrix (which we will define in detail later) as a 0/1 matrix, it can be defined as an arbitrary matrix of reals, to which the same methods can be applied as in the simple case. One type of network however is more complex in its structure: bipartite networks. A bipartite network (also called twomode network) is a network whose nodes can be partitioned into two sets, such that all links connect two nodes of different types. Ordinary networks such as social networks for instance are not bipartite, since they contain triangles. However, many other networks are bipartite. For instance, the wellknow Southern Women dataset, consisting of information about women’s participation in social events in the Southern United States in the 1930s, is bipartite [14]. For another example, the set of connections between people and the things they like forms a bipartite network, consisting of personnodes and thingnodes, with each like connecting a person with a thing. Another example are the countries of origin of persons or things, the musical genres played by artists (as shown in Figure 1), the teams in which athletes have played, inclusion of people in social groups, tags assigned to documents (or any other kind of resource) and ratings given to movies (or other items). Other, less obvious examples are the words contained in text documents, in which the two node types are documents and words, and each link denotes the contains relationships. In fact, bipartite networks are a very important class of networks: Although the number cannot be taken as significant due to a clear sampling bias, the Koblenz Network Collection [33] contains, at the time of writing, 42% of bipartite networks (79 out of 189)^{1}^{1}1konect.unikoblenz.de. A sample of bipartite network types is given in Table 1. A longer list is given in Table 5 in Appendix A.
The artist–genre network shown in Figure 1 is a subset of the actual Wikipedia genre information extracted by the DBpedia project [2], and will be used as a running example in the rest of this article. As a comparison, we will use a unipartite network containing tie of members of a karate club, taken from a wellknown study by Wayne Zachary [55]. This small unipartite network contains 34 nodes and 78 edges.
A large part of the network analysis literature and methods only apply to unipartite networks, i.e., those networks having a single node type. Therefore, many studies project bipartite networks to unipartite networks, losing information in the process. To avoid this, unipartite algebraic graph analysis tools must be adapted, extended or completely redefined in the bipartite case. This has been done partially for some network analysis methods [8], although these methods do not exploit algebraic graph theory. This lack is the motivation of this article: to present a selection of the most important algebraic network analysis methods for bipartite networks.
Example  Node Types  References 

Music genres  Artists + Genres  [2] 
Starring  Actors + Movies  [22] 
Sports  Players + Teams  [49] 
Authorship  Authors + Works  [59] 
Metabolism  Substances + Reactions  [28] 
Ratings  Users + Items  [6, 10, 43] 
Listening  Persons + Songs  [12] 
Affiliation  Persons + Groups  [48] 
Web analytics  Users + Web pages  [53] 
Search engines  Queries + Clicked URLs  [47] 
Economy  Producers + Consumers  [13] 
Tag assignment  Items + Tags  [7] 
Bag of words  Documents + Words  [30] 
Taxonomy  Documents + Categories  [51] 
The outline of the article is as follows:

Section 1, Bipartite graphs: We give the definition of a bipartite network and review alternative representation of bipartite datasets other than through networks.

Section 2, Algebraic graph theory: We review the usage of matrices to represent networks, requiring the replacement of the adjacency matrix with the biadjacency matrix. We show that paths between nodes in a bipartite network can be counted by computing alternating powers of the biadjacency matrix.

Section 3, Measures of bipartivity: In the case where a network is not explicitly bipartite, it may be almostbipartite. This section reviews algebraic measures of (non)bipartivity, introducing several new ones.

Section 4, Clustering analysis: This section describes spectral methods for detecting and measuring clustering in a network, i.e., the tendency of edges to form tight groups, as well as methods for finding such clusters.

Section 5, Visualization: We describe methods for visualizing a bipartite network, showing that the bipartite structure is an additional type of information that can or cannot be visualized, reviewing advantages of both variants.

Section 6, Link prediction: We treat the problem of link prediction, i.e., the prediction of links in evolving networks and show how common link prediction graph can be generalized to the bipartite case.

Section 7, Other graph types: We review other graph types such as weighted and signed graphs, and their application to the bipartite case.
Throughout the paper, examples of bipartite networks will be taken from the Koblenz Network Collection [33], a collection of small and large networks of different types and from various application areas created by the authors. Section 6 (Link Prediction) is partly based on a previous paper of the author [35].
1 Bipartite Graphs
A network is an abstract structure consisting of nodes connected by links. Networks are modeled mathematically as graphs, which consist of a set of vertices (representing the nodes) connected by a set of edges (representing the links). A graph is usually denoted as
in which is the graph, is the set of vertices, and is the set of edges. An edge connecting the vertices is denoted . The fact that two vertices and are connected will also be denoted . The number of neighbors of a node is called the degree of and is denoted .
Bipartite graphs are graphs in which the set of nodes can be partitioned into two disjoint sets such that each edge connects a vertex of one partition with a vertex of the other partition. A bipartite graph can be denoted as
in which and are the two disjoint vertex sets and is the set of vertices.
An equivalent characterization of bipartite graphs are the graphs that do not contain odd cycles, i.e., cycles consisting of an odd number of edges. In particular, it follows that a bipartite network does not contain triangles.
The term bipartite is sometimes employed in a slightly different way in mathematics and network science. Mathematically, any graph is by definition bipartite when a bipartition of exists, such that all edges in connect a vertex of one partition with a vertex of the other partition. In our notation however, a bipartition of the vertices will always be explicitly given by using the notation . Thus, the term unipartite is not the exact opposite of bipartite: We call a network unipartite when it has a single node type, and links can connect any two nodes. This definition does not preclude a unipartite network from being bipartite in the mathematical sense. In the rest of the article, we will restrict usage of the term bipartite and unipartite to networks with two and one explicit node types^{2}^{2}2Another terminology, 1mode network and 2mode network, is also common.. The two node sets and will be called the left and right edge sets^{3}^{3}3Other designations exist; for instance top and bottom [21]..
Although bipartivity gives a special structure to a network, which can be exploited in various ways, we are not interested here in graphs that cannot be described as complex networks. For instance, a forest (i.e., a cyclefree graph) is bipartite in mathematical sense, but its structure is too trivial to be interesting in most cases.
1.1 Alternative Representations
An alternative representation of bipartite networks is as hypergraphs [58]. Let be a bipartite graph. Then we can construct its derived hypergraph . As a reminder, the notion of hypergraph extends the notion of graph by allowing edges to connect any number of vertices, and are usually called hyperedges. By setting
we arrive at a hypergraph in which the left vertices of are the vertices, and the neighbors of each left node in make one hyperedge in . In reverse, each hypergraph can be reduced to a bipartite graph in this way – another reason why bipartite graphs are important. As an example, a sets of groups formed by persons on a social networking site can be modeled as a hypergraph, in which the persons are the nodes, and each group gives one hyperedge making up all persons contained in that group. The equivalent bipartite graph has persons and groups as nodes, and an edge from a person to a group when the person is member of that group. Due to the symmetry between and , we can build an analogous hypergraph representation in which contains one hyperedge for each node in .
Another alternative way to model bipartite data is using the vector space model. This approach is very common in text mining, where documents containing words are modeled as wordvectors. Let be a bipartite document–word network, where are the documents and are the words. The vector space model then represents each document as a vector defined as
In this representation, certain measures arise naturally, such as the cosine similarity. However, more complex methods are harder to recover. As an example, one may consider the cosine similarity, which measures the cosine of the angle between two vectors, or equivalently the dot product of two vectors, after a suitable normalization. By construction, the cosine similarity takes into account common words contained in two documents, but not more complex semantic relationships, such as synonyms. Instead, a graphbased similarity measure that considers paths in the bipartite document–word network will be able to find such relationships, as long as it is based on paths of length more than two between two documents.
Another common alternative representation of a bipartite network is by its projection to a unipartite network [50]. In the projection of a network onto the left nodes, only the left nodes are kept, and two nodes are connected when they have a common neighbor in the original bipartite graph. The projection onto the right nodes is defined analogously. Let be a bipartite graph. Then its projections to the left and right side can be defined as the graphs
The projections defined in this way are commonly used when unipartite network analysis methods are to be applied to bipartite networks. Among many examples, this is the case for edge types representing collaboration, whose name typically begin with co, for instance, the coauthorship network of scientists or the costarring network of actors. The projection networks however do not fully reflect the properties of the original bipartite networks. For instance, the left and right degree distributions in the original bipartite graph will by combined. However, the left and right degree distributions of bipartite networks are often very different, and this is lost in the projection.
1.2 Size, Volume and Fill
The size, volume and fill are three basic network characteristics that extend trivially to bipartite networks. The size denotes the number of nodes in a network. The size of a graph is . For a bipartite graph , the size is , and we can distinguish between the left size and the right size . The sizes of the left and right node sets can vary greatly. Figure 2 shows a scatter plot of the left and right node sets of all networks in the Koblenz Network Collection [33]. As an example for a very skewed bipartite network, the rating network of Netflix [6] contains 480,189 users but only 17,770 movies.
The volume of a graph is its number of edges. For a bipartite graph , no change in the definition is needed; the volume is simply .
The fill of a network is the proportion of edges to the total amount of possible edges. In a unipartite graph , the fill is given by . In a bipartite graph , only edges between nodes in and nodes in are allowed, and thus the fill is given by .
2 Algebraic Graph Theory
Algebraic graph theory is the branch of graph theory that represents graphs using algebraic structures in order to exploit the methods of algebra for graph theory. The main tool of algebraic graph theory is the representation of graphs as matrices, in particular the adjacency matrix and the Laplacian matrix. In the scope of this article, we will look at the adjacency matrix, since it has a special structure in the bipartite case, which can be exploited to give insights about path counts in the network. In the following, all matrices are real.
2.1 Adjacency Matrix
Given a unipartite graph , its adjacency matrix is defined by
The adjacency matrix is square and symmetric, and has the useful property that it can be used to count paths in the network. It is easy to verify that the entry of the square of the adjacency matrix equals the number of common neighbors between the vertices and , or equivalently the number of paths of length two between them. This result can be generalized to any power. For any , the number equals the number of paths of length between the nodes and . Counting the number of paths between two nodes is a very useful tool in network analysis. For instance, it can be used to recommend new friends in a social network (the friend of a friend approach), or to compute the distances from one node to all other nodes.
Due to its structure, a bipartite graph has an adjacency matrix of the form
(1) 
in which is called the biadjacency matrix of , and are zero matrices of appropriate size. Because the biadjacency matrix is rectangular, we cannot simply take its powers to count paths in the network. However, we can derive a specific form of powers from its relation to the adjacency matrix, making a distinction between even and odd powers:
From this we can derive expressions for path counts:

The number of paths of length between two nodes equals .

The number of paths of length between two nodes equals .

The number of paths of length between a node and a node is .
All other path counts are zero due to the bipartite structure of the graph. Thus, all path counts in a bipartite graph can be computed using alternating powers of the biadjacency matrix, following the pattern .
2.2 Matrix Decompositions
A major advantage of representing networks as matrices is the possibility of exploiting matrix decompositions, which can be used to compute powers of matrices efficiently. In particular, two decompositions are used: the eigenvalue decomposition and the singular value decomposition.
Given a real symmetric matrix^{4}^{4}4The eigenvalue decomposition is also defined for more general matrices, but these cases are not needed in this article. , its eigenvalue decomposition is
in which is an orthogonal matrix of size (meaning that ) and is a real diagonal matrix of size . The diagonal elements of are called the eigenvalues of , and the columns of are called its eigenvectors. The set of eigenvalues of a matrix are also called its spectrum. The multiplicity of an eigenvalue is defined as the number of times it occurs on the diagonal of .
Given any real matrix (square or nonsquare, symmetric or asymmetric), its singular value decomposition is
in which and are orthogonal matrices of sizes and , and is a nonnegative diagonal matrix. The diagonality of is to be understood as all entries with are zero. The diagonal elements of are called the singular values of ; the columns of and are called its left and right singular vectors.
The eigenvalue decomposition of a bipartite network’s adjacency matrix is equivalent to the singular value decomposition of its biadjacency matrix . Given the singular value decomposition , the eigenvalue decomposition of is given by
with and . In this decomposition, each singular value corresponds to the eigenvalue pair .
In order to compute powers of the adjacency matrix, a special property of the eigenvalue decomposition can be exploited. Using the eigenvalue decomposition , any power of the adjacency matrix can be computed as
This can be shown by using the fact the is orthogonal, for instance, . This form is convenient because powers of the diagonal matrix can simply be computed by taking powers of its diagonal entries.
To compute alternating powers of the biadjacency matrix , its singular value decomposition can then be used in an analogous way. For instance,
This method can be used to compute any odd alternating power of .
2.3 Graph Laplacian
Beyond the adjacency matrix , another matrix is commonly used to analyse graphs algebraically: the Laplacian matrix . Let be a graph with adjacency matrix . Then, its degree matrix is defined as the diagonal matrix containing the node degrees on the diagonal, i.e.
The Laplacian matrix is then the symmetric matrix defined as . The Laplacian matrix has only nonnegative eigenvalues (it is positivesemidefinite), and its eigenvectors can be used for grouping the nodes of the graph into clusters, and also for graph drawing, as we will see in sections 4 and 5.
Unlike the adjacency matrix, the Laplacian matrix of a bipartite graph does not have a block structure akin to that given in Equation 1. Thus, we cannot define any corresponding rectangular biLaplacian matrix of which the singular value decomposition would give us information equivalent to the eigenvalue decomposition of the Laplacian [23].
3 Measures of Bipartivity
Most bipartite networks are explicitly stored as such in information systems. For instance, any recommender system will have a clear distinction between users and items. In these cases, it is clear how to split the vertex set into and . In other cases, the bipartition is not explicit, but implicit in the data. As an example, a dating website^{5}^{5}5For the sake of this example, we assume a heterosexual majority of users. in which users can rate the profile of other users will have a majority of edges connecting men with women, and thus not be bipartite, but nearly so [37]. In this case, a bipartition would have to be inferred from the data. If the network is strictly bipartite, a bipartition can then be derived easily. If however, as is likely in the example of the dating website, the network is not quite bipartite, then that is not possible.
Almostbipartite networks include networks of sexual contacts [42] and ratings on online dating sites [11, 37]. Other, more subtle cases, involve online social networks. For instance, the follower graph of the microblogging service Twitter is by construction unipartite, but has been observed to reflect, to a large extent, the usage of Twitter as a news service [40], as two types of users can be identified: those who primarily get followed (news sources) and those who primarily follow (readers). Thus, the Twitter follower graph is almost bipartite. Other social networks do not necessarily have a nearbipartite structure, but the question might be interesting to ask to what extent a network is bipartite. To answer this question, we need to define measures of bipartivity.
Instead of defining measures of bipartivity, we will instead consider measures of nonbipartivity, as these can be defined in a way that they equal zero when the graph is bipartite. Given an (a priori) unipartite graph , a measure of nonbipartivity characterizes the extent to which fails to be bipartite. In the following, we review four spectral measures of nonbipartivity, and compare them numerically on a large collection of example datasets. All four measures we present are nonnegative, and equal zero if and only if the graph is bipartite.^{6}^{6}6 We note that the first measure of nonbipartivity is presented in its reference as a measure of bipartivity to which we applied the transformation . The four measures are based on the three characteristic graph matrices , and . Two of the measures are novel, and one is a novel algebraic relaxation of a known nonalgebraic measure. All four measures are algebraic. Incidentally, we are not aware of a nonalgebraic measure of (non)bipartivity that is not covered by our four measures.
3.1 Frustration – Spectrum of
A first test of bipartivity consists in counting the minimum number of frustrated edges in a network [24, 56]. Given a bipartition , a frustrated edge is an edge connecting two nodes in , or two nodes in . Let be the minimal number of frustrated edges in any bipartition of . A measure of nonbipartivity is then given by the ratio of frustrated edges to total edges
This measure is always in the range . It attains the value zero if and only if is bipartite. The number of possible partitions in this minimization problem is exponential in the number of nodes, and thus the problem cannot be solved easily. Instead, it can be solved approximately using a MonteCarlo algorithm. Alternatively, the minimal number of frustrated edges can be approximated by algebraic graph theory, in a way which we introduce below. First, we represent a bipartition by its characteristic nodevector defined as
Note that the frustration , i.e., the number of edges within the sets and is then given by
where is the signless Laplacian matrix of the underlying unweighted graph. Thus, the minimal number of frustrated edges is given by
By relaxing the condition , we can express in function of ’s minimal eigenvalue, using the fact that the norm of all vectors equals , and the property that the minimal eigenvalue of a matrix equals its minimal Rayleigh quotient.
We can thus approximate the measure of nonbipartivity by
Finally, we note that the eigenvalue can also be interpreted as the algebraic conflict in interpreted as a signed graph in which all edges have negative weight [34].
3.2 Spectrum of
The adjacency matrix is symmetric and thus has real eigenvalues. In general, its eigenvalues are unbounded and can be positive and negative. When a network does not contain loops (edges from a node to itself), the trace of and thus the sum of its eigenvalues is zero. However, the distribution of eigenvalues around zero is not symmetric in the general case. In fact, the eigenvalues are distributed in a symmetric way around zero if and only if the graph is bipartite. Thus, the eigenvalues of can serve as a test of nonbipartivity in the following way: When a graph is bipartite, the smallest eigenvalue of the adjacency matrix equals the negative of the largest one, i.e., . If a graph is not bipartite, the smallest eigenvalue is nearer to zero, i.e., . Note that it is not possible that the smallest eigenvalue equals the largest in absolute value in a nonbipartite graph. Thus, the ratio of the smallest eigenvalue to its minimal value as a measure of nonbipartivity, which, when scaled accordingly, is zero if and only if the graph is bipartite.
This measure of nonbipartivity is always in the range .
3.3 Spectrum of
Instead of measuring the nonbipartivity of a graph by the eigenvalues of its adjacency matrix , we can measure it by the eigenvalues of a normalized version of the adjacency matrix, the matrix . The normalized adjacency matrix has the same structure as the adjacency matrix, but its entries are normalized by the node degrees. It is given by
or equivalently by
The normalized adjacency matrix can replace the adjacency matrix when a normalization of edge weights by degree is appropriate.
Due to the normalization, the eigenvalues of have special properties. All eigenvalues of are contained in the interval , the maximum eigenvalue is always one, and the minimal eigenvalue equals negative one if and only if the network is bipartite. Thus, we propose as a measure of nonbipartivity
This measure is always in the range .
3.4 Odd Cycles
Another test for bipartivity consists in counting the cycles in the network. If a network is almost bipartite, there are much more cycles of even length than cycles of odd length. Thus, the proportion of odd cycles to the total number of cycles, appropriately weighted to avoid infinite cycle counts, can be used as a measure of nonbipartivity [18].
In this derivation, we consider cycles that may contain repeated nodes^{7}^{7}7When cycles are defined to not contain any node twice, cycles as defined here may be called tours.. A cycle of length is a sequence of nodes such that for and . We thus consider cycles to have a distinct starting node and a direction. Given a graph , let be the number of cycles of length in . Using the adjacency matrix of , we can express this as
Then, a measure of nonbipartivity is given by the ratio of odd cycles to all cycles
This measure is dependent on a lengthdependent cycle weight , without which both sums would diverge. Several choices for are possible. We will consider here the weights , resulting in the matrix exponential and hyperbolic sine:
This can be expressed as a function of ’s eigenvalues as
This measure is always in the range , and attains the value of zero if and only if is bipartite.
3.5 Comparison
A comparison of the three measures of nonbipartivity is given in Table 2, and a numerical comparison of them is shown in Figure 3. A detailed comparison plot of the two measures and is shown in Figure 4. The numerical comparison shows that the values of (the ratio of odd cycles) are in fact very near to for almost all networks, making the measure useless for characterizing large networks.
Figure 4 shows that bipartivity does not correlate with the type of network. While the most bipartite networks according to both measures are reference networks (the Notre Dame web (ND) and Baidu related pages (BAr)), other reference networks have very different nonbipartivity values. The same is also true for other network categories.
The runtimes needed to compute each of the four measures of nonbipartivity can be derived as follows. The fastest one to compute is the one based on the spectrum of the adjacency matrix , since we need only compute the maximum and minimum eigenvalues of , which can be done efficiently even for very large graphs. For , we must compute the minimum eigenvalue of the normalized adjacency matrix . Since ’s eigenvalues are much less separated than ’s, a power iteration on takes longer than on . Computing the minimum eigenvalue of is even slower, and needs more memory, as a sparse LU decomposition of must be computed. Computing the measure is high too, as it needs all eigenvalues of .
From the histograms shown in Figure 3, we can conclude that only has an almostuniform distribution, and thus we suppose it to be more informative. Since it also is the fastest of the measures to compute, we recommend to compute , i.e., as a measure of bipartivity for onemode networks.
Measure  Measured feature  Range  Runtime 

Frustration ()  Relaxed proportion of edges that must be removed to make the graph bipartite  Very high  
Spectrum of ()  Distance of smallest eigenvalue of the adjacency matrix to the opposite of the largest eigenvalue  Low  
Spectrum of ()  Distance of smallest eigenvalue of the normalized adjacency matrix to the opposite of the largest eigenvalue  Middle  
Odd cycles ()  Proportion of odd cycles to total cycles, weighted by inverse factorial of cycle length  High 








4 Clustering Analysis
The term clustering refers to the observation that realworld networks, for instance social networks, tend to contain clusters, i.e., groups of nodes with a large number of edges among them, and few nodes connected to the outside of the group. A major problem class in machine learning, and indeed in unsupervised learning is the task of clustering. Given a set of data points and their attributes, the clustering problem asks to find subsets of these data points that are similar, in a way depending on the attributes. Examples of applications that can be reduced to clustering include community detection in social networks and the unsupervised determination of topics in a scientific collaboration graph.
The most general formulation of the clustering problem uses pairwise distances between the points. As an example, the means algorithm finds a partition of a set of points such that each point is nearest to the centroid of its assigned cluster.
If the points to be clustered are vertices in a graph, and the edges connecting the vertices are the only information available, then one speaks of graph clustering [44]. Of the many graph clustering methods in existence, we will review a spectral one that is both very general and which performs reasonably well in practice: ratiocut spectral clustering. We will also restrict our treatment to the case of 2clustering, i.e., finding a partition of the vertex set of a graph into two parts, such that each part contains as many edges as possible, and only few edges connect the two parts.
Let be a connected unipartite graph. Given any partition , the cut of the pair is defined as the number of edges connecting and :
A good 2clustering will thus give a low value of . Using the cut as a minimization objective does not work however, since the result would be very skewed to partitions with one very small and one very large cluster. Thus, an suitable objective function for minimization is given by the ratio cut [44]
The ratio cut can be minimized by expressing is in terms of the vector defined by
(2)  
Using the Laplacian matrix defined by , when and are connected and otherwise, we can check that
and that , i.e., is orthogonal to the constant vector. Denoting by the vectors of the form given in Equation (2), the clustering problem becomes
This can be relaxed by removing the constraint , giving as a solution the eigenvector of having the smallest nonzero eigenvalue. The optimal can then be used for 2clustering, by defining the two clusters to comprise the nodes with positive and negative values in , respectively. Equivalently, the optimal can be found by computing , where is the diagonal degree matrix defined by , and is the eigenvector corresponding to the second largest absolute eigenvalue of the matrix . Note that the largest eigenvalue of that matrix is one, and the corresponding eigenvector has entries inversely proportional to the vertex degrees. Here, and refer to the diagonal degree matrices computed from by keeping all the left and right vertices, respectively. As an example, the resulting 2clustering of Zachary’s unipartite karate club network is shown in Figure 5.
In the case of a bipartite graph , the problem of clustering is usually called biclustering or coclustering [15]. These names refer to the fact that a good clustering of a bipartite graph must cluster both vertex sets in a way that is compatible with each other. In other words, the graph biclustering problem consists in finding the partitions
In the case of the ratio cut, the objective is thus to minimize . This can be realized by writing the network’s normalized adjacency matrix as
in which is the biadjacency matrix of the network. It follows that a 2clustering of a bipartite graph based on ratio cuts can be computed by finding the left and right singular vectors of the matrix corresponding to the secondlargest eigenvalue. As an example, the resulting 2clustering of the bipartite artist–genre network is shown in Figure 6.
4.1 Other Approaches
Another way to generalize the problem of graph clustering is by considering the concept of a clique. A clique in a graph is a set of nodes all of which are connected to each other. In other words, a clique is a complete graph that appears as a subgraph of another graph. In the bipartite case, the equivalent of a clique is a complete bipartite graph (or biclique) that appears as a subgraph. Now, a problem related to graph clustering is the problem of finding large cliques in a unipartite graph. Generalizing this to bipartite graphs results in the problem of finding large bicliques [32].
5 Visualization
Visualization is an important part of many exploratory sciences. Since so many different types of data can be modeled as networks, it is not surprising that network visualization constitutes a large topic. In fact, there are many different graph drawing algorithms, designed for many different types of networks, many of which can also be applied to bipartite networks. In this section, we describe one specific graph drawing algorithm that ties directly to our previous exposition about algebraic graph theory: spectral graph drawing, which consists in using the eigenvectors of characteristic graph matrices to draw a network. We note that other graph drawing algorithms exists, and also other settings in which they can be applied. However, we will restrict ourselves to the case of twodimensional graph drawing, i.e., the embedding of the nodes of graph into a twodimensional surface.
Let us begin by formalizing the graph drawing problem. Let be a graph. In order to draw , we need to determine the coordinates of each node in the drawing. The edges can then be drawn as lines from one node to another. For simplicity, we will restrict ourselves to graph drawing methods in which edges are drawn as straight lines. A graph drawing is by nature twodimensional, and thus we must find a mapping of the nodes into the plane . We will represent this mapping by a matrix , in which each row represents the coordinates of node .
A chosen graph drawing can be required to fulfill many aesthetic requirements, for instance that lines representing edges are not overlapping, that the drawing has constant density of nodes over the whole drawing, that cliques are apparent in the drawing, that nodes are not drawn too near to each other, etc. There are many such requirements, partially in conflict with each other. Any choice of such requirements (or rather, weighting of their importances), leads to a different graph drawing algorithm. The requirement chosen as an example in this section will be that of proximity: Nodes should be drawn near to their neighbors. We chose this requirement because it reflects the importance of the network structure over other aesthetic criteria, and because it leads to a closedform solution with can be exploited in practice, in particular for very large networks.
A second requirement which we will consider dictates that if a network has special structure, that structure should be reflected in the graph drawing. In the case of bipartite networks, this can for instance be achieved by placing all nodes on two parallel lines in the drawing, reflecting the two disjoint sets of nodes [20]. An illustration of such a drawing is shown in Figure 7, along with the example of a tree (a connected cyclefree graph) which is bipartite, but cannot be drawn in a nonintersecting manner when all nodes are placed on two lines. This example shows that aesthetic requirements can be in conflict with each other.
In the rest of section, we first define the Laplacianbased graph drawing algorithm for unipartite graphs, and then show how it can be extended to the case of bipartite graphs, with and without the requirement to place the nodes on two parallel lines.
5.1 Spectral Drawing of Unipartite Graphs
We now describe the general method for generating an embedding of the nodes of a graph into the plane using the Laplacian matrix. Given a connected graph , its adjacency matrix gives the positive edge weights when the vertices and are connected, and is zero otherwise. We now want to find a twodimensional drawing of the graph in which each vertex is drawn near to its neighbors. This requirement gives rise to the following vertex equation, which states that every vertex is placed at the mean of its neighbors’ coordinates, weighted by the weight of the connecting edges. For each node , let be its coordinates in the drawing, then
Rearranging and aggregating the equation for all we arrive at
In other words, the columns of should belong to the null space of the Laplacian matrix , which leads to the degenerate solution of containing constant vectors, as the constant vector is an eigenvector of with eigenvalue . To exclude that solution, we require additionally that the column vectors of are orthogonal to the constant vector and to each other, leading to the columns of being the eigenvectors associated with the two smallest eigenvalues of different from zero. This solution results in a wellknown satisfactory embedding of positively weighted graphs:
where denotes the eigenvector corresponding to the ’s smallest eigenvalue of . Such an embedding is related to the resistance distance (or commute time distance) between nodes of the graph [5].
As an example of this method, we show the spectral drawing of Zachary’s unipartite karate club network and of the United States power grid network [54] in Figure 8, showing that the method can be applied to both small and large networks.
5.2 Spectral Drawing of Bipartite Graphs
The spectral graph drawing method introduced previously can be applied to bipartite graphs, giving drawings where the nodes of the two types are mixed in the plane. An example for our small bipartite example subset of the artist–genre network, as well as for the full artist–genre network are shown in Figure 9.
Alternatively, we may want to emphasize the bipartite structure in the network. Therefore, instead of using two eigenvectors of the Laplacian matrix , we only use one. The coordinates for the other dimension are then given by the bipartition:
Note that this kind of bipartite graph drawing only makes sense when the edges are shown. If, as we did with the large artist–genre and power grid networks, edges are not shown, the drawing becomes uninformative since it only consist of two lines of points. The drawing is shown for the small bipartite artist–genre subset in Figure 10. As expected, the bipartivity of the network becomes apparent from the graph drawing, and the placement of the nodes on the two lines is such that clusters are apparent, for instance the seven nodes at the right of the drawing.
6 Link Prediction
The problem of link prediction covers a set of related problems that arise in various areas, which can all be formulated as the task of predicting links in a network. For instance, a social recommender system such as the You may know these persons feature on Facebook^{8}^{8}8www.facebook.com/findfriends/browser can be implemented by predicting new friendship ties in the Facebook social graph. Another application consists in finding researchers similar to a given one based on their collaboration graph. Yet another application consists in predict the sign of edges in a signed social network, i.e., a social network such as Slashdot [39] in which both friend and foe ties are allowed. All these applications are of the same form, in which a graph as well as two nodes are given, and a score must be computed for them.
The link prediction problem can be applied to bipartite networks, too. For instance, recommending items on Facebook based on the user–item like graph amounts to predicting links in that graph. A related task is collaborative filtering, i.e., the prediction of ratings in the bipartite user–item rating graph. This task differs from the pure link prediction task, because edges are weighted by ratings, and the goal is not to find edges, but to predict their weight. Nonetheless, the task can be implemented by the same methods used for link prediction.
The link prediction problem as defined here is very general, and plays a central role in the areas of information retrieval (mainly through word–document links), recommender systems (mainly through user–item links) and other domains. Thus, the number of previously described approaches is very large, and we only cover here a small representative subset of them which have algebraic formulations: preferential attachment, the common neighbors count, and various graph kernels.
A recommender can take several forms, not only by the type of network it operates on, but also with regard to whether it finds nodes, edges or computes probabilities. In our experiments, we will use the most general approach: returning a score when given a node pair. Thus, all link prediction algorithms for a graph will be formulated in terms of a score function that takes two vertices as input, and returns a real number. We do not pose any numerical constraint on the returned values; they could be probabilities, counts, or even negative values. The only rule is that a higher value denotes a higher probability of link formation.
6.1 Preferential Attachment
Preferential attachment refers to the idea that when a link is created in a network, it is more likely to attach to nodes that already have a high degree. More precisely, the probability that a new link attaches to a node can be modeled to be proportional to the degree . When taken as the only link formulation rule, this leads to the Barabási–Albert graph model. As a solution to the link prediction problem, preferential attachment can be used to derive the link prediction function [3]
This is arguably the simplest nontrivial link prediction function possible; it only takes vertex degrees into account, not the network structure. In fact, if we chose any vertex , compute this function for the pairs for all , and then rank all vertices by score, the result will be independent of the initial vertex . Thus, the preferential attachment link prediction function corresponds to the most popular recommender, i.e., a nonpersonalized recommender function. In the example of a friend recommender for a social network, the preferential attachment function always recommends the users with highest number of friends.
Even though it is rudimentary, the preferential attachment link prediction function can give reasonable results in many applications, and has the advantage to generalize trivially to bipartite networks: We can use its definition directly in a bipartite network without any modification. Other, more complex link prediction functions however are not that simple and will need adjustment for bipartite networks, since they are defined in terms of the underlying network structure.
6.2 Neighborhoodbased Methods
Beyond preferential attachment, the simplest link prediction functions that are not independent on a source vertex are based on the principle of triangle closing [41]. For instance, the common neighbors count consists in counting the number of common neighbors between two given nodes, and is based on the observation that an edge joining two nodes with a high number of common neighbors will add many triangles to the graph. In the example of a friend recommender, this corresponds to the friend of a friend model, in which we recommend the users with which we have the highest number of common friends, but who are not our friends yet:
While this link prediction function takes into account the underlying network structure, it is useless for bipartite networks. In fact, new edges in a bipartite network always connect two vertices from different partitions, and cannot have common neighbors. In other words, triangle closing does not apply to bipartite networks, since bipartite networks do not contain triangles. However, since the common neighbor count is equal to the number of paths of length two between two nodes, we can switch to using the number of paths of length three as a bipartite link prediction function, which respects the bipartite network structure:
As shown in Section 2, this can be expressed using the biadjacency matrix as .
A certain number of other link prediction functions are similar to the common neighbors count, but use normalization or multiplicative factors in various ways. These include the Jaccard index [41], the cosine similarity [45], and the measure of Adamic and Adar [1]. The extension of these measures to bipartite graphs can be done in various ways, depending on the generalization of the specific normalization method.
6.3 Graph Kernels
As an example of a class of more advanced link prediction functions, we review graph kernels. In a unipartite graph , a graph kernel is a function of two vertices which is a kernel, i.e., the following properties hold:

It is symmetric:

It is positive semidefinite: For any vector , ’s bilinear form is nonnegative, i.e., .
A graph kernel thus has the same form as a link prediction function, but with the additional condition of being symmetric and positivesemidefinite. Graph kernels can be defined algebraically using the adjacency matrix and the Laplacian matrix, as in the examples given in Table 3.
Name  Expression 

Neumann kernel [29]  
Exponential kernel [31]  
Commutetime kernel [19]  
Heat diffusion kernel [27] 
These graph kernels can be generalized to bipartite graphs. As an example, the exponential kernel can be generalized to the hyperbolic sine pseudokernel, and the special bipartite network structure can be exploited to compute it. The exponential kernel can be written as a power sum:
In this form, it is clear that the exponential of the adjacency matrix equals a sum over all paths between two nodes, weighted by a decreasing function of the path length . Thus, the exponential function enjoys two useful properties as a link prediction function:

It is higher when there are more paths connecting two nodes.

It is lower when the connecting paths are long.
These two properties are very useful for a unipartite link prediction function. For a bipartite link prediction function, the second property is counterproductive. Instead, only paths of odd length should be counted, and paths of even length have weighted zero. This is because a new edge in a bipartite network can only connect two nodes from different partitions in the network, and thus preexisting paths connecting them must have odd length. Thus, the corresponding graph kernel for bipartite graphs is given by a reduction of the matrix exponential to only its odd terms; this is exactly the matrix hyperbolic sine [35]:
This function however is not a kernel, since it is not positive semidefinite – which is reflected by the fact the hyperbolic sine takes on negative values, unlike the exponential. Therefore, the resulting link prediction function is only a pseudokernel, i.e., a kernel without the positivesemidefinite property.
Both the exponential kernel and the hyperbolic sine pseudokernel can be computed efficiently using matrix decompositions. From its expression as a power sum, it can be seen that the matrix exponential can be written with help of the eigenvalue decomposition :
Analogously, the hyperbolic sine can be written with help of the singular value decomposition of the biadjacency matrix :
Analogously, we can derive a bipartite version of the Neumann kernel. The Neumann kernel is defined as
and, similarly to the exponential kernel, it assigns decreasing weights to increasing path lengths. By keeping only the odd terms we arrive at the odd Neumann kernel [29]:
The same strategy can be used for other graph kernels based on the adjacency matrix, for instance those learned from historical data [38]. These kernels can also be applied to the normalized adjacency matrix and to the graph Laplacian [4, 47, 52].
6.4 Evaluation
We perform an evaluation of the described link prediction algorithms on bipartite networks from the Koblenz Network Collection. The link prediction methods we used are summarized in Table 4, and the list of networks on which we make our experiments is given in Appendix A. We use the following methodology: For each network, we divide the set of edges into a training set (75% of edges) and a test set (25% of edges). Additionally, a zero test set of unconnected node pairs is created, having the same size as the test set. When edge arrival times are known for one network, the split is such that all training edges come before test edges. We then use the various methods shown in Table 4 to compute link prediction scores for all node pairs in the test set and zero test set. The scores are then used to compute the area under curve (AUC) as a measure of precision for each method [9]. AUC values range from zero to one, with higher values denoting better ranking. The results are shown in Figure 11.
Name  Expression  

PA  Preferential attachment  
P3  Paths of length three  
POLY  Odd polynomial of the adjacency matrix  
POLYN  Odd nonnegative polynomial of the adjacency matrix  
NEU  Odd Neumann kernel  
SINH  Hyperbolic sine  
NPOLY  Odd polynomial of the normalized adjacency matrix  
NPOLYN  Odd nonnegative polynomial of the normalized adjacency matrix  
NNEU  Normalized odd Neumann kernel  
NHEAT  Normalized heat diffusion kernel  
COM  Commutetime kernel  
HEAT  Heat diffusion kernel 
Our experiments show that not all link prediction methods generalize well to bipartite networks. First, we see that the two methods based on the Laplacian matrix, the heat diffusion kernel and the commutetime kernel, perform very badly. The best results are in fact achieved by two functions of the normalized adjacency matrix: the polynomial and the normalized heat diffusion kernel. The normal Neumann kernel however does not perform well. In a similar vein to unipartite networks, we must conclude that there is no generally best method, and that the performance can vary from dataset to dataset as it does from method to method.
7 Other Graph Types
Graphs as defined in the previous sections of this article are generally called simple graphs, as they allow only single edges between two vertices. Their edges are undirected and unweighted. The archetypal example of a network modeled as a simple graph is a social network: persons connected by friendships. This definition can be extended to include multiple edges between a single vertex pair, weighted edges, signed edges, and directed edges. Of these extensions, all can be applied to bipartite graphs. In this section, we briefly review two of these extensions and their implications for algebraic graph theory: weighted graphs and directed graphs.
Edge Weights
A common feature of graphs are edge weights, which come in multiple forms. For one, edges can be directly weighted by a real number, such as in the trust network of the Advogato online community, in which three levels of trust exist, represented by the numbers 0.6, 0.8 and 1.0 [46]. Another type of weight is given by signed networks, in which positive and negative edges exist. An example is the Slashdot Zoo social network, in which people are related by friend and foe links [39]. Finally, networks may allow multiple parallel edges, in which case we may model the number of parallel edges as an integer weight. An example is an email network, with each edge representing an email between two persons. All these types of weightings can be applied to bipartite networks directly, giving a weighted biadjacency matrix . This matrix can then be used for any algebraic graph analysis method trivially.
Directed Graphs
In directed graphs, each edge has an orientation. Instead of being defined as the unordered set , an edge in a directed network is defined as the ordered pair . Edges in a directed graph are also called arcs. An example for a directed graph is the Twitter follower graph, consisting of Twitter users and their follow relationships [40]. The fact that user follows user can be represented by the directed edge . Arguably, more directed than undirected unipartite networks exist; in the Koblenz Network Collection for instance, 62% of all unipartite networks are directed [33]. On the other hand, directed bipartite graphs are very rare. They occur for instance in Petri nets, where the node types are places and transitions. Out of 189 networks in the Koblenz Network Collection as of 2014, not a single one is directed and bipartite.
Directed graphs can be transformed into bipartite graphs, using the bipartite double cover [16]. This gives a bipartite graph in which each edge corresponds to an original directed edge, and the set of vertices is doubled, as shown in Figure 12.
Formally, the directed graph has the bipartite double cover
This mapping does not preserve the complete directed structure, because directed paths of the form are not reflected as paths in the bipartite double cover; only alternating paths are preserved, i.e., paths consisting of edges in alternating orientations relative to the path such as . If is the adjacency matrix of a directed graph, then is also the biadjacency matrix of its double cover, whose adjacency matrix is
An example in which these properties of the bipartite double cover are exploited are rating networks of online dating websites [37].
Conclusion
The topic of algebraic graph theory for bipartite networks is vast, and, as we have seen, specific analysis methods can be defined for many applications. In most cases, analysing a bipartite network does not just mean applying regular network analysis methods to a network that happens to the bipartite. Instead, specialized algebraic methods exist, that are both more efficient and better suited to the bipartite structure. A general pattern that we have exploited is the replacement of the square and symmetric adjacency matrix with the rectangular biadjacency matrix . This construction leads to changes in its applications. For instance, the eigenvalue decomposition must be replaced by the singular value decomposition, which naturally maps to bipartite graphs, and the exponential kernel must be replaced by the hyperbolic sine pseudokernel. We also note that the existence of a match between the singular value decomposition and bipartite graphs is not trivial, in that there are examples of graphs with special structure that do not allow such a mapping: Directed networks for instance are represented naturally by asymmetric and square adjacency matrices, for which no extension of the eigenvalue decomposition is satisfactory, as shown in [36]: the asymmetric eigenvalue decomposition is not defined in the general case and discards information about when it is defined, the singular value decomposition of the asymmetric adjacency matrix implicitly applies to the bipartite double cover and thus loses information, and an alternative decomposition (DEDICOM) is computationally complex and nonunique.
The concept of bipartite networks itself can be generalized to partite networks. There are two different ways of achieving this: First, by letting each edge connect one vertex of every of the vertex sets, resulting in a regular hypergraph. This approach is taken for instance in the modeling of broad folksonomies, in which each tag assignment consists of a user–item–tag triple [26]. The second generalization of bipartite networks also allows any of different vertex types, and also different edge types, each edge type connecting two specific vertex types (which may be the same) [25]. This approach is taken in semantic networks, where each edge type then corresponds to one semantic predicate.
Appendix A Appendix: Networks
The list of networks used in the experiments in this paper is given in Table 5. All networks are available online with the Koblenz Network Collection^{9}^{9}9konect.unikoblenz.de [33].
References
 [1] L. Adamic and E. Adar. Friends and neighbors on the Web. Social Networks, 25:211–230, 2001.
 [2] S. Auer, C. Bizer, G. Kobilarov, J. Lehmann, R. Cyganiak, and Z. Ives. DBpedia: A nucleus for a web of open data. In Proc. Int. Semantic Web Conf., pages 722–735, 2008.
 [3] A.L. Barabási and R. Albert. Emergence of scaling in random networks. Science, 286(5439):509–512, 1999.
 [4] C. Bauckhage. Distancefree image retrieval based on stochastic diffusion over bipartite graphs. In British Machine Vision Conf., pages 1–10, 2007.
 [5] M. Belkin and P. Niyogi. Laplacian eigenmaps and spectral techniques for embedding and clustering. In Advances in Neural Information Processing Systems, pages 585–591, 2002.
 [6] J. Bennett and S. Lanning. The Netflix Prize. In Proc. KDD Cup, pages 3–6, 2007.
 [7] D. Benz, A. Hotho, R. Jäschke, B. Krause, F. Mitzlaff, C. Schmitz, and G. Stumme. The social bookmark and publication management system BibSonomy. The VLDB J., 19(6):849–875, dec 2010.
 [8] S. P. Borgatti and M. G. Everett. Network analysis of 2mode data. Social Networks, 19:243–269, 1997.
 [9] A. P. Bradley. The use of the area under the ROC curve in the evaluation of machine learning algorithms. Pattern Recognition, 30:1145–1159, 1997.
 [10] J. S. Breese, D. Heckerman, and C. Kadie. Empirical analysis of predictive algorithms for collaborative filtering. In Proc. Conf. on Uncertainty in Artificial Intelligence, pages 43–52, 1998.
 [11] L. Brožovský and V. Petříček. Recommender system for online dating service. In Proc. Conf. Znalosti, pages 29–40, 2007.
 [12] Ò. Celma. Music Recommendation and Discovery in the Long Tail. Springer, 2010.
 [13] W. Dahui, Z. Li, and D. Zengru. Bipartite producerconsumer networks and the size distribution of firms. Physica A, 363(2):359–366, 2006.
 [14] A. Davis, B. B. Gardner, and M. R. Gardner. Deep South; a Social Anthropological Study of Caste and Class. The University of Chicago Press, Chicago, 1941.
 [15] I. S. Dhillon. Coclustering documents and words using bipartite spectral graph partitioning. In Proc. Int. Conf. on Knowledge Discovery and Data Mining, pages 269–274, 2001.
 [16] A. Dulmage and N. Mendelsohn. Coverings of bipartite graphs. Canadian J. Math., 10:517–534, 1958.
 [17] M. Dumas, M. J. McGuffin, J.M. Robert, and M.C. Willig. Optimizing a radial layout of bipartite graphs for a tool visualizing security alerts. In Proc. Int. Conf. on Graph Drawing, pages 203–214, 2012.
 [18] E. Estrada and J. A. RodríguezVelázquez. Spectral measures of bipartivity in complex networks. Phys. Rev. E, 72(4):046105, 2005.
 [19] F. Fouss, A. Pirotte, and M. Saerens. A novel way of computing similarities between nodes of a graph, with application to collaborative recommendation. In Proc. Int. Conf. on Web Intelligence, pages 550–556, 2005.
 [20] U. Fößmeier and M. Kaufmann. Nice drawings for planar bipartite graphs. In Proc. Italian Conf. on Algorithms and Complexity, pages 122–134, 1997.
 [21] J.L. Guillaume and M. Latapy. Bipartite structure of all complex networks. Inf. Process. Lett., 90(5):215–221, 2004.
 [22] B. W. Herr, W. Ke, E. Hardy, and K. Börner. Movies and actors: Mapping the Internet Movie Database. In Proc. Int. Conf. Information Visualization, pages 465–469, 2007.
 [23] N.D. Ho and P. V. Dooren. On the pseudoinverse of the Laplacian of a bipartite graph. Applied Math. Lett., 18(8):917–922, 2005.
 [24] P. Holme, F. Liljeros, C. R. Edling, and B. J. Kim. Network bipartivity. Phys. Rev. E, 68(5):056107, 2003.
 [25] B. Hoser, A. Hotho, R. Jäschke, C. Schmitz, and G. Stumme. Semantic network analysis of ontologies.
 [26] A. Hotho, R. Jäschke, C. Schmitz, and G. Stumme. Information retrieval in folksonomies: Search and ranking. In Proc. Eur. Conf. Semantic Web: Research and Applications, pages 411–426, 2006.
 [27] T. Ito, M. Shimbo, T. Kudo, and Y. Matsumoto. Application of kernels to link analysis. In Proc. Int. Conf. on Knowledge Discovery in Data Mining, pages 586–592, 2005.
 [28] H. Jeong, B. Tombor, R. Albert, Z. N. Oltvai, and A.L. Barabási. The largescale organization of metabolic networks. Nature, (407):651–654, October 2000.
 [29] J. Kandola, J. ShaweTaylor, and N. Cristianini. Learning semantic similarity. In Advances in Neural Information Processing Systems, pages 657–664, 2002.
 [30] Y. Ko. A study of term weighting schemes using class information for text classification. In Proc. Int. Conf. on Research and Development in Information Retrieval, pages 1029–1030, 2012.
 [31] R. Kondor and J. Lafferty. Diffusion kernels on graphs and other discrete structures. In Proc. Int. Conf. on Machine Learning, pages 315–322, 2002.
 [32] R. Kumar, P. Raghavan, S. Rajagolapan, and A. Tomkins. Extracting largescale knowledge bases from the Web. In Proc. Int. Conf. on Very Large Data Bases, pages 639–650, 1999.
 [33] J. Kunegis. KONECT – The Koblenz Network Collection. In Proc. Int. Conf. on World Wide Web Companion, pages 1343–1350, 2013.
 [34] J. Kunegis. Applications of structural balance in signed social networks, 2014. arXiv:1402.6865.
 [35] J. Kunegis, E. W. De Luca, and S. Albayrak. The link prediction problem in bipartite networks. In Proc. Int. Conf. in Information Processing and Management of Uncertainty in Knowledgebased Systems, pages 380–389, 2010.
 [36] J. Kunegis and J. Fliege. Predicting directed links using nondiagonal matrix decomposition. In Proc. Int. Conf. on Data Mining, pages 948–953, 2012.
 [37] J. Kunegis, G. Gröner, and T. Gottron. Online dating recommender systems: The splitcomplex number approach. In Proc. Workshop on Recommender Systems and the Social Web, pages 37–44, 2012.
 [38] J. Kunegis and A. Lommatzsch. Learning spectral graph transformations for link prediction. In Proc. Int. Conf. on Machine Learning, pages 561–568, 2009.
 [39] J. Kunegis, A. Lommatzsch, and C. Bauckhage. The Slashdot Zoo: Mining a social network with negative edges. In Proc. Int. World Wide Web Conf., pages 741–750, 2009.
 [40] H. Kwak, C. Lee, H. Park, and S. Moon. What is Twitter, a social network or a news media? In Proc. Int. World Wide Web Conf., pages 591–600, 2010.
 [41] D. LibenNowell and J. Kleinberg. The link prediction problem for social networks. In Proc. Int. Conf. on Information and Knowledge Management, pages 556–559, 2003.
 [42] F. Liljeros, C. R. Edling, L. A. N. Amaral, H. E. Stanley, and Y. Åberg. The web of Human sexual contact. Nature, 411:907–908, June 2001.
 [43] G. Linden, B. Smith, and J. York. Amazon.com recommendations: Itemtoitem collaborative filtering. IEEE Internet Computing, 7(1):76–80, 2003.
 [44] U. v. Luxburg. A tutorial on spectral clustering. Statistics and Computing, 17(4):395–416, 2007.
 [45] L. Lü and T. Zhou. Link prediction in complex networks: A survey. Physica A, 390(6):1150–1170, 2011.
 [46] P. Massa, M. Salvetti, and D. Tomasoni. Bowling alone and trust decline in social network sites. In Proc. Int. Conf. Dependable, Autonomic and Secure Computing, pages 658–663, 2009.
 [47] Q. Mei, D. Zhou, and K. Church. Query suggestion using hitting time. In Proc. Int. Conf. on Information and Knowledge Management, pages 469–478, 2008.
 [48] A. Mislove, M. Marcon, K. P. Gummadi, P. Druschel, and B. Bhattacharjee. Measurement and analysis of online social networks. In Proc. Internet Measurement Conf., 2007.
 [49] R. N. Onody and P. A. de Castro. Complex network study of Brazilian soccer players. Phys. Rev. E, 70(3):037103, 2004.
 [50] T. Opsahl. Triadic closure in twomode networks: Redefining the global and local clustering coefficients. Social Networks, 34, 2012.
 [51] P. Schönhofen. Identifying document topics using the Wikipedia category network. Web Intelligence and Agent Systems, 7(2):195–207, 2009.
 [52] M.S. Shang, C.H. Jin, T. Zhou, and Y.C. Zhang. Collaborative filtering based on multichannel diffusion. Physica A, 388(23):4867–4871, 2009.
 [53] M.S. Shang, L. Lü, Y.C. Zhang, and T. Zhou. Empirical analysis of Webbased userobject bipartite networks. Europhys. Lett., 90(4):48006, 2010.
 [54] D. J. Watts and S. H. Strogatz. Collective dynamics of ‘smallworld’ networks. Nature, 393(1):440–442, 1998.
 [55] W. Zachary. An information flow model for conflict and fission in small groups. J. of Anthropological Research, 33:452–473, 1977.
 [56] T. Zaslavsky. Frustration vs. clusterability in twomode signed networks (signed bipartite graphs), 2010. Under revision.
 [57] L. Zheng, L. Song, and P. Eades. Crossing minimization problems of drawing bipartite graphs in two clusters. In Proc. AsiaPacific Symp. on Information Visualisation, pages 33–37, 2005.
 [58] D. Zhou, J. Huang, and B. Schölkopf. Learning with hypergraphs: Clustering, classification, and embedding. In Advances in Neural Information Processing Systems, pages 1601–1608, 2007.
 [59] D. Zhou, S. Orshanskiy, H. Zha, and C. Giles. Coranking authors and documents in a heterogeneous network. In Proc. Int. Conf. on Data Mining, pages 739–744, 2007.