ENHANCED SEARCH ENGINE THAT USES JOINT LEARNING FOR MULTI-TAG CLASSIFICATION
Patent Information
- Authority / Receiving Office
- MX · MX
- Patent Type
- Patents
- Current Assignee / Owner
- HOME DEPOT INTERNATIONAL INC
- Filing Date
- 2022-04-18
- Publication Date
- 2026-05-19
AI Technical Summary
Existing search engines struggle to accurately classify user intent and product categories in search queries, leading to suboptimal search results on e-commerce platforms.
Implementing a search engine that uses joint learning and ensemble methods to generate training data, applying multiple potential tags to search queries, and utilizing a forked classification layer with separate neural networks for intent and category classification, trained with labeled and unlabeled data to enhance accuracy.
Improves the relevance of search results by accurately classifying user intent and product categories, enhancing user navigation and purchase experience on e-commerce websites.
Smart Images

Figure MX434108B0
Abstract
Description
ENHANCED SEARCH ENGINE THAT USES JOINT LEARNING FOR MULTI-TAG CLASSIFICATION Field of Invention This description concerns the improvement of predictive search engine query results using multi-tag classification and conjoint learning-based training data generation. Background of the Invention Users of an electronic interface, such as an e-commerce website, can search for items, such as products or services. A search engine generates results that match or otherwise respond to the search query. Brief Description of the Figures Many aspects of the present description can be better understood with reference to the accompanying figures. The components in the figures are not necessarily drawn to scale; rather, the emphasis is on clearly illustrating the principles of the invention. Furthermore, in the figures, similar reference numbers designate corresponding parts in all the various views. Figure 1 is a schematic view of a networked environment to provide a search engine that uses multi-tag classification according to a modality. czQQcn / zznz / q / υιλι Ref. 333535 Figure 2 is a flowchart illustrating an example method for configuring a search engine to provide multiple classification labels for a search query in the network environment of Figure 1. Figure 3 is a flowchart illustrating an example method for generating training data. Figure 4 is a schematic block diagram that provides an example illustration of a computer system 101 of Figure 1 according to various embodiments of the present invention. Detailed Description of the Invention Search engines allow a user to submit a search query and generate a list of results considered most relevant to that query. In the context of e-commerce websites, search engines control which products, services, documents, or information a user sees, based on how the user has searched on the e-commerce website. This description improves a search engine by using training data, query tagging, conjoint learning, multitasking learning, and classifiers to provide search results that enable users to better navigate an e-commerce website or other electronic interface with a search engine. One aspect of this description includes a process for configuring and implementing a search engine that provides search results reflecting (1) the user's intent in making the query (e.g., to find information, to find a product to buy) and / or (2) the desired product category or categories. To configure the search engine, the process may include applying multiple potential tags (e.g., arrays of such tags) to a search query to indicate both the search intent and the desired product category or categories.Multiple potential labels can be concatenated (for example, by concatenating two or more arrays), processed, and fed into a forked classification layer to train multiple classifiers. After setup, the search engine can classify a user's search query intent and one or more target product categories for that query. This description also includes methods and systems for generating training data to train the classifiers. With reference now to the figures, where similar numbers refer to the same or similar characteristics in the various views, the computing capacity, Figure 1 shows a computing environment 100 according to various modalities. The computing environment includes a computing system 101 consisting of a combination of hardware and software. The computing system 101 or one or more components or portions thereof can execute one or more of the processes, methods, algorithms, etc., of this description, such as the methods in Figures 2 and 3, for example. Computer system 101 includes a database 103, an electronic commerce platform 109, a search engine 112, and a training application 105. Computer system 101 can be connected to a network 118 such as the Internet, intranets, extranets, wide area networks (WANs), local area networks (LANs), wired networks, wireless networks, or other appropriate networks, etc., or any combination of two or more of such networks. Computing System 101 may comprise, for example, a server computer or any other system that provides computing capacity. Alternatively, Computing System 101 may employ a plurality of computing devices that may be arranged, for example, in one or more server banks or computer banks, or other arrangements. Such computing devices may be located in a single facility or distributed across many different geographical locations. For example, Computing System 101 may include a plurality of computing devices that together may comprise a hosted computing resource, a networked computing resource, and / or any other distributed computing arrangement. In some cases, Computing System 101 may correspond to an elastic computing resource, where the allocated processing, network, storage, or other related computing resources may vary over time.Computer system 101 can implement one or more virtual machines that use the resources of computer system 101. Various applications and / or other functionality can be run on computer system 101 according to various modes. In addition, various data are stored in database 103 or other memory accessible by computer system 101. Database 103 can represent one or more databases 103. The e-commerce platform 109, search engine 112, and training application 105 mentioned above can be components running on the computer system 101. These components can generate data and store data in database 103 and / or access the contents of database 103. The e-commerce platform 109 can be implemented as one or more web servers that allow users to view products online, access product information, submit requests, and purchase products for sale. The e-commerce platform 109 can include a portal to provide access to product information, such as a retailer's respective e-commerce website. czQQcn / zznz / q / υιλι This description discusses specific ways in which a search engine is implemented on an e-commerce platform, and therefore, the relevant categories and user intents are related to products. It should be understood, however, that the techniques, processes, etc., described here may be applicable to search engines in other contexts, and therefore, the relevant categories and user intents for these techniques, processes, etc., may not be related to products in some instances. Search Engine 112 can be a module that receives search queries and generates search results. Search Engine 112 works in conjunction with eCommerce Platform 109 to provide one or more links to web pages, allowing the user to navigate a website managed by eCommerce Platform 109. Search Engine 112 may include a classification layer that implements a neural network to generate search results. Training Application 115 can be used to generate training data. For example, Training Application 115 can ingest unlabeled data, apply labels, and generate labeled data to train one or more classifiers in Search Engine 112. czQQcn / zznz / q / υιλι The data stored in database 103 may include e-commerce data 121, unlabeled data 124, and training data 127. E-commerce data 121 may include information about products offered for sale via the e-commerce platform 109, such as product names, numbers, images, descriptions, categories, etc. E-commerce data 121 may be used to generate web pages that allow a user to browse, view, interact with, and purchase products. E-commerce data 121 may also include a taxonomy of product categories. For example, the taxonomy may include several product categories and their respective subcategories. Unlabeled data 124 may include a search query history and its associated browsing history.For example, a search for a discounted electric drill might be a user's search query included in unlabeled data 124, and their corresponding browsing history might include the various web pages the user visited and other actions taken by the user (e.g., purchasing items) in response to the presentation of the search query results, whose browsing history might also be included in unlabeled data 124. The reference to data that is unlabeled indicates that the data has not been processed or labeled with tags for the purpose of training a classifier. Training data 127 includes data that has been labeled for the purpose of training a classifier. Training data 127 may include, for example, paired user queries and a defined user intent associated with each query, and / or paired user queries and one or more product categories in which the user intended to obtain search results. As an example of unlabeled data 124 and training data 127, a search query dataset D can be defined as D = {Q, C, U}, where Q is a set of user search queries Q = {qi, q2, . . ., qiqi}, C is a set of candidate product categories C = {ci, c2, . . cici} and U is a set of candidate user product intents U = {ui, u2, . ., uiui} . In some modalities, the search query dataset D may consist of the unlabeled data 124. A subset of labels C(qn) = {οη, .., Ci|ci} cz C also as one of the intent labels U = (ui, u2, . ., uiuil may be assigned to each search query qi e Q and such assignments may, together with the search queries Q, be the training data 127, in some modalities. The computing environment 100 also includes one or more client devices 109. A client device 109 enables a user to interact with the components of the computing system 101 through a network 118. A client device 109 can be, for example, a cell phone, laptop, personal computer, mobile device, or any other computing device used by a user. The client device 109 may include an application, such as a web browser or mobile application, that communicates with the e-commerce platform 109 to access information, submit requests or information, and purchase products for sale. The following provides an overview of the operation of the various components of computer system 101. Computer system 101 can receive a search query from a user client device 109 via a network 113. Search engine 112 receives the search query and generates search results. This process of running a search engine 112 for users of an e-commerce platform is referred to herein as runtime. This description concerns the classification of search queries to generate multiple tags for improved search results. Figure 2, discussed in detail below, provides one method for configuring a search engine 112 according to this description. In summary, search engine 112 can be configured to assign multiple tags to an input search query.A tag vector composed of multiple tags for a given search query can be processed and then used to configure separate ranking networks. In this respect, the 112 search engine is configured to rank a user intent, one or more product categories, and / or other information desired by the user in the search query. Furthermore, classification networks can be trained using training data 127. To generate training data 127, unlabeled data 124 can be processed using information about how a user has interacted with the e-commerce platform 109 to generate multi-labeled data. Figure 3, which is discussed in more detail below, describes methods for generating training data 127. Figure 2 is a flowchart illustrating an example of Method 200 that can be applied by Search Engine 112 and / or another aspect of Computer System 101, according to various modalities described herein. Method 200 provides a modality for configuring Search Engine 112 to provide multiple classification labels for a search query. It is understood that the flowchart in Figure 2 provides only one example of the many different types of functional arrangements that can be employed to implement the operation of the portion of Computer System 101 as described herein. In block 201, computer system 101 receives a search query dataset. The search query dataset may include multiple search queries, each containing a string of characters and a series of one or more words. For each search query, the search query dataset may also include a set of associated tags, including associated categories and user intent tags. Tags can be associated with the search queries in the search query dataset according to the method shown in Figure 3, in several ways. In some modes, receiving the search query dataset may include converting the search query dataset into one or more embedding vectors representing the search queries within the dataset. For example, each search query may be converted into a respective embedding vector. In another mode, receiving the search query dataset may include receiving one or more embedding vectors representing the search queries. For example, a plurality of embedding vectors may be received, each representing a respective search query within the search query dataset. In some modes, the search query dataset may include thousands, tens of thousands, hundreds of thousands, millions, or more queries. In block 204, the computer system 101 can define a first set of candidate tags and a second set of candidate tags. The first set of candidate tags can consist of tags for a product category. For example, for a search query "LED lighting accessory," the product category tags might include "Kitchen Lighting" and "Bathroom Lighting." In this respect, a search query can be mapped to several product categories, each of which has a respective tag. The second set of candidate tags can include tags for the searcher's intent. Intent tags might include, for example, "How to," "Delivery," "Discount," "Gift Card," "Hours," "Installation," "Promotion," "Rental," "Service," "Status," and "Warranty."Therefore, intent tags refer to why the searcher submits a search query, which is different from the product category the searcher is looking for. As explained above, the first set of tags does not overlap with the second set of tags. As mentioned above, the first set of candidate labels can be a first embedding vector, and the second set of candidate labels can be a second embedding vector. Furthermore, the word embedding layers can be determined from the search queries, thus using three different embedding vectors for a given search query. For example, in some modalities, each search query can be modeled as a sequence of words q of size |N|, q = [qi; q2; qs; ... qn]. Each search query can be mapped to an embedding space W|w|xvw. In some models, Vw = Vi, which can have a value on the order of hundreds. In some models, the word vectors can be initialized with embeddings of popular words associated with the search engine on which the trained model will be applied. In other models, the word vectors can be initialized with random embeddings. Therefore, V can represent embeddings of both words and labels. In block 210, computer system 101 concatenates the first set of candidate labels and the second set of candidate labels to generate a concatenated set of labels. The concatenation of the sets of candidate labels may include concatenating an array of the first set of candidate labels with an array of the second set of candidate labels, in one modality, to generate a vector representative of the entire space of candidate labels. In an example from block 210, a two-step analysis is applied to candidate tag sets. In one step, a candidate product category set C and a candidate user product intent set U can be mapped into arrays C and U, respectively. In another step, the arrays C and U can be concatenated to generate a concatenated candidate tag array L, as shown in equation (1) below: L(|C| + |í / |)xV1 = c|C|x7!+ylt / lxKi (Eq. 1) In block 213, computer system 101 calculates a cosine similarity between the concatenated set of candidate labels and one or more embedding vectors representative of the search query dataset to generate a compatibility matrix, such as the word embedding vector. The compatibility matrix can include relationships between word representations in the search query dataset and their associated labels in the candidate label space. The compatibility matrix can represent the relative spatial information between consecutive words and their associated labels. For example, the compatibility matrix captures the concurrent occurrence of words, indicating instances where a particular word order or proximity appears at a relatively high frequency. In block 215, Computing System 101 normalizes the compatibility matrix values. For example, Computing System 101 can apply a softmax function to the compatibility matrix and / or other functions. Other functions include, for example, a rectified linear unit (ReLU) function and a maximum clustering function. The normalized compatibility matrix can reflect attention scores that modify the word representations of the search query according to their associated tag representations. In an example of blocks 213, 215, an example compatibility matrix H can result from calculating a cosine similarity of L with the query word vector matrix W q. To calculate the cosine similarity, each word vector and label vector can be normalized, and the normalized vectors can be multiplied according to equation (2), below: H = x W1*1^)' (Eq. 2) H is a matrix of size ( | C| + | U| ) x | Nj and can be applied as attention scores to modify word representations in a query, according to their associated label representations. To this end, a ReLU function can be implemented, followed by a maximum clustering layer and a softmax function to represent the final feature vector, according to equations (3), (4), and (5) below. a = ReLU(H x W + b) (Eq. 3) m = Max — accumulation (a) ^c- 4) em¡C'=zdc7 <EC-5)en donde G es una matriz de tamaño (|C| + |U\) x N| y W y b son los pesos y desviación que se aprenden durante el entrenamiento. G se puede dividir en dos matrices de tamaño G = ( | C | x | TV | ) y G = (|U| x |N|). Para el mapeo de categoría de producto, se pueden alimentar los vectores de incrustación de palabras W a una capa ReLU para agregar más no linealidad al modelo, a continuación, la salida es multiplicada por sus puntajes de atención correspondientes de G, como se muestra en las ecuaciones (6) y (7) a continuación: ac= ReLU^ x Wc+ bc) (Eq. 6)CWIM -=£¡^0,,xam(Eq. 7) Similarly, for user intent classification (e.g., product or information), word embedding vectors can be fed into a ReLU layer and then multiplied by their corresponding attention scores czQQcn / zznz / q / υιλι, as shown in equations (8) and (9) below: au= ReLUfH *WU+ bu) (Eq. 8) UWl*l,í“=¿*JiGnx«„ (Eq. 9) Next, CW and UW can be fed into a fully connected layer to generate the semantic representations of both tasks. For multi-label classification (e.g., product category mapping), a sigmoid cross-entropy loss function can be used because, in sigmoid, the loss calculated for each output is unaffected by other component values. For user product intent mapping, a softmax function can be used, as shown in equations (10)-(12) below: czQQcn / zznz / q / υιλι f sigmoid ι-β-« (Eq. 10) ect f softmax ^veGí (Eq. 11) CE(f(s)¿) = - Σί=ι tf logC / WJ (Eq. 12) To address the class imbalance problem, particularly in the product category dataset, the loss values are updated based on the focal loss, as shown in equations (13) and (14) to equation (16): pív^ ) =-------ay (yv ) (Eq. 16) The best vectors for a pair of label embeddings Vn and Vij can be estimated by minimizing the divergence distance KL between p (Vn, Vij) and p (Vu, Vij), which can be calculated as equation (17), below: ^graphic— —(Flf) [p ^6' J (Eq. 17) The graphic can be used to modify the loss function by incorporating tag interaction information. In some modalities, the final loss function can be calculated by combining all three loss functions calculated from the user product intent, product category intent, and tag graphic. For example, it can be calculated using a weighted average of the loss values illustrated in equations (13), (14), and (17). £ total=category + βζ^ίη + / ^3^graph (Eq. 18) In block 218, computing system 101 configures a plurality of classification networks. Each classification network can be configured using the normalized compatibility matrix and the word embedding vectors. According to one modality, the word embedding vector is processed using a ReLU function and then multiplied by the normalized compatibility matrix using a dot function. The result is used to configure the classification networks. Classification networks can include an intent classifier and a product category classifier. Thus, once configured, the 112 search engine can use a bifurcated classification layer comprising separate classifiers to generate two different classifications for a search query. In this regard, the classification layer of the 112 search engine can comprise separate neural networks to perform separate classifications. A first neural network can be a product category network, while a second neural network can be an intent modeling network. The classification networks can be trained in multiple generations, using one or more of the search queries in the search query dataset and the associated product classification and user intent labels as positive and negative examples for the networks. Figure 2 describes the configuration of a search engine that can simultaneously learn both the user's intent and product categories from a search query. Figure 2 illustrates an example of conjoint learning and the use of multiple tags. czQQcn / zznz / q / υιλι Figure 3 represents a process for generating training data 127. This process can be applied to unlabeled data 124 or can be generated dynamically when a user browses an e-commerce platform 112. In block 302, training application 115 identifies a search query that is subject to tagging. As explained below, the search query begins without any tags, and the process tags the search query in order to train a classifier. A search query submitted by a user forms the initial stages of a search session. Throughout the search session, the user navigates the e-commerce platform 109 by interacting with or accessing various web pages served by the e-commerce platform in response to the search query. These interactions include clicking on web pages associated with a product or product category and selecting information to review (e.g., hours of operation, installation information, warranty information, etc.).), downloading materials or actively viewing web pages, selecting a product to be added to a shopping cart, purchasing items in a shopping cart, sharing the web page with others, purchasing gift cards, viewing the delivery status, etc. User activity is recorded as browsing history. In block 305, the training application 115 receives the browsing history associated with the search query. The browsing history can be stored as part of the unlabeled data 124 or it can be generated in real time as users submit search queries and navigate the e-commerce platform 109. The browsing history is associated with a particular search session for a given search query. In block 308, training application 115 extracts product identifiers for products that have been added to an e-commerce shopping cart and subsequently purchased. For example, when a user browses the e-commerce website, the user selects one or more products for purchase. The product identifiers associated with these products are compiled into a list that is managed by a shopping cart on the e-commerce platform, in some versions. In blog 311, training application 115 tags the search query with product categories associated with the product identifiers extracted from the browsing history in 308. Table 1 below provides an example of tagged product categories associated with queries: Product vs. Informational Search Queries Product Category Informational Category Where is my order shipped? Informational - Delivery How do I install my tiles? Informational - Instructional Carpet cleaner rental cost Informational - Rental Ryobi 18-volt Product [tools, electrical, lighting] - Samsung Classic 24-inch Refrigerator Product [appliance, electrical] - In block 315, training application 115 determines the click-through rate for each product in a particular search session or the amount of time spent actively viewing a product during that session. For example, training application 115 determines how many clicks or other interactions occur on a product page or product category pages. Alternatively or additionally, training application 115 determines the amount of time spent viewing a product page or product category pages. Training application 115 quantifies the level of interest in a product or product category in a search session by calculating the click-through rate and / or the time spent actively viewing a page or pages.If this exceeds a threshold amount, the training application 115 labels the search query with the product categories associated with the session. As discussed earlier, Figure 3 shows one version of a 115 training application that generates product category labels for search queries for the purpose of training a classifier. The 115 training application can also be configured to generate intent labels (e.g., labels indicating user intent) for a target search query. For example, a user's search query for "discount for 18-volt electric drill" can be contrasted with the search query "for 18-volt electric drill." The former might refer to the user's intent to search for information, while the latter might refer to the user's intent to purchase a product.Depending on how the user navigates through the web pages served by the e-commerce platform 109, the training application 115 can label the search query based on the user's intent. Determining user intent on an e-commerce website can be whether the user intends to purchase a product or is simply searching for information. Consequently, in some approaches, intent tag generation may involve applying a hierarchical architecture where, at the first layer, the user's intent is determined to be purchasing a product versus simply searching for information. Based on this determination, the search engine can provide a relevant search result page or direct users to a webpage appropriate for their query. For example, if a user enters a search query for "18-volt Ryobi," then, given that the query indicates a product intent, the user should be directed to a product page with relevant products. In contrast, when a user enters "Ryobi 18-volt rental," they can be directed to the corresponding page that provides rental information. Example information search query types (e.g., user intent categories and specifically informational intent categories) might include Instructions, Delivery, Discount, Gift Card, Store Hours, Installation, Promotion, Rental, Service, Status, and Warranty. In some models, blocks 308, 311, and / or 315 can be used to determine user intent in search queries. In such models, a set of candidate queries can be selected from the search query dataset using simple rules labeled as informational queries. Simple rules might include, for example, string matching algorithms between search queries and a set of unigrams, bigrams, and trigrams. In some models, the set of unigrams, bigrams, and trigrams can be defined manually. In some modalities, simple labeling can be partially or entirely manual. In others, simple labeling can be automated. After simple labeling, an iterative algorithm can be run in which the dataset is gradually expanded using a K-nearest neighbor (KNN) model to create an expanded simply labeled dataset. In some modalities, K = 3. To represent the search queries, a feature vector is formed based on unigrams, bigrams, and trigrams. Hard samples can then be actively selected using a machine learning algorithm. For example, a support vector machine (SVM) classifier with an rbf kernel can be trained on the simply labeled dataset, independent of the KNN expansion. The SVM model can then be evaluated on the newly added samples from the KNN expansion.Samples that are misclassified or located on the margin can be labeled as difficult samples and manually labeled in some modalities. The iterative algorithm may terminate when the size of the dataset is larger than the product intention sample size from the previous step. Figure 4 is a schematic block diagram that provides an example illustration of a computing system 101 of Figure 1 according to various embodiments of the present description. The computing system 101 includes one or more computing devices 400. Each computing device 400 includes at least one processor circuit, for example, having a processor 403 and memory 406, both of which are coupled to a local interface 409 or bus. For this purpose, each computing device 400 may comprise, for example, at least one server computer or similar device. The local interface 409 may comprise, for example, a data bus with an attached address / control bus or other bus structure, as shown. Stored in memory 406 are both data and several components that are executable by processor 403. In particular, stored in memory 406 and executable by processor 403 are the e-commerce platform 109, search engine 112, and training application 115. Also stored in memory 406 may be a database 103 and other data such as, for example, e-commerce data 121, unlabeled data 124, and training data 127. In addition, an operating system may be stored in memory 406 and executable by processor 403. It is understood that there may be other applications stored in memory 406 and executable by processor 403, as can be seen. When any component discussed herein is implemented in software form, any of several programming languages may be used, such as, for example, C, C++, C#, Objective-C, Java®, JavaScript®, Perl, PHP, Visual Basic®, Python®, Ruby, or other programming languages. Several software components are stored in memory 406 and are executable by the processor 403. In this context, the term executable means a program file that is in a form that can ultimately be executed by the processor 403. Examples of executable programs include, for instance, a compiled program that can be translated into machine code in a format that can be loaded into a random access portion of memory 406 and executed by the processor 403; source code that can be expressed in an appropriate format, such as object code, that can be loaded into a random access portion of memory 406 and executed by the processor 403; or source code that can be interpreted by another executable program to generate instructions in a random access portion of memory 406 to be executed by the processor 403, and so on.An executable program can be stored in any portion or component of memory 406, including, for example, random access memory (RAM), read-only memory (ROM), hard disk, solid-state drive, USB flash drive, memory card, optical disc such as compact disc (CD) or digital versatile disc (DVD), floppy disk, magnetic tape, or other memory components. Memory 406, as defined here, includes both volatile and non-volatile memory and data storage components. Volatile components are those that do not retain data values after a power loss. Non-volatile components are those that retain data after a power loss. Therefore, memory 406 may include, for example, random access memory (RAM), read-only memory (ROM), hard disk drives, solid-state drives, USB flash drives, memory cards accessed via a memory card reader, floppy disks accessed via an associated floppy disk drive, optical discs accessed via an optical disc drive, magnetic tapes accessed via an appropriate tape drive, and / or other memory components, or a combination of two or more of these memory components.In addition, RAM may include, for example, static random-access memory (SRAM), dynamic random-access memory (DRAM), or magnetic random-access memory (MRAM), and other such devices. ROM may include, for example, programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or other similar memory devices. Furthermore, the 403 processor can represent multiple application-specific integrated circuits (ASICs) that have appropriate logic gates, field-programmable gate arrays (FPGAs), or other components, etc. Such technologies are generally well known to those experienced in the art and, consequently, are not described in detail herein. The flowchart discussed above illustrates the functionality and operation of configuring a search engine according to a 200 method. If implemented in software, each box can represent a module, segment, or portion of code comprising program instructions to implement the specified logical function(s). The program instructions can be implemented as source code, comprising human-readable statements written in a programming language, or as machine code, comprising numerical instructions recognizable by an appropriate execution system, such as a 403 processor in a computer system or other system. Machine code can be converted from source code, and so on. If implemented in hardware, each block can represent a circuit or a number of interconnected circuits to implement the specified logical function(s). Although the flowchart shows a specific execution order, it is understood that the actual execution order may differ from the one shown. For example, the execution order of two or more blocks may be coded relative to the order shown. Likewise, two or more blocks shown in succession may be executed concurrently or with partial concurrency. Furthermore, in some configurations, one or more blocks may be skipped or omitted. In addition, any number of counters, state variables, warning semaphores, or messages may be added to the logical flow described herein to improve usability, accountability, performance measurement, or troubleshooting, etc. It is understood that all such variations are within the scope of this description. Search Engine 112 may also comprise software or code that can be implemented on any non-transient, computer-readable medium for use by or in connection with an instruction-execution system, such as, for example, a 403 processor in a computer system or other system. In this sense, logic may comprise, for example, statements that include instructions and declarations that can be obtained from the computer-readable medium and executed by the instruction-execution system. In the context of this description, a computer-readable medium may be any medium that can contain, store, or maintain the logic or application described herein for use by or in connection with the instruction-execution system. Computer-readable media can encompass any of many physical media, such as magnetic, optical, or semiconductor media. More specific examples of suitable computer-readable media include, but are not limited to, magnetic tapes, magnetic floppy disks, magnetic hard disks, memory cards, solid-state drives, USB flash drives, or optical discs. Additionally, computer-readable media can be random-access memory (RAM), including, for example, static random-access memory (SRAM) and dynamic random-access memory (DRAM), or magnetic random-access memory (MRAM). Furthermore, computer-readable media can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or another type of memory device. Furthermore, any logic or application described herein, including the e-commerce platform 109, search engine 112, and training application 115, may be implemented and structured in various ways. For example, one or more of the described applications may be implemented as modules or components of a single application. Additionally, one or more of the described applications may run on shared or separate computing devices, or a combination thereof. For example, the software application described herein may run on the same computing device 400 or on multiple computing devices within the same computing system 101. Furthermore, it is understood that terms such as application, service, system, engine, module, etc., may be used interchangeably and are not intended to be exhaustive. Disjunctive language, such as the phrase "at least one of X, Y, or Z," unless specifically stated otherwise, is understood in context to generally indicate that an element, term, etc., can be X, Y, or Z, or any combination thereof (e.g., X, Y, and / or Z). Therefore, such disjunctive language generally does not intend, and should not imply, that certain modalities require at least one of X, at least one of Y, or at least one of Z to be present. It should be emphasized that the embodiments described above are merely possible examples of implementations presented for a clear understanding of the principles of the invention. Many variations and modifications to the embodiment(s) described above may be made without substantially departing from the spirit and principles of the invention. All such modifications and variations are intended to be included herein within the scope of this description and protected by the following claims. It is hereby stated that, as of this date, the best method known to the applicant for putting the aforementioned invention into practice is the one that is clear from the present description of the invention.
Claims
1. A method for configuring a search engine to rank a search query, characterized in that it comprises: receiving a search query dataset, the search query dataset comprising a plurality of search queries; defining a first set of candidate tags and a second set of candidate tags according to the search queries in the search query dataset; concatenating the first set of candidate tags with the second set of candidate tags to generate a set of concatenated candidate tags; generating a compatibility matrix comprising a similarity between the set of concatenated candidate tags and the search query dataset; and training a ranking network according to the compatibility matrix.
2. The method according to claim 1, czQQcn / zznz / q / υιλι characterized in that it further comprises: calculating respective embeddings of each of the plurality of search queries; wherein the generation of the compatibility matrix comprises a similarity between the set of concatenated candidate category labels and the embeddings.
3. The method according to claim 1, characterized in that it further comprises: calculating respective embeddings of each of the plurality of search queries; wherein the training of the classification network is further in accordance with the embeddings.
4. The method according to claim 1, characterized in that the first set of candidate category labels comprises category labels in the search queries.
5. The method according to claim 4, characterized in that the second set of candidate tags comprises statements of user intent in search queries.
6. The method according to claim 1, characterized in that the concatenation of the first set of candidate labels with the second set of candidate labels, to generate a set of concatenated candidate labels, comprises concatenating an array of the first candidate labels with an array of the second candidate labels, to generate a vector representative of the entire candidate label space.
7. The method according to claim 1, characterized in that the training of the classification network, according to the compatibility matrix, comprises training, according to the compatibility matrix, a first neural network to determine a category of a new search query and a second neural network to determine the user's intent of the new search query.
8. The method according to claim 1, characterized in that defining the first set of candidate tags and the second set of candidate tags, according to the search queries in the search query dataset, comprises: receiving user browsing histories associated with the search queries; determining a plurality of items included in the user browsing histories; determining a plurality of categories associated with the plurality of items, wherein the first set of candidate tags comprises the plurality of categories; and identifying a plurality of user intents in the user browsing histories, wherein the second set of candidate tags comprises the plurality of user intents.
9. A system for configuring a search engine to classify a search query, characterized in that it comprises: a non-transient, computer-readable memory that stores instructions and a processor configured to execute the instructions to: receive a search query data set, the search query data set comprising a plurality of search queries; define a first set of candidate tags and a second set of candidate tags according to the search queries in the search query data set; concatenate the first set of candidate tags with the second set of candidate tags to generate a set of concatenated candidate tags;generate a compatibility matrix comprising a similarity between the set of concatenated candidate labels and the search query dataset and train a classification network according to the compatibility matrix.; 10. The system according to claim 9, characterized in that the memory stores 40 additional instructions which, when executed by the processor, cause the processor to: calculate respective embeds of each of the plurality of search queries; wherein the generation of the compatibility matrix comprises a similarity between the set of concatenated candidate category labels and the embeds.
11. The system according to claim 9, characterized in that the memory stores additional instructions which, when executed by the processor, cause the processor to: calculate respective embeds of each of the plurality of search queries; wherein the training of the classification network is further in accordance with the embeds.
12. The system according to claim 9, characterized in that the first set of candidate category labels comprises category labels in the search queries.
13. The system according to claim 12, characterized in that the second set of candidate tags comprises user intentions in search queries.
14. The system according to claim 9, characterized in that concatenating the first set of candidate labels czQQcn / zznz / q / uili 41 with the second set of candidate labels, to generate a set of concatenated candidate labels, comprises concatenating an array of the first candidate labels with an array of the second candidate labels, to generate a vector representative of the entire candidate label space.
15. The system according to claim 9, characterized in that training the classification network according to the compatibility matrix comprises training, according to the compatibility matrix, a first neural network to determine a category of a new search query and a second neural network to determine the user's intent of the new search query.
16. The system according to claim 9, characterized in that defining the first set of candidate tags and the second set of candidate tags, according to the search queries in the search query dataset, comprises: receiving user browsing histories associated with the search queries; determining a plurality of items included in the user browsing histories; determining a plurality of categories associated with the plurality of items, wherein the first set of candidate tags comprises the plurality of categories; and identifying a plurality of user intents in the user browsing histories, wherein the second set of candidate tags comprises the plurality of user intents.
17. A method for responding to a user search request, characterized in that it comprises: receiving a search query dataset, the search query dataset comprising a plurality of search queries; defining a first set of candidate tags and a second set of candidate tags, according to the search queries in the search query dataset; concatenating the first set of candidate tags with the second set of candidate tags, to generate a set of concatenated candidate tags; generating a compatibility matrix comprising a similarity between the set of concatenated candidate tags and the search query dataset; training a classification network according to the compatibility matrix; and receiving, via a server, a new user search query.Apply, by the server, the trained classification network to the new user search query, to identify at least one user intent or item category and provide, by the server, an answer to the new user search query, according to at least one of the user intent or item category.; 18. The method according to claim 17, characterized in that defining the first set of candidate tags and the second set of candidate tags, according to the search queries in the search query dataset, comprises: receiving user browsing histories associated with the search queries in the search query dataset; determining a plurality of items included in the user browsing histories; determining a plurality of categories associated with the plurality of items, wherein the first set of candidate tags comprises the plurality of categories; and identifying a plurality of user intents in the user browsing histories, wherein the second set of candidate tags comprises the plurality of user intents.
19. The method according to claim 18, characterized in that the new user search query is received from a user computing device. czQQcn / zznz / q / υιλι 20. The method according to claim 19, characterized in that the response to the new user search query is provided to the user's computing device.