Generating surfaces dynamically using graph partitioning

By constructing a graph and dynamically generating surfaces using graph partitioning techniques, the problem of existing search engines being unable to adapt to additional features and predefined surface sets is solved, thus improving the efficiency and accuracy of search result filtering.

CN115485679BActive Publication Date: 2026-06-05INTERNATIONAL BUSINESS MACHINE CORPORATION

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
INTERNATIONAL BUSINESS MACHINE CORPORATION
Filing Date
2021-03-17
Publication Date
2026-06-05

AI Technical Summary

Technical Problem

Existing search engines struggle to automatically adapt by adding facets when additional features appear, and pre-defining different facet sets for all possible query intents can be very difficult, resulting in inefficient search result filtering.

Method used

By constructing a graph, faces are dynamically generated based on the similarity between extracted concepts. Graph partitioning techniques are used to rank candidate faces and select the most efficient faces for output. Dynamically generated faces help users narrow down the search results.

Benefits of technology

It enables the automatic generation of surfaces from a set of predefined meaningful concepts, improving the efficiency and accuracy of search result filtering and reducing the workload for users in finding the expected results.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115485679B_ABST
    Figure CN115485679B_ABST
Patent Text Reader

Abstract

An example system includes a processor to receive concepts extracted from a result set corresponding to a query and a result association for each extracted concept. The processor is to construct a graph based on the extracted concepts, where the graph includes a plurality of nodes representing the extracted concepts and weighted edges representing a similarity between concepts extracted from a shared result. The processor is to partition the graph into subgraphs, where a vertex of a subgraph corresponds to a candidate facet for the vertex having a higher sum of weighted edges. The processor is to rank the candidate facets. The processor is to select a higher ranked candidate facet to use as a facet. The processor is to output the facet and the result set responsive to the query.
Need to check novelty before this filing date? Find Prior Art

Description

Background Technology

[0001] This technique relates to faces. More specifically, this technique relates to dynamically generating faces. Summary of the Invention

[0002] According to embodiments described herein, a system may include a processor configured to receive concepts extracted from a result set corresponding to a query, and result associations for each extracted concept. The processor may also construct a graph based on the extracted concepts. The graph includes a plurality of nodes and weighted edges, the plurality of nodes representing the extracted concepts, and the weighted edges representing the similarity between concepts extracted from shared results. The processor may further partition the graph into subgraphs, the vertices of which correspond to candidate faces with a higher sum of weighted edges for each vertex. The processor may also rank the candidate faces. The processor may select higher-ranked candidate faces as faces. The processor may also output the faces and the result set in response to the query.

[0003] According to another embodiment described herein, a method may include receiving a query, a result set corresponding to the query, and a knowledge base via a processor. The method may further include extracting concepts from the result set via the knowledge base using the processor. The method may further include constructing a graph via the processor based on the extracted concepts. The graph includes a plurality of nodes and weighted edges, the plurality of nodes representing concepts, and the weighted edges representing the similarity between concepts extracted from shared results. The method may further include partitioning the graph into subgraphs via the processor, the vertices of the subgraphs corresponding to candidate faces with a higher sum of weighted edges for the vertices. The method may further include ranking the candidate faces via the processor. The method may further include selecting higher-ranked candidate faces via the processor to use as faces. The method may further include outputting the faces and the result set in response to the query via the processor.

[0004] According to another embodiment described herein, a computer program product for face generation may include a computer-readable storage medium having program code. The computer-readable storage medium itself is not a transient signal. The program code is executable by a processor to cause 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 a plurality of nodes and weighted edges, the plurality of nodes representing concepts, and the weighted edges representing the similarity between concepts extracted from shared results. The program code may also cause the processor to partition the graph into subgraphs, the vertices of which correspond to candidate faces with a higher sum of weighted edges for the vertices. The program code may also cause the processor to rank the candidate faces. The program code may also cause the processor to further select higher-ranked candidate faces as faces. The program code may also cause the processor to output the faces and the result set in response to the query. Attached Figure Description

[0005] Figure 1 This is a block diagram of an example system for dynamically generating surfaces using graph partitioning;

[0006] Figure 2 This is a block diagram of an example method for dynamically generating faces using graph partitioning;

[0007] Figure 3 This is a block diagram of an example computing device that can dynamically generate surfaces using graph partitioning;

[0008] Figure 4 This is a diagram of an example cloud computing environment based on the embodiments described herein;

[0009] Figure 5 It is a diagram of an example abstract model layer based on the embodiments described herein; and

[0010] Figure 6 It is an example of a tangible, non-transitory, computer-readable medium that can dynamically generate surfaces using graph partitioning. Detailed Implementation

[0011] Some systems offer filters for filtering search results. For example, a user can submit a search query, and to help narrow down the results, the system can suggest several filters for the user to choose from. These filters are referred to herein as facets. As used herein, a facet refers to the dimension along which each result of a query is categorized. For example, a search engine on a website selling camera lenses might have a set of faces, including camera type, lens focal length, lens speed, etc., for queries about lenses made by a specific manufacturer. These faces can be selected by the system based on the results returned for the query. The system can then suggest one or more faces to the user to help narrow down the search results. In this way, the system allows categories to be accessed and sorted in multiple ways rather than in a single, predetermined taxonomical order. However, such faces can be limited to a predefined set of faces. Such a search engine may not be able to automatically adapt to add faces for additional features as they appear, such as autofocus capabilities, eye or face tracking capabilities, etc. Instead, such a search engine might simply count the number of times a concept appears in a set of search results and display a predefined set of faces accordingly. Furthermore, queries submitted to a general search engine can have many different intents. For example, a submitted query for "jaguar" could be intended to refer to either the animal or a car manufacturer. If not impossible, it can be very difficult to predefine different sets of faces for all possible query intentions.

[0012] According to embodiments of this disclosure, a processor of the system can receive concepts extracted from a result set corresponding to a query, along with result associations for each extracted concept. The processor can construct a graph based on the extracted concepts, wherein the graph includes multiple nodes and weighted edges, where the nodes represent the extracted concepts and the weighted edges represent the similarity between concepts extracted from shared results. For example, if concepts are detected together in at least one result, two nodes may share only an edge. Weights can then be assigned to the edges based on similarity. The processor can partition the graph into subgraphs, where the vertices of the subgraphs correspond to candidate faces with a higher sum of weighted edges for each vertex. The processor can also rank the candidate faces. The processor can select higher-ranked candidate faces to use as faces. The processor can then output the faces and a result set in response to the query. Therefore, embodiments of this disclosure allow users to narrow down the result set of a query using faces, which reduces the effort users need to find the expected results. This technique enables the automatic generation of faces from a predefined set of meaningful concepts.

[0013] Now for reference Figure 1 The block diagram illustrates an example system for dynamically generating faces using graph partitioning. The example system is generally represented by reference numeral 100. In various examples, system 100 can be used to... Figure 3 The computing device 300 is used to achieve this. Figure 2Method 200.

[0014] Figure 1 System 100 includes a user interface 102. System 100 includes a concept extractor 104 communicatively coupled to the user interface 102. System 100 also includes a search engine 106 communicatively coupled to the concept extractor 104. System 100 also includes a faceted service 108 communicatively coupled to the concept extractor 104.

[0015] exist Figure 1 In the example, user interface 102 can receive query 110 from a user and send the query to concept extractor 104. Concept extractor 104 can forward query 110 to search engine 106. Search engine 106 can generate result set 112 based on the query and send result set 112 to concept extractor 104. For example, the result set could be a set of documents.

[0016] Then, concept extractor 104 can generate groups of concepts with result associations. For example, each group of concepts can be associated with a specific result in result set 112. In various examples, concept extractor 104 can access a closed set of high-level categories for one or more domains. As an example, for the domain of computer science, computer science categories can be archived using arXiv. For example, these categories include “Artificial Intelligence,” “Computation and Languages,” “Computational Complexity,” “Computational Engineering,” “Finance and Science, 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,” “Emerging Technologies,” “Formal Languages ​​and Automata Theory,” “General Literature,” “Graphics,” “Hardware Architecture,” “Human-Computer Interaction,” “Information Retrieval,” “Information Theory,” “Logic in Computer Science,” and other categories. Concept extractor 104 can also access knowledge bases. For example, a knowledge base could be Wikipedia. High-level categories for one or more domains can be mapped to categories in the knowledge base. In various examples, mention detection can be performed as part of the ingestion pipeline of concept extractor 104, and mentions are stored in an index. For example, the mention detection tool can be any suitable general mention detection tool, such as TagMe (the first version released in 2010), a Natural Language Understanding (NLU) tool, or TermWikifier (TW). Concept extractor 104 can apply the mention detection tool to all documents in result set 112. In various examples, concept extractor 104 can traverse the category tree of the knowledge base and retain only those concepts whose categories are below the domain hierarchy. For example, only those concepts whose categories are at the domain hierarchy can be included in the concept group 114 with result associations. Concept extractor 104 can then send the concept group 114 with result associations to face service 108. As an example, the mention detection tool is used to parse the paper "Sparsity-certifying Graph Decompositions" to extract concepts. The surface forms of the extracted concepts appearing in this paper are: "pebble game," "spanning tree," "matroid," "verticies," and "terms." The extracted concepts associated with these phrases are: “pebble game”, “spanning tree”, “mosaic”, “vertex (graph theory)”, and “terminology”. The corresponding high-level categories associated with these concepts are: “computational complexity theory”, “discrete mathematics”, and “computational linguistics”.

[0017] In various examples, the concepts extracted by the concept extractor 104 using the mention detection tool may still include concepts that are not very informative. For example, these concepts may be too general for use as filters. Continuing with the examples above, the concepts "vertex" and "term" may not be very helpful for use as faces. In some examples, the concept extractor 104 can refine the concept set using information from the knowledge base. For example, if a frequently mentioned concept in the knowledge base has few internal links, it may be very general. Therefore, the concept extractor 104 can remove concepts whose number of internal links does not exceed a first threshold or a higher second threshold. For example, a concept with a large number of internal links may be too general and therefore not very informative. In various examples, the concept extractor 104 can further filter the extracted concepts. In some examples, the concept extractor 104 can filter the extracted concepts by long paths starting from the top-level category. For example, extracted concepts with paths longer than the threshold path p can be filtered from concepts 114 with result associations. In some examples, the concept extractor 104 can filter the extracted concepts by pre-retrieval query performance prediction (QPP) features. For example, concept extractor 104 can use QPP to estimate the difficulty of a query based on the attributes of the query terms. As an example, the "clarity" attribute can be measured as the difference between the probability of a term in the set and the average probability of all terms. Concept extractor 104 can filter out concepts with low clarity values. In various examples, concept extractor 104 can calculate the similarity attribute of a concept.

[0018] Face service 108 can dynamically generate faces 116 based on a group 114 of concepts with result associations using graph partitioning. Given a query and a result set containing concepts, face service 108 can rank concepts according to a certain objective. For example, face service 108 can rank concepts based on their ability to extract similar intents from the result set. In some examples, face service 108 can select the top K concepts to maximize the objective and use the top K concepts as faces. Face service 108 can rank concepts by maximizing the separation between the result set and a diverse set of user intents.

[0019] For example, face service 108 can construct a graph based on the extracted concepts. Face service 108 can model the co-occurrence of concepts in concept group 114 with outcome associations as nodes connected by edges in an undirected graph. In some examples, as described above, nodes can be weighted based on the number of internal links of the concepts they represent.

[0020] As described above, an edge can exist between two nodes representing concepts in the graph, provided that the two concepts appear together in at least one result in result set 112. In some examples, edge weights can also be included to indicate the similarity between these concepts. For example, the edge weights can represent the similarity between concepts. In various examples, face service 108 can use Normalized Pairwise Mutual Information (PMI) or Normalized Google Distance (NGD) to weight the edges. For example, face service 108 can use corpus data to calculate the Normalized Google Distance between two concepts x and y via the following equation:

[0021]

[0022] Where f(x) is the number of pages in the knowledge base where concept x appears, f(y) is the number of pages in the knowledge base where concept y appears, f(x,y) is the number of pages in the knowledge base where both concepts x and y appear, and N is the total number of pages in the knowledge base. In various examples, face service 108 can use corpus data to calculate the normalized PMI via the following equation:

[0023]

[0024] Where P(x) is the number of internal links to x, P(y) is the number of internal links to x, and P(x, y) is the number of pages pointing to both x and y. For example, the number of internal links to x could be the number of links to x or the number of pages pointing to x in the knowledge base. In some examples, service 108 can use cosine similarity between pre-trained embeddings from knowledge bases such as Wikipedia to calculate the similarity between concepts. For example, pre-trained embeddings of words can be created using Word2vec, originally released in 2013. Pre-trained embeddings of concepts from Wikipedia can be created using Wikipedia2vec, version 0.2.4, originally released in May 2018.

[0025] In various examples, face service 108 can filter a group of concepts by selecting vertices corresponding to a concept as candidate faces for filtering the results. For example, the results filtered by candidate faces may contain only concepts that are neighbors of faces in the graph. Selecting specific concepts as candidate faces thus divides the graph into subgraphs and the remainder of the graph. In some examples, candidate faces can be selected by choosing the vertices that produce the most relevant concepts in the resulting subgraphs. Therefore, the resulting subgraphs can be homogeneous to represent different user intents. For example, the sum of edge weights in the subgraphs generated by partitioning the graph using candidate faces can represent the homogeneity of the subgraphs. In various examples, candidate faces can be selected based on the sum of weights for homogeneity exceeding a certain threshold. The resulting candidate faces can be dynamic faces representing different user intents when submitting a query.

[0026] In various examples, face service 108 can then rank candidate faces using a utility function. For example, face service 108 can rank candidate faces using the following equation:

[0027]

[0028] Wherein, N(c i ) is candidate face c i The neighbor, and w n This refers to node weights. Node weights help avoid overly generalized faces. In various examples, face service 108 can calculate the utility of each candidate face in a predetermined number of top documents in the result set. For example, face service 108 can calculate the utility of each candidate face in the top 100 documents in the result set. Face service 108 can then rank the candidate faces based on the calculated utility. In some examples, face service 108 can use a graph neural network to approximate the ranking to improve speed. In various examples, face service 108 can include a predetermined number of top candidate faces in face set 116. For example, the top 10 faces can be returned for use in face set 116.

[0029] Still referencing Figure 1 The face service 108 can send the obtained face set 116 to the concept extractor 104. The concept extractor 104 can generate results and faces 118, which include faces 116 and results from the result set 112. The concept extractor 104 can send the results and faces 118 to the user interface 102 for display to the user. Thus, in response to a query, the user interface can display a set of results and faces 118. As an example, a query for "combinatorial optimization for natural language processing" can return results and the following faces: "combinatorial", "machine learning", "structured prediction", "combinatorial optimization", "algorithm", "loss function", "approximation algorithm", "complexity category", "natural language processing", and "permutation". As another example, a query for "extract document summary" can return a set of results and the following faces: "automatic summarization", "natural language processing", "supervised learning", "word embedding", "social media", "Word2vec", "self-information", "natural language generation", "multi-document summarization", and "loss function".

[0030] Users can then select one or more faces to filter the results. For example, user interface 102 can receive a selection of one face and filter the results displayed to the user accordingly. For instance, in response to a user's selection of a face, the result set is filtered to show only results containing the selected face. A new concept map can then be constructed based on the filtered results, new faces can be calculated, and new faces can be suggested to the user. In this way, users are able to search for various topics more efficiently.

[0031] It should be understood that Figure 1 The block diagram is not intended to show that system 100 will include Figure 1 Instead of all the components shown, system 100 may include fewer or... Figure 1 Additional components not shown (e.g., additional user interface, query, results, concept group, face, search engine, or additional concept extractor, etc.).

[0032] Figure 2 This is a flowchart illustrating an example method for dynamically generating surfaces using graph partitioning. Method 200 can be used with any suitable computing device (such as...). Figure 3 This is implemented using a computing device 300, and references... Figure 1 The system 100 is used to describe this; for example, method 200 can use the processor 302 of computing device 300 or... Figure 3 and 6 It is implemented using the 602 processor.

[0033] In box 202, the processor receives a query, a result set corresponding to the query, and a knowledge base. For example, it could receive a result set from a search engine in response to sending a query to the search engine. In various examples, the knowledge base could be a knowledge graph. As an example, the knowledge base could be Wikipedia.

[0034] In box 204, the processor uses a knowledge base to extract concepts from the result set. In some examples, the processor can filter the extracted concepts using a long path starting from the top-level category. In various examples, the processor can filter the extracted concepts using pre-retrieved QPP features.

[0035] In box 206, the processor constructs a graph based on the extracted concepts, where the graph includes multiple nodes and weighted edges, where the nodes represent concepts and the weighted edges represent the similarity between concepts extracted from the shared results. For example, an edge can only be generated between two nodes if two concepts are detected in the same result. Weights can then be assigned to the edges based on similarity. In some examples, the processor can compute the weight of each node based on the number of internal links of the concept represented by each node in the multiple nodes. In various examples, the processor can use Normalized Pairwise Mutual Information (PMI) or Normalized Google Distance (NGD) to compute the weight of each edge in the edge.

[0036] At box 208, the processor divides the graph into subgraphs, with the vertices of the subgraphs corresponding to candidate faces with a higher weighted sum of edges for the vertices.

[0037] At box 210, the processor ranks the candidate faces. In some examples, the processor may compute the utility of each candidate face and rank the candidate faces according to the computed utility. In various examples, the processor may use a graph neural network to approximate the ranking of candidate faces. For example, a graph neural network may be trained to rank candidate faces according to the suggested utility (rather than computed utility for each concept).

[0038] At box 212, the processor selects the higher-ranked candidate face to use as the face. At box 214, the processor outputs the face and the result set in response to the query.

[0039] Figure 2 The process flowchart is not intended to indicate that the operations of method 200 will be performed in any particular order, or that all operations of method 200 will be included in every case. Furthermore, method 200 may include any suitable number of additional operations. For example, method 200 may also include filtering the result set to show only the results containing the selected face in response to receiving the selected face. Method 200 may also include constructing a new concept map based on the filtered results, calculating new faces, and outputting the new faces.

[0040] In some scenarios, the techniques described in this article can be implemented in a cloud computing environment. See at least the following references... Figure 3-6 As discussed in more detail, computing devices configured to dynamically generate surfaces using graph partitioning can be implemented in a cloud computing environment. It is understood beforehand that although this disclosure includes a detailed description of cloud computing, the implementation of the teachings described herein is not limited to a cloud computing environment. Rather, embodiments of the invention can be implemented in conjunction with any other type of computing environment now known or developed hereafter.

[0041] Cloud computing is a service delivery model 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 management effort or interaction with service providers. This cloud model may include at least five features, at least three service models, and at least four deployment models.

[0042] The characteristics are as follows:

[0043] On-demand self-service: Cloud consumers can unilaterally and automatically provide computing power, such as server time and network storage, as needed, without requiring manual interaction with the service provider.

[0044] Wide Area Network (WAN) Access: Capabilities are available on the network and accessed through standard mechanisms that facilitate the use of heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

[0045] Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated based on demand. Location independence has significance because consumers typically do not control or know the exact location of the resources provided, but can specify the location at a higher level of abstraction (e.g., country, state, or data center).

[0046] Rapid Flexibility: In some cases, the ability to scale outwards and inwards quickly and flexibly can be provided. For consumers, the available capacity often appears unlimited and can be purchased in any quantity at any time.

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

[0048] The service model is as follows:

[0049] Software as a Service (SaaS): The capability offered to consumers is the ability to use the provider's applications running on cloud infrastructure. Applications can be accessed from various client devices through thin client interfaces such as web browsers (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including the network, servers, operating system, storage, or even individual application capabilities, with possible exceptions such as limited user-specific application configuration settings.

[0050] Platform as a Service (PaaS): This provides consumers with the ability to deploy consumer-created or acquired applications onto cloud infrastructure using programming languages ​​and tools supported by the provider. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but they have control over the deployed applications and the configuration of any application hosting environments.

[0051] Infrastructure as a Service (IaaS): This provides consumers with the capability to deliver processing, storage, networking, and other basic computing resources that enable them to deploy and run arbitrary software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but they do have control over the operating system, storage, deployed applications, and possibly limited control over selected networking components (e.g., host firewalls).

[0052] The deployment model is as follows:

[0053] Private cloud: Cloud infrastructure operated solely by an organization. It can be managed by the organization or a third party and can exist inside or outside a building.

[0054] Community cloud: Cloud infrastructure shared by several organizations and supporting a specific community with shared concerns (e.g., tasks, security requirements, policies, and compliance considerations). It can be managed by an organization or a third party and can exist on-site or off-site.

[0055] Public cloud: Cloud infrastructure available to the general public or large industrial groups and owned by organizations that sell cloud services.

[0056] Hybrid cloud: A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain a single entity but are bound together by standardized or proprietary technologies that enable data and applications to be ported together (e.g., cloud bursting for load balancing between clouds).

[0057] Cloud computing environments are service-oriented, focusing on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is the infrastructure of a network of interconnected nodes.

[0058] Figure 3 This is a block diagram of an example computing device that can dynamically generate surfaces using graph partitioning. The computing device 300 can be, for example, a server, desktop computer, laptop computer, tablet computer, or smartphone. In some examples, the computing device 300 can be a cloud computing node. The computing device 300 can be described in the general context of computer system executable instructions, such as program modules, that are executed by a computer system. Typically, program modules can include routines, programs, objects, components, logic, data structures, etc., that perform a specific task or implement a specific abstract data type. The computing device 300 can be implemented in a distributed cloud computing environment, where tasks are performed by remote processing devices linked via a communication network. In a distributed cloud computing environment, program modules can reside in local and remote computer system storage media, including memory storage devices.

[0059] 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 other configuration. The memory 304 may include random access memory (RAM), read-only memory, flash memory, or any other suitable memory system.

[0060] Processor 302 can be connected via system interconnect 306 (e.g., The input / output (I / O) device interface 308 is connected to a device suitable for connecting 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, wherein the pointing device may include a touchpad or a touchscreen, etc. The I / O devices 310 may be built into the computing device 300 or may be external devices connected to the computing device 300.

[0061] The processor 302 can also be linked via a 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, which is a built-in component of the computing device 300. The display device 314 may also include an external computer monitor, television, or projector connected to the computing device 300. Additionally, a network interface controller (NIC) 316 may be adapted to connect the computing device 300 to a network 318 via the system interconnect 306. In some embodiments, the NIC 316 may use any suitable interface or protocol (such as an Internet Minicomputer System Interface) to transmit data. The network 318 may be a cellular network, a radio network, a wide area network (WAN), a local area network (LAN), or the Internet. An external computing device 320 may be connected to the computing device 300 via the network 318. In some examples, the external computing device 320 may be an external network server 320. In some examples, the external computing device 320 may be a cloud computing node.

[0062] Processor 302 can also be linked to storage device 322 via system interconnect 306. Storage device 322 may include hard disk drives, optical disk drives, USB flash drives, drive arrays, or any combination thereof. In some examples, storage device may include user interface module 324, concept extractor module 326, search engine module 328, and surface service module 330. User interface module 324 can receive queries and send them to concept extractor module 326. Concept extractor module 326 can receive queries, result sets corresponding to queries, and knowledge bases. In some examples, concept extractor module 326 may receive result sets from search engine module 328. Concept extractor module 326 may use the knowledge base to extract concepts from the result set. For example, concept extractor module 326 may use the knowledge base to extract concepts from the result set corresponding to a query. In some examples, concept extractor module 326 may map high-level categories of a domain to categories in the knowledge base. In various examples, 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 can traverse the category tree of the knowledge base and extract concepts whose categories are below the domain hierarchy. In various examples, the concept extractor module 326 can filter concepts based on the number of pages containing mentions of the extracted concepts. The search engine module 328 can receive queries and generate a result set based on those queries. The facet service module 330 can construct a graph based on the extracted concepts. The graph includes multiple nodes and weighted edges, where the nodes represent concepts and the weighted edges represent the similarity between concepts extracted from shared results. In some examples, the facet service module 330 can use cosine similarity between pre-trained embeddings of the knowledge base to calculate the similarity between concepts. In various examples, the facet service module 330 can calculate the weight of each node based on the number of internal links of the concept represented by each node. In various examples, the facet service module 330 can use normalized pairwise mutual information (PMI) or normalized Google distance (NGD) to calculate the weight of each edge. The face service module 330 can partition a graph into subgraphs, where each vertice of a subgraph corresponds to a candidate face with a higher weighted edge sum. The face service module 330 can rank the candidate faces. In some examples, the face service module 330 can compute the utility of each candidate face and rank the candidate faces according to the computed utility. In some examples, the face service module 330 can use a graph neural network to approximate the ranking of the candidate faces. The face service module 330 can select the higher-ranked candidate faces to use as faces. The face service module 330 can then output the faces and a result set in response to the query.

[0063] It should be understood that Figure 3 The block diagram is not intended to show that computing device 300 will include Figure 3All the components shown. Conversely, computing device 300 may include fewer or... Figure 3 Additional components not shown (e.g., additional memory components, embedded controllers, modules, additional network interfaces, etc.). Furthermore, any function of the user interface module 324, concept extractor module 326, search engine module 328, and surface service module 330 may be implemented partially or entirely in the hardware and / or processor 302. For example, among other things, the function may be implemented using an application-specific integrated circuit, logic implemented in an embedded controller, or logic implemented in the processor 302. In some embodiments, the functions of the user interface module 324, concept extractor module 326, search engine module 328, and surface service module 330 may be implemented using logic, wherein the logic as referred to herein may include any suitable hardware (e.g., processor, etc.), software (e.g., applications, etc.), firmware, or any suitable combination of hardware, software, and firmware.

[0064] Now for reference Figure 4 The diagram illustrates an illustrative cloud computing environment 400. As shown, the cloud computing environment 400 includes one or more cloud computing nodes 402 to which local computing devices used by cloud consumers can communicate. These local computing devices include, for example, personal digital assistants (PDAs) or cellular phones 404A, desktop computers 404B, laptop computers 404C, and / or automotive computer systems 404N. The nodes 402 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as private clouds, community clouds, public clouds, or hybrid clouds, or combinations thereof, as described above. This allows the cloud computing environment 400 to provide infrastructure, platform, and / or software as a service, without requiring cloud consumers to maintain resources on their local computing devices. It should be understood that... Figure 4 The types of computing devices 404A-N shown are for illustrative purposes only, and computing node 402 and cloud computing environment 400 can communicate with any type of computerized device via any type of network and / or network-addressable connection (e.g., using a web browser).

[0065] Now for reference Figure 5 This demonstrates the 400 (cloud computing environment) Figure 4 This provides a set of functional abstractions. It should be understood beforehand that... Figure 5 The components, layers, and functions shown are for illustrative purposes only, and embodiments of the invention are not limited thereto. As described, the following layers and corresponding functions are provided.

[0066] The hardware and software layer 500 includes hardware and software components. Examples of hardware components include mainframes, which in one example is... System; a server based on a RISC (Reduced Instruction Set Computer) architecture, in one example being an IBM... System; IBM System; IBM Systems; storage devices; networks and network components. Examples of software components include network application server software, one example being IBM. Application server software; and database software, in one example, IBM. Database software. (IBM, zSeries, pSeries, xSeries, BladeCerter, WebSphere, and DB2 are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide.)

[0067] The virtualization layer 502 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual servers; virtual storage; virtual networks, including virtual private networks; virtual applications and operating systems; and virtual clients. In one example, the management layer 504 can provide the functionality described below: Resource provisioning provides the dynamic acquisition of computing resources and other resources for performing tasks within the cloud computing environment. Metering and pricing provides cost tracking when utilizing resources in the cloud computing environment and provides billing and invoicing for this purpose. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection for data and other resources. The user portal provides consumers and system administrators with access to the cloud computing environment. Service level management provides the allocation and management of cloud computing resources to ensure that the required service level is met. Service level agreement (SLA) planning and fulfillment provides pre-scheduling and provisioning of cloud computing resources based on SLA projections.

[0068] Workload tier 506 provides examples of functionalities that can be leveraged in a cloud computing environment. Examples of workloads and functionalities that can be provided from this tier include: mapping and navigation; software development and lifecycle management; virtual classroom instruction delivery; data analytics and processing; transaction processing; and dynamic surface generation.

[0069] This invention can be a system, method, and / or computer program product at any possible level of technical detail 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.

[0070] Computer-readable storage media can be tangible devices capable of retaining and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer disks, 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 optical disc read-only memory (CD-ROM), digital multifunction disc (DVD), memory sticks, floppy disks, mechanical encoding devices such as punch cards or recessed structures with instructions recorded thereon, and any suitable combination of the foregoing. As used herein, computer-readable storage media should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or electrical signals transmitted through wires.

[0071] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a suitable computing / processing device, or downloaded via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network) to an external computer or external storage device. The network may include copper cables, optical fibers, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to a computer-readable storage medium within the suitable computing / processing device.

[0072] Computer-readable program instructions used to perform the operations of this invention may be assembly instructions, instruction set architecture (ISA) instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, etc., and traditional procedural programming languages ​​such as the "C" programming language or similar programming languages. The computer-readable program instructions may be executed entirely 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 entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, to perform aspects of this invention, electronic circuits, including, for example, programmable logic circuits, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute computer-readable program instructions to personalize the electronic circuits by utilizing state information from the computer-readable program instructions.

[0073] Various 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 present 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.

[0074] These computer-readable program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / actions specified in one or more blocks of a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and / or other devices to operate in a particular manner, such that the computer-readable storage medium in which the instructions are stored includes an article of writing comprising instructions for implementing aspects of the functions / actions specified in one or more blocks of a flowchart and / or block diagram.

[0075] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer-implemented process, such that the instructions, which execute on the computer, other programmable apparatus or other device, perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.

[0076] Now for reference Figure 6 A block diagram depicts an example tangible, non-transitory computer-readable medium 600 that can dynamically generate surfaces using graph partitioning. The tangible, non-transitory computer-readable medium 600 is accessible by a processor 602 via a computer interconnect 604. Furthermore, the tangible, non-transitory computer-readable medium 600 may include components for bootstrapping the processor 602 to perform operations. Figure 2 The code for method 200.

[0077] The various software components discussed herein can be stored on a tangible, non-transitory computer-readable medium 600, such as... Figure 6 As shown. For example, user interface module 606 includes code for receiving and forwarding queries. User interface module 606 also includes code for receiving and displaying result sets and faces. Concept extractor module 608 includes code for receiving queries, result sets corresponding to queries, and a knowledge base. Concept extractor module 608 also includes code for extracting concepts from the result set using the knowledge base. Search engine module 610 includes code for receiving queries and generating result sets based on the queries. Face service module 612 includes code for constructing a graph based on the extracted concepts. The graph includes multiple nodes and weighted edges, where the nodes represent concepts and the weighted edges represent the similarity between concepts extracted from shared results. For example, face service module 612 also includes code for calculating the similarity between concepts using cosine similarity between pre-trained embeddings from the knowledge base. In some examples, face service module 612 also includes code for calculating the weight of each node based on the number of internal links of the concept represented by each node in the multiple nodes. In various examples, the face service module 612 also includes code for calculating the weight of each edge using Normalized Pairwise Mutual Information (PMI) or Normalized Google Distance (NGD). The face service module 612 also includes code for partitioning the graph into subgraphs, where each vertice of the subgraph corresponds to a candidate face with a higher weighted edge sum for that vertex. The face service module 612 also includes code for ranking the candidate faces. For example, the face service module 612 may include code for calculating the utility of each candidate face and ranking the candidate faces according to the calculated utility. In some examples, the face service module 612 also includes code for approximating the ranking of the candidate faces using a graph neural network. The concept extractor module 608 also includes code for selecting higher-ranked candidate faces to use as faces. The face service module 612 also includes code for outputting the faces and a result set in response to a query. It should be understood that, depending on the specific application, Figure 6 Any number of additional software components not shown may be included within the tangible, non-transitory computer-readable medium 600.

[0078] The flowcharts and block diagrams in the accompanying 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 a flowchart or block diagram may represent a module, segment, or portion of instructions comprising one or more executable instructions for implementing a specified logical function. In some alternative embodiments, the functions mentioned in the blocks may occur in a non-linear order as shown in the figures. For example, two blocks shown consecutively may actually be executed substantially simultaneously, or these blocks may sometimes be executed in reverse order, depending on the functions involved. It will also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a dedicated hardware-based system that performs the specified function or action or executes a combination of dedicated hardware and computer instructions. It should be understood that, depending on the specific application, Figure 6 Any number of additional software components not shown may be included within the tangible, non-transitory computer-readable medium 600.

[0079] Various embodiments of the present technology have been described for illustrative purposes, but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terminology used herein has been chosen to best explain the principles of the embodiments, their practical application, or improvements to existing technologies in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.

Claims

1. A computer system comprising a processor, the processor being configured to: Receives concepts extracted from the result set corresponding to the query, as well as the result associations for each extracted concept; A graph is constructed based on the extracted concepts, where... The graph includes multiple nodes and weighted edges, where the multiple nodes represent extracted concepts and the weighted edges represent the similarity between concepts extracted from the shared results. The graph is divided into subgraphs by selecting vertices of the graph corresponding to a specific concept as candidate faces for filtering results. Each subgraph corresponds to a candidate face for which the weighted sum of the edges of the vertices of the graph exceeds a threshold. Each subgraph contains vertices representing the candidate face and the neighboring nodes of the candidate face in the graph. The candidate faces are ranked based on their ability to extract similar intents from the result set; Select a predetermined number of candidate faces from the ranked candidate faces to use as faces; and The output face and the result set in response to the query are filtered to include only the results of the selected face.

2. The system according to claim 1, wherein, The concept is extracted from the result set corresponding to the query using a knowledge base.

3. The system according to claim 2, wherein, The processor is used to map high-level categories of the domain to categories of the knowledge base.

4. The system according to claim 2, wherein, The processor is used to apply the mention detection tool to all documents in the result set to extract the concept.

5. The system according to claim 2, wherein, The processor is used to traverse the category tree of the knowledge base and extract the concepts of its categories below the domain hierarchy.

6. The system according to claim 1, wherein, The processor is used to filter the concept based on the number of pages containing mentions of the extracted concept.

7. The system according to claim 1, wherein, Each node is weighted based on the number of internal links of the concept represented by each of the plurality of nodes.

8. A computer-implemented method, comprising: The processor receives a query, a result set corresponding to the query, and a knowledge base. Concepts are extracted from the result set using the knowledge base via the processor; The processor constructs a graph based on the extracted concepts, wherein the graph includes multiple nodes and weighted edges, the multiple nodes representing concepts and the weighted edges representing the similarity between concepts extracted from shared results; The graph is divided into subgraphs by the processor selecting vertices corresponding to specific concepts as candidate faces for filtering results. Each subgraph corresponds to a candidate face in the graph where the weighted sum of the edges used for vertices exceeds a threshold. Each subgraph contains vertices representing candidate faces and neighboring nodes of the candidate face in the graph. The processor ranks the candidate faces based on its ability to extract similar intents from the result set. The processor selects a predetermined number of candidate faces from the ranked candidate faces to be used as faces; and The face output by the processor and the result set in response to the query are filtered to include only the results of the selected face.

9. The computer-implemented method according to claim 8, wherein, Constructing the graph includes: calculating the weight of each node based on the number of internal links of the concept represented by each of the plurality of nodes.

10. The computer-implemented method according to claim 8, wherein, Constructing the graph includes: using Normalized Pairwise Mutual Information (PMI) or Normalized Google Distance (NGD) to compute the weight of each edge in the graph.

11. The computer-implemented method according to claim 8, wherein, Ranking the candidate faces includes: calculating the utility of each candidate face and ranking the candidate faces according to the calculated utility.

12. The computer-implemented method according to claim 8, wherein, Ranking the candidate faces includes using a graph neural network to approximate the ranking of the candidate faces.

13. The computer-implemented method according to claim 8, comprising: The extracted concepts are filtered by using a long path starting from the top-level category.

14. The computer-implemented method according to claim 8, comprising: The extracted concepts are filtered by predicting QPP features through pre-retrieval query performance.

15. A computer program product for surface generation, the computer program product comprising program code executable by a processor to cause the processor to: Receive queries, result sets corresponding to the queries, and a knowledge base; Use the knowledge base to extract concepts from the result set; A graph is constructed based on the extracted concepts, where... The graph includes multiple nodes and weighted edges, where the multiple nodes represent concepts and the weighted edges represent the similarity between concepts extracted from the shared results; The graph is divided into subgraphs by selecting vertices corresponding to specific concepts as candidate faces for filtering results. Each subgraph corresponds to a candidate face in the graph where the weighted sum of the edges used for vertices exceeds a threshold. Each subgraph contains vertices representing candidate faces and the neighboring nodes of the candidate face in the graph. The candidate faces are ranked based on their ability to extract similar intents from the result set; Select a predetermined number of candidate faces from the ranked candidate faces to use as faces; and The output face and the result set in response to the query are filtered to include only the results of the selected face.

16. The computer program product of claim 15, further comprising program code executable by the processor to perform the following operation: calculating a weight for each node based on the number of internal chains of the concept represented by each of the plurality of nodes.

17. The computer program product of claim 15, further comprising program code executable by the processor to perform the following operation: calculating the weight of each edge in the edges using Normalized Pairwise Mutual Information (PMI) or Normalized Google Distance (NGD).

18. The computer program product of claim 15, further comprising program code executable by the processor to perform the following operations: calculating the utility of each of the candidate faces and ranking the candidate faces according to the calculated utility.

19. The computer program product of claim 15, further comprising program code executable by the processor to perform the following operation: using a graph neural network to approximate the ranking of the candidate faces.

20. The computer program product of claim 15, further comprising program code executable by the processor to perform the following operation: calculating the similarity between concepts using cosine similarity between pre-trained embeddings of the knowledge base.