# Patent

## Title
Producing a visual summarization of text documents

## Abstract

A method and system of producing a visual text summarization. According to the method, a plurality of topics may be extracted from a collection of text documents, where each of the topics comprises a distribution of topic keywords. An importance ranking for each of the topics may be determined, and an importance ranking for each of the topic keywords of a topic may also be determined. A graph may be displayed having a plurality of stacked layers representing a group of topics selected from the plurality of topics based on the importance ranking of the topics. A keyword cloud within each layer of the graph may also be displayed, where the one keyword cloud is a group of topic keywords selected from the extracted topic keywords based on the importance ranking of the extracted topic keywords.

## Background
BACKGROUND OF THE INVENTION
The present invention relates to a method of producing a visual summarization of text documents. More specifically, the present invention relates to a visual text analysis tool to aid users in analyzing a large collection of text documents. The location of critical information in a large collection of text documents, and/or gleaning of useful insights from such a collection, can be time consuming and laborious. An example of a large collection of text documents is a collection of emails.
To help cope with large collections of text documents, a number of tools have been developed to facilitate analysis. While many tools allow a user to run a simple text search through such a collection of documents, such a text search is of limited value in identifying, for example, patterns of appearances for particular terms. Further, data visualization tools have also been developed to facilitate data analysis but none facilitate a comprehensive analysis utilizing both meta data and data content.
The existing techniques are inadequate to support complex analyses required by many real-world applications. An example of a real-world application is a document review process that occurs during an investigation or discovery phase of litigation, where a reviewer may wish to analyze a large collection of documents to quickly and easily identify relevant documents to a particular issue or topic. The existing techniques are not practical because they do not provide the in-depth analysis required or are too time consuming.
SUMMARY OF THE INVENTION
Embodiments of the present invention provide a text analysis tool that integrates an interactive visualization with text summarization to visually summarize a collection of text documents.
In particular, an embodiment of the invention provides a method of producing a visual text summarization. A plurality of topics may be extracted from a collection of text documents, where each of the topics comprises a distribution of topic keywords. An importance ranking for each of the topics may be determined, and an importance ranking for each of the topic keywords of a topic may also be determined. A graph may be displayed having a plurality of stacked layers representing a group of topics selected from the plurality of topics based on the importance ranking of the topics. A keyword cloud within each layer of the graph may also be displayed, where the one keyword cloud is a group of topic keywords selected from the extracted topic keywords based on the importance ranking of the extracted topic keywords.
Another embodiment of the invention provides a system for producing a visual text summarization. A data storage device may store a collection of text documents. A text document pre-processor module may extract content and metadata from the collection of text documents. A topic summarizer module may extract a set of topics, associated probabilistic distributions and topic keywords from the context and meta data of the collection of text documents. A text visualizer module may transform the set of topics, the associated probabilistic distributions and the topic keywords into a visual text summarization. Lastly, a display device may display the visual text summarization.
Another embodiment of the invention provides a computer readable article of manufacture tangibly embodying computer readable instructions which when executed causes a computer to carry out the steps of the method described above.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram that shows a visual text summation system according to embodiments of the present invention.
FIG. 2 is a flow chart that shows a process of visually summarizing textual information according to an embodiment of the present invention.
FIG. 3 is a flow chart that shows further details of a process of visually summarizing textual information according to an embodiment of the present invention.
FIG. 4 shows a visual text summarization according to an embodiment of the present invention.
FIG. 5 shows an alternative layout for a visual text summarization according to another embodiment of the present invention.
FIG. 6 shows a visual text summarization utilizing a fish eye technique to display more detail of a topic according to an embodiment of the present invention.
FIG. 7 shows a visual text summarization displaying sender and receiver meta data according to an embodiment of the present invention.
FIG. 8 shows a visual text summarization displaying snippets of text documents relevant to a specific topic keyword according to an embodiment of the present invention.
FIG. 9 shows a process flowchart of another preferred embodiment of the present invention.
FIG. 10 shows an illustration of two-sided hidden Markov random field regularized Information Theoretic Co-Clustering.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Embodiments of the present invention provide a text analysis tool that integrates an interactive visualization with text summarization to visually summarize a collection of text documents. In embodiments, the text summarization may involve extracting topics and topic keywords from a collection of text documents, with a topic representing the thematic content common to the collection of text documents and each topic being characterized by a distribution over a set of topic keywords. Each keyword may have a probability that measures the likelihood of the keyword appearing in the related topic. The interactive visualization may be a visual text summarization, particularly, a stacked graph wherein each layer represents a different topic.
FIG. 1 is a block diagram that shows a visual text summation system according to embodiments of the present invention. FIG. 1 shows a collection of text documents 101, a visual text summarization tool 110, and a display 105. A collection of text documents may be, for example, email messages, news articles, financial documents, etc. Collection of text documents 101 may be stored in one or more memory devices, such as a disk drive, random access memory (RAM), etc., and may be part of the same system or stored separately from visual text summation tool 110. Visual text summation tool 110 may be a software application that is executing on a computer system, such as a person computer system, a laptop computer, a server, ext. As shown in FIG. 1, visual text summarization tool 110 includes a text document pre-processor 101, a topic summarizer 103, and a text visualizer 104. In embodiments, pre-processor 101, topic summarizer 103, and text visualizer 104 may be embodied in separate software modules in visual text summarization tool 110. As also show, the system may include a display 105 that is coupled to visual text summarization tool 110 and may be any type of display device on which a graph may be shown. In FIG. 1, display 105 is shown displaying visualization 115.
As shown in FIG. 1, the input to the text document pre-processor 102 may be the collection of text documents 101, and the output of the text document pre-processor 102 may be a collection of text document content and metadata 112. The metadata can include a time stamp, sender information and receiver information. The collection of text document content and metadata 112 that is output from the text document pre-processor 102 may be sent to the topic summarizer 103 that may extract a set of topics, associated probabilistic distributions and topic keywords 113. This output may be provided to the text visualizer 104, which may transform the summarization results into a comprehensible visual summary. Finally, the visual summary may be output to a display 105 where a user can interact with it and further examine the analysis results or express new analysis needs. As shown in FIG. 1, the visual summary may be represented as a stacked graph such as visualization 115, which is discussed in more detail with reference to FIGS. 4-8.
FIG. 2 is a flow chart that shows a process of visually summarizing textual information according to an embodiment of the present invention. This process may be implemented using the visual text summarization tool 110 of FIG. 1. As an example of the implementation of the process of FIG. 2, a user may execute text visualization summary tool 110 and input a collection of text documents 101, such as a collection of email messages that was obtained during the discovery phase of a litigation matter. The process starts at step 201. At step 202 the process extracts topics and topic keywords from the collection of text documents. This step may be performed by topic summarizer 103 of FIG. 1. The topics and topic keywords may be extracted from the collection of text documents using any known text analysis method. Examples of text analysis methods include text categorization techniques, text clustering techniques, latent semantic models, or other text mining techniques. The topics may be a set of topic keywords that allow a user to understand what information may be included in the documents pertaining to the topic. In the context of the litigation example, these topics may represent topics in conversations between victim and suspect, or topics that may incriminate a suspect in fraud. At step 203 the process determines an importance ranking for each topic. In the context of FIG. 1, step 203 may also be performed by topic summarizer 103. The method of determining the importance ranking for each topic can vary depending on the specific criteria or application. Examples of methods of determining importance ranking include (i) using a weighted mean and standard deviation of topic distributions, (ii) using Laplacian scores of topics, (iii) using pairwise mutual information of topics and (iv) using topic similarity between topics. At step 204 the process determines an importance ranking for each of the topic keywords in each topic. Again, the method of determining an importance ranking for each topic keyword within a topic can vary depending on the specific criteria. The methods of determining an importance ranking for topics and topic keywords will be described in detail later. Step 204 may also be implemented by topic summarizer 103 of FIG. 1. Continuing with step 205 the process displays a graph having layers representing the top N ranked topics and time-specific topic keyword clouds within the layers representing the top N ranked topic keywords within each topic. The top N topics and top N topic keywords correspond to the highest N importance ranked topics and topic keywords respectively. Examples of the graph displayed are shown as visualization 115 and 115a-115e of FIGS. 1 and 4-8. Step 205 may be implemented by text visualization 104 and display 105 of FIG. 1. Finally, the process ends at step 206.
FIG. 3 shows a process flowchart of an embodiment of the present invention. In the preferred embodiment shown in FIG. 3 the collection of text documents is a collection of emails. The process starts at step 301. At step 302 the process applies a latent semantic model, preferably, a latent Dirichlet allocation model to extract topics and topic keywords from a collection of emails. The latent Dirichlet allocation model will be described in detail later. At step 303 the process determines an importance ranking for each topic by calculating a Laplacian score for each topic and multiplying by a measure of the email read or reply count. The calculating of the Laplacian score, along with other importance ranking methods, will be described in detail later. At step 304 the process determines an importance ranking for each topic keyword using a term frequency-inverse document frequency (tf-idf) metric. The tf-idf metric will be described in detail later. Continuing with step 305 the process displays a graph having layers representing the top N ranked topics and time-specific topic keyword clouds within the layers representing the top N ranked topic keywords within each topic. The top N ranked topics and top N ranked topic keywords correspond to the highest N importance ranked topics and topic keywords respectively. Then, in step 306 the process colors the layers in the graph such that layers representing semantically similar topics use a same color with different hues. The semantic similarity of two topics is based on counting the number of the same documents belonging to both of them. Next, in step 307, the process orders the layers in the graph by balancing the following criteria: (i) layers having less volatility are placed closer to the reference line, (ii) layers representing semantically similar topics are adjacent and (iii) layers are ordered to maximize available space for keywords. The method used to order the layers will be described in detail later. Finally, the process ends at step 206.
In the preferred embodiment of the invention shown in FIG. 3, the step of extracting topics and topic keywords from a collection of text documents is carried out using a latent semantic model, as shown in step 302. Latent semantic models are effective for topic modeling and analysis of a collection of text documents. A preferred latent semantic model is a latent Dirichlet allocation (LDA) model as disclosed in D. Blei, A. Ng, and M. Jordan, “Latent Dirichlet Allocation”, Journal of Machine Learning Research, 3:993-1022 (2003), the entire contents of which are incorporated herein by reference.
The preferred embodiment of the invention shown in FIG. 3 applies the LDA model to summarize an email collection at two levels. First, the LDA model is used to automatically extract a set of latent topics from the collection of text documents shown in step 302. Second, a keyword selection method is used to extract a set of document keywords from each text document in the collection of text documents using the results of the LDA model (step not shown in FIG. 3).
The LDA model is an unsupervised probabilistic topic modeling technique that automatically infers hidden variables reflecting the thematic structure of a collection of text documents. It is a word-based generative model that treats each document as a finite mixture over an underlying set of hidden themes. Moreover, each theme has a specific distribution of words. Given a collection of documents, statistical inference techniques are used to invert the generative process and derive the latent themes in the corpus as well as the document-specific topic mixtures.
More specifically, the corpus is denoted as D={d1, d2, . . . , dM} where dm is a document and M is the corpus size. Each document has a sequence of words Wm={wm,1, wm,2, . . . , wm, Nm}, where Nm is the number of words in each document. The dictionary is denoted as V={v1, v2, . . . , vV}, where the vocabulary size is V. Moreover, z is a latent variable representing the latent topic associated with each observed word. We denote Zm={zm,1, zm,2, . . . , zm, Nm} as the topic sequence associated with the word sequence Wm.
The generative procedure of LDA can be formally defined as:
1. For all the topics kε[1,K]:

    
    
        Choose a word distribution φk ̃Dir(φ|β).
    
    


2. For each document mε[1,M]:
2.1. Choose Nm ̃Poisson(ξ)
2.2. Choose a topic distribution θm ̃Dir(θ|α).
2.3. For all the words wm,n where nε[1,Nm] in document dm:

    
    
        Choose a topic index zm,n ̃Mult(z|θm).
        Choose a word wm,n ̃Mult(w|φzm;n).
    
    


Assuming φk=(φk,1, φk,2, . . . , φk,V)TεRV where φk,i=p(w=vi|z=k), then, the parameters for the topic mixtures of LDA can be represented as Φ=(φ1, φ2, . . . , φK)TεRK×V where K is the topic number. Similarly, if we denote θm=(θm,1, θm,2, . . . , θm,K)TεRK where θm,k=p(z=k|dm). Then the parameters for the document mixture of LDA is Θ=(θ1, θ2, . . . , θM)TεRM×K.
Inferencing a topic model given a set of training documents mainly involves estimating the document-topic distribution Θ and the topic-word distribution Φ. Since the maximum a posterior (MAP) estimation is intractable due to the coupling between model parameters and the hyperparameters, approximations are often used, such as collapsed Gibbs sampling and variational techniques.
An embodiment of the invention uses Gibbs sampling which is an MCMC algorithm. In each iteration of Gibbs sampling, the embodiment of the invention samples a topic assignment for each word in each document based on topic-word co-occurrences and document-topic co-occurrences. Finally, after the result converges, the embodiment of the invention estimates the expected posterior of Dirichlet distribution for Θ and Φ using the following formulas:



  
    
      
        θ
        ^
      
      
        m
        ,
        k
      
    
    =
    
      
        
          u
          
            
              d
              m
            
            ,
            k
          
        
        +
        
          α
          k
        
      
      
        
          ∑
          
            k
            =
            1
          
          K
        
        ⁢
        
          (
          
            
              u
              
                
                  d
                  m
                
                ,
                k
              
            
            +
            
              α
              k
            
          
          )
        
      
    
  




  
    
      
        φ
        ^
      
      
        k
        ,
        t
      
    
    =
    
      
        
          u
          
            k
            ,
            vi
          
        
        +
        
          β
          i
        
      
      
        
          ∑
          
            i
            =
            1
          
          V
        
        ⁢
        
          (
          
            
              u
              
                k
                ,
                vi
              
            
            +
            
              β
              i
            
          
          )
        
      
    
  



where uk,vi represents the count of topic k being assigned to word vi and udm,k represents the count of topic k being assigned to any word in document dm.

Although LDA is effective in discovering latent topics, the native order of the topics and topic keywords resulting from LDA is not ideal for direct user consumption. The LDA derived topics and topic keywords are statistically inferred and some topics and topic keywords having a high statistical order may not be considered important to a user. Consider, for example, an email collection. In an email collection there may be many emails containing disclaimers or other boilerplate language from which an LDA model would extract topics and topic keywords that a user would not consider important even though they have a high statistical value. Further, in an email collection there may be a large amount of newsletters or junk mail from which an LDA model would extract topics and topic keywords that a user would not consider important. Similarly, in the case of topic keywords, if the collection of text documents was a collection of financial news document then common words in finance, for example ‘Wall’ and ‘Street’, would have a high statistical value but not a high importance ranking to the user.
Therefore, referring back to FIG. 2, the present invention includes the step 203 of determining an importance ranking for each topic and the step 204 of determining an importance ranking for each topic keyword. However, in general, the definition of importance may vary from one user to another. As such, the methods used to carry out steps 203 and 204 can vary in order to focus on optimizing the importance rankings based on specific criterion.
In the preferred embodiment of the invention shown in FIG. 3, the step of determining an importance ranking for each topic is carried out by calculating a Laplacian score for each topic 303. The Laplacian score of a topic focuses on discriminating documents from different classes. In other words, the Laplacian score method is motivated by the observation that two similar documents are probably related to the same topic while documents that are dissimilar probably belong to different topics. The Laplacian score of a topic reflects its power in discriminating documents from different classes and preserving the local structure of a document collection. The Laplacian score-based topic ranking method assigns high ranks to those topics with high discriminating power. It consists of five main steps:
1. Represent each document dm as a node in a graph. Its features are represented by θm.
2. Construct the T-nearest neighbor graph based on a similarity matrix S where Sij=exp {−d2ij/2σ2}. Here, dij can be either Euclidian distance or Hellinger distance.
3. Compute graph Laplacian L=D−S where D is a diagonal matrix and Dii=ΣMj=1 Sij is the degree of the ith vertex.
4. For each topic tk=(θ1,k, θ2,k, . . . , θM,k)TεRM, let




  
    
      t
      ~
    
    k
  
  =
  
    
      t
      k
    
    -
    
      
        
          
            t
            k
            T
          
          ⁢
          D
          ⁢
          
            
          
          ⁢
          1
        
        
          
            1
            k
            T
          
          ⁢
          D
          ⁢
          
            
          
          ⁢
          1
        
      
      ⁢
      1
    
  




Here, 1=[1, 1, . . . 1]T.

5. Compute the Laplacian score of the k-th topic:




  
    L
    k
  
  =
  
    
      
        
          t
          ~
        
        k
        T
      
      ⁢
      L
      ⁢
      
        
          t
          ~
        
        k
      
    
    
      
        
          t
          ~
        
        k
        T
      
      ⁢
      D
      ⁢
      
        
          t
          ~
        
        k
      
    
  




To find the T-nearest neighbors of a topic, we keep a T-size heap. For each topic, we compute its distances to all the other topics and then check whether to insert it to the heap. Thus, the main time complexity is in graph Laplacian construction which is O(M2K+M2 log T).
The step of determining an importance ranking for each topic is not limited to calculating a Laplacian score.
In another preferred embodiment, the step of determining an importance ranking for each topic is carried out by multiplying a mean distribution of each topic over the collection of text documents times a standard deviation of each topic over the collection of text documents. In this way, the importance ranking is a combination of both content coverage and topic variance. Specifically, the weighted mean distribution is calculated as follows:




  
    μ
    ⁡
    
      (
      
        z
        k
      
      )
    
  
  =
  
    
      
        ∑
        
          m
          =
          1
        
        M
      
      ⁢
      
        
          N
          m
        
        ·
        
          
            θ
            ^
          
          
            m
            ,
            k
          
        
      
    
    
      
        ∑
        
          m
          =
          1
        
        M
      
      ⁢
      
        N
        m
      
    
  




and the standard deviation is calculated as follows:





  
    σ
    ⁡
    
      (
      
        z
        k
      
      )
    
  
  =
  
    
      
        
          ∑
          
            m
            =
            1
          
          M
        
        ⁢
        
          
            N
            m
          
          ·
          
            
              (
              
                
                  
                    θ
                    ^
                  
                  
                    m
                    ,
                    k
                  
                
                -
                
                  μ
                  ⁡
                  
                    (
                    
                      z
                      k
                    
                    )
                  
                
              
              )
            
            2
          
        
      
      
        
          ∑
          
            m
            =
            1
          
          M
        
        ⁢
        
          N
          m
        
      
    
  




where the weight Nm is the document length.

Then the rank of a topic is defined as:

Pk(μ(zk))λ1·(σ(zk))λ2 

where λ1 and λ2 are control parameters. Specifically, if λ1=1 and λ2=0, the ranking is determined purely by topic coverage. In contrast, if λ1=0 and λ2=1, the rank is simply determined by topic variance.

In yet another preferred embodiment, the step of determining an importance ranking for each topic is carried out by ranking the topics based on the greatest pair-wise mutual information. The mutual information of two topics measures the information they share or how much knowing one of the topics reduces uncertainty of the other. By ranking the topic with the greatest pair-wise mutual information first it can reduce the uncertainty about the other topics. Specifically, in the preferred embodiment, the following procedure is used to determine the rank of each topic.
1. For ∀i,j, first compute MI/(ti, tj) based on the topic distributions of ti and tj. Then construct a complete graph G where the weight of an edge eti,tj is MI(ti, tj).
2. Build the maximal spanning tree MST of the complete graph G.
3. Define the relevant topic set Rt={t1, t2, . . . , tK} and the corresponding edges in MST.
4. While |Rt|>0,

    
    
        4.1. if ∃vεG that is not connected to the others in Rt, remove this topic tv (Rt←Rt−tv).
        4.2. otherwise remove the least weighted edge in Rt.
    
    


5. Rank the topics according to the order in which they were removed. Rank the topic removed last the highest.
The Prime's algorithm is used to construct the MST. Thus, to compute pairwise mutual information for topic importance needs O(K2M). By using a heap to construct a priority queue, a MST can be built in O(|ε|log|V|)=K2 log K time since a complete graph is used.
In yet another preferred embodiment, the step of determining an importance ranking for each topic is carried out by using a topic similarity algorithm. The topic similarity algorithm is used to maximize topic diversity and minimize redundancy.
1. For ∀i,j compute the similarity sij for φi and φj based on maximal information compression index.
2. Sort the similarities for each topic.
3. Define the reduced topic set Rt={φ1, φ2, . . . , φK}.
4. While |Rt|>0, remove φj in Rt which satisfies j=arg maxi maxj sij.
5. The rank of a topic is determined by the topic removal order. The topic removed the last should rank the highest.
In this algorithm, constructing the similarity scores needs O(K2M) and sorting the scores needs O(K2 log K).
In the preferred embodiment of the invention shown in FIG. 3, the step of determining an importance ranking for each topic also takes into account email meta data 303. All the methods of determining an importance ranking for each topic as described above were application independent. However, application-specific information such as email meta data can be used to calculate a topic's importance. Specifically, if a topic mainly includes email messages that have not been read then this topic will have a lesser importance ranking. In contrast, if a topic includes email messages that not only have been read but also replied to then this topic will have a higher importance ranking. For example, the following reply count can be used to account for email meta data in determining an importance ranking for each topic:




  
    r
    k
    
      (
      reply
      )
    
  
  =
  
    
      ∑
      m
      M
    
    ⁢
    
      
        
          θ
          ^
        
        
          m
          ,
          k
        
      
      ⁡
      
        (
        
          
            
              
                λ
                1
              
              ·
              
                (
                
                  #
                  ⁢
                  
                    
                  
                  ⁢
                  self
                  ⁢
                  
                    
                  
                  ⁢
                  reply
                
                )
              
            
            ⁢
            
              d
              m
            
          
          +
          
            
              
                λ
                2
              
              ·
              
                (
                
                  #
                  ⁢
                  
                    
                  
                  ⁢
                  other
                  ⁢
                  
                    
                  
                  ⁢
                  reply
                
                )
              
            
            ⁢
            
              d
              m
            
          
        
        )
      
    
  




where (#self reply)dm is the reply count by the email owner for document dm, (#other reply)dm is the reply count by others for document dm, and λ1 and λ2 are control parameters. To incorporate rk(reply), this value is multiplied with the values of importance computed from the application independent methods described above, for example, in step 303 the Laplacian score method of computing values of importance are multiplied by rk(reply).

Referring again to FIG. 3, at step 304 the process determines an importance ranking for each topic keyword using a term frequency-inverse document frequency (tf-idf) metric. Below are two LDA-types of tf-idf scores:



  
    
      Type
      ⁢
      
        -
      
      ⁢
      I
      ⁢
      
        
      
      ⁢
      TFIDF
    
    =
    
      
        
          φ
          ^
        
        
          k
          ,
          i
        
      
      
        
          ∑
          
            k
            =
            1
          
          K
        
        ⁢
        
          
            φ
            ^
          
          
            k
            ,
            i
          
        
      
    
  




  and




  
    
      Type
      ⁢
      
        -
      
      ⁢
      II
      ⁢
      
        
      
      ⁢
      TFIDF
    
    =
    
      
        
          
            φ
            ^
          
          
            k
            ,
            i
          
        
        ·
        log
      
      ⁢
      
        
          
            φ
            ^
          
          
            k
            ,
            i
          
        
        
          
            (
            
              
                ∏
                
                  k
                  =
                  1
                
                K
              
              ⁢
              
                
                  φ
                  ^
                
                
                  k
                  ,
                  i
                
              
            
            )
          
          
            1
            K
          
        
      
    
  



where TF represents the native value of importance for a topic generated by the LDA model. (TF=φk,i). The topic proportion sum and topic proportion product are used respectively in Type-I and Type-II TFIDF to re-weight the TF scores.

The importance ranking for each of the topic keywords is based on their importance to a topic and to a specific time frame. The importance ranking of a topic keyword is computed for a time t.
Referring back to FIG. 3, in step 307, the process orders the layers in the graph by balancing the following criteria: (i) layers having less volatility are placed closer to the reference line, (ii) layers representing semantically similar topics are adjacent and (iii) layers are ordered to maximize available space for keywords. The visual summarization produced by the preferred embodiments of the invention is a stacked graph. Meaning each topic current is a layer and each layer is stacked on the layer below it. The stacking order of the topic layers impacts the legibility and aesthetics for the user. Further, the stacking order can also affect the usable space for displaying the topic keywords.
First, the volatility of each topic layer is computed based on its curvature. The volatility metric corresponds to how much the topic strength varies over time. Second, the topic layers are sorted based on their volatility and start times. The least volatile topic with the earliest start time is placed nearest to the x-axis. Third, the next topic layer is added either on the opposite side of the reference line from the first topic layer and stacked on the first topic layer. The next topic layer is selected based on start time, volatility, semantic similarity with the previously added topic, and geometric complementariness with the previous topic. The above criteria can be weighted differently. Geometric complementariness is calculated using the following formula:




  
    GC
    ⁡
    
      (
      
        
          T
          i
        
        ,
        
          T
          j
        
      
      )
    
  
  =
  
    
      
        w
        1
      
      ×
      
        
          max
          ⁡
          
            (
            
              
                d
                ij
              
              ⁡
              
                (
                t
                )
              
            
            )
          
        
        
          
            ∑
            t
          
          ⁢
          
            
              d
              ij
            
            ⁡
            
              (
              t
              )
            
          
        
      
    
    +
    
      
        w
        2
      
      ×
      
        
          
            F
            σ
          
          ⁡
          
            (
            
              
                d
                ij
              
              ⁡
              
                (
                t
                )
              
            
            )
          
        
        .
      
    
  




Here, weights w1=0.5, w2=0.5; dij(t) is the vertical distance between a pair of points pi of Ti and pj of Tj at time t; Fσ computes the standard deviation of the pair-wise distances.

The above approach balances all three layer-ordering criteria. First, it places the “flatter” topic currents toward the center of the graph and curvier ones along the edge to minimize the layer distortion. Second, it neighbors geometrically complementary topic currents to maximize the usable space within each layer. Third, it groups semantically similar topic currents together to facilitate topic association and comparison.
In both FIG. 2 and FIG. 3 the processes shown include a step of displaying time-specific topic keyword clouds within the layers of the visual summarization. Laying out these keyword clouds in a topic layer is non-trivial because of competing constraints. For example, it is desirable to display as many keywords as possible to informatively describe a topic but at the same time prevent keywords from overflowing across topic layer boundaries.
In an embodiment of the present invention the keyword placement method considers three factors: (1) temporal proximity, (2) content legibility, and (3) content amount. The first factor states that topic keywords be placed near the most relevant time coordinate. The second criterion requires that keywords be legible, such as avoiding keyword occlusions and overflowing across topic boundaries. The third criterion attempts to maximize the use of available space in a topic current to display as many keywords as allowed. The method follows a two-step algorithm to place topic keywords as a series of keyword clouds along the timeline within a topic current.
To locate suitable space for placing a set of topic keywords relevant to time t within a topic current, the neighborhood of t (t±σ) is searched. Let δ be the time unit (δ=ti+1−ti) and σ<0.5δ to ensure that the keywords be placed near t. To ensure the legibility of topic keywords, a minimal legible font size or above can be required. When evaluating the neighborhood of t, there are three possible outcomes.
First, if there is adequate space to fit a set of keywords (K>=10) in the neighborhood of time t, the space is marked. Second, if there is no adequate space within the allowed neighborhood to fit a single keyword with the minimal legible font, these keywords are merged with those derived at time t+δ. The method then advances to the time point t+δ to look for suitable space. If still unable to find suitable space, the method will drop the keywords at t to ensure temporal proximity of the keyword placement. Otherwise, the space found near t+δ is marked. Third, adequate space is found to fit only a few keywords (K<=3). To avoid visual clutter, there should be an attempt minimize the number of scattered keyword clusters within a topic current. Thus, the method looks ahead to check the space around the time point t+δ. If there is ample space (area>φ), the keywords are merged at t and t+δ and placed near t+δ. If both usable areas near t and t+δ are small, the two areas are combined to fit the merged keywords. The above process repeats itself until every set of keywords is processed.
Any keyword cloud packaging method can be used to package the topic keywords into topic keyword clouds. It is desirable that the method used pack the keywords as tightly as possible.
FIG. 4 shows a visual text summarization according to an embodiment of the present invention. In particular, FIG. 4 shows visualization 115a, which is an embodiment of visualization 115 of FIG. 1. In FIG. 4 the topic layers 410 are stacked based on an “inside-out” order such that topic layers are stacked above and below the x-axis. The keyword clouds 420 represent the top N topic keywords within each topic based on a calculated value of importance. In addition to displaying the keyword clouds within a topic layer, a tool tip 430 can be provided to show all the topic keywords associated with the topic. This gives the user a topic overview regardless of its thematic changes. The height of each topic layer 440 varies with the topic strength. If each document includes a time stamp then the topic strength will vary distributed over the time span of the collection of text document. The topic strength for a topic at time t can be calculated using the following formula:




  
    
      S
      i
    
    ⁡
    
      [
      t
      ]
    
  
  =
  
    
      ∑
      
        
          e
          k
        
        ∈
        
          E
          ⁡
          
            (
            t
            )
          
        
      
    
    ⁢
    
      
        l
        ⁡
        
          (
          
            e
            k
          
          )
        
      
      ×
      
        P
        ⁡
        
          (
          
            
              T
              i
            
            ❘
            
              e
              k
            
          
          )
        
      
    
  




Here, ek is the kth email in collection E(t), which is the set of emails at time t. Function I(ek) computes the normalized length of email ek, while P(Ti|ek) calculates the distribution of topic Ti in email ek. Topics with larger topic strength are covered by more documents in the collection. Visually, the topics with larger topic strength appear wider.

FIG. 5 shows an alternative layout for a visual text summarization according to an embodiment of the present invention. In particular, FIG. 6 shows visualization 115b, which is an embodiment of visualization 115 of FIG. 1. The visualization 115b of FIG. 5 is similar to the visualization 115a of FIG. 1, but in FIG. 5 the topic layers 410 are all stacked on top of the x-axis.
FIG. 6 shows a visual text summarization utilizing a fish eye technique to display more detail of a topic according to an embodiment of the present invention. In particular, FIG. 6 shows visualization 115c, which is an embodiment of visualization 115 of FIG. 1. Due to limited space for keywords often only a small subset of topic keywords will be displayed. A user can interactively request more information about a topic by zooming in on the topic. The preferred embodiment of the present invention shown in FIG. 6 uses a fisheye view technique known in the art to display more details of a selected topic 650.
FIG. 7 shows a visual text summarization displaying sender and receiver meta data 760 according to an embodiment of the present invention. The meta data displayed does not need to be sender and receiver data. For example, the meta data displayed can include authors or source information. Further, multiple views can be displayed simultaneously to coordinate analysis.
FIG. 8 shows a visual text summarization displaying snippets 870 of text documents relevant to a specific topic keyword according to an embodiment of the present invention. It is often necessary to examine the meaning of topic keywords in the context of the original text information. To do so, the present invention can allow for a full text document to be selected from the visual summarization. Additionally, the present invention allows for displaying snippets 870 from multiple text documents as shown in FIG. 8.
FIG. 9 shows a process flowchart for another preferred embodiment of the present invention. Steps 901-904 are the same steps as steps 201-204 from FIG. 2 and therefore a detailed description of those steps is omitted. In step 905 the process groups together a subset of text documents in a topic based on a grouping constraint and selects a subset of topic keywords that summarize the content of the subset of text documents. In step 906 the process displays a graph with layers representing the top N topics and displays time-specific topic keyword clouds within the layers representing the top N topic keywords from the subset of text documents summarizing the subset of text documents. Then, the process ends at step 907.
To support more sophisticated text analytics such as topic trend analysis there is a need to drill down to a particular topic and derive additional information for each topic. In the preferred embodiment of the present invention shown in FIG. 9 a multi-faceted topic keyword selection method is employed in which documents within a particular topic are further grouped based on certain grouping constraints. Additionally, the most appropriate topic keywords are selected to summarize the content of each group. Depending on the grouping constraints employed, the proposed method can be used to solve different problems. For example, the documents in a topic can be grouped by time. Thus, the topic keywords selected for each group along the time line reflect the content evolution of a topic. In addition, if the documents are grouped based on geographic regions, the keywords selected convey the topic variance across different geo-regions. Similarly, other grouping aspects such as author, affiliation or document source can be employed.
Two types of general grouping constraints include “must-link” and “cannot-link”. For example, for time-based topic summarization, if all the documents are sorted based on their time stamps, then there is a must-link between documents from adjacent time stamps. For geographic region based topic summarization, there is a must-link between documents from the same geo-region and cannot-link between those from different geo-regions. An author-based keyword selection can also be formulated similarly. Without loss of generality, it is assumed words can have pairwise constraints.
An embodiment of the present invention uses a novel biHMRF (two-sided hidden Markov random field) regularized information theoretic co-clustering algorithm (biHMRF-ITCC) to group documents. Information theoretic co-clustering is used since it can co-cluster documents and words and find the cluster relationships. Employing document clustering is more flexible than using fixed topic segmentation. For example, for time-based topic segmentation, if a topic is segmented based on fixed time points such as every month, if the document contents from two adjacent months are very similar, the same set of topic keywords may be repeatedly displayed for both months. In contrast, with document clustering, document sets can be combined to avoid redundancy. Moreover, the information theoretic co-clustering algorithm does not restrict the number of document and word clusters to be the same. Thus, groups of documents can be extracted that share the same keyword clusters so that different document clusters may share the same keywords.
FIG. 10 shows an illustration of two-sided hidden Markov random field regularized Information Theoretic Co-Clustering. The documents and words from a topic are denoted as D′={d1, d2, . . . , dM′} and V′={v1, v2, . . . , vV′}, respectively. Both D′ and V′ can be obtained easily from the LDA inference results. The co-occurrence count for dm and vi is denoted as udm,vi. The joint probability of p(dm, vi) can be computed. Since it is a hard clustering problem, a variational function:

q(dm,vi,{circumflex over (d)}kd,{circumflex over (v)}kv)=p({circumflex over (d)}kd,{circumflex over (v)}kv)p(dm|{circumflex over (d)}kd)p(vi|{circumflex over (v)}kv)

is used to approximated p(dm, vi) by minimizing the Kullback-Leibler (KL) divergence, where dkd and vkv are cluster indicators, kd and kv are cluster indices, and Kd and Kv are the numbers of documents and word clusters.

As shown in FIG. 10, two latent label sets are introduced Ld={ld1, ld2, . . . , ldM′} and Lv={lv1, lv2, . . . lVv′}. udm,vi is also regarded as observed random variables. Then the original information theoretic co-clustering problem can be formulated as the log-likelihood of a conditional probability in the exponential family:

p(D′,V′|Ld,Lv)=exp(−DKL(p(D′,V′,{circumflex over (D)},{circumflex over (V)})∥q(D′,V′,{circumflex over (D)},{circumflex over (V)}))bφKL(·)

where bφKL(·) is a normalization constant determined by its divergency type {circumflex over (D)} and {circumflex over (V)} are the center sets.

Next, the prior distributions are formulated for both latent labels. Here, the focus is on deriving the prior for Ld. The derivation for Lv is relatively simple. First, for Latent variables ldm, a neighborhood graph is constructed based on the must-links and cannot-links. For a document dm, the must-link set is denoted as Mdm, and the cannot-link set is Cdm. Moreover, the neighbor set for dm is defined as Ndm={Mdm, Cdm}. The random field defined on this neighborhood graph is a Markov random field, following the Markov property: p(ldm|Ld−{ldm})=p(ldm|ldmεNdm). Then the configuration of the latent label set can be expressed as a Gibbs distribution. Following the generalized Potts energy function and its extension, the following equation is derived:




  
    p
    ⁡
    
      (
      
        L
        d
      
      )
    
  
  =
  
    
      1
      
        Z
        d
      
    
    ⁢
    
      exp
      (
      
        -
        
          
            ∑
            
              d
              
                m
                1
              
            
            
              M
              ′
            
          
          ⁢
          
            
              ∑
              
                
                  d
                  
                    m
                    2
                  
                
                ∈
                
                  N
                  ⁢
                  
                    
                  
                  ⁢
                  
                    d
                    
                      m
                      1
                    
                  
                
              
            
            ⁢
            
              V
              ⁡
              
                (
                
                  
                    d
                    
                      m
                      1
                    
                  
                  ,
                  
                    d
                    
                      m
                      2
                    
                  
                
                )
              
            
          
        
      
      )
    
  




For must-links, the energy function is:

V(dm1,dm2εMdm1)=aijDKL(p(V′|dm1)∥p(V′|dm2))·lldm1≠ldm2 

For cannot-links, the energy function is:

V(dm1,dm2εCdm1)= αij(Dmax−DKL(p(V′|dm1)∥p(V′|dm2)))·lldm1=ldm2 

where p(V′|dm1) denotes a multinomial distribution based on the probabilities (p(v1|dm1), . . . , p(vV′|dm1))T, and Dmax is the maximum value for all the DKL(p(V′|dm1)∥p(V′|dm2)) and ltrue=1 and lfalse=0.

Therefore, the constraint co-clustering problem can be formulated as an MAP estimation problem for label configurations:

p(Ld,Lv|D′,V′)αp(D′,V′|Ld,Lv)p(Ld)p(Lv) 

As there are two HMRF priors for Ld and Lv, this is called biHMRF regularization. Moreover, the objective function can be rewritten as:





  
    {
    
      
        L
        d
      
      ,
      
        L
        v
      
    
    }
  
  =
  
    
      argmin
      ⁢
      
        
      
      ⁢
      
        
          D
          KL
        
        ⁡
        
          (
          
            
              p
              ⁡
              
                (
                
                  
                    D
                    ′
                  
                  ,
                  
                    V
                    ′
                  
                  ,
                  
                    D
                    ^
                  
                  ,
                  
                    V
                    ^
                  
                
                )
              
            
            ∥
            
              q
              ⁡
              
                (
                
                  
                    D
                    ′
                  
                  ,
                  
                    V
                    ′
                  
                  ,
                  
                    D
                    ^
                  
                  ,
                  
                    V
                    ^
                  
                
                )
              
            
          
          )
        
      
    
    +
    
      
        ∑
        
          d
          
            m
            1
          
        
        
          M
          ′
        
      
      ⁢
      
        
          ∑
          
            
              d
              
                m
                2
              
            
            ∈
            
              M
              
                d
                
                  m
                  1
                
              
            
          
        
        ⁢
        
          V
          ⁡
          
            (
            
              
                d
                
                  m
                  1
                
              
              ,
              
                
                  d
                  
                    m
                    2
                  
                
                ∈
                
                  M
                  
                    d
                    
                      m
                      1
                    
                  
                
              
            
            )
          
        
      
    
    +
    
      
        ∑
        
          d
          
            m
            1
          
        
        
          M
          ′
        
      
      ⁢
      
        
          ∑
          
            
              d
              
                m
                2
              
            
            ∈
            
              C
              
                d
                
                  m
                  1
                
              
            
          
        
        ⁢
        
          V
          ⁡
          
            (
            
              
                d
                
                  m
                  1
                
              
              ,
              
                
                  d
                  
                    m
                    2
                  
                
                ∈
                
                  C
                  
                    d
                    
                      m
                      1
                    
                  
                
              
            
            )
          
        
      
    
    +
    
      
        ∑
        
          v
          
            i
            1
          
        
        
          V
          ′
        
      
      ⁢
      
        
          ∑
          
            
              v
              
                i
                2
              
            
            ∈
            
              M
              
                
                  
                
                ⁢
                
                  v
                  
                    i
                    1
                  
                
              
            
          
        
        ⁢
        
          V
          ⁡
          
            (
            
              
                v
                
                  i
                  1
                
              
              ,
              
                
                  v
                  
                    i
                    2
                  
                
                ∈
                
                  M
                  
                    v
                    
                      i
                      1
                    
                  
                
              
            
            )
          
        
      
    
    +
    
      
        ∑
        
          v
          
            i
            1
          
        
        
          V
          ′
        
      
      ⁢
      
        
          ∑
          
            
              v
              
                i
                2
              
            
            ∈
            
              C
              
                
                  
                
                ⁢
                
                  v
                  
                    i
                    1
                  
                
              
            
          
        
        ⁢
        
          V
          ⁡
          
            (
            
              
                v
                
                  i
                  1
                
              
              ,
              
                
                  v
                  
                    i
                    2
                  
                
                ∈
                
                  C
                  
                    v
                    
                      i
                      1
                    
                  
                
              
            
            )
          
        
      
    
  




Since the two sets of latent variables as well as the variational probability are intractable to estimate simultaneously, an alternating expectation maximization (Alternating EM) algorithm is proposed to solve the problem.

Following is an algorithm of an alternating EM algorithm for biHMRF-ITCC.
Algorithm—Alternative EM for biHMRF-ITCC


    
    
        1. Input: Document word co-occurrence data D′ and V′; cluster number kd and kv; pairwise constraints M and C.
        2. Initialize penalty measure DKL(p(V′|dm1)∥p(V′|dm2) and DKL(p(D′|vi1)∥p(D′|vi2).
        3. Initialize document and word cluster labels using k-means.
        4. Initialize: q(0)({circumflex over (d)}kd,{circumflex over (v)}kv), q(0)(dm|{circumflex over (d)}kd) and q(0)(vi,{circumflex over (v)}kv)
        5. while t<maxlter and δ>maxδ do
        
            a. Document E-Step: computer document clusters using ICM algorithm to minimize
        
        
    
    






  
    L
    d
    
      (
      
        t
        +
        1
      
      )
    
  
  =
  
    
      argmin
      ⁢
      
        
          ∑
          
            k
            d
          
          
            K
            d
          
        
        ⁢
        
          
            ∑
            
              
                
                  d
                  m
                
                :
                
                  l
                  
                    d
                    m
                  
                
              
              =
              
                k
                d
              
            
          
          ⁢
          
            
              p
              ⁡
              
                (
                
                  d
                  m
                
                )
              
            
            ⁢
            
              
                D
                KL
              
              (
              
                
                  p
                  ⁡
                  
                    (
                    
                      
                        V
                        ′
                      
                      ❘
                      
                        d
                        m
                      
                    
                    )
                  
                
                ∥
                
                  p
                  ⁡
                  
                    (
                    
                      
                        V
                        ′
                      
                      ❘
                      
                        
                          d
                          ^
                        
                        
                          k
                          d
                        
                      
                    
                    )
                  
                
              
              )
            
          
        
      
    
    +
    
      
        ∑
        
          d
          
            m
            1
          
        
        
          M
          ′
        
      
      ⁢
      
        
          ∑
          
            
              d
              
                m
                2
              
            
            ∈
            
              M
              
                d
                
                  m
                  1
                
              
            
          
        
        ⁢
        
          V
          ⁡
          
            (
            
              
                d
                
                  m
                  1
                
              
              ,
              
                
                  d
                  
                    m
                    2
                  
                
                ∈
                
                  M
                  
                    d
                    
                      m
                      1
                    
                  
                
              
            
            )
          
        
      
    
    +
    
      
        ∑
        
          d
          
            m
            1
          
        
        
          M
          ′
        
      
      ⁢
      
        
          ∑
          
            
              d
              
                m
                2
              
            
            ∈
            
              C
              
                d
                
                  m
                  1
                
              
            
          
        
        ⁢
        
          V
          ⁡
          
            (
            
              
                d
                
                  m
                  1
                
              
              ,
              
                
                  d
                  
                    m
                    2
                  
                
                ∈
                
                  C
                  
                    d
                    
                      m
                      1
                    
                  
                
              
            
            )
          
        
      
    
  




    
    
        
        
            b. Document M-Step: update parameters

q(t+1)({circumflex over (d)}kd,{circumflex over (v)}kv),q(t+1)(dm|{circumflex over (d)}kd) and q(t+1)(vi,{circumflex over (v)}kv)

            c. Word E-Step: compute document clusters using ICM algorithm to minimize
        
        
    
    






  
    L
    v
    
      (
      
        t
        +
        2
      
      )
    
  
  =
  
    
      argmin
      ⁢
      
        
          ∑
          
            k
            v
          
          
            K
            v
          
        
        ⁢
        
          
            ∑
            
              
                
                  v
                  i
                
                :
                
                  l
                  
                    v
                    i
                  
                
              
              =
              
                k
                v
              
            
          
          ⁢
          
            
              p
              ⁡
              
                (
                
                  v
                  i
                
                )
              
            
            ⁢
            
              
                D
                KL
              
              (
              
                
                  p
                  ⁡
                  
                    (
                    
                      
                        D
                        ′
                      
                      ❘
                      
                        v
                        i
                      
                    
                    )
                  
                
                ∥
                
                  p
                  ⁡
                  
                    (
                    
                      
                        D
                        ′
                      
                      ❘
                      
                        
                          v
                          ^
                        
                        
                          k
                          v
                        
                      
                    
                    )
                  
                
              
              )
            
          
        
      
    
    +
    
      
        ∑
        
          v
          
            i
            1
          
        
        
          V
          ′
        
      
      ⁢
      
        
          ∑
          
            
              v
              
                i
                2
              
            
            ∈
            
              M
              
                v
                
                  i
                  1
                
              
            
          
        
        ⁢
        
          V
          ⁡
          
            (
            
              
                v
                
                  i
                  1
                
              
              ,
              
                
                  v
                  
                    i
                    2
                  
                
                ∈
                
                  M
                  
                    v
                    
                      i
                      1
                    
                  
                
              
            
            )
          
        
      
    
    +
    
      
        ∑
        
          v
          
            i
            1
          
        
        
          V
          ′
        
      
      ⁢
      
        
          ∑
          
            
              v
              
                i
                2
              
            
            ∈
            
              C
              
                v
                
                  i
                  1
                
              
            
          
        
        ⁢
        
          V
          ⁡
          
            (
            
              
                v
                
                  i
                  1
                
              
              ,
              
                
                  v
                  
                    i
                    2
                  
                
                ∈
                
                  C
                  
                    v
                    
                      i
                      1
                    
                  
                
              
            
            )
          
        
      
    
  




    
    
        
        
            d. Word M-Step: update parameters

q(t+2)({circumflex over (d)}kd,{circumflex over (v)}kv),q(t+2)(dm|{circumflex over (d)}kd) and q(t+2)(vi,{circumflex over (v)}kv)

            e. Compute q(t+2)(vi|{circumflex over (d)}kd).
            f. Compute cost cost(t+2) using the objective function from above and compute δ=(cost(t+2)−cost(t))/cost(t) 
        
        
        6. end while.

The KL divergency can be expressed by a weighted sum of KL divergencies:

    
    






  
    
      
        
          
            D
            KL
          
          ⁡
          
            (
            
              p
              ⁡
              
                (
                
                  
                    D
                    ′
                  
                  ,
                  
                    V
                    ′
                  
                  ,
                  
                    D
                    ^
                  
                  ,
                  
                    V
                    ^
                  
                
                )
              
            
            )
          
        
        =
        
        ⁢
        
          
            ∑
            
              k
              d
            
            
              K
              d
            
          
          ⁢
          
            
              ∑
              
                
                  
                    d
                    m
                  
                  :
                  
                    l
                    
                      d
                      m
                    
                  
                
                =
                
                  k
                  d
                
              
            
            ⁢
            
              
                p
                ⁡
                
                  (
                  
                    d
                    m
                  
                  )
                
              
              ⁢
              
                
                  D
                  KL
                
                (
                
                  
                    p
                    ⁢
                    
                      (
                      
                        
                          V
                          ′
                        
                        ❘
                        
                          d
                          m
                        
                      
                      )
                    
                  
                  ∥
                  
                    p
                    ⁡
                    
                      (
                      
                        
                          V
                          ′
                        
                        ❘
                        
                          
                            d
                            ^
                          
                          
                            k
                            d
                          
                        
                      
                      )
                    
                  
                
                )
              
            
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            ∑
            
              k
              v
            
            
              K
              v
            
          
          ⁢
          
            
              ∑
              
                
                  
                    v
                    i
                  
                  :
                  
                    l
                    
                      v
                      i
                    
                  
                
                =
                
                  k
                  v
                
              
            
            ⁢
            
              
                p
                ⁡
                
                  (
                  
                    v
                    i
                  
                  )
                
              
              ⁢
              
                
                  D
                  KL
                
                (
                
                  
                    p
                    ⁡
                    
                      (
                      
                        
                          D
                          ′
                        
                        ❘
                        
                          v
                          i
                        
                      
                      )
                    
                  
                  ∥
                  
                    p
                    ⁡
                    
                      (
                      
                        
                          D
                          ′
                        
                        ❘
                        
                          
                            v
                            ^
                          
                          
                            k
                            v
                          
                        
                      
                      )
                    
                  
                
                )
              
            
          
        
      
    
  




where p(V′|{circumflex over (d)}kd) denotes a multinomial distribution based on the probabilities (p(v1|{circumflex over (d)}kd), . . . , p(vV′|{circumflex over (d)}kd))T, p(vi|{circumflex over (d)}kd))=p(vi|{circumflex over (v)}kv)p({circumflex over (v)}kv|{circumflex over (d)}kd) and p(vi|{circumflex over (v)}kv)=p(vi)/p(lvi={circumflex over (v)}kv) due to hard clustering labels. Symmetrically, the probability for words can be defined as: p(D′|{circumflex over (v)}kv) denotes a multinomial distribution based on the probabilities (p(d1|{circumflex over (v)}kv), . . . , p(dV′|{circumflex over (v)}kv))T, p(di|{circumflex over (v)}kv)=p(di|{circumflex over (d)}kd)p({circumflex over (d)}kd|{circumflex over (v)}kv) and p(di|{circumflex over (d)}kd)=p(di)/p(ldi={circumflex over (d)}kd) due to hard clustering labels. Thus, the optimization process can be alternated. First, the algorithm fixes Lv and minimizes the objective of the objective function w.r.t Ld. Then, it fixes Ld and minimizes the objective of the objective function in w.r.t Lv until convergence.

When Lv is fixed, the objective function for Ld is rewritten as:




  
    L
    d
  
  =
  
    
      argmin
      ⁢
      
        
          ∑
          
            k
            d
          
          
            K
            d
          
        
        ⁢
        
          
            ∑
            
              
                
                  d
                  m
                
                :
                
                  l
                  
                    d
                    m
                  
                
              
              =
              
                k
                d
              
            
          
          ⁢
          
            
              p
              ⁡
              
                (
                
                  d
                  m
                
                )
              
            
            ⁢
            
              
                D
                KL
              
              (
              
                
                  p
                  ⁢
                  
                    (
                    
                      
                        V
                        ′
                      
                      ❘
                      
                        d
                        m
                      
                    
                    )
                  
                
                ∥
                
                  p
                  ⁡
                  
                    (
                    
                      
                        V
                        ′
                      
                      ❘
                      
                        
                          d
                          ^
                        
                        
                          k
                          d
                        
                      
                    
                    )
                  
                
              
              )
            
          
        
      
    
    +
    
      
        ∑
        
          d
          
            m
            1
          
        
        
          M
          ′
        
      
      ⁢
      
        
          ∑
          
            
              d
              
                m
                2
              
            
            ∈
            
              M
              
                d
                
                  m
                  1
                
              
            
          
        
        ⁢
        
          V
          ⁡
          
            (
            
              
                d
                
                  m
                  1
                
              
              ,
              
                
                  d
                  
                    m
                    2
                  
                
                ∈
                
                  M
                  
                    d
                    
                      m
                      1
                    
                  
                
              
            
            )
          
        
      
    
    +
    
      
        ∑
        
          d
          
            m
            1
          
        
        
          M
          ′
        
      
      ⁢
      
        
          ∑
          
            
              d
              
                m
                2
              
            
            ∈
            
              C
              
                d
                
                  m
                  1
                
              
            
          
        
        ⁢
        
          V
          ⁡
          
            (
            
              
                d
                
                  m
                  1
                
              
              ,
              
                
                  d
                  
                    m
                    2
                  
                
                ∈
                
                  C
                  
                    d
                    
                      m
                      1
                    
                  
                
              
            
            )
          
        
      
    
  




Optimizing this objective function still is computationally intractable. Here, a general EM algorithm is used to find the estimation. In the E-Step, the cluster labels are updated based on model parameters q from the last iteration. In the M-Step, the model parameters q are updated by fixing the cluster labels.

In the E-Step, an iterated conditional modes (ICM) algorithm is used to find the cluster labels. ICM greedily solves the optimization problem by updating one latent variable at a time, and keeping all the other latent variables fixed. Here, we derive the label ldm by:




  
    l
    
      d
      m
    
  
  =
  
    
      arg
      ⁢
      
        
          min
          
            
              l
              
                d
                m
              
            
            =
            
              k
              d
            
          
        
        ⁢
        
          
            ∑
            
              
                v
                i
              
              =
              1
            
            
              V
              ′
            
          
          ⁢
          
            
              D
              KL
            
            (
            
              
                p
                ⁡
                
                  (
                  
                    
                      V
                      ′
                    
                    ❘
                    
                      d
                      m
                    
                  
                  )
                
              
              ∥
              
                p
                ⁡
                
                  (
                  
                    
                      V
                      ′
                    
                    ❘
                    
                      
                        d
                        ^
                      
                      
                        k
                        d
                      
                    
                  
                  )
                
              
            
            )
          
        
      
    
    +
    
      
        ∑
        
          
            d
            m
            ′
          
          ∈
          
            
              M
              
                d
                m
              
            
            :
            
              
                I
                
                  l
                  
                    d
                    m
                  
                
              
              ≠
              
                l
                
                  d
                  m
                  ′
                
              
            
          
        
      
      ⁢
      
        
          D
          KL
        
        (
        
          
            p
            ⁡
            
              (
              
                
                  V
                  ′
                
                ❘
                
                  d
                  m
                
              
              )
            
          
          ∥
          
            p
            ⁡
            
              (
              
                
                  V
                  ′
                
                ❘
                
                  d
                  m
                  ′
                
              
              )
            
          
        
        )
      
    
    +
    
      
        ∑
        
          
            
              d
              m
              ′
            
            ∈
            
              
                C
                
                  d
                  m
                
              
              :
              
                I
                
                  l
                  
                    d
                    m
                  
                
              
            
          
          =
          
            l
            
              d
              m
              ′
            
          
        
      
      ⁢
      
        (
        
          
            D
            max
          
          -
          
            
              D
              KL
            
            (
            
              
                p
                ⁡
                
                  (
                  
                    
                      V
                      ′
                    
                    ❘
                    
                      d
                      m
                    
                  
                  )
                
              
              ∥
              
                p
                ⁡
                
                  (
                  
                    
                      V
                      ′
                    
                    ❘
                    
                      d
                      m
                      ′
                    
                  
                  )
                
              
            
            )
          
        
        )
      
    
  




In the M-Step, since the latent labels are fixed, the update of variational function q is not affected by the must-links and cannot-links. Thus, the following function can be updated:



  
    
      q
      ⁡
      
        (
        
          
            
              d
              ^
            
            
              k
              d
            
          
          ,
          
            
              v
              ^
            
            
              k
              v
            
          
        
        )
      
    
    =
    
      
        ∑
        
          
            l
            
              d
              m
            
          
          =
          
            k
            d
          
        
      
      ⁢
      
        
          ∑
          
            
              l
              
                v
                i
              
            
            =
            
              k
              v
            
          
        
        ⁢
        
          p
          ⁡
          
            (
            
              
                d
                m
              
              ,
              
                v
                i
              
            
            )
          
        
      
    
  




  
    
      q
      ⁡
      
        (
        
          
            d
            m
          
          ❘
          
            
              d
              ^
            
            
              k
              d
            
          
        
        )
      
    
    =
    
      
        
          q
          ⁡
          
            (
            
              d
              m
            
            )
          
        
        
          q
          ⁡
          
            (
            
              
                l
                
                  d
                  m
                
              
              =
              
                k
                d
              
            
            )
          
        
      
      ⁡
      
        [
        
          
            q
            ⁡
            
              (
              
                
                  d
                  m
                
                ❘
                
                  
                    d
                    ^
                  
                  
                    k
                    d
                  
                
              
              )
            
          
          =
          
            
              0
              ⁢
              
                
              
              ⁢
              if
              ⁢
              
                
              
              ⁢
              
                l
                
                  d
                  m
                
              
            
            ≠
            
              k
              d
            
          
        
        ]
      
    
  




  
    
      q
      ⁡
      
        (
        
          
            v
            i
          
          ❘
          
            
              v
              ^
            
            
              k
              v
            
          
        
        )
      
    
    =
    
      
        
          q
          ⁡
          
            (
            
              v
              i
            
            )
          
        
        
          q
          ⁡
          
            (
            
              
                l
                
                  v
                  i
                
              
              =
              
                k
                v
              
            
            )
          
        
      
      ⁡
      
        [
        
          
            q
            ⁡
            
              (
              
                
                  v
                  i
                
                ❘
                
                  
                    v
                    ^
                  
                  
                    k
                    v
                  
                
              
              )
            
          
          =
          
            
              0
              ⁢
              
                
              
              ⁢
              if
              ⁢
              
                
              
              ⁢
              
                l
                
                  v
                  i
                
              
            
            ≠
            
              k
              v
            
          
        
        ]
      
    
  



The algorithm Algorithm—“Alternative EM for biHMRF-ITCC”, described above, summarizes the main steps in the algorithm. Algorithm biHMRF-ITCC monotonically decreases the objective function to local optimum. This is easy to prove since the ICM algorithm decreases the objective to local optimum given fixed q parameters. Then the update of q is monotonically decreasing.
The time complexity of biHMRF-ITCC algorithm is O((nz+(nc*iterICM))·(Kd+Kv))·iterAEM, where nz is the nonzero number of document-word co-occurrences, nc is the constraint number, iterICM is the ICM iteration number in the E-Step, Kd and Kv are the cluster numbers, and iterAEM is the iteration number of the alternating EM algorithm.
Given the co-clustering results for a document set, the keywords for document cluster can be extracted. The keyword selection algorithm has two main steps: First, a filter is used to smooth the labels estimated from the Markov random field. We use a window of size 50 to smooth the adjacent document labels. The cluster label is re-assigned using the label most frequently appeared in the window. Then the output labels will be smoothed and divided into several segments. Second, for each segment with a cluster label, its keywords are extracted. Given a cluster label, its corresponding keyword clusters can be obtained by q({circumflex over (d)}kd, {circumflex over (v)}kv). The probabilities q({circumflex over (d)}kd, {circumflex over (v)}kv) for kv=1, 2, . . . , Kv represent how a keyword cluster is associated with a document cluster. Then, relevant keyword clusters are defined as those whose probabilities are higher than the mean value of these probabilities. Then, the keyword rank is determined by:




  
    r
    
      v
      i
    
    
      (
      subset
      )
    
  
  =
  
    
      ∑
      
        
          k
          v
        
        ∈
        
          relelvent
          ⁢
          
            
          
          ⁢
          set
        
      
    
    ⁢
    
      
        q
        ⁡
        
          (
          
            
              
                d
                ^
              
              
                k
                d
              
            
            ,
            
              
                v
                ^
              
              
                k
                v
              
            
          
          )
        
      
      ⁢
      
        q
        ⁡
        
          (
          
            
              v
              i
            
            ❘
            
              
                v
                ^
              
              
                k
                v
              
            
          
          )
        
      
    
  




The rank values are then sorted so that top keywords can be retrieved.

As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks. The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.

## Claims

1. A method of producing a visual text summarization, the method comprising the steps of:
extracting a plurality of topics from a collection of text documents, wherein each of the topics comprises a plurality of topic keywords;
determining an importance ranking for each of the topics;
determining an importance ranking for each of the topic keywords of a topic;
displaying a graph having a plurality of stacked layers representing a group of topics selected from the plurality of topics based on the importance ranking of the topics;
grouping a subset of text documents included in a topic, wherein the grouping is based on a grouping constraint;
selecting a subset of topic keywords included in the topic, wherein the subset of topic keywords summarize a content of the subset of text documents, wherein the at least one keyword cloud displayed within each layer of the graph is the subset of topic keywords that summarize the content of the subset of text document grouped based on the grouping constraint; and
displaying at least one keyword cloud within each layer of the graph, wherein the at least one keyword cloud is a group of topic keywords selected from the extracted topic keywords based on the importance ranking of the extracted topic keywords;
wherein at least one of the steps is carried out using a computer device.

2. The method of claim 1, further comprising a step of ordering the layers in the graph, wherein a criterion for the ordering is that layers representing semantically similar topics are adjacent.

3. The method of claim 1, further comprising a step of ordering the layers in the graph, wherein a criterion for the ordering is that layers having less volatility are placed closer to an axis than layers having more volatility.

4. The method of claim 1, further comprising a step of ordering the layers in the graph, wherein a criterion for the ordering is that layers with geometric complementariness are adjacent.

5. The method of claim 1, wherein extracting the plurality of topics from the collection of text documents is carried about by using a latent semantic model.

6. The method of claim 1, wherein the step of determining the importance ranking for each of the topics is carried out by calculating a value of importance by multiplying a mean distribution of each topic over the collection of text documents times a standard deviation of each topic over the collection of text documents and ranking each topic based on the value of importance.

7. The method of claim 1, wherein the step of determining the importance ranking for each of the topics is carried out by calculating a Laplacian score for each of the topics and ranking each topic based on the Laplacian score.

8. The method of claim 1, wherein the collection of text documents is a collection of emails and the step of determining the importance ranking for each of the topics takes into account a read history and a reply history of the emails covered by each of the topics.

9. The method of claim 1, wherein the step of determining the importance ranking for each of the topic keywords of a topic uses a term frequency-inverse document frequency (tf-idf) metric.

10. The method of claim 1, wherein the layers in the graph are located on both sides of an axis.

11. The method of claim 1, wherein the layers in the graph are located on one side of an axis.

12. The method of claim 1, further comprising a step of coloring the layers in the graph, wherein layers representing semantically similar topics use a same color with different hues.

13. The method of claim 1, wherein the keyword clouds are associated with a relevant time and the step of displaying the at least one keyword cloud within each layer is carried out by placing the at least one keyword cloud near the relevant time.

14. The method of claim 13, wherein the keyword clouds include more topic keywords the more space there is to depict the keyword clouds within each layer near the relevant time.

15. The method of claim 1, further comprising the step of displaying all of the topic keywords of a topic in a tool tip.

16. The method of claim 1, further comprising the step of displaying more topic keywords of a topic within each of the keyword clouds.

17. The method of claim 1, further comprising the step of displaying snippets of text documents relevant to a topic keyword.

18. The method of claim 1, further comprising the step of displaying meta data associated with the collection of text documents.

19. A non-transitory computer readable storage having computer readable instructions which when executed causes a computer to carry out the steps of a method comprising the steps of:
extracting a plurality of topics from a collection of text documents, wherein each of the topics comprises a plurality of topic keywords;
determining an importance ranking for each of the topics;
determining an importance ranking for each of the topic keywords of a topic;
displaying a graph having a plurality of stacked layers representing a group of topics selected from the plurality of topics based on the importance ranking of the topics;
grouping a subset of text documents included in a topic, wherein the grouping is based on a grouping constraint;
selecting a subset of topic keywords included in the topic, wherein the subset of topic keywords summarize a content of the subset of text documents, wherein the at least one keyword cloud displayed within each layer of the graph is the subset of topic keywords that summarize the content of the subset of text document grouped based on the grouping constraint; and
displaying at least one keyword cloud within each layer of the graph, wherein the at least one keyword cloud is a group of topic keywords selected from the extracted topic keywords based on the importance ranking of the extracted topic keywords;
wherein at least one of the steps is carried out using a computer device.