Dynamic Generation of Facets Using Graph Partitioning

JP7643813B2Active Publication Date: 2025-03-11INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2022562240
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-04-21
Filing Date
2021-03-17
Publication Date
2025-03-11
Estimated Expiration
2041-03-17

Smart Images

  • Figure 0007643813000004
    Figure 0007643813000004
  • Figure 0007643813000005
    Figure 0007643813000005
  • Figure 0007643813000006
    Figure 0007643813000006
Patent Text Reader

Abstract

An example system includes a processor that receives concepts extracted from a result set corresponding to a query and result relevance for each extracted concept. The processor constructs a graph based on the extracted concepts, the graph including several nodes representing the extracted concepts and weighted edges representing similarities between the concepts extracted from the shared results. The processor divides the graph into subgraphs with vertices corresponding to candidate facets for vertices with higher sums of weighted edges. The processor ranks the candidate facets. The processor selects the higher-ranked candidate facets for use as facets. The processor outputs the facets with the result set responsive to the query.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present technology relates to facets, and more particularly, to dynamically generating facets. Summary of the Invention

[0002] According to embodiments described herein, the system may include a processor that receives concepts extracted from a result set corresponding to a query and result associations for each extracted concept. The processor may also further construct a graph based on the extracted concepts. The graph includes some nodes representing the extracted concepts and weighted edges representing similarities between the concepts extracted from the shared results. The processor may also divide the graph into subgraphs with vertices corresponding to candidate facets for vertices with higher sums of weighted edges. The processor may further rank the candidate facets. The processor may select the higher ranked candidate facets for use as facets. The processor may also further output facets with the result set responsive to the query.

[0003] According to another embodiment described herein, the method may include receiving, by a processor, a query, a result set corresponding to the query, and a knowledge base. The method may further include extracting, by the processor, concepts from the result set using the knowledge base. The method may further include constructing, by the processor, a graph based on the extracted concepts. The graph includes some nodes representing concepts and weighted edges representing similarities between the concepts extracted from the shared results. The method may also include partitioning, by the processor, the graph into subgraphs with vertices corresponding to candidate facets for vertices having higher sums of weighted edges. The method may further include ranking, by the processor, the candidate facets. The method may further include selecting, by the processor, the higher ranked candidate facets for use as facets. The method may also include outputting, by the processor, facets with the result set responsive to the query.

[0004] According to another embodiment described herein, a computer program product for facet generation may include a computer readable storage medium having program code embodied therein. The computer readable storage medium is not a transitory signal itself. The program code executable by a processor causes the processor to receive a query, a result set corresponding to the query, and a knowledge base. The program code may also cause the processor to extract concepts from the result set using the knowledge base. The program code may also cause the processor to construct a graph based on the extracted concepts. The graph includes some nodes representing concepts and weighted edges representing similarities between the concepts extracted from the shared results. The program code may also cause the processor to partition the graph into subgraphs with vertices corresponding to candidate facets for vertices having a higher sum of weighted edges. The program code may also cause the processor to rank the candidate facets. The program code may also cause the processor to further select a higher ranked candidate facet for use as a facet. The program code may also cause the processor to output a facet with a result set responsive to the query. [Brief description of the drawings]

[0005] [Figure 1] FIG. 1 is a block diagram of an example system for dynamically generating facets using graph partitioning. [Diagram 2] FIG. 2 is a block diagram of an example method that may use graph partitioning to dynamically generate facets. [Diagram 3] FIG. 1 is a block diagram of an example computing device that can dynamically generate facets using graph partitioning. [Figure 4] FIG. 1 is a diagram of an example cloud computing environment, according to embodiments described herein. [Diagram 5] FIG. 2 is a diagram of an example abstract model layer, according to embodiments described herein. [Figure 6] 1 is an example tangible, non-transitory computer-readable medium that can use graph partitioning to dynamically generate facets. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0006] Some systems provide filters to filter search results. For example, a user submits a search query and the system may suggest multiple filters for the user to select from to help the user narrow the list of results. These filters are referred to herein as facets. Facets, as used herein, refer to dimensions along which each result of the query may be categorized. For example, a search engine on a website selling camera lenses may have a set of facets including camera type, lens focal length, lens speed, etc. for a query of lenses made by a particular manufacturer. These facets may be selected by the system based on the results returned for the query. The system may then suggest one or more facets to the user to help narrow the search results. In this way, the system may allow the taxonomy to be accessed and ordered in multiple ways rather than a single, predefined taxonomic order. However, such facets may be limited to a predefined set of facets. Such search engines may not automatically adapt to add facets as additional features emerge, such as autofocus capabilities, eye or face tracking capabilities, etc. Rather, such search engines may simply count the number of times a concept appears in a set of search results and display a predefined set of facets accordingly. Furthermore, queries submitted to a general search engine may have many different intents. For example, the submitted query "jaguar" may be intended to refer to an animal or an automobile manufacturer. It may be very difficult, if not impossible, to predefine different sets of facets for all possible query intents.

[0007] According to an embodiment of the present disclosure, a processor of the system may receive concepts extracted from a result set corresponding to a query and result relevance for each extracted concept. The processor may build a graph based on the extracted concepts, the graph including several nodes representing the extracted concepts and weighted edges representing similarity between the concepts extracted from the shared results. For example, two nodes may share an edge only if the concepts are found together in at least one of the results. Weights may then be assigned to the edges based on similarity. The processor may divide the graph into subgraphs with vertices corresponding to candidate facets for vertices with higher sums of weighted edges. The processor may further rank the candidate facets. The processor may select the higher ranked candidate facets to use as facets. The processor may then output facets with the result set responsive to the query. Thus, an embodiment of the present disclosure allows a user to narrow down a result set of a query using facets, thereby reducing the user's effort in finding the intended results. The technique allows for automatic generation of facets from a set of predefined meaningful concepts.

[0008] 1, a block diagram illustrates an example system for dynamically generating facets using graph partitioning. The example system is generally indicated by reference numeral 100. In various embodiments, system 100 may be used to implement method 200 of FIG. 2 using computing device 300 of FIG.

[0009] 1 includes a user interface 102. The system 100 includes a concept extractor 104 communicatively coupled to the user interface 102. The system 100 also includes a search engine 106 communicatively coupled to the concept extractor 104. The system 100 also includes a facet service 108 communicatively coupled to the concept extractor 104.

[0010] 1, the user interface 102 may receive a query 110 from a user and send the query to the concept extractor 104. The concept extractor 104 may forward the query 110 to the search engine 106. The search engine 106 may generate a result set 112 based on the query and send the result set 112 to the concept extractor 104. For example, the result set may be a set of documents.

[0011] The concept extractor 104 may then generate groups of concepts with result relevance. For example, each group of concepts may be associated with a particular result in the result set 112. In various embodiments, the concept extractor 104 may have access to a closed set of high-level categories for one or more domains. As one example, for the domain of computer science, the arXiv Archive of Computer Science Categories may be used. For example, these categories include "Artificial Intelligence," "Computation and Language," "Computational Complexity," "Computational Engineering," "Finance, Science, and Computational Geometry," "Computer Science and Game Theory," "Computer Vision and Pattern Recognition," "Computers and Society," "Cryptography and Security," "Data Structures and Algorithms," "Databases," "Digital Libraries," "Discrete Mathematics," "Distributed, Parallel, and Cluster Computing," "Advanced Technology," "Formal Languages ​​and Automata Theory," "General Literature," "Graphics," "Hardware Architecture," "Human-Computer Interaction," "Information Retrieval," "Information Theory," "Logic in Computer Science," and the like, among other categories. The concept extractor 104 may also have access to a knowledge base. For example, the knowledge base may be Wikipedia. High level categories for one or more domains may be mapped to categories in the knowledge base. In various embodiments, mention detection may operate as part of the concept extractor 104 ingestion pipeline, and mentions are stored in the index. For example, the mention detection tool may be any suitable general purpose mention detection tool, such as TagMe, a natural language understanding (NLU) tool, or Term Wikifier (TW), whose first version was released in 2010. The concept extractor 104 may apply the mention detection tool to all documents in the result set 112. In various embodiments, the concept extractor 104 may traverse the category tree of the knowledge base and keep only concepts whose categories are below the hierarchy of the domain.For example, only concepts whose categories lead to one of the higher categories in the domain hierarchy may be included in the group of concepts with result relevance 114. The concept extractor 104 may send the group of concepts with result relevance 114 to the facet service 108. As an example, the paper "Sparsity-certifying Graph Decompositions" was analyzed to extract concepts using a mention detection tool. The surface forms of the extracted concepts as they appear in the paper were "Pebble game", "Spanning tree", "Matroid", "Vertex", and "Academic term". The extracted concepts associated with these phrases were "Pebble game", "Spanning tree", "Matroid", "Vertex (graph theory)", and "Academic term". The corresponding high level categories associated with these concepts were "Computational complexity theory", "Computational complexity theory", "Discrete mathematics", "Discrete mathematics", and "Computational linguistics".

[0012] In various embodiments, the concepts extracted by the concept extractor 104 using the mention detection tool may still include concepts that are not very informative. For example, a concept may be too general to be used as a filter. Continuing with the above example, the concepts “vertex” and “academic term” may not be very useful to be used as facets. In some embodiments, the concept extractor 104 may refine the set of concepts using information from the knowledge base. For example, a concept that is frequently mentioned in the knowledge base may be seen as very general if it has few inlinks. Thus, the concept extractor 104 may remove concepts that have few inlinks that do not exceed a first threshold or exceed a higher second threshold. For example, a concept that has a large number of inlinks may be too general and therefore not very informative. In various embodiments, the concept extractor 104 may further filter the extracted concepts. In some embodiments, the concept extractor 104 may filter the extracted concepts by long paths from the top level category. For example, extracted concepts that have paths longer than a threshold path p may be filtered from the results relevant concepts 114. In some embodiments, the concept extractor 104 may filter the extracted concepts by a pre-retrieval query performance prediction (QPP) function. For example, the concept extractor 104 may use QPP to estimate whether a query is difficult based on properties of the query terms. As an example, the "definiteness" property may be measured as the difference in the probability of a term in a collection compared to the average probability of all terms. The concept extractor 104 may filter out concepts with low definiteness values. In various embodiments, the concept extractor 104 may calculate similarity properties for concepts.

[0013] The facet service 108 may dynamically generate facets 116 based on groups 114 of concepts with result relevance using graph partitioning. Given a query and a result set including concepts, the facet service 108 may rank the concepts according to some objective. For example, the facet service 108 may rank the concepts by their ability to extract homogenous intent from the result set. In some implementations, the facet service 108 may select the top k concepts to maximize the objective and use the top k concepts as facets. The facet service 108 may rank the concepts by maximizing separation of the result set into a diversified set of user intents.

[0014] For example, the facet service 108 may construct a graph from the extracted concepts. The facet service 108 may model the co-occurrences of concepts in the group of concept with result relevance 114 as nodes connected by edges in an undirected graph. In some implementations, the nodes may be weighted based on the number of inlinks of the concept they represent, as described above.

[0015] As described above, an edge may exist between two nodes representing concepts in the graph if the two concepts appear together in at least one of the results in the result set 112. In some embodiments, an edge weight may also be included to indicate the similarity between those concepts. For example, the weight of an edge may represent the similarity between the concepts. In various embodiments, the facet service 108 may use normalized pairwise mutual information (PMI) or normalized Google (Registered Trademark) The facet service 108 may weight the edges using normalized Google distance (NGD). For example, the facet service 108 may use the formula:

number

number

[0016] In various embodiments, the facet service 108 may filter a group of concepts by selecting a vertex corresponding to one of the concepts as a candidate facet for filtering the results. For example, the results filtered by the candidate facet may include only concepts that are neighbors of the facet in the graph. Thus, by selecting a particular concept as a candidate facet, the graph is divided into a subgraph and the remainder of the graph. In some embodiments, the candidate facet may be chosen by selecting the vertex that results in the most relevant concept in the resulting subgraph. Thus, the resulting subgraph may be homogeneous to represent distinct user intents. For example, the sum of edge weights in the subgraph induced by dividing the graph with the candidate facet may represent the homogeneity of the subgraph. In various embodiments, the candidate facet may be chosen based on the sum of weights exceeding some threshold homogeneity. The resulting candidate facets may be dynamic facets that represent different distinct intents of the user in submitting the query.

[0017] In various embodiments, the facet service 108 may then rank the candidate facets using a utility function. For example, the facet service 108 may rank the candidate facets using the formula:

number

[0018] Still referring to FIG. 1 , the facet service 108 may send the result set of facets 116 to the concept extractor 104. The concept extractor 104 may generate results including facets 116 and facets 118 along with results from the result set 112. The concept extractor 104 may send the results and facets 118 to the user interface 102 to be displayed to the user. Thus, in response to submitting a query, the user interface may display the set of results and facets 118. As an example, a query for “combinatorial optimization for Natural Language Processing” may return results with facets such as “combinatorial theory,” “machine learning,” “structured prediction,” “combinatorial optimization,” “algorithms,” “loss functions,” “approximation algorithms,” “complexity classes,” “natural language processing,” and “substitution.” As another example, a query for "Extractive document summarization" may return results and a set of facets, such as "Automatic Summarization," "Natural Language Processing," "Supervised Learning," "Word Embeddings," "Social Media," "Word2vec," "Self-Information," "Natural Language Generation," "Multi-Document Summarization," and "Loss Function."

[0019] The user may then select one or more facets for filtering the results. For example, the user interface 102 may receive a selection of one of the facets and filter the results displayed to the user accordingly. For example, in response to the user selecting a facet, the result set is filtered to show only results that include the selected facet. A new concept graph may then be constructed from the filtered results and new facets calculated and suggested to the user. In this manner, the user may be able to more efficiently search for various topics.

[0020] It should be understood that the block diagram of Figure 1 is not intended to indicate that system 100 includes all of the components shown in Figure 1. Rather, system 100 may include fewer components or additional components not shown in Figure 1 (e.g., additional user interfaces, queries, results, concept groups, facets, search engines, or additional concept extractors, etc.).

[0021] Figure 2 is a process flow diagram of an example method that may dynamically generate facets using graph partitioning. Method 200 may be implemented using any suitable computing device, such as computing device 300 of Figure 3, and will be described with reference to system 100 of Figure 1. For example, method 200 may be implemented using processor 302 of computing device 300 of Figure 3 or processor 602 of Figure 6.

[0022] At block 202, the processor receives a query, a result set corresponding to the query, and a knowledge base. For example, the result set may be received from a search engine in response to submitting a query to the search engine. In various embodiments, the knowledge base may be a knowledge graph. In one embodiment, the knowledge base may be Wikipedia.

[0023] In block 204, the processor extracts concepts from the result set using a knowledge base. In some embodiments, the processor may filter the extracted concepts by a long path from a top level category. In various embodiments, the processor may filter the extracted concepts by a pre-search QPP function.

[0024] In block 206, the processor constructs a graph based on the extracted concepts, the graph includes several nodes representing concepts and weighted edges representing similarity between the concepts extracted from the shared results. For example, an edge may be generated between two nodes only if the two concepts are found in the same result. Weights may then be assigned to the edges based on the similarity. In some embodiments, the processor may calculate a weight for each of the nodes based on the number of inlinks of the concept each node represents. In various embodiments, the processor may calculate a weight for each of the edges using normalized pairwise mutual information (PMI) or normalized Google distance (NGD).

[0025] In block 208, the processor divides the graph into subgraphs with vertices that correspond to candidate facets for vertices that have a higher sum of weighted edges.

[0026] In block 210, the processor ranks the candidate facets. In some embodiments, the processor may calculate a utility for each of the candidate facets and rank the candidate facets by the calculated utility. In various embodiments, the processor may approximate the ranking of the candidate facets using a graph neural network. For example, a graph neural network may be trained to rank the candidate facets by their proposed utility instead of calculating a utility per concept.

[0027] At block 212, the processor selects the higher ranked candidate facets to use as facets. At block 214, the processor outputs the facets with a result set that responds to the query.

[0028] 2 is not intended to indicate that the operations of method 200 should be performed in any particular order or that all of the operations of method 200 should be included in every case. In addition, method 200 may include any suitable number of additional operations. For example, method 200 may also include, in response to receiving the selected facets, filtering the result set to show only results that include the selected facets. Method 200 may also include constructing a new conceptual graph from the filtered results, computing new facets, and outputting the new facets.

[0029] In some scenarios, the techniques described herein may be implemented in a cloud computing environment. As described in more detail below with reference to at least Figures 3-6, a computing device configured to dynamically generate facets using graph partitioning may be implemented in a cloud computing environment. Although the present disclosure may include descriptions of cloud computing, it should be understood that implementations of the teachings recited herein are not limited to a cloud computing environment. Rather, embodiments of the present invention may be implemented in conjunction with any other type of computing environment now known or later developed.

[0030] Cloud computing is a model of service delivery for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal administrative effort or interaction with a service provider. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

[0031] The characteristics are as follows:

[0032] On-Demand Self-Service: Cloud consumers can unilaterally provision computing capabilities such as server time and network storage automatically as needed, without the need for human interaction with the service provider.

[0033] Broad network access: Capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin-client or thick-client platforms (e.g., cell phones, laptops, and PDAs).

[0034] Resource Sharing: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically allocated and reallocated according to demand. Location independence is implied in that consumers generally do not have control or knowledge over the exact location of the resources provided, but may be able to specify location at a higher level of abstraction (e.g., country, state, or data center).

[0035] Rapid Scalability: Capabilities can be quickly and elastically provisioned, in some cases automatically, to instantly scale out, and quickly released to instantly scale in. To the consumer, the capabilities available for provisioning often appear unlimited and can be purchased in any quantity at any time.

[0036] Services are meterable: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at a level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of the services being used.

[0037] The service model is as follows:

[0038] Software as a Service (SaaS): The capability provided to the consumer is the use of the provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

[0039] Platform as a Service (PaaS): The capability provided to the consumer is to deploy consumer-created or consumer-acquired applications, written using programming languages ​​and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but does have control over the deployed applications and, to the extent possible, the application hosting environment configuration.

[0040] Infrastructure as a Service (IaaS): The capability provided to the consumer is the supply of processing, storage, networking, and other basic computing resources on which the consumer can deploy and run any software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but does have control over the operating systems, storage, deployed applications, and possibly limited control over select networking components (e.g., host firewalls).

[0041] The deployment models are as follows:

[0042] Private Cloud: The cloud infrastructure is operated exclusively for an organization. The cloud infrastructure may be managed by the organization or a third party and may be on-premise or off-premise.

[0043] Community Cloud: The cloud infrastructure is shared by multiple organizations to support a specific community with shared concerns (e.g., mission, security requirements, policy, and compliance considerations). The cloud infrastructure may be managed by the organization or a third party and may reside on-premise or off-premise.

[0044] Public Cloud: The cloud infrastructure is made available to the general public or large industry organizations and is owned by an organization that sells cloud services.

[0045] Hybrid Cloud: The cloud infrastructure is a composite of two or more clouds (private, community, or public) that remain a unique entity but are joined by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).

[0046] A cloud computing environment is stateless, low-coupling, modular, and service-oriented with a focus on semantic interoperability. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes.

[0047] FIG. 3 is a block diagram of an example computing device that may dynamically generate facets using graph partitioning. The computing device 300 may be, for example, a server, a desktop computer, a laptop computer, a tablet computer, or a smartphone. In some examples, the computing device 300 may be a cloud computing node. The computing device 300 may be described in the general context of computer system executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc. that perform particular tasks or implement particular abstract data types. The computing device 300 may be implemented in a distributed cloud computing environment where tasks are performed by remote processing devices linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media, including memory storage devices.

[0048] The computing device 300 may include a processor 302 for executing stored instructions and a memory device 304 for providing temporary memory space for the operation of said instructions during operation. The processor may be a single-core processor, a multi-core processor, a computing cluster, or any number of other configurations. The memory 304 may include random access memory (RAM), read-only memory, flash memory, or any other suitable memory system.

[0049] The processor 302 may be connected through a system interconnect 306 (e.g., PCI®, PCI-Express®, etc.) to an input / output (I / O) device interface 308 adapted to connect the computing device 300 to one or more I / O devices 310. The I / O devices 310 may include, for example, a keyboard and a pointing device, which may include a touchpad or touchscreen, among others. The I / O devices 310 may be built-in components of the computing device 300 or may be devices externally connected to the computing device 300.

[0050] The processor 302 may also be linked through the system interconnect 306 to a display interface 312 adapted to connect the computing device 300 to a display device 314. The display device 314 may include a display screen that is a built-in component of the computing device 300. The display device 314 may also include a computer monitor, television, or projector, among others, connected externally to the computing device 300. In addition, a network interface controller (NIC) 316 may be adapted to connect the computing device 300 to a network 318 through the system interconnect 306. In some embodiments, the NIC 316 may transmit data using any suitable interface or protocol, such as an Internet Small Computer System Interface, among others. The network 318 may be a cellular network, a wireless network, a wide area network (WAN), a local area network (LAN), or the Internet, among others. An external computing device 320 may connect to the computing device 300 through the network 318. In some embodiments, the external computing device 320 may be an external web server 320. In some embodiments, the external computing device 320 may be a cloud computing node.

[0051] The processor 302 may also be linked through the system interconnect 306 to a storage device 322, which may include a hard drive, an optical drive, a USB flash drive, an array of drives, or any combination thereof. In some embodiments, the storage device may include a user interface module 324, a concept extractor module 326, a search engine module 328, and a facet services module 330. The user interface module 324 may receive a query and send the query to the concept extractor module 326. The concept extractor module 326 may receive the query, a result set corresponding to the query, and a knowledge base. In some embodiments, the concept extractor module 326 may receive a result set from the search engine module 328. The concept extractor module 326 may extract concepts from the result set using the knowledge base. For example, the concept extractor module 326 may extract concepts from the result set corresponding to the query using the knowledge base. In some examples, the concept extractor module 326 may map high-level categories for the domain to categories in the knowledge base. In various examples, the concept extractor module 326 may apply a mention detection tool to all documents in the result set to extract concepts. In some examples, the concept extractor module 326 may traverse the category tree of the knowledge base to extract concepts whose categories are under the hierarchy of the domain. In various examples, the concept extractor module 326 may filter the extracted concepts based on the number of pages that contain mentions of the concept. The search engine module 328 may receive the query and generate a result set based on the query. The facet service module 330 may build a graph based on the extracted concepts. The graph includes a number of nodes that represent concepts and weighted edges that represent similarity between the concepts extracted from the shared results. In some examples, the facet service module 330 may calculate similarity between concepts using cosine similarity between pre-trained embeddings of the knowledge base.In various embodiments, the facet service module 330 may calculate a weight for each of the number of nodes based on the number of inlinks of the concept that each node represents. In various embodiments, the facet service module 330 may calculate a weight for each of the edges using normalized pairwise mutual information (PMI) or normalized Google distance (NGD). The facet service module 330 may divide the graph into subgraphs with vertices that correspond to candidate facets for vertices that have a higher sum of weighted edges. The facet service module 330 may rank the candidate facets. In some embodiments, the facet service module 330 may calculate a utility for each of the candidate facets and rank the candidate facets by the calculated utility. In some embodiments, the facet service module 330 may approximate the ranking of the candidate facets using a graph neural network. The facet service module 330 may select the higher ranked candidate facets to use as facets. The facet services module 330 may then output facets having a result set that responds to the query.

[0052] It should be understood that the block diagram of Figure 3 is not intended to indicate that the computing device 300 includes all of the components shown in Figure 3. Rather, the computing device 300 may include fewer components or additional components not shown in Figure 3 (e.g., additional memory components, embedded controller, modules, additional network interfaces, etc.). Additionally, any of the functionality of the user interface module 324, the concept extractor module 326, the search engine module 328, and the facet services module 330 may be implemented, in part or in whole, in hardware and / or the processor 302. For example, the functionality may be implemented in an application specific integrated circuit, in logic implemented in an embedded controller, or in logic implemented in the processor 302, among others. In some embodiments, the functionality of the user interface module 324, the concept extractor module 326, the search engine module 328, and the facet services module 330 may be embodied in logic, which as referred to herein may include any suitable hardware (e.g., a processor, among other things), software (e.g., an application, among other things), firmware, or any suitable combination of hardware, software, and firmware.

[0053] Referring now to FIG. 4, an exemplary cloud computing environment 400 is shown. As shown, the cloud computing environment 400 includes one or more cloud computing nodes 402 with which local computing devices used by cloud consumers, such as, for example, a personal digital assistant (PDA) or mobile phone 404A, a desktop computer 404B, a laptop computer 404C, or an automobile computer system 404N, or combinations thereof, may communicate. The nodes 402 may communicate with each other. They may be physically or virtually grouped in one or more networks, such as a private cloud, a community cloud, a public cloud, or a hybrid cloud, or combinations thereof, as described above (not shown). This allows the cloud computing environment 400 to offer infrastructure, platform, or software, or combinations thereof, as a service without the cloud consumer having to maintain resources on the local computing device. It should be understood that the types of computing devices 404A-N shown in FIG. 4 are intended to be merely exemplary, and that the computing nodes 402 and cloud computing environment 400 may communicate with any type of computerized device via any type of network and / or network addressable connections (e.g., using a web browser).

[0054] Referring now to Figure 5, a set of functional abstraction layers provided by cloud computing environment 400 (Figure 4) is shown. It should be understood in advance that the components, layers, and functions shown in Figure 5 are intended to be merely illustrative, and that embodiments of the invention are not limited thereto. As shown, the following layers and corresponding functions are provided:

[0055] The hardware and software layer 500 includes hardware and software components. Examples of hardware components include mainframes, such as IBM® zSeries® systems, RISC (reduced instruction set computer) architecture-based servers, such as IBM® pSeries® systems, IBM® xSeries® systems, and IBM® BladeCenter® systems, storage devices, networks, and networking components. Examples of software components include network application server software, such as IBM® WebSphere® application server software, and database software, such as IBM® DB2® database software. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere, and DB2 are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide.)

[0056] The virtualization layer 502 provides an abstraction layer at which the following examples of virtual entities may be provided: virtual servers, virtual storage, virtual networks including virtual private networks, virtual applications and operating systems, and virtual clients. In one embodiment, the management layer 504 may provide the functionality described below. Resource provisioning provides dynamic procurement of computing and other resources utilized to perform tasks within the cloud computing environment. Metering and pricing provides cost tracking as resources are utilized within the cloud computing environment and provides billing or charging for the consumption of these resources. In one embodiment, these resources may include application software licenses. Security provides protection for data and other resources as well as identity verification for cloud consumers and tasks. A user portal provides consumers and system administrators with access to the cloud computing environment. Service level management provides cloud computing resource allocation and management such that requested service levels are met. Service level agreement (SLA) planning and fulfillment provides pre-configuration and procurement of cloud computing resources where future requirements are anticipated according to SLAs.

[0057] The workload layer 506 provides examples of functionality for which a cloud computing environment may be utilized. Examples of workloads and functions that may be provided from this layer include mapping and navigation, software development and lifecycle management, virtual classroom instructional delivery, data analytics processing, transaction processing, and dynamic facet generation.

[0058] The invention may be a system, method, or computer program product, or combination thereof, at any possible level of technical detail of integration. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to perform aspects of the invention.

[0059] A computer readable storage medium may be a tangible device capable of holding and storing instructions for use by an instruction execution device. A computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer readable storage media includes portable computer diskettes, hard disks, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read only memory (CD-ROM), digital versatile disk (DVD), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge structures in grooves that allow instructions to be recorded thereon, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium should not be construed as a transitory signal per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or electrical signals transmitted through an electrical wire.

[0060] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to the respective computing / processing device or to an external computer or storage device via a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may include copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in a computer-readable storage medium in the respective computing / processing device.

[0061] The computer readable program instructions for carrying out the operations of the present invention may be either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state setting data, or object code written in any combination of one or more programming languages, including object oriented programming languages ​​such as Smalltalk®, C++, and traditional procedural programming languages ​​such as the “C” programming language or similar programming languages. The computer readable program instructions may execute completely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or completely on a 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 (e.g., through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may execute computer readable program instructions by individualizing the electronic circuitry with state information of the computer readable program instructions to perform aspects of the invention.

[0062] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the technology. 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 readable program instructions.

[0063] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to manufacture a machine, such that the instructions executed by the processor of the computer or other programmable data processing apparatus create means for performing the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams. These computer readable program instructions may also be stored in a computer readable storage medium that may direct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, such that the computer readable storage medium in which the instructions are stored includes an article of manufacture including instructions for performing aspects of the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams.

[0064] Computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause the computer, other programmable apparatus, or other device to perform a series of operational steps to produce a computer-implemented process, such that the instructions executing on the computer, other programmable apparatus, or other device perform the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams.

[0065] 6, a block diagram of an example tangible non-transitory computer readable medium 600 that may use graph partitioning to dynamically generate facets is shown. The tangible non-transitory computer readable medium 600 may be accessed by a processor 602 via a computer interconnect 604. Additionally, the tangible non-transitory computer readable medium 600 may include code that instructs the processor 602 to perform the operations of the method 200 of FIG.

[0066] Various software components described herein may be stored on a tangible, non-transitory computer-readable medium 600, as shown in FIG. 6. For example, the user interface module 606 includes code for receiving and forwarding a query. The user interface module 606 also includes code for receiving and displaying a result set and facets. The concept extractor module 608 includes code for receiving a query, a result set corresponding to the query, and a knowledge base. The concept extractor module 608 further includes code for extracting concepts from the result set using the knowledge base. The search engine module 610 includes code for receiving a query and generating a result set based on the query. The facet service module 612 includes code for constructing a graph based on the extracted concepts. The graph includes a number of nodes representing concepts and weighted edges representing similarity between concepts extracted from shared results. For example, the facet service module 612 also includes code for calculating similarity between concepts using cosine similarity between pre-trained embeddings of the knowledge base. In some embodiments, facet services module 612 further includes code to calculate a weight for each of the number of nodes based on the number of inlinks of the concept that each node represents. In various embodiments, facet services module 612 further includes code to calculate a weight for each of the edges using normalized pairwise mutual information (PMI) or normalized Google distance (NGD). Facet services module 612 further includes code to partition the graph into subgraphs with vertices corresponding to candidate facets for vertices having a higher sum of weighted edges. Facet services module 612 also includes code to rank the candidate facets. For example, facet services module 612 may include code to calculate a utility for each of the candidate facets and rank the candidate facets by the calculated utility. In some embodiments, facet services module 612 also includes code to approximate the ranking of the candidate facets using a graph neural network.The concept extractor module 608 further includes code for selecting the more highly ranked candidate facets for use as facets. The facet services module 612 also includes code for outputting facets with result sets responsive to a query. It should be understood that any number of additional software components not shown in FIG. 6 may be included within the tangible, non-transitory computer-readable medium 600, depending on the particular application.

[0067] The flowcharts and block diagrams in the drawings 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 flowcharts or block diagrams may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions described in the blocks may occur out of the order described in the drawings. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or the blocks may be executed in the reverse order depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, may be implemented by a dedicated hardware-based system that performs the specified functions or operations or executes a combination of dedicated hardware and computer instructions. It should be understood that any number of additional software components not shown in FIG. 6 may be included in the tangible non-transitory computer-readable medium 600, depending on the particular application.

[0068] The description of various embodiments of the present technology is presented for illustrative purposes, but is not intended to be exhaustive or limited to the disclosed embodiments. Many changes and modifications will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terminology used herein has been selected to best explain the principles of the embodiments, practical applications, or technical improvements to the technology found in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.

Claims

1. 1. A system comprising: receiving extracted concepts from a result set corresponding to the query and result relevance for each extracted concept; constructing a graph based on the extracted concepts, the graph including a plurality of nodes representing the extracted concepts and weighted edges representing similarities between the concepts extracted from the shared results; for a vertex of the plurality of nodes that is the node having a higher sum of the weighted edges, partitioning the graph into subgraphs with the vertices corresponding to candidate facets; ranking the candidate facets; selecting said candidate facets with higher rankings for use as facets; outputting results responsive to said query and said facets; A system comprising a processor.

2. The system of claim 1 , wherein the concepts are extracted from the result set corresponding to the query using a knowledge base.

3. 3. The system of claim 2, wherein the processor maps high-level categories for a domain to categories in the knowledge base.

4. The system of claim 2 , wherein the processor applies a mention detection tool to all documents in the result set to extract the concepts.

5. The system of claim 2 , wherein the processor traverses a category tree of the knowledge base to extract concepts whose categories lie under a hierarchy of domains.

6. The system of claim 1 , wherein the processor filters the extracted concepts based on a number of pages that contain a mention of the concept.

7. The system of claim 1 , wherein each of the plurality of nodes is weighted based on the number of inlinks of the concept it represents.

8. 1. A computer-implemented method comprising: receiving, by a processor, a query, a result set corresponding to the query, and a knowledge base; extracting, by the processor, concepts from the result set using the knowledge base; constructing, by the processor, a graph based on the extracted concepts, the graph including a plurality of nodes representing concepts and weighted edges representing similarities between concepts extracted from shared results; partitioning, by the processor, the graph into subgraphs with vertices corresponding to candidate facets for vertices of the plurality of nodes that are the nodes with higher sums of weighted edges; ranking, by the processor, the candidate facets; selecting, by said processor, a higher ranked candidate facet for use as a facet; outputting, by the processor, results responsive to the query and the facets; 4. A computer-implemented method comprising:

9. 9. The computer-implemented method of claim 8, wherein constructing the graph comprises calculating a weight for each of the plurality of nodes based on a number of inlinks of the concept that each node represents.

10. 9. The computer-implemented method of claim 8, wherein constructing the graph comprises calculating a weight for each of the edges using normalized pairwise mutual information (PMI) or normalized Google® distance (NGD).

11. 9. The computer-implemented method of claim 8, wherein ranking the candidate facets comprises: calculating a utility for each of the candidate facets; and ranking the candidate facets by the calculated utilities.

12. 10. The computer-implemented method of claim 8, wherein ranking the candidate facets comprises approximating the ranking of the candidate facets using a graph neural network.

13. 10. The computer-implemented method of claim 8, further comprising filtering the extracted concepts by long paths from a top-level category.

14. The computer-implemented method of claim 8 , further comprising filtering the extracted concepts by a pre-search query performance prediction (QPP) function.

15. 10. The computer-implemented method of claim 8, comprising calculating the similarity between concepts using a cosine similarity between pre-trained embeddings of the knowledge base.

16. A computer program product causing a computer to carry out the computer-implemented method according to any one of claims 8 to 15.

Citation Information

Patent Citations

  • Search device, control method thereof, and program, as well as search system, control method thereof, and program

    JP2019066979A

  • Extracting topically related keywords from related documents

    US20110307485A1

  • Navigating dominant concepts extracted from multiple sources

    US20110307819A1

  • Document ranking by progressively increasing faceted query

    US20190065584A1