Visual Mining Large Web-based Hyperbolic Space Using Hidden Links

Many real-world KDD (Knowledge Discovery & Data Mining) applications involve navigation of large hierarchies, for example, internet resources, hot topics on the web, organization charts. Quite often users feel lost, confused, and overwhelmed with many complex displays. This paper discuss a new dynamic “hidden link” technique for linking a large highly connected graph in a simple hyperbolic space without cluttering the display. Only the primary directed non-cyclic links are shown. All other types of links (non-tree /cross-link) are hidden in the property of each node. These hidden links only appear when the user navigates/clicks on the node. “Hidden Link” allows a user to freely focus on the hierarchy of interest. 1. 0 Introduction Recently, there has been a lot of research focused on visual mining of large hierarchies with millions of nodes, such as the World Wide Web structure, organization charts, and files systems, using a hyperbolic tree or space [1,2,3,6,7,8]. For example in Web, data mining, there is an immediate need for users to visualize the content and usage of the web. How to navigate through millions documents to access information on one display is a problem to solve. Hyperbolic space provides an elegant solution to display large hierarchies on a user screen. Hyperbolic space is different from the conventional approaches of laying trees on an Euclidean space. In Euclidean space, the area of a circle to contain nodes grows linearly. In hyperbolic spaces, the area of a circle grows exponentially with respect to its radius. As a result, The approach described in [2, 6] can handle a graph of over 20,000 documents on the web by using a focus and context scheme. Hyperbolic space allows a user to navigate through the nodes and to see the relationship of the visible portion of the space to the entire structure on one single display. It is not like MindMan [4], which requires multiple displays to represent large amount of data sets. The user has to click through display after display to find the information he/she needs. In a directed hierarchical hyperbolic tree, nodes are organized along parent and child relationships. A parent can have many children. A child can have only one parent. For example, in an organization chart hyperbolic tree [1], each employee reports to one manager. A manager has many employees. However, in practice, this may not be sufficient; an employee may report to two managers (one regular manager, one temporary project manager). We need two paths: one to the regular manager, one to the temporary project manager. In a customer support web application, we use a hyperbolic tree [5] to organize large numbers of questions and answers in a hierarchical structure. Questions are parent nodes; Answers are arcs (pointers) to child nodes. A question can have several answers. An answer can lead to more questions and answers. However, it is sometimes necessary for an answer to link to another set of question/answer group (sub-space) which does not directly belong to the hierarchical hyperbolic tree. Based on practical usage and design experience, we have discovered that strict hierarchical tree structures are too restrictive; often, we have a relationship that needs to be linked to a different branch of the tree. In the above examples, we need a separate path to represent the relationship between the employee with his temporary project managers, and to relate the answer with another set of questions. Commercial hyperbolic tree implementations (e.g. [5]) do not support such non-tree/cross edges. One solution would be to depict these relationships with additional lines. However, this solution could introduce thousands of lines and intersections. Also, for far away nodes that are off the screen, it would introduce “broken” lines (that do not terminate in a node on the current display). As a result, the hyperbolic space becomes very cluttered and difficult to visualize. Figure 1 illustrates the difficulties of visualizing the multiple paths with existing methods.