Item retrieval using component clustering based on assembly data
By generating project embeddings and clustering them using a machine learning model based on assembly data, the problem of difficulty in identifying interchangeable parts in existing technologies is solved, enabling efficient project retrieval and recommendation, reducing computational resource consumption, and improving system performance.
Patent Information
- Application Number
- CN202510737618.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-06-17
- Filing Date
- 2025-06-04
- Publication Date
- 2025-12-19
AI Technical Summary
Existing item retrieval systems are deficient in their ability to identify interchangeable parts, especially on list platforms. Conventional search and recommendation techniques result in unnecessary consumption of computational resources and inaccurate or low-quality search results, requiring users to make multiple queries to find the desired item.
Item embeddings are generated using machine learning models based on assembly data, and the list of interchangeable parts is grouped using clustering techniques. Cluster identifiers are used for storage and retrieval, reducing redundant queries and storage device access.
It improves the project retrieval system's ability to return accurate interchangeable parts, reduces computing resource consumption, lowers the load on network and storage devices, and enhances the user experience.
Smart Images

Figure CN121167013A_ABST
Abstract
Description
Technical Field
[0001] This application specifically relates to project retrieval using component clustering based on assembly data. Background Technology
[0002] Listing platforms (e.g., e-commerce websites) are online platforms that offer users products, services, digital content (e.g., music, videos, etc.), or other items. These platforms typically offer a vast number of items. While some items are relevant to any given user, most are not. Therefore, item retrieval on a listing platform is a specific, internet-centric problem that has proven difficult to fully solve. That is, given the large number of items available on a listing platform, which items should be retrieved and presented to the user, and in what order?
[0003] Given a vast number of available items, listing platforms include features such as search and recommendation to help users find items of interest on the platform. For example, listing platforms typically offer search capabilities that receive user queries and return search results identifying items relevant to those queries. Listing platforms also frequently utilize recommendation systems to suggest items that a user might be interested in based on various information, such as the items the user is currently viewing, user attributes, and the user's behavior on the listing platform (e.g., previous item browsing, purchases, etc.). Some categories of items (e.g., car parts) present specific challenges for item retrieval due to the sheer number of parts and their compatibility with different cars. Summary of the Invention
[0004] Some aspects of this technology involve performing item retrieval on a listing platform using clusters of interchangeable parts formed from assembly data. According to some aspects, item data for each part item list available on the listing platform is accessed. Item data includes assembly data, which provides information indicating part compatibility with the vehicle, for example by identifying compatible brands, models, years, configurations, and engines. Item data may include additional information from each part item list, such as item titles, item descriptions, and structured data (i.e., attribute name-value pairs such as brand and MPN). The item data for each part item list is fed to an embedding model that outputs an item embedding for each part item list.
[0005] Clustering of item embeddings to provide a list of component items for interchangeable parts. In some aspects, this clustering is based on a similarity score (e.g., cosine similarity) between pairs of component item lists. Constraints providing rules may also be applied, specifying whether to join or not join component item list pairs regardless of the similarity score. A cluster identifier is assigned to each cluster, and clustering data is stored that associates the cluster identifier with item list identifiers of the component item lists within each cluster. When an input is received (e.g., a search query in the context of a search or a seed item in the context of a recommendation), the clustering data is used to identify the clusters associated with that input. A response to the input is returned, identifying the list of component items in the identified clusters (e.g., search results or recommendations including the list of component items in that cluster).
[0006] This summary is provided to introduce the choice of a simplified form of concept, which is further described below in the detailed description. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used to help determine the scope of the claimed subject matter. Attached Figure Description
[0007] Embodiments of the present technology are described in detail below with reference to the accompanying drawings, in which:
[0008] Figure 1 This is a block diagram illustrating an exemplary system according to some embodiments of the present disclosure;
[0009] Figure 2 This is a graph illustrating the generation of project clusters based on project data, including assembly data for each project, according to some embodiments of this disclosure;
[0010] Figure 3 This is a diagram illustrating example item clusters formed according to some embodiments of this disclosure;
[0011] Figure 4 This is a diagram illustrating the removal of price anomalies from a cluster according to some embodiments of this disclosure;
[0012] Figure 5 This is a block diagram illustrating the operation of clustering for generating a list of component items for item retrieval according to some embodiments of the present disclosure;
[0013] Figure 6 This is a flowchart illustrating a method for generating a list of component items and storing clustered data according to some embodiments of the present disclosure;
[0014] Figure 7 This is a flowchart illustrating a method for clustering items according to some embodiments of the present disclosure;
[0015] Figure 8 This is a flowchart illustrating a method for performing item retrieval using clustering data according to some embodiments of the present disclosure; and
[0016] Figure 9 This is a block diagram of an exemplary computing environment suitable for use in embodiments of this disclosure. Detailed Implementation
[0017] Overview
[0018] Interchangeable parts are defined as parts that fit within the same group of vehicles and have the same function within those vehicles. For various reasons, the ability of an item retrieval system to identify and return a list of interchangeable parts on a listing platform is a technically challenging problem. First, interchangeable parts may be manufactured by different manufacturers, and therefore they are characterized by different Manufacturer Part Numbers (MPNs). Second, MPN coverage is low on some listing platforms because the item list on the platform may not include MPNs due to sellers' lack of understanding of them. Third, some alternative identifiers (e.g., interchangeable numbers) generated by catalogers exist to address this issue, but these alternative identifiers are not widely used / understood, and their coverage is often low on some listing platforms.
[0019] While item retrieval systems are useful tools for locating items on a listing platform, current search and recommendation technologies are deficient in their ability to identify interchangeable parts. Among other issues, the lack of part numbers (e.g., MPN and interchangeability numbers) on some item lists, and the lack of association between different MPNs, pose technical challenges to item retrieval systems, negatively impacting their ability to display interchangeable parts. These deficiencies in existing search and recommendation technologies used in conventional item retrieval systems often result in unnecessary consumption of computational resources (e.g., I / O costs, network packet generation costs, throughput, memory consumption, etc.). For example, a listing platform's search system sometimes receives search queries that only include the MPN. In such cases, current search systems typically only identify item lists with that specific MPN, while missing item lists that do not include the MPN or use compatible parts with different MPNs. In some cases, this can lead to inefficient or even empty search results. Inefficient or empty search results often require users to submit multiple queries before finding the desired item list.
[0020] In some cases involving keyword or natural language queries, conventional search systems often return a large number of incompatible parts, requiring users to submit multiple queries to find the desired part. For example, a user might submit a first query to a listing platform's search engine, which returns a set of search results. The user can browse the search results and select a specific result to access the corresponding list of items. Selecting a search result leads to the retrieval of the corresponding list of items. Furthermore, in some cases, the application is launched to present data associated with the list of items. When the search results do not return the appropriate item, the user typically enters a follow-up query.
[0021] In the context of recommendations, when the list of recommended items is insufficient (not truly interchangeable parts), users may choose to view some item lists but find that these are not what they are looking for. As discussed above, this often leads users to resort to query-based search, which can involve issuing numerous queries to try and identify relevant item lists. Furthermore, when the list of recommended items is insufficient, users may abandon the platform, negatively impacting conversion rates.
[0022] These repetitive inputs lead to increased computational resource consumption. For example, repeated user queries result in packet generation costs that adversely affect computer network communications. Each time a user issues a query, the query content or payload is typically supplemented with header information or other metadata within packets in TCP / IP and other protocols. Therefore, repeatedly generating this metadata and sending it over the computer network incurs throughput and latency costs as the function multiplies all the inputs required to obtain the desired data. In some cases, these repetitive inputs (e.g., repeated clicks, selections, or queries) increase storage device I / O (e.g., excessive physical read / write head movement on non-volatile disks) because the computing system often has to access the storage device to perform read or write operations each time a user enters unnecessary information (such as entering several queries), which is time-consuming, error-prone, and eventually wears down components such as read / write heads. Furthermore, if users repeatedly issue queries, it is costly because processing queries consumes significant computational resources. For example, for some item retrieval systems, it may be necessary to compute a query execution plan each time a query is issued, which may require the system to find the lowest-cost query execution plan to fully execute the query. This will reduce throughput and increase network latency, and waste valuable time.
[0023] Given these shortcomings in existing search and recommendation technologies, aspects of the technology described in this paper improve upon the capabilities of computers by providing a solution for item retrieval systems that leverage assembly data to generate clusters of interchangeable parts to facilitate item retrieval. According to some aspects, a machine learning model-based approach is employed in the process of generating clusters. Specifically, an embedding model capable of incorporating neural network models is used to generate item embeddings for the list of parts (referred to herein as "part item lists"). Item data, including assembly data for each part item list, is provided as input to the embedding model to generate the item embeddings. This assembly data typically includes information indicating the compatibility of parts with vehicles, such as identifying compatible brands, models, years, configurations, and engines, as well as categories (e.g., leaf category IDs). In addition to the assembly data, the item data may also include other information for each part item list, such as item titles, item descriptions, and structured data (e.g., attribute name-value pairs for identifying information such as brand and MPN).
[0024] Clustering of item embeddings provides multiple clusters that group lists of interchangeable parts together. In some aspects, this clustering is based on a similarity score (e.g., cosine similarity) between pairs of item lists. One or more constraints, including positive and negative constraints, can also be applied. A positive constraint states that if a rule for a positive constraint is met, two lists of part items are clustered together regardless of their similarity score. A negative constraint states that if a rule for a negative constraint is met, two lists of part items are not clustered together regardless of their similarity score. Given similarity scores and any applied constraints, multiple fully connected graphs can be generated. Each graph consists of nodes in the list of part items, where all connections between nodes are based on a similarity score threshold satisfied for each pair of part item lists, and any constraints are applied. Each fully connected graph provides a cluster of part item lists. In some aspects, any price outliers in each fully connected graph are identified and removed.
[0025] Each cluster is assigned a cluster identifier, and the cluster data is stored in a data warehouse for item retrieval. This cluster data can associate the cluster identifier with an item list identifier for each part item list within each cluster. In some aspects, the cluster data can associate the cluster identifier with the part number (e.g., MPN) of the part item list within each cluster.
[0026] To perform item retrieval using clustering data, the clustering data is used to identify the cluster to which the input belongs when input is received. This input can be a search query in the context of a search and one or more seed items in the context of recommendations. For example, a search query including an MPN can be received, and clusters with a list of part items including that MPN can be identified. In the case of a keyword-based search query, initial search results can be identified based on the keywords in the search query, and relevant clusters can be identified based on these initial search results. In the context of recommendations, given a seed item, the cluster to which that seed item belongs can be identified.
[0027] After identifying the clusters for the input, a list of component items within those clusters is returned in response to the input. In the context of a search, this could include providing search results based on the list of component items in the identified clusters. In the context of a recommendation, this could include providing recommendations for the list of component items in the identified clusters.
[0028] The technical aspects described in this paper offer numerous improvements over existing item retrieval techniques. For example, using item data, including assembly data, to generate item embeddings facilitates the clustering of item lists of compatible parts together, even if the item list does not include part numbers (e.g., MPNs) or uses different part numbers (e.g., different MPNs). These clusterings improve the ability of item retrieval systems to return search results and provide recommendations for truly interchangeable parts.
[0029] In addition, this provides improved computational resource consumption compared to existing item retrieval technologies. For example, compared to conventional technologies, the item retrieval system's ability to provide interchangeable item lists using the technical aspects described herein eliminates (or at least reduces) repetitive user queries, search result selection, and item list presentation, as relevant item lists are provided without the need for users to continuously enter various search queries to access search results and / or continuously select items to obtain additional information about the presented item list. Therefore, the technical aspects described herein reduce computational resource consumption, such as packet generation costs. For example, a user query (e.g., an HTTP request) will only need to traverse the computer network once (or fewer times compared to existing technologies). Specifically, for the initial user query, the content or payload of the user query is supplemented once with header information or other metadata within a packet in TCP / IP and other protocols. Such a packet for the user query is sent over the network only once or less. Therefore, metadata generation and continuous packet transmission over the computer network are not repeated.
[0030] Similarly, the technical aspects described in this paper improve storage device or disk I / O and query execution functions because they only require accessing the disk once (or fewer times compared to existing item retrieval technologies). As mentioned above, the inadequacy of existing search and recommendation technologies leads to repetitive user queries, search result selection, and item list presentation. This results in multiple disk traversals. In contrast, the aspects described in this paper reduce storage device I / O because the computing system receives less input, so it does not need to frequently access the storage device to perform read or write operations. Therefore, there is less wear and tear on components such as read / write heads because disk I / O is significantly reduced.
[0031] Example System for Project Retrieval Using Component Clustering Based on Assembly Data
[0032] Now refer to the attached diagram, Figure 1 This is a block diagram illustrating an example system 100 for performing item retrieval on a listing platform by clustering interchangeable parts based on assembly data, according to embodiments of the present disclosure. It should be understood that this and other arrangements described herein are illustrative only. Other arrangements and elements (e.g., machines, interfaces, functions, commands, and groupings of functions) may be used to supplement or replace the arrangements and elements shown, and some elements may be omitted entirely. Furthermore, many of the elements described herein are functional entities that can be implemented as discrete or distributed components or combined with other components, and implemented in any suitable combination and location. The various functions performed by one or more entities described herein can be performed by hardware, firmware, and / or software. For example, various functions can be performed by a processor executing instructions stored in memory.
[0033] System 100 is an example of a suitable architecture for implementing some aspects of this disclosure. In addition to other components not shown in the figures, system 100 also includes user equipment 102, a listing platform 104, and an item retrieval system 106. Figure 1 Each of the user device 102, the list platform 104, and the item retrieval system 106 shown may include one or more computer devices, such as those discussed below. Figure 9 The computing device 900. For example... Figure 1As shown, user equipment 102, listing platform 104, and item retrieval system 106 can communicate via network 110, which may include, but is not limited to, one or more local area networks (LANs) and / or wide area networks (WANs). Such network environments are common in offices, enterprise-wide computer networks, intranets, and the Internet. It should be understood that, within the scope of this technology, any number of user equipment and servers can be used within system 100. Each can include a single device or multiple devices collaborating in a distributed environment. For example, listing platform 104 and item retrieval system 106 can each be provided by multiple server devices that collectively provide the functionality of listing platform 104 and item retrieval system 106 as described herein. Furthermore, other components not shown may also be included within the network environment.
[0034] User device 102 may be a client device on the client side of operating environment 100, while list platform 104 and item retrieval system 106 may be on the server side of operating environment 100. List platform 104 and / or item retrieval system 106 may each include server-side software designed to work in conjunction with the client-side software on user device 102 to implement any combination of features and functionalities discussed herein. For example, user device 102 may include application 108 for interacting with list platform 104 and / or item retrieval system 106. Application 108 may be, for example, a web browser or a dedicated application for providing functionality such as that described herein. This division of operating environment 100 is provided to illustrate an example of a suitable environment, and for each implementation, it is not required that any combination of list platform 104 and item retrieval system 106 remain separate entities. For example, in some aspects, item retrieval system 106 is part of list platform 104. Although operating environment 100 illustrates a configuration in a networked environment with separate user devices, list platforms, and item retrieval systems, it should be understood that other configurations combining various components may be employed.
[0035] User equipment 102 may include any type of computing device that a user can use. For example, in one aspect, the user equipment may be what is described herein. Figure 9The type of computing device 900 described. By way of example and not limitation, user device 102 may be embodied as a personal computer (PC), laptop computer, mobile or mobile device, smartphone, tablet computer, smartwatch, wearable computer, personal digital assistant (PDA), MP3 player, global positioning system (GPS) or device, video player, handheld communication device, gaming device or system, entertainment system, in-vehicle computer system, embedded system controller, remote control, electrical appliance, consumer electronic device, workstation, or any combination of the devices described herein, or any other suitable device. A user may associate with user device 102 and may interact with listing platform 104 and / or item retrieval system 106 via user device 102.
[0036] Listing platform 104 can be implemented using one or more server devices, one or more platforms with corresponding application programming interfaces, cloud infrastructure, etc. Listing platform 104 typically provides user devices, such as user device 102, with a list of items describing (physical or digital) items that can be purchased, rented, streamed, downloaded, etc. For example, listing platform 104 may include an e-commerce platform where listed products or services are available for purchase by the user of user device 102 when navigating to listing platform 104. According to the aspects described herein, the list of items available on listing platform 104 includes a list of automotive parts, i.e., a parts list.
[0037] The listing platform 104 provides an interface that presents a list of items to users of the listing platform 104. Item data for the item lists provided by the listing platform 104 is stored in the item list data warehouse 112. Item data for each item list may include, for example, information related to the item, such as one or more of the following: item title, item description, category, price in currency, reviews, item image, shipping options, rating, item condition, item size, item color, etc. Item data may include structured data (attribute name-attribute value pairs) and unstructured text. Item data may also include search information, such as search queries that return the item list as search results and / or lead to user actions (e.g., clicks, purchases, etc.). Item data for component item lists also includes assembly data. Assembly data indicates component compatibility with a vehicle, for example, by identifying compatible brands, models, years, configurations, and engines, as well as the component category (e.g., leaf category ID). Item data for component item lists may also include information identifying brands and part numbers (e.g., manufacturer part number (MPN), interchangeable part number, etc.). In some respects, each item is associated with one or more categories (including meta-categories and leaf categories) in the list platform's category hierarchy. For example, meta-categories can each be divided into subcategories (or branch categories), while leaf categories cannot be divided.
[0038] The project retrieval system 106 facilitates project retrieval on the list platform 104, including providing search and / or recommendation functions that return a list of projects relevant to each user's interests. For example... Figure 1 As shown, the project retrieval system 106 includes a component clustering component 114, a project retrieval component 116, and a user interface component 118. The components of the project retrieval system 106 can be components other than those providing additional functionality beyond the features described herein. The project retrieval system 106 can be implemented using one or more server devices, one or more platforms with corresponding application programming interfaces, cloud infrastructure, etc. Although in Figure 1 In this configuration, the item retrieval system 106 is shown as separate from the list platform 104 and user device 102; however, it should be understood that in other configurations, some functions of the item retrieval system 106 may be provided on the list platform 104 and / or user device 102. Furthermore, although these components are shown as part of the item retrieval system 106, in other configurations, one or more components and / or modules thereof may be provided by the list platform 104 or... Figure 1 Other locations not shown in the diagram may be provided. These components may be provided by a single entity or multiple entities.
[0039] In some aspects, the functions performed by the components of the project retrieval system 106 are associated with one or more applications, services, or routines. Specifically, such applications, services, or routines may run on one or more user devices or servers, may be distributed across one or more user devices and servers, or may be implemented in the cloud. Furthermore, in some aspects, these components of the project retrieval system 106 may be distributed across a network (including one or more server and client devices), in the cloud, and / or may reside on user devices. Additionally, these components, the functions performed by these components, or the services performed by these components may be implemented at an appropriate abstraction layer of the computing system (e.g., operating system layer, application layer, hardware layer, etc.). Alternatively or additionally, the functions of these components and / or the technical aspects described herein may be performed at least in part by one or more hardware logic components. Examples of hardware logic components that may be used include, but are not limited to, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-a-chip (SoCs), complex programmable logic devices (CPLDs), etc. Furthermore, although this document describes functionality for the specific components shown in Example System 100, it is conceivable that, in some respects, the functionality of these components may be shared or distributed across other components.
[0040] The component clustering component 114 forms clusters of the component item list, wherein each cluster is considered to include interchangeable components. Figure 2 An overview of the operation of component clustering component 114 is provided. For example... Figure 2 As shown, item data 202 for each part item list is provided as input to an embedding model, which generates item embeddings 204 for each part item list. Clustering is performed using the item embeddings to generate clusters 206 for the part item lists of interchangeable parts.
[0041] For illustrative purposes, Figure 2 This includes a simple example of clustering two lists of component items together using this process. For example... Figure 2 As shown, both the project data 208 in the first component project list and the project data 210 in the second component project list include the project title, brand, and MPN attribute name-value pairs, as well as assembly data. It should be understood that... Figure 2 The item data types shown are provided as examples only and not as limitations. A first item embedding 212 is generated based on item data 208 of the first component item list, and a second item embedding 214 is generated based on item data 210 of the second component item list. Based on these item embeddings 212 and 214, a cluster 216 comprising the two component item lists is formed.
[0042] Refer again Figure 1The component clustering component 114 includes a data input module 120, an item embedding module 122, a clustering module 124, a constraint module 126, and an evaluation module 128. The data input module 120 accesses item data from the list of component items available on the list platform 104 and performs preprocessing to prepare the data for processing by the item embedding module 122. Item data can be retrieved from the item list data warehouse 112. The item data includes assembly data, which provides information about the compatibility of automotive components with specific vehicles. The assembly data identifies which vehicles the automotive components are designed to fit into and operate with. As an example and not a limitation, assembly data may include any combination of the following: brand (i.e., the brand or manufacturer of the vehicle, such as Toyota, Ford, BMW, etc.); model (i.e., the specific model of the vehicle, such as Camry, F-150, 3 Series, etc.); year (i.e., the year the vehicle was manufactured, such as 2010, 2015, 2020, etc.); configuration (i.e., the specific version or variant of the vehicle model, which typically distinguishes different levels of features, options, and configurations available for that model); and engine (i.e., engine specifications that provide detailed information about the engine, such as horsepower, torque, fuel type, and emission standards). In some configurations, assembly data is based on an assembly drawing that identifies the relationships between the various parts of the assembly data, such as which brands match which models, which configurations match which brands, and so on.
[0043] In addition to assembly data, the project data retrieved by the data input module 120 may also include various additional information about the part item list. As an example, and not a limitation, the project data retrieved for the part item list may include item titles, item descriptions (unstructured text), attribute name-value pairs (structured text), prices, categories, and item reviews. In some aspects, the structured text includes information identifying the brand and / or manufacturer part number of the part item. The project data may also include search-related information about the part item list, such as part items returned as search results or search queries that lead to clicks, purchases, or other user actions.
[0044] The item embedding module 122 generates item embeddings for each part item list based on its item data. Specifically, the item embedding module 122 employs an embedding model that, given input data for the part item list, generates item embeddings for that part item list. The embedding model includes a machine learning model (e.g., a neural network) that transforms the input data into vector representations (referred to herein as embeddings) in an embedding space (sometimes called a latent vector space). The embedding space of the embedding model provides a multidimensional space where, for example, the similarity between embeddings can be determined based on the geometric distance between embeddings in the embedding space. Therefore, the item embeddings generated by the embedding model for that part item list based on its item data include vector representations of that part item list. The item embeddings generated by the embedding model of the item embedding module 122 allow the similarity between part item lists to be determined for clustering purposes, as will be described in further detail below.
[0045] In some configurations, the embedding model used by the item embedding module 122 to generate item embeddings can be part of a language model, which includes a set of statistical or probabilistic functions for performing natural language processing (NLP) to understand, learn, and / or generate human natural language content. For example, a language model can be a tool for determining the probability of a given sequence of words appearing in a sentence or natural language sequence. In short, it can be a model trained to predict the next word in a sentence. When a language model is trained on a large amount of data and / or has a large number of parameters, it is called a large language model (LLM). Some examples of LLMs are Google's BERT and OpenAI's GPT-3 and GPT-4. These models have the ability to range from writing simple papers to generating complex computer code (all under limited or even unsupervised conditions). Therefore, an LLM can include deep neural networks that are very large (billions to hundreds of billions of parameters) and are trained on large amounts of text to understand, process, and generate human natural language. These models can predict future words in a sentence, allowing them to generate sentences in a manner similar to human speech and writing.
[0046] As previously mentioned, the embedding model used by the project embedding module 122 includes neural networks, according to several aspects. As used herein, a neural network comprises multiple operational layers, including an input layer and an output layer, and any number of hidden layers between the input and output layers. Each layer comprises neurons. Different types of layers and networks connect neurons in different ways. Given an input (including weights) and an output, a neuron has weights, an activation function that defines the neuron's output. Weights are adjustable parameters that enable the network to produce the correct output.
[0047] In some configurations, the embedding model used by the item embedding module 122 is a pre-trained model that has not yet been fine-tuned (e.g., a BERT model). In other configurations, the embedding model is either a model built and trained from scratch, or a pre-trained model that has already been fine-tuned. In this configuration, training data can be used to train or fine-tune the embedding model. For example, the training data may include item data from a list of part items, which may include assembly data for the part items. During training, the weights associated with each neuron can be updated. Initially, the embedding model may include random weight values or pre-trained weight values that have been adjusted during training. In one aspect, the embedding model is trained using backpropagation. The backpropagation process includes forward propagation, loss function, backpropagation, and weight updates. This process is repeated using the training data. For example, each iteration might include providing the model with an input text string (e.g., item data text from part item data with masked tokens), having the embedding model generate an output text string (e.g., input text with predicted tokens at the masked token locations), comparing the output text string from the embedding model with a ground truth output text string (e.g., input text without any masked tokens) (e.g., calculating the loss), and updating the model based on that comparison. Once trained, the weights associated with a given neuron can remain fixed. Other data passed between neurons can change in response to a given input. Retraining the network with additional training data can update one or more weights in one or more neurons.
[0048] Clustering module 124 forms clusters of part item lists based on item embeddings. While clusters may include a single part item list, at least some clusters include two or more part item lists grouped together based on the similarity of their item embeddings. Each cluster generated by clustering module 124 can be viewed as a set of interchangeable parts that serve the same function and have the same assembly. Clustering module 124 may cluster the item embeddings using any of a variety of clustering methods, such as K-means clustering, DBSCAN (density-based spatial clustering for noisy applications), mean-shift clustering, or clustering clustering, etc.
[0049] In some specific configurations, clustering module 124 employs a graph-based clustering method. According to this configuration, similarity scores between component item list pairs are generated based on the item embeddings of the component item list pairs. The similarity scores may, for example, include cosine similarity calculated between the item embedding pairs. In some aspects, a similarity matrix is generated, comprising an MxM matrix with similarity scores between each pair of component items (where M is the number of component item lists). In some aspects, the similarity scores are used to form a fully connected graph, where component item lists are connected based on their similarity scores satisfying a similarity score threshold. Each component item list in the fully connected graph is connected to all other component item lists in the graph (i.e., all similarity scores satisfy the similarity score threshold). The similarity score threshold may include hyperparameters configurable, for example, based on precision, coverage, and / or recall.
[0050] Figure 3 An example of cluster 300 is provided, which includes clusters that have been, for example... Figure 1 The clustering module 124 groups five component items together. These component item lists are based on being clustered together and considered interchangeable components. For example... Figure 3 As shown, these component item lists have similar item titles and overlapping assembly data, causing them to be clustered together. From Figure 3 It can also be seen that cluster 300 includes a list of component items with different brands and different MPNs (including MPNs with null values).
[0051] In some respects, clustering module 124 also performs price outlier detection to remove part item lists with outlier prices from the clusters. Given a cluster of part item lists, clustering module 124 accesses the price data for each part item list and determines whether the price of any part item list is outlier than the prices of other part item lists in that cluster. Any price outliers in that cluster are then removed. This addresses the situation where part item lists, based on their item data, may appear to be interchangeable parts but are actually different parts. For example, accessories for a part item may include similar item data (e.g., identical assembly data) but are not interchangeable parts. Such accessories typically have prices that differ significantly from the price of the part item. Therefore, clustering module 124 can employ price outlier detection to identify such items in the clusters and remove them.
[0052] Figure 4 An example is provided illustrating the detection and removal of price outliers in cluster 400. Figure 4In the example, the three part item lists 402, 404, and 406 have already been grouped together in cluster 400. All three part item lists have similar assembly data and item titles, which led to their clustering. However, the price of part item list 406 (17 USD) is significantly different from the prices of the other part item lists 402 and 404 (110 USD and 150 USD, respectively). Therefore, part item list 406 is identified as a price outlier and removed from cluster 400.
[0053] While various methods can be used to identify price outliers, in some configurations, the clustering module 124 identifies outliers based on the median price of the cluster. For example, given price data for a list of part items in a cluster, the median price of that cluster is calculated (i.e., =median(X)) and the median absolute deviation (i.e., MAD=median(|X)) i - |)). Determine the lower limit -k*MAD and / or upper limit +k*MAD, where k is a hyperparameter that can be configured, for example, based on accuracy, coverage, and / or recall. Any part item list with prices exceeding the lower and / or upper limits will be identified as price outliers and removed from the cluster.
[0054] The constraint module 126 of the component clustering component 114 specifies the constraints that can be applied when generating clusters. This can include any number of positive constraints and / or any number of negative constraints. A positive constraint specifies a rule that, when satisfied, the component item lists are clustered together regardless of the similarity of their item embeddings. For example, a positive constraint could specify that two component item lists are clustered together regardless of whether their item embedding similarity scores meet a similarity score threshold, if the two component items satisfy the positive constraint rule. Example rules for positive constraints include having the same brand, having the same MPN, having the same product identifier, or any combination thereof.
[0055] Negative constraints define rules that stipulate that, when satisfied, component item lists will not be clustered together regardless of the similarity of their item embeddings. For example, a negative constraint could stipulate that two component item lists will not be clustered together, regardless of whether their item embedding similarity scores meet a similarity score threshold, if the two component item lists satisfy the negative constraint rule. As an example rather than a limitation, negative constraint rules can be defined based on assembly data. For instance, a rule could require component items to have assembly data that includes at least a minimum number of common assemblies (e.g., same brand, same model, same year).
[0056] Evaluation module 128 evaluates the performance of clustering module 124 in generating clusters that accurately capture interchangeable parts, and also improves accuracy in terms of updates. Evaluation module 128 facilitates the evaluator's evaluation of clusters. This may include providing the evaluator with a list of part items, which identifies whether each part item belongs to or does not belong to each cluster. The evaluator may also evaluate whether there are cases where different clusters include the same interchangeable parts. Based on the evaluator input, evaluation module 128 determines the accuracy of clustering module 124 in cases of over-inclusion (i.e., clusters include incompatible parts) and under-inclusion (i.e., the same interchangeable parts are divided into multiple clusters). This accuracy can then be used to update the parameters of clustering module 124 when forming clusters. For example, the similarity score threshold can be adjusted to address over-inclusion (e.g., increasing the similarity score threshold) and under-inclusion (e.g., decreasing the score threshold). Furthermore, aspects of price outlier detection can be adjusted, for example, using coefficients to determine distance from the mean price to identify price outliers.
[0057] The item retrieval component 116 of the item retrieval system 106 utilizes clustering data to select a list of component items for use in searching and / or recommending. Given input (e.g., a search query in the context of a search or a seed item in the context of a recommendation), the item retrieval component 116 identifies clusters associated with that input. Then, in response to that input, the item retrieval component 116 returns one or more lists of component items (e.g., as search results or recommendations) based on the identified clusters.
[0058] In the context of a search, when a search query is received from a user device (e.g., user device 102), the item retrieval component 116 responds to the search query by using clustering data to select and return search results. Specifically, the item retrieval component 116 identifies clusters relevant to the search query and provides search results based on those identified clusters.
[0059] Relevant clusters for a search query can be identified in several different ways. For example, in some cases, the search query may include a part number, such as an MPN. In this case, clusters that include a list of part items with that part number are identified. For example, a mapping between part numbers and cluster identifiers can be stored, and this mapping can be used to identify clusters for search queries with part numbers. In other cases, initial search results for the search query can be identified, and clusters can be identified based on the list of part items included in these initial search results. This can include identifying clusters for each list of part items included in the initial search results (e.g., using a mapping between item identifiers and cluster identifiers) and selecting clusters corresponding to a threshold percentage of the initial search results.
[0060] Search results based on identified clusters can be returned to the user's device in several different ways. In some cases, a search results page is provided to the user's device, presenting a list of search results including a list of component items within the cluster. In other cases, a search results page is provided that includes a set of main search results and options to expand the search to include a list of component items within the cluster. For example, if a user query includes a component number (e.g., MPN), the search page can provide search results including a list of component items with that component number, along with an optional option to view a list of other component items considered interchangeable components. If the user selects this option, a list of component items within the cluster that does not include the component number in the search query is presented. In yet another aspect, a search results page with separate search results can be provided. For example, in response to a search query with a component number (e.g., MPN), a search results page can be provided that includes a first portion of a list of component items with that component number and a second portion of a list of component items within the cluster that do not have that same component number. In some cases, whether or not search results include a list of component items within the cluster can be based on the number of search results identified for the search query not meeting a threshold. For example, if the search results include a small number of search results (i.e., the number of search results is below a threshold) or an empty set, the search results for that group can be supplemented with a list of component items in that cluster.
[0061] In the context of recommendations, the item retrieval component 116 can use clustering data to select a list of component items to recommend. This can be based on one or more seed items, such as a list of component items that the user is currently viewing or has previously viewed. The item retrieval component 116 identifies clusters associated with the seed items and provides one or more recommended lists of component items from those clusters. For example, suppose a user selects to view an item list page containing a specific list of component items. In this case, the item retrieval component 116 can identify the cluster to which the list of component items belongs (e.g., based on a mapping between item identifiers and cluster identifiers). The item retrieval component 116 can then select one or more lists of component items from the identified clusters to present as recommendations on the item list page.
[0062] The project retrieval system 106 also includes a user interface component 118, which provides one or more user interfaces for interacting with the listing platform 104 and / or the project retrieval system 106. Although shown as Figure 1 The user interface component 118 is part of the item retrieval system 106, but in some configurations, it may be part of the list platform 104. The user interface component 118 provides one or more user interfaces to a user device (e.g., user device 102). In some cases, the user interface may be presented on user device 102 via application 108, which may be a web browser or a dedicated application for interacting with list platform 104 and / or item retrieval system 106. For example, user interface component 118 may provide a user interface for allowing users to input search queries, etc. The user interface may also provide search results and / or recommendations that identify a list of component items selected by item retrieval system 106 using clustering data as described herein.
[0063] Next turn Figure 5 The figure provides a block diagram illustrating operations 500 for clustering to generate a list of component items for item retrieval according to some specific aspects of the present technology. First, a data input operation 502 is performed. This may include accessing the item data 504 of the component item list (e.g., from...) via a data loading and preprocessing operation 506. Figure 1 The project list data warehouse 112). Project embedding operation 508 uses embedding model 510 to generate the project embedding for each part item list based on the project data for each part item list. In addition, constraint operation 512 applies constraints (e.g., positive and / or negative constraints) to the project data of the item list pairs to determine whether any constraint applies to any pair.
[0064] Clustering operation 518 forms clusters of interchangeable components. For example... Figure 5As shown, a constraint similarity matrix 520 is generated using item embeddings and constraints of any application. The constraint similarity matrix 520 identifies whether each pair of component item lists is connected, for example, based on the similarity of each pair of component item lists (e.g., the similarity score meets a similarity score threshold) and any applicable constraints. A fully connected graph 522 is generated based on the constraint similarity matrix 520. Specifically, each fully connected graph includes component item lists that are all connected to each other based on the constraint similarity matrix 520. A price outlier detector 524 identifies any price outliers and removes them from the clusters. After removing the price outliers, a set of clusters 526 is provided. Each cluster corresponds to the fully connected graph with any price outliers removed. A cluster identifier is assigned to each cluster, and cluster data 530 is stored. This may include storing the data in a data warehouse that associates the cluster identifiers with component item list identifiers for each component item list in each cluster. In some cases, additional cluster data may also be stored, such as data used to associate the cluster identifiers with the MPN of the component item lists in each cluster.
[0065] Item retrieval operation 528 uses the stored clustering data 530 to facilitate item retrieval 532. For example, in the context of a search, given a search query, relevant clusters are identified, and search results are provided based on a list of component items in the identified clusters. In the context of a recommendation, given one or more seed items, relevant clusters are identified, and recommendations are provided based on a list of component items in the identified clusters.
[0066] Figure 5 Evaluation operation 534 is also shown. This may include evaluation process 536, in which the evaluator examines clusters to identify cases where the part item list is included in a cluster as a non-interchangeable part and / or cases where multiple clusters contain the same interchangeable parts. Based on the results from evaluation process 536, model accuracy 538 is accessed to identify, for example, whether the cluster is over- or under-included and the accuracy of price outlier detection. Hyperparameter optimization 540 is performed based on model accuracy 538. This may include updating the similarity score threshold used to identify connected part item list pairs to generate a constraint similarity matrix 520, and / or updating the parameters used by the price outlier detector 524 to determine the distance from the mean price.
[0067] Example method for item retrieval using component clustering based on assembly data
[0068] Now for reference Figure 6 A flowchart is provided illustrating a method 600 for generating a list of component items based on several aspects and storing the clustered data. Method 600 can, for example, be at least partially derived from... Figure 1The component clustering component 114 performs the execution. Each block of method 600 and any other method described herein includes a computational process executed using any combination of hardware, firmware, and / or software. For example, various functions can be executed by a processor that executes instructions stored in memory. These methods can also be embodied as computer-usable instructions stored on a computer storage medium. These methods can be provided by standalone applications, services, or managed services (standalone or in combination with another managed service) or plug-ins of another product, to name a few.
[0069] As shown in box 602, access the item data for the part item list. The item data for each part item list includes assembly data and may also include other text data such as item title, item description (unstructured text), attribute name-value pairs (structured text), price, category, and item reviews. This item data may also include search information, such as related part item lists that have been returned as search results and / or have resulted in search queries targeting certain actions (e.g., clicks, purchases, etc.) related to the part item lists.
[0070] The embedding model generates project embeddings for the part item list based on the project data, as shown in box 604. For each part item list, its project data is provided as input to the embedding model, which outputs the project embeddings for the part item list based on the project data.
[0071] As shown in box 606, the list of component items is clustered based on item embedding. Various clustering techniques can be used, such as K-means clustering, DBSCAN (density-based spatial clustering for noisy applications), mean-shift clustering, or clustering. In some configurations, graph-based methods can be used (e.g., see below). Figure 7 The described method clusters the list of component items.
[0072] Storing clustering data (e.g., storing the clustering data in a computer storage medium), as shown in box 608. This may include assigning a cluster identifier to each cluster and storing the cluster identifier in association with various information. For example, the cluster identifier for each cluster may be stored in association with the item identifier of a list of component items in that cluster.
[0073] Next turn Figure 7 The figure provides a flowchart illustrating a method 700 for clustering a list of component items in some respects. Method 700 can be at least partially derived from, for example... Figure 1The clustering module 124 performs this operation. As shown in box 702, a similarity score between the component item list pairs is generated based on the item embeddings of the pair. The similarity score may, for example, include a cosine similarity score. If applicable, one or more constraints are applied, as shown in box 704. This may include applying positive constraints, whereby if a rule for a positive constraint is satisfied, the two component item lists are clustered together regardless of their similarity scores. This may also include applying negative constraints, whereby if a rule for a negative constraint is satisfied, the two component item lists are not clustered together regardless of their similarity scores.
[0074] At box 706, a constraint similarity matrix is generated based on the similarity score and constraints. The constraint similarity matrix can be used to identify parts item list pairs to be clustered together based on their similarity scores and any applied constraints. As shown in box 708, a fully connected graph is generated based on the constraint similarity matrix. Specifically, each fully connected graph includes nodes representing parts item lists, which include connections to all other nodes based on the similarity scores specified by the constraint similarity matrix and applied constraints.
[0075] As shown in box 710, remove any price outliers from the fully connected graph. For a given fully connected graph, this could include accessing price data for each component item list in the fully connected graph, calculating the mean price based on that price data, and identifying any component item list whose price is more than a threshold distance from the median price as an outlier to be removed.
[0076] Each fully connected graph, after removing any price outliers, is treated as a cluster. A cluster identifier is assigned to each cluster, as shown in box 712. Each cluster identifier is stored in the cluster data for that cluster.
[0077] Next turn Figure 8 A flowchart illustrating a method 800 for performing item retrieval using clustered data of a list of component items is provided. Method 800 can be at least partially derived from, for example, [the following text is missing from the original] Figure 1 The project retrieval component 116 is executed. As shown in box 802, it receives input. For example, in the context of a search, the input may include a search query. In some aspects, the search query may identify a part number, such as an MPN. In the context of recommendations, the input may include one or more seed items.
[0078] As shown in box 804, clusters are identified based on this input. For example, in the case of a search query with a part number, clusters with a list of part items including that part number are identified. In some aspects, the initial search results for the search query are identified, and clusters are identified based on the list of part items in the initial search results. In the context of recommendations, in some aspects, clusters are identified based on one or more seed items. For example, given seed items including a list of part items, the cluster to which that list of part items belongs is identified.
[0079] Based on the identified clusters, in response to the input, one or more lists of component items are provided, as shown in box 806. For example, in the context of a search, a search results page that includes a list of component items in the identified clusters can be provided. In the context of recommendations, one or more recommendations for the list of component items in the identified clusters can be provided.
[0080] Exemplary operating environment
[0081] Having described embodiments of this disclosure, exemplary operating environments in which embodiments of this technology may be implemented are described below to provide a general context for the various aspects of this disclosure. Specifically, reference is first made to… Figure 9 An exemplary operating environment for implementing embodiments of the present technology is shown and is generally designated as computing device 900. Computing device 900 is merely an example of a suitable computing environment and is not intended to imply any limitation on the use or scope of the present technology. Nor should computing device 900 be construed as having any dependency or requirement associated with any one or combination of the components shown.
[0082] This technology can be described in the general context of computer code or machine-usable instructions, including computer-executable instructions (such as program modules) that are executed by a computer or other machine, such as a personal data assistant or other handheld device. Typically, a program module, which includes routines, programs, objects, components, data structures, etc., refers to code that performs a specific task or implements a specific abstract data type. This technology can be practiced in a variety of system configurations, including handheld devices, consumer electronics, general-purpose computers, and more specialized computing devices. This technology can also be practiced in distributed computing environments, where tasks are performed by remote processing devices linked via a communication network.
[0083] refer to Figure 9The computing device 900 includes a bus 910 that is directly or indirectly coupled to the following devices: memory 912, one or more processors 914, one or more presentation components 916, input / output (I / O) ports 918, input / output components 920, and an illustrative power supply 922. The bus 910 can represent one or more buses (e.g., an address bus, a data bus, or a combination thereof). Although for clarity... Figure 9 Each box is represented by a line, but in reality, the boundaries dividing the various components are not so clear; figuratively speaking, the lines would be more accurately described as gray and blurred. For example, the presentation components of a display device can be considered as I / O components. Furthermore, the processor has memory. The inventors recognize this as the nature of the art and reiterate... Figure 9 The diagrams are merely illustrative of exemplary computing devices that may be used in conjunction with one or more embodiments of the present technology. There is no distinction between categories such as “workstation,” “server,” “laptop,” “handheld device,” etc., as all these categories are... Figure 9 Within the scope and with reference to "Computing Devices".
[0084] Computing device 900 typically includes various computer-readable media. Computer-readable media can be any available medium accessible by computing device 900, and includes volatile and non-volatile media, removable and non-removable media. By way of example and not limitation, computer-readable media can include computer storage media and communication media. Computer storage media includes volatile and non-volatile, as well as removable and non-removable media implemented in any method or technology, for storing information such as computer-readable instructions, data structures, program modules, or other data.
[0085] Computer storage media include, but are not limited to: RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, Digital Universal Optical Disc (DVD) or other optical disc storage devices, magnetic tape cassettes, magnetic tape, disk storage devices or other magnetic storage devices, or any other medium that can be used to store desired information and can be accessed by a computing device 900. The terms "computer storage medium" and "computer storage medium" themselves do not include signals.
[0086] Communication media typically embody computer-readable instructions, data structures, program modules, or other data in the form of modulated data signals (e.g., carrier waves or other transmission mechanisms), and include any information transmission medium. The term "modulated data signal" refers to a signal whose characteristics are set or altered in a manner that encodes information in the signal. By way of example, and not limitation, communication media include wired media such as wired networks or direct wired connections, and wireless media such as acoustic, RF, infrared, and other wireless media. Any combination of the above should also be included within the scope of computer-readable media.
[0087] Memory 912 includes computer storage media in the form of volatile memory and / or non-volatile memory. The memory can be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard disk drives, optical disk drives, etc. Computing device 900 includes one or more processors that read data from various entities such as memory 912 or I / O components 920. Presentation component 916 presents data indications to a user or other device. Exemplary presentation components include display devices, speakers, printing components, vibration components, etc.
[0088] I / O port 918 allows computing device 900 to be logically coupled to other devices, some of which may be built-in, including I / O component 920. Illustrative components include microphones, joysticks, game controllers, satellite antennas, scanners, printers, wireless devices, etc. I / O component 920 can provide a natural user interface (NUI) that processes air gestures, voice, or other physiological input generated by the user. In some cases, the input can be sent to appropriate network elements for further processing. The NUI can implement any combination of the following: voice recognition, touch and stylus recognition, facial recognition, biometric recognition, gesture recognition both on and near the screen, air gestures, head and eye tracking, and touch recognition associated with a display on computing device 900. Computing device 900 may be equipped with a depth camera for gesture detection and recognition, such as a stereo camera system, an infrared camera system, an RGB camera system, or combinations thereof. Furthermore, computing device 900 may be equipped with an accelerometer or gyroscope capable of detecting motion.
[0089] The present technology has been described with reference to specific embodiments which are intended to be illustrative and not limiting in all respects. Alternative embodiments will become apparent to those skilled in the art without departing from the scope of the present technology.
[0090] Having identified the various components used herein, it should be understood that any number of components and arrangements can be employed to achieve the desired functionality within the scope of this disclosure. For example, for clarity of concept, components in the embodiments depicted in the accompanying drawings are shown in lines. Other arrangements of these and other components can also be implemented. For instance, although some components are depicted as single components, many elements described herein can be implemented as discrete or distributed components or combined with other components, and implemented in any suitable combination and location. Some elements may be omitted entirely. Furthermore, as described below, the various functions performed by one or more entities described herein can be performed by hardware, firmware, and / or software. For example, various functions can be performed by a processor executing instructions stored in memory. Therefore, other arrangements and elements (e.g., machines, interfaces, functions, commands, and function groups) can also be used as supplements to or alternatives to the arrangements and elements shown.
[0091] The embodiments described herein can be combined with one or more of the specifically described alternatives. Specifically, the claimed embodiments may include references to more than one other embodiment in the alternatives. The claimed embodiments may specify additional limitations on the claimed subject matter.
[0092] This document specifically describes embodiments of the technology to meet legal requirements. However, this specification itself is not intended to limit the scope of this patent. Rather, the inventors have envisioned that the claimed subject matter may also be embodied in other ways in combination with other prior art or future technology to include different steps or combinations of steps similar to those described in this document. Furthermore, although the terms “step” and / or “box” may be used herein to denote different elements of the method employed, such terms should not be construed as implying any particular order between or between the various steps disclosed herein, unless and only if the order of the various steps is explicitly described.
[0093] For the purposes of this disclosure, the word "comprising" has the same broad meaning as the word "including," and the word "access" includes "receiving," "quoting," or "retrieval." Furthermore, the word "communication" has the same broad meaning as the words "receiving" or "transmitting," which is facilitated by a software- or hardware-based bus, receiver, or transmitter using the communication medium described herein. Additionally, unless otherwise stated, words such as "a" or "an" include both plural and singular forms. Thus, for example, the constraint of "feature" is satisfied when one or more features are present. Furthermore, the term "or" includes conjunctions, disjuncts, and both (a or b therefore includes a or b, and a and b).
[0094] For the purposes of the detailed discussion above, embodiments of this technology are described with reference to a distributed computing environment; however, the distributed computing environment described herein is merely exemplary. Components may be configured to perform novel embodiments of the present invention, wherein the term "configured for" may mean "programmed to" perform a specific task or implement a specific abstract data type using code. Furthermore, while embodiments of this technology can generally be referenced to the technical solution environment and schematic diagrams described herein, it should be understood that the described technology can be extended to other implementation contexts.
[0095] As can be seen from the foregoing, this technology is well-suited for achieving all the objectives and purposes set forth above, as well as other obvious and inherent advantages of the system and method. It will be understood that some features and sub-combinations are useful and can be employed without reference to other features and sub-combinations. This is contemplated by the claims and is within the scope of the claims.
Claims
1. One or more computer storage media storing computer-usable instructions, which, when used by one or more computing devices, cause the one or more computing devices to perform operations, the operations including: Access the item data for each of the multiple part item lists, where the item data for each part item list includes assembly data; Use the project data to generate the project embedding for each component's project list; The item embeddings are clustered to generate multiple clusters, each cluster including one or more item embeddings; as well as The clustering data of the multiple clusters is stored, and the clustering data of each cluster associates the cluster identifier with the item list identifier embedded in each item in the cluster.
2. The computer storage medium according to claim 1, wherein, Clustering the project embeddings to generate the plurality of clusters includes: Generate similarity scores between item embedding pairs; and The similarity scores are used to form the clusters.
3. One or more computer storage media according to claim 2, wherein, Using similarity scores to form clusters includes: A similarity matrix is generated, which identifies the similarity between item embedding pairs based on the similarity scores; Generate multiple graphs, each graph having nodes representing a list of component items and edges between nodes based on the similarity between the item embeddings corresponding to those nodes; and Each graph is identified as a cluster.
4. One or more computer storage media according to claim 3, wherein, The similarity matrix is subject to one or more constraint rules.
5. One or more computer storage media according to claim 3, wherein, Each of the multiple graphs is fully connected.
6. The computer storage medium according to claim 3, wherein using the similarity score to form the cluster further comprises: Based on price, the list of items for the first component in the first figure is identified as an outlier; as well as Remove the first component item list from the first diagram.
7. One or more computer storage media according to claim 1, wherein, The operation also includes: Receive search queries; Based on the search query, identify a first cluster from the plurality of clusters; and One or more search results are provided based on the clustering data of the first cluster.
8. One or more computer storage media according to claim 7, wherein, The search query includes a component number, and the first cluster is identified based on a list identifier that includes a list of component items, including the component number.
9. One or more computer storage media according to claim 7, wherein, Identifying the first cluster from the plurality of clusters based on the search query includes: Identify a list of one or more component items related to the search query; and The first cluster is identified based on the list of one or more component items.
10. One or more computer storage media according to claim 1, wherein, The operation also includes: Receive seed projects; Identify a first cluster from the plurality of clusters based on the seed project; and Based on the clustering data of the first cluster, provide recommendations for one or more component items.
11. A method implemented by a computer, comprising: Access the item data for each of the multiple part item lists, where the item data for each part item list includes assembly data; Use the project data to generate the project embedding for each component's project list; The item embeddings are clustered to generate multiple clusters, each cluster including one or more item embeddings; The clustering data of the multiple clusters are stored in a data warehouse, and the clustering data of each cluster associates the clustering identifier with the item list identifier embedded in each item in the cluster; Receive input; Identify a first cluster from the plurality of clusters based on the input; as well as The clustering data of the first cluster is used to provide an indication of a list of one or more component items.
12. The computer-implemented method according to claim 11, wherein, Clustering the project embeddings to generate the plurality of clusters includes: Generate similarity scores between item embedding pairs; and The similarity scores are used to form the clusters.
13. The computer-implemented method according to claim 12, wherein, Using the similarity scores to form the clusters includes: A similarity matrix is generated, which identifies the similarity between item embedding pairs based on the similarity scores; Generate multiple graphs, each graph having nodes representing a list of component items and edges between the nodes, the edges being based on the similarity between the item embeddings corresponding to the nodes; and Each graph is identified as a cluster.
14. The computer-implemented method according to claim 13, wherein, The similarity matrix is subject to one or more constraint rules.
15. The computer-implemented method of claim 13, further comprising using the similarity scores to form the clusters: Based on price, the list of items for the first component in the first figure is identified as an outlier; as well as Remove the first component item list from the first diagram.
16. The computer-implemented method according to claim 11, wherein, The search input includes a search query for identifying the part number, and wherein the first cluster is identified based on a list identifier that has a list of part items including the part number.
17. The computer-implemented method according to claim 11, wherein, The search input includes a search query, and wherein identifying the first cluster from the plurality of clusters based on the search query includes: Identify an initial set of lists of one or more component items related to the search query; and The first cluster is identified based on an initial set of the list of one or more component items.
18. The computer-implemented method according to claim 11, wherein, The search input includes seed items.
19. A computer system comprising: One or more processors; as well as One or more computer storage media storing computer-usable instructions that, when used by one or more processors, cause the computer system to perform operations, including: Access the item data for each of the multiple part item lists, where the item data for each part item list includes assembly data; Use the project data to generate the project embedding for each component's project list; A constraint similarity matrix is generated based on the similarity scores between item embedding pairs and one or more constraint rules; Multiple graphs are generated using the constraint similarity matrix, each graph having nodes representing a list of component items and edges between nodes based on the constraint similarity matrix, wherein each graph is identified as a cluster to provide multiple clusters; and The clustering data of the multiple clusters is stored, and the clustering data of each cluster associates the cluster identifier with the item list identifier embedded in each item in the cluster.
20. The computer system according to claim 19, wherein, The operation also includes: Receive input; Identify a first cluster from the plurality of clusters based on the input; and The clustering data of the first cluster is used to provide an indication of a list of one or more component items.
