Summer Student Report: Author Clustering on Large Bibliographies

We analyze and design an algorithm for clustering large sets of authors in Bibliographies. Not considering a distance function for a mutual comparison, but transforming the data into a multidimensional metric space, the algorithm described is similar to locally sensitive hashing. The task lies in the field of Record-Linkage. The algorithm was designed and performed based on the data of the CERN Document Server, consisting out of more than 1.7 million metadata entries and is part of the digital assetsmanaging-software invenio. Meant as a prototype, the algorithm performs efficiently, clustering all authors on CDS in under 30 minutes. We will discuss extensions improving the recall rate, wich still remains inferior to the currently used clustering-approach. INTRODUCTION Nowadays, digital bibliographies of big organisations are managed with the help of relational database systems like MySQL. Originating in a library-dominated background though, data is sometimes still organized in an architecture resembling bibliographies and standards of physical libraries, for example, catalogues and indexing systematics like MARC[1]. Managing authorities in this document-centered databases is a challenging task, since for a given name there can be different Authorithies—whereas, in contrast, different variations of an author name can belong to the same author. »John Smith« »John Ellis«, »J. R. Ellis« author 1 author 2 author 3 name affiliation coauthors . name affiliation coauthors . name affiliation coauthors . Figure 1: Illustrative example of the Task: The authorname »John Smith« is used for several authors, whereas »John Ellis« and »J. R. Ellis« both stand for the same author. We propose an algorithm considering multiple available fields as clues, and then successively transforming this data into a metric space with an optimized and weighted encoding; we compress the data applying a projection into a lowdimensional space of Eigenvectors determined by Principal Components Analysis; ultimatively we use a DBSCAN[2] clustering, aided by a KD-tree datastructure to retrieve the similar authors from the Database. USING METRIC SPACE INSTEAD OF COMPARISONS We use a metric space for representing our data. Classical approaches use string distance metrics like Jaccard or Hemming distance. The Jaro-Winkler distance is specially einginered to cope with comparison of names[3]. Since the order this operation imposes on the data does not ensure transitivity, the use of specific string-based distances forces algorithms to compare every pair of datasets. This results in a complexity of O(n2). Figure 2: Visualisation of both approaches: On the left a pairwise similarities on the right neighbors forming clusters in a metric space. Working like this on datasets of over one million entries and thus performing 1 × 1012 comparisons (e.g. distance operations often being computationally intensive) is not practical. To overcome this problem, we encode the data into a metric space. Doing this allows us to use efficient datastructures like KDand ball-trees to perform a fast neighbor lookup, wich is then needed by our clustering algorithm. ENCODING AND WEIGHTING THE DATA In Preparation of clustering, we have to encode the data to transform it into multidimensional vectors. We first retrieve the data and put it in a format just containing lowercase latin characters. Chosing the Encoding As we found out, the representation of a letter to a Number is crucial for a clustering task. While the vovels "o" and "i" are different and thus should have a big distance in encoding, "f" and "v" are quite similar, originating from transliterations of names out of the slawic language families for example. Hence, chosing the right alphabet can provide an efficient clustering-metric, this way. Because we are no experts in the field of linguistics and phonetics, we purely relied on the data. We considered our sample of 1.7 million names being representative to contain most of the similarities. Also, characters that are not used frequently can be used to spread the distance between the more frequent, non-similar characters. We used the explained variance of the next step of the algorithm (PCA) to measure the performance of the current encoding. Making use of simulated annealing parameter optimisation, we retrieved a better alphabet, explaining more variance in datasets even on a few vectors in the PCA: Figure 3: Difference in explained fraction of data between phonetic(green), latin(red) and our optimized(blue) alphabet. We also considered n-Grams for encoding, which showed promising results, but remains future work to look at. Weigthing Data We use a weighting-mechanism to put emphasis on important parts of the names and other information retrieved from the database. For this, we simply scale the according elements on the vectors. Figure 4 shows an exemplary weighting on a name feature, that is actually used. Jonathan___ Richard___ Ellis___ First Name Middle Name Last Name Figure 4: A possible distribution of weights. Note how the first letters are ephasized, since often Initials are given. The last name, which is most prominent in the database, is weighted decreasingly. Other fields being retrieved can be weighted similarly after they have been transformed into numerical data. We normalize the Vectors, such that the vectors independent on their "content" have the same impact on the data compression in the next step. Encoding Missing Data One of the drawbacks a metric featurespace introduces is the encoding of missing Data. It is obvious, that in a single dimension encoding the distance of missing data "_" to all the other characters can never be fair, as presented in the following figure: _abcdefghijklmnopqrstuvwxyz abcdefghijklm_nopqrstuvwxyz _a_b_c_d_e_f_g_h_i_j_k_l_m_ Figure 5: No matter where the missing data is kept, the distance to characters is always unfair: in the first row, missing data is defined as zero which can make comparisons irrelevant in geometric distances. The second row tries to have a fair distribution of distances. On the third row missing data is encoded with a random odd string, while actual existing data is encoded with even numbers, trying to achieve statistical fairness. We decided to use the unfair, but faster encoding with missing data in the center of the encoding alphabet since we could not use a geometric distance computation in specialized datastructures providing a logarithmic neigbor search behavior. Also we decided against the statistically fair last approach. EIGENVECTOR BASED COMPRESSION Text-centered data is highly correlated. In fact, in our case, correlation is bloating the recognition and clustering of authors. In our case, we decided to keep vectors of length of the original data, consisting out if the first, last and two middle names, as well as—if avaiable—the affiliation, e-mail, and IDs provided in other Library systems. This 100-dimensional vectors are then reduced to 5 to 10 dimensions. We thus avoid the so-called curse of dimensionality in clustering and fast neighbor search algorithms. Principal Components Analysis We use a Principal Components Analysis, which compresses the data down to the space of its first and most expressive Eigenvectors, being retreived with the help of Singular Value Decomposition. Figure 6: Illustrative Example of decorrelation and compression based on a projection to the most prevalent eigenvectors. For explanatory reasons, here two highly correlated dimensions are compressed. Note, this compression also weights data based on the availability of variance in the vector. This makes shure the less available datafields in the vector are considered less which reduces the missing-data-encoding error explained in the previous section. Space Filling Curves Traditionally, spacial hashes are implemented or improved by space-filling curves, wich preserve the spacial distance up to a certain error, while reducing dimensionality. A Hilbert Curve as depicted in the following figure would be one example: Figure 7: A Hilbert Curve reducing the dimensionality of a spacial distribution, while trying to preserve locality of the given points. One advantage of this concept is the good fitting to our vectorized, but discrete data. Accessing one field of data instead of two for a fast neighbor search also reduces cachepollution in the execution of the program. Still, we decided against using this concept since it is only practical for dimensionalities of two and three. In higher dimensions the overhead of index computation becomes too expensive and the minimum-locality-error in high dimensionalities becomes too large. DBSCAN CLUSTERING AND SIMILARITY SEARCH We use the DBSCAN algorithm for clustering. DBSCAN The algorithm considers dense regions within the data as clusters, that it then further extends based on a minimum cluster-distance . It might occasionally visit datapoints multiple times in the course of the analysis. Still the overall complexity is domitated by the range-query of neighbors[2].