1. A method comprising: (a) embodying data structures on a computer readable medium, the data structures comprising: (i) a plurality of multi-type data objects, each data object including a vector with a plurality of elements of a corresponding respective type, having hidden structures relating the different data object types; (ii) feature matrices, there being a feature matrix corresponding with each data object; (iii) relationship matrices describing pairwise relationships between at least two different types of the data objects; and (iv) weighting matrices; (b) effecting a spectral clustering algorithm on at least one data processing device, the spectral clustering algorithm comprising: (i) assigning, to each of a plurality of vigorous cluster indicator matrices, leading eigenvectors that relate to more than one type of data object, derived from a formula that is a function of the feature matrices, the relationship matrices, the weight matrices and at least one cluster indicator matrix other than the one receiving the assigning; (ii) iteratively improving the vigorous cluster indicator matrices; and (iii) transforming the vigorous cluster indicator matrices into a set of cluster indicator matrices comprising a cluster indicator matrix for each data object; and (c) recognizing a clustering of the elements within a data object based on the cluster indicator matrices.
10. The method of claim 1 , wherein the spectral clustering algorithm comprises using the following algorithm: Input: Relation matrices {R (ij) ∈ n i ×n j } 1≦i≦j≦m , feature matrices {F (i) ∈ n i ×f i } 1≦i≦j≦m , numbers of clusters {k i } 1≦i≦m , weights {w a (ij) , w b (i) ∈ R + } 1≦i≦j≦m , Output: Cluster indicator matrices {C (p) } 1≦p≦m Method: a: Initialize {C (p) } 1≦p≦m with othonormal matrices, b: repeat c: for p = 1 to m do d: Compute the matrix M (p) e: Update C (p) by the leading k p eigenvectors of M (p) , f: end for g: until convergence h: for p = 1 to m do i: transform C (p) into a cluster indicator matrix by k-means, j: end for where n i is a number of elements in data object i; f i is a number of features for data object i M (p) being a joint function of at least w b ( p ) ( F ( p ) ⁡ ( F ( p ) ) T ) , ⁢ ∑ p < j ≤ m ⁢ w a ( pj ) ( ( R ( pj ) ⁢ C ( j ) ⁡ ( C ( j ) ) T ⁢ ( R ( pj ) T ) ) , ⁢ and 1 ≤ j < p ⁢ w a ( pj ) ( ( R ⁢ ( jp ) ) T ⁢ C ( j ) ⁡ ( C ( j ) ) T ⁢ ( R ( pj ) ) ) where C (p) is the vigorous cluster indicator matrix for cluster number p; superscript T indicates the transpose of a matrix; R (ij) n is a relationship matrix indicating a relationship between two data objects X i and X j ; j and p are index variables such that 1≦j, p≦m, j≠p; F (p) is a feature matrix relating to data object p; m is the number of data objects being considered; w b (p) indicates an element of a weighting vector relating to the feature matrices; and w a (jp) and w a (pj) indicate elements of weighting matrices relating to clustering, the weighting matrices being specified by a user.