# Patent

## Title
System and method for dynamically and interactively searching media data

## Abstract

Systems and methods for searching a database of media content wherein the user can dynamically and interactively perform searches and navigate search results. One or more search anchors are received, and at least one of the search anchors is associated with an anchor cell on a navigation map. One or more documents assigned to at least one cell on the navigation map can be determined, and the cells are populated with search results based at least in part on the search anchors. At least one of the documents is then displayed to a user.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation in part of International Application No. PCT/US2009/047492, which is based on and claims priority to U.S. Provisional Application Ser. No. 61/132,358 filed on Jun. 17, 2008, both of which are incorporated herein by reference for all purposes.


BACKGROUND
As the amount of available digital media grows exponentially, an inability to efficiently search this media content becomes more apparent. In the past, research has focused on the extraction features at either the low level or the semantic level to aid in indexing and retrieval. However, known techniques for interactively searching (or querying) large media databases are unsatisfactory, and significant challenges in this area remain.
Exploration of a large collection of media data, such as video, images, or audio, is a non-trivial task. When a user approaches a new search task, formulating a query (i.e., search criterion) can be difficult. Most modern search systems provide the ability to search with textual input. These types of systems have been studied by the information retrieval community at large, but several problems become apparent when text-based systems are used to search media content.
First, the choice of correct query words can significantly affect the output of a video search system. Often a user may lack information about which words would best match the content he or she is looking for. Second, when using more advanced systems having automatically detected visual concepts derived from low-level image features and trained with a labeled set of data such as systems disclosed in both S. F. Chang et al., “Columbia University's Semantic Video Search Engine,” ACM International Conference on Image and Video Retrieval, Amsterdam, Netherlands, July 2007, and J. R. Smith et al., “Multimedia semantic indexing using model vectors,” Proceedings of IEEE International Conference on Multimedia and Expo, Baltimore, Md., July, 2003, non-expert users may lack knowledge about the concept vocabulary and accuracy of concept detectors.
Techniques have been proposed for fully automated approaches to combining descriptors of multiple modalities (text, low level features, and concepts). However, these solutions are not well-suited to be directly used in an interactive search system. In such systems, once search results are returned, the user may struggle to efficiently navigate through a large set of media content, and a typical interface showing a linear list of thumbnail images is often not sufficient. Such systems provide little information to help users understand why the given set of results were selected, how each returned image/video/media portion is related to the concepts chosen in the query, and how to efficiently adjust the strategies (e.g., fast-skimming vs. in-depth browsing) for exploring the result set. Such difficulties arise from the fundamental problem of disconnection between search result interfaces and the query criteria. Once the query is evaluated, the query criteria are typically discarded and the user is presented with a set of results without any information regarding the correlation of the search results to the concepts or search criteria that were used to identify those results.
Some visualization techniques have been proposed to assist users in fast browsing and exploration of result sets. However, these techniques do not provide for relating the search results to search criteria, and are unable to dynamically adjust the influence of each query criterion and thereby allow a user to interactively and dynamically modify searches. Thus, there is a need in the art for a technique for searching a media database which provides guided query formulation as well as dynamic and interactive query adaptation.
SUMMARY
The disclosed subject matter provides techniques for searching a database of media content wherein the user can dynamically and interactively navigate search results. In an exemplary method, one or more search anchors are received, and at least one of the search anchors is associated with anchor cells on a navigation map. At least one cell on the navigation map is populated with one or more documents based at least in part on the associated search anchors. At least one of the documents is output for at least one cell on the navigation map.
The disclosed subject matter also provides a system for searching a database of media content wherein the user can dynamically and interactively navigate search results. In some embodiments, the system includes an interface for receiving one or more search anchors, one or more processors for associating one or more of the search anchors with anchor cells on a navigation map and populating at least one cell on the navigation map with one or more documents, and a display for displaying at least one of the documents assigned to at least one cell on the navigation map.
The disclosed subject matter further provides for a computer-readable medium encoded with a computer program that includes computer executable instructions for dynamically and interactively searching a media database. In some embodiments, when executed, the computer program causes a processor to receive one or more search anchors, associate one or more of the search anchors with anchor cells, populate at least one cell on the navigation map with one or more documents, and output at least one of the documents assigned to at least one cell on a navigation map.
The accompanying drawings, which are incorporated and constitute part of this disclosure, illustrate the various exemplary embodiments of the present disclosed subject matter and serve to explain its principles.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates an exemplary embodiment of the graphical user interface of the presently disclosed subject matter.
FIG. 2 is a chart which illustrates an exemplary embodiment of the disclosed subject matter.
FIG. 3 is a chart which illustrates a guided query formulation stage of an exemplary embodiment of the disclosed subject matter.
FIG. 4 illustrates a graphical user interface for the query formulation stage of an exemplary embodiment of the disclosed subject matter.
FIG. 5 is a chart which illustrates the concept relevance weight computation stage of an exemplary embodiment of the disclosed subject matter.
FIG. 6 illustrates a navigation map of an exemplary embodiment of the disclosed subject matter.
FIG. 7 illustrates a placement map demonstrating how search anchors are automatically positioned according to an exemplary embodiment of the disclosed subject matter.
FIG. 8 illustrates a portion of the graphical user interface for an exemplary embodiment of the disclosed subject matter.
FIG. 9 is a chart illustrating the planning and rendering stage of an exemplary embodiment of the disclosed subject matter.
FIG. 10 illustrates the advantages of repeated result exposure tools in an exemplary embodiment of the disclosed subject matter.
FIG. 11 is a chart illustrating an exemplary embodiment of the displaying results stage of the disclosed subject matter.
FIG. 12(a)-12 (b) illustrates the use of super-anchors in connection with an exemplary embodiment of the disclosed subject matter.
FIG. 13 illustrates an exemplary embodiment of a graphical user interface of the disclosed subject matter for displayed results with an anchor cell selected.
FIG. 14 illustrates an exemplary embodiment of the user interface of the disclosed subject matter where a visual image is used as an anchor.
FIG. 15 illustrates an exemplary embodiment of the user interface of the disclosed subject matter which shows a secondary result exploration panel.
FIG. 16 illustrates the use of in-place filtering in connection with one embodiment of the disclosed subject matter.
FIG. 17 illustrates the use of query expansion results as a search anchor in connection with one embodiment of the disclosed subject matter.



DETAILED DESCRIPTION
The disclosed subject matter is generally directed to a system and method for dynamically and interactively searching a database of media content.
The database can be any collection of media data including, but not limited to, multimedia data, such as digital video with or without accompanying audio, audio data only, video data only, still images, or any other form of digital media data. The database can be a collection of files on a desktop computer, the files on a network, or a remote database communicably connected to a computing device, as through the Internet or some other distributed network. A person having ordinary skill in the art will recognize that any aggregation of media files, regardless of where and how the files are stored, can be searched using the disclosed subject matter.
In one embodiment, the database includes metadata associated with each media document. The stored metadata can include information relating to the author of the document (e.g., the singer for an audio clip, the photographer for an image), the geographic location (e.g., where a photograph was taken), a general description of the document, or any other information relating to the media data.
In one embodiment, the system and method can be implemented on a single computing device. The user can enter a text query using a keyboard and interact with an interface on the display screen using a mouse. The computing device can process information locally. The search can be limited to the files on a computer or any subsection thereof, such as the files located in a single folder or local disk drive.
Alternatively, in other embodiments, the system and method can be implemented in a network setting. In such an embodiment, all the files available on the network can be searched. Certain portions of the process can be performed by other processors or computing devices in the network. In a further exemplary embodiment, the system and method can be implemented using a client-server architecture model. The database can be stored at a remote location from the user's computing environment, such that the server can conduct the searches and transmit the results to the client for display. In such a system, the server can perform most or all of the computations, while the client can be used mostly for user input and display. A person having ordinary skill in the art will recognize that the system and method of the present disclosed subject matter can be implemented in other ways. For example, the system and method can be implemented on handheld devices such as smart phones or PDAs or other wireless computing devices.
FIG. 1 illustrates one embodiment of the interface of the disclosed subject matter. In this embodiment, the search anchors 102 are positioned on a navigation map 104. The search anchors 102 are used to set the parameters for the search. The navigation map 104 allows the user to visually adjust the influence of each search anchor 102 on the results displayed in the result exploration panel 106. The navigation map 104 is comprised of cells. Each cell is associated with a set of search results and a concept relevance weight, which defines how much influence each search anchor has on the set of search results. The concept relevance weight 108 shown in the separate display window 110 and the search results displayed in the result exploration panel 106 are associated with the selected cell 112. The user can select a different cell to dynamically adjust the displayed results to his/her preference. More specifically, the user can select a different cell to display a new set of search results which are better suited to the user's preference. For example, if the user viewing the set of search results for the selected cell 112, as shown in FIG. 1, wants to view a set of results having more “Waterscape/Waterfront” characteristics, the user can optimally select cell 114, and view the search results associated with that cell.
FIG. 2 illustrates the method of one embodiment of the disclosed subject matter. This method for searching a collection of media data is broadly arranged into four stages: guided query formulation 202, concept relevance weight computation 204, planning and rendering 206, and displaying results 208.
The first stage 202 of the exemplary method is guided query formulation. Guided query formulation can be used to aid the user in configuring a search query to assist the user in identifying key words or concepts most likely to identify the desired media content. Guided query formulation can include suggesting search concepts in response to a text query, and can also allow a user to select search concepts from lists of topics or subtopics or to select a previously-used concept. In general, guided query formulation can include any method by which the system aids the user in selecting a search concept. In another exemplary embodiment of the disclosed subject matter, selected search concepts or the user's text query can be used as search anchors, as further described herein.
After the user selects one or more of the search concepts as search anchors, concept relevance weights can be computed for each cell on a navigation map in stage 204. The concept relevance weight for a given cell can be calculated based on the distance between the cell and the search anchors. In general, concept relevance weight computation can include any method for computing the relative impact of search anchors on a cell in the navigation map.
The planning and rendering stage 206 can follow the concept relevance weight computation stage. Planning and rendering can include any method by which a cell is populated with documents, such that selecting that cell triggers the display of at least a subset of those documents. A cell can be populated by assigning or associating documents with a cell. Note that the term “document” as used herein simply refers to a file or search result—the term therefore includes all types of files that can be searched in accordance with the principles of the disclosed subject matter, including all media/multimedia and/or other types of data or files. The planning and rendering stage can also include sending a certain subset of the documents to be cached locally, in the event that the document is not stored at the display location.
Finally, in 208 the results of the search can be displayed based on a selected cell. If a different cell is selected, a new set of documents can be displayed.
Referring to FIG. 3, an exemplary embodiment of a system and method for guided query formulation is described. In the exemplary embodiment, a text query is received in 302. The text query can be received in response to a trigger, which can be a key press, or entry of the space bar, or any other trigger which can be used to initiate a next search to execute and then to modify the displayed search concepts. For example, by using the key press trigger method, the text query is received and the concept suggestion panel can be updated after every character (or, if the space bar trigger is used, every word, etc.). Alternatively, the trigger can be a timer set to measure user inactivity. The spacebar trigger can allow the display of information assistance through many suggestions to the user, which drives a guided and interactive query formulation instead of directly mapping the user's query into a specific set of automatically suggested search concepts. This allows for an automatic and instant suggestion of media concepts to be returned to the user. In some systems, such as a client-server system, the text query can be transmitted from the client to the server.
The text query can be mapped to search concepts in 304. This exemplary embodiment of the present disclosed subject matter can implement a concept-based query relevance model for determining which concepts will be displayed. Typically, known search systems return search results ranked by relevance to a user's query. Although known text search systems typically use a keyword (kq) to compute relevance R to a document (dk), this exemplary embodiment of the disclosed subject matter approximates media relevance Rvis to a media document dk with a set of high-level concept-tags (ti), or search concepts.

R(dk;kq)≈Rvis(dk;{ti})

{ti}=mapped_concept_tag(kq)  (1)

In some embodiments of the present invention, there can be a limited universe of allowable search concepts, such that only certain words or phrases can be identified as search anchors. In an exemplary embodiment the documents in a media database can be annotated using, for example, the LSCOM data set (available at www.ee.columbia.edu/dvmm/lscom) or Columbia-VIREO374, a subset of the LSCOM data set. In this exemplary embodiment, the search anchors can be required to be included in the data set. In another exemplary embodiment, any word or phrase can be used as a search anchor regardless of the data set stored. Each search anchor can embody a distinct, scored list of documents.
The text query can be mapped to search concepts using many different mapping methods. These mapping methods can include, but are not limited to, text completion with speech phrases, text to concept ontological mapping, text to concept mapping by LSCOM definition, co-occurring concepts, and dominant visual concepts from text results. Those having skill in the art will recognize that other concept suggestion techniques can be readily incorporated within the spirit and scope of the disclosed subject matter. The search concepts generated by such mapping methods can be transmitted, for example, from the server back to the client.
A plurality of search concepts based on the user-input text query are displayed in 306. The concepts can be displayed in a separate instant concept suggestion panel which dynamically updates during query formulation (i.e., 302, 304, and 306 can be repeated for each change in the text query). The plurality of search concepts which are displayed can be a single list of search concepts (i.e., generated by a single mapping method). However, typical automatic suggestion methods apply a direct mapping of keywords and evaluation of concept search without fully understanding the user's intent. Accordingly, this exemplary embodiment of the disclosed subject matter can present the results of many different mapping methods to bridge the semantic gap between media concepts and search concepts (i.e., keywords).
The search concepts recommended by the various mapping methods and displayed in 306 can be semantic concepts, media content, metadata, or any other appropriate information. Metadata can include the name of the author, time, and user-created tags, in addition to other information.
Additionally, the suggested search concepts can be displayed with differing appearance characteristics based on usefulness information. In one embodiment of the disclosed subject matter, a suggested concept can be shown in a larger font if it has high occurrence frequency (i.e., the search concepts which occur most frequently in the media data related to a particular concept or concept-tag) and high accuracy in automatic detection. Accuracy is determined by performance over a fixed data set. In addition to frequency and accuracy, any other usefulness data (i.e., data that measures how useful a search concept may be to the user based in part on the entered text query) can be utilized to alter the font size. Likewise, the usefulness data can be utilized to change other appearance characteristics of the suggested concept, such as color or the order in which the concepts are displayed. If the user cannot find a useful concept among the displayed concepts, the user can reformat the query by adding, deleting, or otherwise altering any portion of the text query.
If the user does identify a useful suggested concept, the user can select the concept to be used as a search anchor by selecting the concept in the instant concept suggestion panel. A search anchor can be received by any means that allows the search anchor to be identified, which can include the transmission of the search anchor itself or a reference to the search anchor. Regardless of how the search anchor is received by the system in accordance with the various exemplary embodiments of the disclosed subject matter, once a search anchor is received, an indication is provided to the system that a search anchor has been selected in 308. The search anchor can also be transmitted, for example, from the client to the server.
One exemplary graphical user interface for the query formulation stage 202 of the system and method of the disclosed subject matter is illustrated in FIG. 4. A text query can be entered into the text query input area 402. In response, the system can generate suggestions in the instant concept suggestion panel 404 based on the text query entered into the text query input area 402. Additionally, a navigation map 406 is shown. When a displayed concept is selected, the concept can be displayed as a search anchor on the navigation map 406. In FIG. 4, search anchor 410 corresponds to the selection of the selected search concept 408. The selected search concept 408 is underlined to indicate that it has already been selected, or in other embodiments can include different distinguishing display characteristics to convey this information to the user.
An exemplary embodiment of the relevance weight computation stage 204 from FIG. 2 is illustrated in FIG. 5. In the exemplary embodiment, search anchors can be positioned on a navigation map in 502.
An exemplary embodiment of a navigation map 502 is illustrated in FIG. 5. The navigation map can be a grid having a width of Gx cells and a height of Gy cells, as in FIG. 6. The number of cells can be set to a default value, but other methods for selecting the size of the navigation map can be used. For example, the number of cells can be selected by the user or automatically configured based on the size of the database being searched. A nine-by-nine grid such as the navigation map 602 shown in FIG. 6 can be too large or unwieldy for a simple search performed on a mobile device or another device with a small screen capacity. It can be difficult for a user under those circumstances to accurately select any single cell on the navigation map, and thus a smaller matrix can be preferable. Conversely, for a more complex search of a large database, a nine-by-nine grid may not be sufficient. The user can choose to further separate the results in order to more easily navigate the results without having to delve deeply into each result list.
Importantly, the “navigation map” need not be limited to a grid layout. The navigation map can be any representation which allows the visualization of proximity as an indication of the relative influence of search anchors. As such, the navigation map can include a circle or even three-dimensional objects or spaces such as a cube or sphere, with anchors located at points or regions throughout. Further, the use of the term “cell” to refer to the areas which can be selected should not be construed to limit the understanding of the disclosed subject matter to require a navigation map divided into sections. A cell of the navigation map refers to any subsection of the navigation map. As such, the navigation map can be represented by a sphere in which every point or pixel constitutes a cell. Ultimately, any system that utilizes a representative space with anchors at various locations (or locations where anchors can be placed) in that representative space could be used to define the navigation map of an exemplary embodiment of the disclosed subject matter, and it is therefore not limited to any one embodiment.
Referring again to FIG. 5, a search anchor is positioned on the navigation map in 502. Additional search anchors can have already been positioned on the navigation map, such that every search anchor is associated with an anchor cell. In an exemplary embodiment of the disclosed subject matter, the search anchors can be initially positioned according to a pre-determined priority order. For example, as illustrated in FIG. 7, search anchors can be placed on the navigation map in the order indicated by the placement map 702 (i.e., the fifth search anchor chosen would be placed in the cell located at the lower right hand corner of the navigation map as indicated by the number 5). Alternatively, the search anchor can be positioned by the user by using a drag-and-drop technique or any other technique that would allow the user to manipulate the location of the search anchor on the map through the interface. Similarly, once the search anchor has been positioned on the navigation map, the user can have the option of re-positioning the search anchor to a different cell.
In the system and method of the disclosed subject matter, there is no limit to the number of search anchors that can be selected and placed on a navigation map. However, the addition of numerous simultaneous search anchors can decrease the intuitiveness of the navigation map by crowding the navigation map and making differences between the image results of cells in the navigation map less obvious, and can also increase the system requirements in terms of memory, processing power, and search time latency.
Referring again to FIG. 5, a concept relevance weight is determined for each cell in a navigation map in 504. The concept relevance weight describes the relationship between the search anchors and each cell in the navigation map. In one embodiment of the disclosed subject matter, the concept relevance weight is based on the distance between each cell and the one or more search anchors. While the concept relevance weight can be based on linear distance such as relative 2D distance, this can be easily adapted to non-linear distances. The concept relevance weight for a given cell can be calculated by calculating a concept relevance weight for each search anchor, then combining the concept relevance weights for each search anchor such that a concept relevance weight for each cell in a navigation map having n search anchors will have n components in its concept relevance weight.
Referring to FIG. 8, a portion of an exemplary embodiment of a graphical user interface is illustrated. Although the information in the interface may not yet have been displayed at this point in the process, certain information related thereto can be instructive. A navigation map 802 has four search anchors 804. The concept relevance weight 808 for a selected cell 806, as indicated by the square, can be displayed in a separate window 810. In this exemplary embodiment, a concept relevance weight is calculated for each search anchor and combined to comprise the concept relevance weight 808, which has four components corresponding to the four search anchors 804 on the navigation map 802.
In an exemplary embodiment, a Gaussian weighing algorithm can be employed to determine the concept relevance weight for a cell. The first part of such an algorithm is to compute a Euclidean distance di,n between a cell ci and each search anchor an according to the cell's position cix,y and the search anchor's position anx,y. Next, each cell is assigned a cell priority pi based on the Euclidean distance. (This priority can be used to determine the order in which the concept relevance weight is determined for each cell; it also can be used when the cells are populated). Then, a Gaussian weight wi,n for each cell i and concept n is computed on the basis of a Gaussian re-weighing factor σ. The tuning of the Gaussian re-weighing factor




  
    
      
        
          
            w
            
              i
              ,
              n
            
          
          =
          
            
              1
              
                σ
                ⁢
                
                  
                    2
                    ⁢
                    π
                  
                
              
            
            ⁢
            exp
            ⁢
            
              {
              
                
                  -
                  
                    
                      (
                      
                        d
                        
                          i
                          ,
                          n
                        
                      
                      )
                    
                    2
                  
                
                
                  2
                  ⁢
                  
                    σ
                    2
                  
                
              
              }
            
          
        
        ,
      
    
    
      
        (
        2
        )
      
    
  




provides high-precision control of how dramatically each concept anchor an influences its neighboring cells ci:

Finally, the cell weights are normalized by the maximum weight for each concept:




  
    
      
        
          w
          
            i
            ,
            n
          
        
        =
        
          
            w
            
              i
              ,
              n
            
          
          
            max
            ⁡
            
              (
              
                w
                
                  i
                  ,
                  n
                
              
              )
            
          
        
      
    
    
      
        (
        3
        )
      
    
  




Referring again to FIG. 5, the concept relevance weights of the anchors cells can be adjusted in 506. In this exemplary embodiment, the concept relevance weight for the anchored search anchor (i.e., the search anchor located at the anchor cell) is 1 at the anchor cell. In order to allow the user to explore a series of results based solely on a single search anchor, the relevance weights for all other search anchors can be set to zero. In another exemplary embodiment, such adjustment can be left out and the results at the anchor cell can be strongly but not entirely based on a single search anchor.
Referring to FIG. 9, an exemplary embodiment of the planning and rendering stage 206 of FIG. 2 is illustrated. In this exemplary embodiment, in 902 of FIG. 9 a total relevance score Rvis(dk;ci) can be calculated for each document separately for each cell, such that a given document can be assigned m different total relevance scores in a navigation map having m cells. The total relevance score for a given document in a given cell can be based on the concept relevance weight for the cell and the document relevance score for a document. The document relevance score Rvis(dk; an) describes the relationship between a document dk and a search anchor an. The total relevance score describes the relationship between a cell ci and a document and can be used to plan which results can be displayed, and the order in which they may be displayed, for a given cell. The total relevance score can be computed by the equation:




  
    
      
        
          
            R
            vis
          
          ⁡
          
            (
            
              
                d
                k
              
              ;
              
                c
                i
              
            
            )
          
        
        =
        
          
            ∑
            
              n
              =
              1
            
            N
          
          ⁢
          
            
          
          ⁢
          
            
              w
              
                i
                ,
                n
              
            
            ⁢
            
              
                R
                vis
              
              ⁡
              
                (
                
                  
                    d
                    k
                  
                  ;
                  
                    a
                    n
                  
                
                )
              
            
          
        
      
    
    
      
        (
        4
        )
      
    
  




where N is the total number of search anchors positioned on the navigation map.

In an exemplary embodiment, each cell can be populated with every document that has a non-zero document relevance score for any of the search anchors. The planned results for each cell can be a weighted combination of many concept result lists, as indicated by the equation above. In an exemplary embodiment, every cell can include the same results and the only difference is the order in which the results are displayed. In another exemplary embodiment, each cell can be populated with every document in the database. In other embodiments, each cell can be populated with some subsection of the documents having a non-zero document relevance score for any search anchor. For example, a cell could be populated only with the exclusive list of documents described below.
In a traditional search system, the results would be displayed solely on the basis of a relevance score (between a keyword and a document). However, in connection with the disclosed subject matter, evaluating multiple queries with traditional weighted score fusion could produce many degenerate, overlapping result lists as illustrated in FIG. 10. The database 1002 to be searched in the example of FIG. 10 has 30 results (A1-A15 and B1-B15) that correspond to either search anchor A or search anchor B. The five cells of the navigation map 1004 have each been assigned a concept relevance weight. Using the traditional weighing methods and a first page consisting of six results, result lists 1006 are generated. Each of the result lists represents the results that would be displayed on a first page for one of the five cells. In these lists, eighteen of the thirty results are not shown until at least the second page and two results, A1 and B1, are displayed on the first page of results for four cells.
In an exemplary embodiment of the disclosed subject matter, a form of result planning can be employed to guarantee that the first page of results (those immediately visible to the user for each cell) are unique for every cell in the navigation map, thus facilitating more efficient searching. In the exemplary embodiment illustrated in connection with FIG. 10, this method is used to generate the result lists with a uniqueness guarantee as shown by 1008, which displays all thirty of the results on the first page of one of the five cells. This implementation can provide for a better survey of results than in previous methods, which displayed only twelve of the thirty results on the first page of results for any cell. This scheme for suppression of repeated results can improve the user experience in two ways: it can encourage deeper exploration of concept results and can create a more engaging browsing experience, because the user can instantly inspect a more diverse set of images. This guarantee scheme is only possible where the number of possible results is greater than the number of results on a first page multiplied by the number of cells in the navigation map.
Referring again to FIG. 9, avoidance of repeated results can be accomplished by prioritizing a pre-determined number of results for each cell in 904. In an exemplary embodiment, the pre-determined number is the number of results on a first page of results, but the number can be chosen by the user in other embodiments. In such an embodiment, a cell priority list is determined. This can be an actual list of the cells in order of priority, or it can refer to assigning a priority to each cell such that such a list could easily be constructed. The system can prioritize cells with the smallest distance to any search anchor. Numerical ties between cells equidistant from any search anchor can be broken by prioritizing concepts in the order that the user selected them. Alternatively, numerical ties can be broken by a ranking or order of the cells or search anchors determined by the user. Then, beginning with the cell having the highest priority and continuing in order of priority, a pre-determined number of results can be prioritized for each cell. This exclusive list of results is comprised of the pre-determined number of results with the highest total relevance score for that cell which have not been prioritized by any cell having a higher priority.
As illustrated in 906, one or more cells are populated with some number of documents, such as an ordered list of media (i.e., documents, or search results, are assigned to cells in the navigation map). The ordered list can be comprised of the exclusive list in order of total relevance score followed by all other results for the cell in order of total relevance score. Thus, the first pre-determined number of results could be unique for every cell to the extent such an arrangement is possible. In 908, a certain number of documents associated with each cell can be rendered. These results could be cached for instant availability of, for example, a first page of results when a cell is initially selected. Rendering 908 can be unnecessary when the system is confined to a single computer, but can be useful where the documents need to be transmitted, for example, from a database or server to a client.
In an exemplary embodiment of the disclosed subject matter, 902-908 of FIG. 9 can be done in order of priority. A priority score for each cell can be computed prior to or during the planning and rendering stage. In accordance with the disclosed subject matter, each cell can be planned and rendered in an order determined by this priority score. Note that this priority score can be used to form the cell priority list in 904 of FIG. 9. In another embodiment of the disclosed subject matter, if a user attempts to explore an unplanned or un-rendered cell, the selected cell can immediately be planned, if necessary, and then rendered, if necessary, regardless of the order of priority, at which point the system can return to planning and rendering the cells based on priority.
Referring to FIG. 11, an exemplary embodiment of the display stage 208 of FIG. 2 is illustrated. In 1102, a search trigger can be received. The search trigger controls when the documents or search results are to be displayed or updated to the user. This search trigger can include pressing a “search” button, but can additionally include a key-press such as the Enter key or the selection of a cell on the navigation map, or other action by the user indicating that the search should be initiated. For example, the search trigger can also be the receipt of a search anchor. Note also that the receipt of a search trigger can occur at almost any time during the process. If the planning and rendering stage occurs in the background while the user is formulating the query (such as between the selection of the final search anchor and the decision that no further search anchors will be selected), the search trigger will be received after the planning and rendering stage. However, the search trigger can be received at a different point in the process. For example, in the exemplary embodiment illustrated in FIG. 4, the search can begin only when the user has selected the Execute Search button 412. In such a system, the search trigger (selecting the Execute Search Button 412) can be received before the planning and rendering stage begins. The search trigger can be received earlier where the trigger is the receipt of a search anchor. The search trigger, or an indication that the search trigger has been received, can be transmitted, for example, from the client to the server.
At least by this point, the first navigation map can be made available to the user. In an exemplary embodiment, the navigation map can be made available (i.e., the user can select a cell in the navigation map) to the user during the query formulation stage, but the results are not displayed until the search trigger is selected in 1102. In another exemplary embodiment, the navigation map can be made available to the user only after the search trigger is received. In this embodiment, the selection of a cell by the user before the navigation map is made available will have no effect (i.e., the cell will not be designated as the selected cell and no graphical representation of the selection will be displayed). The navigation map as displayed can consist of the cells and the search anchors, without any additional information. In another exemplary embodiment, however, the navigation map can additionally include information such as a representation of the results after the search trigger is received. For example, the navigation map can visually indicate the density of results in each cell.
Referring again to FIG. 11, a selected cell is received in 1104. The cell can be received in response to user input. The cell can also be selected by default (i.e., upon receiving the search trigger the results of a certain cell (for example, the center cell) are automatically displayed).
The results of the search for the selected cell are displayed in 1106. In other embodiments, the results can be output in other ways. Other output methods can include transmitting a set of documents to another computing device. The displayed documents can consist of a subsection of the documents of the ordered list generated when the cells are populated in 906 of FIG. 9. This subsection refers to the ordered list as a whole or any subset of the documents in the ordered list. The results can be shown as listed in the ordered list and displayed in a separate real-time result exploration panel, or in any other manner in accordance with the objects of the disclosed subject matter.
The user can then select any cell. Color coding can be used to indicate which cells have already been searched. In connection with an exemplary embodiment, for each selected cell, a list of results is displayed based at least in part on the distance between the cell and the search anchors. In some cases, the user can have invested a significant amount of time in formulating the query and browsing the results to identify a set of results. If an ideal location (or, more specifically, a cell that is influenced by each search anchor to an extent the user finds ideal for his/her purposes) is found, the user may not want to have to have to perform the entire search again in order to find the same location. In such circumstances, a user can save the ideal location, or a reference to the location, as a super-anchor. For example, in FIG. 12a, cell 1202 is selected. The concept relevance weight 1206 displayed in the separate window 1208 corresponds to the selected cell 1202. The user may find the results displayed in the result exploration panel 1204 to be well-suited for his/her purposes. The cell 1202 or, in one embodiment, the concept relevance weight 1206 which corresponds to the cell 1202, can be stored to memory. The user can access and apply the stored super-anchor at a later time or to another search, as in FIG. 12b, or set the super-anchor as an automated alert, such that the user receives an email or other communication when new responsive search results are added to the data set. Additionally, the super-anchor can be used as a search anchor in a later search. Similarly, this exemplary embodiment of the disclosed subject matter could be modified to allow users to load or save entire navigation maps across many searches, thereby creating templates of navigation maps that can be quickly reapplied by any user or to any collection of data.
After viewing a set of results, the user can find that none of the results are satisfactory, and the user can edit the search criteria. When the user selects a search concept, it can be added to the navigation map as a search anchor and a request can be initiated for new concept relevance weights and a new result list. Similarly, new concept relevance weights and result lists can be applied if concepts are removed or rearranged on the navigation map. To execute these changes, an exemplary embodiment of the disclosed subject matter can monitor changes to the navigation map and compute new concept relevance weights for each cell (stage 204 of FIG. 2), but can be configured to perform the planning and rendering stage (stage 206 of FIG. 2) for an individual cell only if the cumulative concept relevance weight change exceeds a pre-determined stability threshold, as these recalculations can consume significant system resources. However, in another embodiment, a system of the disclosed subject matter can be configured to repopulate all cells for the entire navigation map. This cumulative concept relevance weight change can be calculated by aggregating the changes for the concept relevance weight of the cell for each concept. The threshold can be heuristically chosen to ensure that the user's modification did not significantly modify the previously planned and rendered navigation map layout. However, the threshold can also be chosen according to a wide range of additional information including available memory and other system resources, and the accuracy required by the search.
The cumulative concept relevance weight change can also be calculated when a search anchor is replaced through the use of in-place anchor editing. The in-place anchor editing process allows fast lookup of related search concepts by, for example, right clicking on a search anchor. It also allows the user to swap in a back-up search anchor. The related search concepts that can be swapped in can include other concepts suggested in the query formulation stage, metadata relationships such as capture time, author/channel, and geographic location, or any other variables that would be helpful to the user in connection with the intended search.
The system and method of the disclosed subject matter can be implemented with a continuous scrolling interface that dynamically renders subsets of results as the user inspects and depletes the current set of documents that have already been cached. In one embodiment, only a first page of documents can be readily available for any given cell. The continuous scrolling technique can enhance efficiency by avoiding the time lost when the user attempts to access additional pages of documents (in this example, by clicking “next”) and waits for further documents to be displayed. This dynamic loading can reduce demands on the system for results that the user is not interested in while guaranteeing the instant availability of documents for a query permutation that the user is interested in.
Referring now to FIG. 13, a graphical user interface screen is provided for an exemplary embodiment of the disclosed subject matter. FIG. 13 provides an interface screen for the displaying results stage 208 of FIG. 2. The selected cell 1302 is indicated by the square. The results for the selected cell 1302 are displayed in a separate real-time result exploration panel 1304. The simultaneous availability of both the navigation map 1306 and the result exploration panel 1304 allows the user to instantly switch between navigation for depth or breadth without breaking focus on the result exploration at hand. The concept relevance weight of the selected cell is indicated in another separate window 1308. Note that the concept relevance weight is one for the search anchor positioned at the selected anchor cell 1302 and zero for all other search anchors. A result detail panel 1310 displays additional information for a particular selected result 1312 which, in this exemplary embodiment, is selected by placement of the cursor over the result.
FIG. 14 illustrates an exemplary embodiment of a user interface screen displayed when a concept other than a semantic concept is chosen as a search anchor. Notably, the search anchors are not limited to text, metadata, or search concepts, and can also include media such as images, video, audio cues, and the like. Scored search results from a previous query can also be used as a search anchor. The navigation map 1402 contains a search anchor based on a visual image 1406. The search anchor 1406 is selected by choosing the corresponding visual image example 1404 from the instant concept suggestion panel 1408. In one example, the visual image is added to the instant concept suggestion panel by performing a search and selecting a result. However, non-semantic concepts can be added to the instant concept suggestion panel or directly to the navigation map itself by any method known in the art, including selecting a saved image from a previous search, the use of an “Add” button, or by drag-and-drop interaction. When a non-semantic concept is used as a search anchor, all available features pertaining to that concept can be used. In another embodiment, the user can select what type of feature they want to use when, for example, an image is inserted as an anchor. Features which may be selected by the user can include, but are not limited to, color, texture, local similarity, and edge. Those having ordinary skill in the art will recognize that the system can be adapted to include a wide range of features.
FIG. 15 illustrates an exemplary user interface screen utilizing a secondary result exploration panel. The display results are initially presented in the result exploration panel 1502. The user can browse through the documents and can select one of the documents by, for example, clicking on the image with a mouse. When the user selects a document in the result exploration panel 1502, a secondary result exploration panel 1504 can be displayed. The secondary result panel 1504 can contain documents related to the selected document. In the present example, the contents of the secondary result panel 1504 are controlled by the related feature panel 1506, which in FIG. 15 contains four different features 1514. In FIG. 15, document 1508 from the result exploration panel 1502 has been chosen. The selected document 1508 shows towers and a lake, as described in the result detail panel 1510. The result detail panel 1510 also includes a map. The documents displayed in the secondary result exploration panel 1504 are related to the selected document 1508 according to the GeoPosition button 1512 in the related feature panel 1506. This indicates that the source of all the documents in the secondary result exploration window 1504 are located at or near the same geographic position as the source for the selected document 1508 as defined by the map referenced in the result detail panel 1510. Those having skill in the art will recognize that a multitude of additional features can be included in the related feature panel 1506 for relating a selected document to a set of secondary results.
FIG. 16 illustrates the use of in-place result filtering. In-place result filtering is another tool that can be used to explore a set of results associated with a selected cell. In-place result filtering allows the user to limit the displayed results based on information associated with the documents. This information can be metadata. For example, in FIG. 16, the in-place result filtering has sliding filters corresponding to time 1602, date 1604, year 1606, and a map corresponding to geographic location 1608. Each of the sliding filters has two sliders, the lower boundary slider 1610 and the upper boundary slider 1612, which are used to define the boundaries of the results to be displayed, The map contains a selection box 1614 that similarly sets the geographic boundaries or the results.
In another embodiment, the information used to limit the displayed results can be face information. Face filtering can allow a user to filter the results for any face information, such as the presence of large faces, the presence of a single face, the presence of multiple faces, or the presence of any faces. Those having ordinary skill in the art will recognize that other filters and further exploration methods can be used to filter the results in a similar manner.
FIG. 17 illustrates the use of query expansion results as a search anchor. Query expansion can allow a user to see the most similar results according to the user's inputs. Once a set of results has been presented, the user can label a document. For example, a document can be labeled as either negative or positive. If the user labels a document as positive, the query expansion method can add a positive weight to the document relevance weight of each of the N nearest neighbors of the positively-labeled documents. If the user labels a document as a negative document, the query expansion method can add a negative weight to the document relevance weight of each of the N nearest neighbors of the negative document. In some embodiments, the magnitude of the weight added can be based on the proximity of a document to a labeled document, such that the weight added to the Mth nearest neighbor of a positively-labeled document is greater than the weight added to the (M+1)th nearest neighbor of the labeled document.
In another embodiment, the user can label the results relevant to a particular feature of a document for query expansion. For example, the user may select nearest neighbors using color features of the document and label those results as either negative or positive. Other features that can be labeled in this manner include texture, local similarity, modalities, and movement features such as curvatures or speed of path. Those having ordinary skill in the art will recognize that the system can be adapted to include a wide range of features. The query expansion method can then add a positive or negative weight to each of the N nearest neighbors of the document based on the particular feature.
Once the user has labeled a set of documents, the system can require the user to trigger the query expansion. For example, the user can be required to select a particular button using a mouse or to press a particular key on the keyboard. In another embodiment, query expansion can occur as soon as a document is labeled. The query expansion method can then generate a new set of results according to the new document relevance weights defined by the query expansion method and the user's labels. The query expansion results can be displayed in a query expansion window. The query expansion window can be a separate window. In other embodiments, the query expansion window can be a window that is displayed when the user selects a query expansion tab. The user may decide that the query expansion results are useful and choose to save the results for future access. In other embodiments, the query expansion results are saved automatically. The query expansion results can be saved as a list. For example, the list can include only the results that the user sees in the query expansion window. The list can be saved with a timestamp for unique identification. In other embodiments, the list can be named by the user. The query expansion results 1702 can then be used as a search anchor as shown in FIG. 17.
The foregoing merely illustrates the principles of the disclosed subject matter. Various modifications and alterations to the described embodiments will be apparent to those skilled in the art in view of the inventors' teachings herein. For example, a placement map 602 as in FIG. 6 can be displayed to the user for placement of the search anchors on a navigation map. Features of existing search systems, including finding similar or near-duplicate results and an inspection of speech transcripts from the content's original video, can be seamlessly integrated into the interface of the exemplary embodiments of the disclosed subject matter or a similar system. It will thus be appreciated that those skilled in the art will be able to devise numerous systems and methods which, although not explicitly shown or described herein, embody the principles of the disclosed subject matter and are thus within its spirit and scope.

## Claims

1. A computer-implemented method for dynamically and interactively searching a media database, comprising:
(a) receiving one or more search anchors;
(b) associating, using a processor, at least one of said one or more search anchors with at least one anchor cell on a navigation map;
(c) populating at least one cell on the navigation map with one or more documents based at least in part on said associated search anchors wherein said populating comprises
(i) computing, using one or more processors, a concept relevance weight for said at least one cell on said navigation map, said concept relevance weight being based at least in part on said associated search anchors; and
(ii) populating said at least one cell with one or more documents from a database according to said concept relevance weight; and

(d) outputting at least one of said documents assigned to said at least one cell on the navigation map.

2. The computer-implemented method of claim 1, wherein said outputting comprises displaying said at least one of said documents assigned to a selected cell on a display.

3. The computer-implemented method of claim 1, wherein said outputting comprises transmitting said at least one of said documents to a second computing device.

4. The computer-implemented method of claim 1, wherein said populating comprises:
(a) populating said at least one cell with a first set of one or more documents according to a first concept relevance weight;
(b) receiving an indication that at least one of said associated search anchors have been altered;
(c) computing a second concept relevance weight for said at least one cell based on said altered search anchors; and
(d) re-populating said at least one cell with a second set of one or more documents according to said second concept relevance weight only if a cumulative weight change of said at least one cell exceeds a pre-determined stability threshold.

5. The computer-implemented method of claim 1, wherein said receiving comprises:
(a) receiving a text query;
(b) outputting a plurality of concepts based on said text query; and
(c) receiving a selection of a concept from said plurality of concepts.

6. The computer-implemented method of claim 1, wherein said computing comprises:
(a) positioning said associated search anchors on said navigation map; and
(b) computing said concept relevance weight for said at least one cell on said navigation map based at least in part on the position of said associated search anchors on said navigation map.

7. The computer-implemented method of claim 1, wherein said populating comprises:
(a) computing a total relevance score for each of a plurality of documents according to said concept relevance weight and a document relevance score;
(b) prioritizing a pre-determined number of said plurality of documents for said at least one cell;
(c) identifying a remainder group of documents comprising a subsection of said plurality of documents not included in said pre-determined number of prioritized documents; and
(d) populating said cell with an ordered plurality of documents, wherein said pre-determined number of prioritized documents are followed by said remainder group of documents.

8. A non-transitory computer-readable medium, encoded with a computer program that includes computer executable instructions for dynamically and interactively searching a media database, which when executed causes a processor to:
(a) receive one or more search anchors;
(b) associate at least one of said one or more search anchors with anchor cells on a navigation map;
(c) populate at least one cell on the navigation map with one or more documents based at least in part on said associated search anchors; and
(d) output at least one of said documents assigned to at least one cell on the navigation map,

wherein the computer program further causes the processor to store said at least one cell in memory as a super-anchor.

9. A computer-implemented method, for dynamically and interactively searching a media database, comprising:
(a) receiving one or more search anchors;
(b) associating, using a processor, at least one of said one or more search anchors with at least one anchor cell on a navigation map;
(c) populating at least one cell on the navigation map with one or more documents based at least in part on said associated search anchors;
(d) outputting at least one of said documents assigned to said at least one cell on the navigation map; and
(e) storing a selected cell in memory as a super-anchor.

10. A computer-implemented method, for dynamically and interactively searching a media database, comprising:
(a) receiving one or more search anchors;
(b) associating, using a processor, at least one of said one or more search anchors with at least one anchor cell on a navigation map;
(c) populating at least one cell on the navigation map with one or more documents based at least in part on said associated search anchors; and
(d) transmitting said at least one of said documents to a second computing device, wherein said at least one of said documents is transmitted for each cell on said navigation map according to a cell priority list.

11. A system for dynamically and interactively searching a media database, comprising:
(a) an interface for receiving one or more search anchors;
(b) one or more processors, coupled to said interface, for associating at least one of said one or more search anchors with at least one anchor cell on a navigation map and for populating at least one cell with one or more documents based at least in part on said associated search anchors; and
(c) a display, coupled to said one or more processors, for displaying at least one of said documents assigned to said at least one cell on the navigation map,

wherein said one or more processors are configured to compute a concept relevance weight for said at least one cell based at least in part on said associated search anchors and populate said at least one cell with said one or more documents from a database according to said concept relevance weight.

12. The system of claim 11 wherein said interface is configured to receive a search trigger and a selected cell, and wherein said display is configured to display said at least one of said documents assigned to said selected cell.

13. The system of claim 11 wherein said interface is configured to receive a text query and receive a selection of a concept from a plurality of concepts, and said display is configured to display said plurality of concepts based on said text query.

14. The system of claim 11, wherein said one or more processors are configured to position said associated search anchors on said navigation map and compute said concept relevance weight for said at least one cell based at least in part on the position of said associated search anchors on said navigation map.

15. The system of claim 11 wherein said one or more processors are configured to compute a total relevance score for each of a plurality of documents according to said concept relevance weight and a document relevance score, prioritize a pre-determined number of said plurality of documents for said at least one cell, identify a remainder group of documents comprising a subsection of said plurality of documents not included in said pre-determined number of prioritized documents, and populate said at least one cell with an ordered plurality of documents, wherein said pre-determined number of prioritized documents are followed by said remainder group of documents.

16. A system of for dynamically and interactively searching a media database, comprising:
(a) an interface for receiving one or more search anchors;
(b) one or more processors, coupled to said interface, for associating at least one of said one or more search anchors with at least one anchor cell on a navigation map and for populating at least one cell with one or more documents based at least in part on said associated search anchors;
(c) a display, coupled to said one or more processors, for displaying at least one of said documents assigned to said at least one cell on the navigation map; and
(d) a memory device for storing said at least one cell as a super-anchor.

17. A non-transitory computer-readable medium encoded with a computer program that includes computer executable instructions for dynamically and interactively searching a media database, which when executed causes a processor to:
(a) receive one or more search anchors;
(b) associate at least one of said one or more search anchors with anchor cells on a navigation map;
(c) populate at least one cell on the navigation map with one or more documents based at least in part on said associated search anchors, comprising:
(i) compute a concept relevance weight for said at least one cell on said navigation map, said concept relevance weight being based at least in part on said associated search anchors; and
(ii) populate said at least one cell with one or more documents from a database according to said concept relevance weight; and

(d) output at least one of said documents assigned to at least one cell on the navigation map.

18. The non-transitory computer-readable medium of claim 17, wherein the computer program causes the processor to:
(e) receive a search trigger;
(f) receive a selected cell; and
(g) output said at least one of said documents assigned to said selected cell.

19. The non-transitory computer-readable medium of claim 17, wherein the computer program causes the processor to display said at least one of said documents assigned to a selected cell on a display screen.

20. The non-transitory computer-readable medium of claim 17, wherein the computer program causes the processor to transmit said at least one of said documents to a second computing device.

21. The non-transitory computer-readable medium of claim 17, wherein the computer program causes the processor to:
(g) compute a total relevance score for each of a plurality of documents according to said concept relevance weight and a document relevance score;
(h) prioritize a pre-determined number of said plurality of documents for said at least one cell;
(i) identify a remainder group of documents comprising a subsection of said plurality of documents not included in said pre-determined number of prioritized documents; and
(j) populate said at least one cell with an ordered plurality of documents, wherein said pre-determined number of prioritized documents are followed by said remainder group of documents.

22. The non-transitory computer-readable medium of claim 17, wherein the computer program causes the processor to:
(e) receive a text query;
(f) output a plurality of concepts based on said text query; and
(g) receive a selection of a concept from said plurality of concepts.

23. The non-transitory computer-readable medium of claim 17, wherein the computer program causes the processor to:
(g) position said associated search anchors on said navigation map; and
(h) compute said concept relevance weight for said at least one cell on said navigation map based at least in part on the position of said associated search anchors on said navigation map.