Inventory item forecasting and entry recommendation

By generating cross-category directed graphs and machine learning models, items not included in individual inventory are identified, solving the problem that traditional inventory management systems cannot identify missing items in individual inventory, and achieving more accurate inventory prediction and recommendation.

CN115375219BActive Publication Date: 2025-12-30EBAY INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210507671.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-05-18
Filing Date
2022-05-11
Publication Date
2025-12-30
Estimated Expiration
2042-05-11

AI Technical Summary

Technical Problem

Traditional inventory management systems cannot identify missing items in individual inventory lists, and are particularly inaccurate in managing the inventory of non-commercial entities such as individual users, failing to predict items not included in the known inventory.

Method used

By generating a cross-category directed graph, items with similar attributes are grouped into category nodes based on user data. Then, a prediction model trained by machine learning is used to identify items not included in an individual's inventory and generate a predicted inventory of items and their recommended entries.

Benefits of technology

It improves the accuracy and efficiency of inventory forecasting, can identify unidentified items in individual inventories, and provides estimated values ​​and market demand information for these items to help individual users replenish their inventory.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115375219B_ABST
    Figure CN115375219B_ABST
Patent Text Reader

Abstract

An inventory forecasting system is described that uses a cross-category directed graph representing item categories as nodes to output predicted inventory items that are not included in a user's known inventory. The inventory forecasting system implements a prediction model trained using machine learning that outputs predicted inventory items using the graph and at least one item from the user's known inventory. The inventory forecasting system is also configured to generate a listing recommendation for the predicted inventory item. To do so, the inventory forecasting system implements a logistic regression model trained using machine learning to compute a probability that a listing recommendation should be generated using attributes of the predicted inventory item and attributes of currently popular items. The listing recommendation is generated to include a description of the predicted inventory item and an estimated value for the predicted inventory item, as well as an option to generate a listing for the predicted inventory item.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure pertains to inventory management, particularly to inventory item forecasting and item recommendations. Background Technology

[0002] Traditional inventory management systems are used to predict future demand. For example, retail entities implement inventory systems to estimate when retail locations will sell specific items in order to preemptively restock. To do this, traditional inventory systems rely on historical transaction information, such as the quantity of items previously purchased by a retail location relative to the quantity of items sold by that location, to predict demand for various items and infer future demand for the entity. Therefore, traditional inventory systems heavily depend on information comprehensively describing the entity's current inventory and treat this current inventory information as a fundamental fact when predicting future inventory demand. Consequently, traditional inventory systems cannot identify missing items that should be included in the entity's current inventory list. Summary of the Invention

[0003] An inventory forecasting system is described that outputs predicted inventory items for a specified user, which are not included in the known inventory data describing the specified user. To this end, the inventory forecasting system utilizes a cross-category directed graph including a node-edge structure, where the nodes of the graph represent each item category comprising multiple items. The inventory forecasting system is configured to generate the cross-category directed graph based on user data describing one or more items known to be owned by each of a plurality of users. Based on associated item attributes, items specified in the known inventory of the user data are assigned to category nodes in the cross-category directed graph, such that each category node includes multiple items having at least one common attribute. Each category node is also assigned a value representing the values ​​of the multiple items included in the category node.

[0004] The inventory forecasting system then identifies connections between various category node pairs, where a connection indicates ownership of one or more items included in each category node linked by the known inventory of at least two users in the user data. The node connections are then weighted based on the number of users known to own items in the two node categories linked by the connection. The weighted node connections are then filtered based on an edge threshold, such that node connections with weights that do not meet the edge threshold are not represented in the cross-category directed graph. For connections with weights that meet the edge threshold, the inventory forecasting system generates an edge connecting the node categories and assigns a direction to the edge based on the corresponding value of the node category linked by the edge. For example, a cross-category directed graph is generated such that edges are directed to flow from lower-value category nodes to higher-value category nodes.

[0005] Given a cross-category directed graph, this inventory prediction system implements a prediction model trained using machine learning to output predicted inventory items owned by a specified user, given as input information describing items known to be owned by the specified user. To this end, the prediction model is trained to identify category nodes in the cross-category directed graph that include known inventory items, and the graph is traversed to identify different category nodes based on weighted edges. Natural language processing is then used to compute similarities between known inventory items and items in different category nodes to identify predicted inventory items, which are then output by the inventory prediction system along with an estimate of the predicted inventory items.

[0006] The inventory forecasting system is also configured to selectively generate table entry recommendations for predicted inventory items in response to determining that a predicted inventory item corresponds to a list of popular items, which describes items currently in demand or items that are favorably valued relative to their average value. In determining whether to generate a table entry recommendation for the predicted inventory item, the inventory forecasting system implements a logistic regression model trained using machine learning to calculate the probability that the table entry recommendation should be generated by analyzing the attributes of the predicted inventory item and the attributes of popular items included in the list of popular items. In response to determining that the probability meets a threshold, the inventory forecasting system outputs the table entry recommendation, which includes a description of the predicted inventory item, an estimated value of the predicted inventory item, and an optional option to initiate the generation of a list for sale of the predicted inventory item through one or more retail entities.

[0007] This overview presents, in a simplified form, some concepts that will be further described in the following detailed description. Therefore, this summary is not intended to identify essential features of the claimed subject matter, nor is it intended to help determine the scope of the claimed subject matter. Attached Figure Description

[0008] Specific embodiments are described with reference to the accompanying drawings. In some implementations, the entities shown in the drawings refer to one or more entities, and therefore the single or multiple forms of the entities are interchangeable in the discussion.

[0009] Figure 1 This is an illustration of an environment in an example implementation of the technology described herein, which is operable to use an inventory forecasting system to forecast the inventory items owned by a user and generate a list of recommended items for the forecasted inventory items.

[0010] Figure 2 It is depicted in more detail. Figure 1 The example implementation of the inventory forecasting system is shown in the example implementation.

[0011] Figure 3 It depicts in more detail the work by Figure 1This is an example implementation of the graphical generation module in an inventory forecasting system.

[0012] Figure 4 It depicts in more detail the work by Figure 1 An example implementation of a cross-category directed graph representation of an inventory forecasting system.

[0013] Figure 5 It describes a more detailed list of... Figure 1 An example of a table of recommended items for predicted inventory generated by the inventory forecasting system.

[0014] Figure 6 This is a flowchart depicting the process in an example implementation that generates a cross-category directed graph based on user data describing item ownership.

[0015] Figure 7 This is a flowchart depicting the process in an example implementation that uses a cross-category directed graph to predict inventory items and generate recommended entries for the predicted inventory items.

[0016] Figure 8 Various components, including the example device, are shown to implement the reference. Figures 1 to 7 Example systems of the described technology. Detailed Implementation

[0017] Overview

[0018] Businesses and retail entities typically maintain inventory lists to track the items they currently have in stock. This information is used to more accurately predict future inventory demand, such as when a business will need to order more of a particular item before it runs out of stock. Businesses painstakingly track this information because traditional inventory management systems and inventory forecasting methods treat these inventory lists as the basis for predicting future demand. Because the inventory list is considered true and complete for all items currently in stock, traditional inventory management systems are not designed to identify missing items that should be included in the inventory list.

[0019] Unlike businesses and retail entities that track inventory as part of their standard operations, ordinary individuals do not maintain records describing the current inventory of the items they own. While some retail entities automatically track this information on behalf of their customers in the form of order history saved to user accounts, such user account information provides only a limited snapshot of the entire inventory of items owned by an individual. Although information describing an individual's purchase history can be aggregated from multiple sources (e.g., orders / purchase history from different retail entities), such aggregated information fails to account for items acquired from other sources (e.g., via different retail entities, as gifts, etc.). Therefore, the inventory list of non-business entities (e.g., individuals) regarding all items owned by an entity is often incomplete. In some scenarios, individuals are assigned the task of completing the inventory list when it is not possible to do so manually. For example, a homeowner assigned to provide an insurance company with an inventory list describing the property seized due to fire, natural disasters, etc., cannot walk around their home and manually inventory their own items, let alone estimate the value of items that cannot be identified as owned.

[0020] To address these issues, a technique for predicting the inventory of items owned by an individual is described. In one example, the inventory prediction system generates a cross-category directed graph based on user data describing the known inventory of different users. This cross-category directed graph can be used to aid in inventory item prediction. Items with similar attributes listed in the known inventory are grouped into categories and represented as nodes in the cross-category directed graph. By grouping items and representing multiple items as individual nodes in the cross-category directed graph, the inventory prediction system is configured to accurately identify items not included in an individual's known inventory using fewer computational and network resources than would be required if known inventory items were represented individually as nodes in the graph, as described further in detail below.

[0021] If different users in the user data are known to have inventory of items included in the two category nodes of the pair, then the pairs of item category nodes are linked in the cross-category directed graph. Weights are assigned to node links based on the number of different users who own items in the two categories represented by the node pairs. To control the sparsity of the cross-category directed graph, and thus the computational resources required to use the graph for predictions, weighted node connections are then filtered based on an edge threshold, so that node connections with weights that do not meet the edge threshold are not represented in the cross-category directed graph. Finally, directions are assigned to the edges in the graph based on the item values ​​included in the category nodes linked by the edges, guiding how the graph is used for inventory item prediction.

[0022] The inventory forecasting system is also configured to use machine learning to train a forecasting model to predict the inventory items owned by a particular individual based on information describing one or more items known to be owned by that individual. Once information is provided to identify one or more items known to be owned by an individual, the forecasting model is configured to automatically (i.e., independently of user input) output the predicted inventory items using information encoded in the node categories and weighted edges of a cross-category directed graph.

[0023] The inventory forecasting system is configured to output predicted inventory items for display via a user interface, along with a description of the predicted inventory item and its estimated current value. In some implementations, the inventory forecasting system is also configured to generate item recommendations for the predicted inventory items. In determining whether to generate an item recommendation for the predicted inventory item, the inventory forecasting system implements a logistic regression model trained using machine learning to automatically calculate the probability that the item recommendation should be generated by analyzing the attributes of the predicted inventory item and the attributes of popular items included in the popular items list. The item recommendation generated by the inventory forecasting system includes a description and estimated value of the predicted inventory item, as well as an option to list the predicted inventory item for sale through retail entities. Further discussion of these and other examples is included in the following sections and illustrated in the corresponding figures.

[0024] In the following discussion, an example environment configured to employ the techniques described herein is described. Example procedures configured for execution in the example environment and other environments are also described. Therefore, the execution of the example procedures is not limited to the example environment, and the example environment is not limited to the execution of the example procedures.

[0025] Example Environment

[0026] Figure 1 This is an illustration of a digital media environment 100 operable in an example implementation of the techniques described herein. As used herein, the term "digital media environment" refers to various computing devices and resources used to implement the techniques described herein. Digital media environment 100 includes computing devices 102 that can be configured in various ways.

[0027] Computing device 102 may be configured as, for example, a desktop computer, a laptop computer, a mobile device (e.g., a handheld configuration such as the tablet or mobile phone shown), etc. Therefore, the range of computing device 102 extends from full-resource devices with abundant memory and processor resources (e.g., personal computers, game consoles) to low-resource devices with limited memory and / or processing resources (e.g., mobile devices). Furthermore, although a single computing device 102 is shown, computing device 102 represents multiple different devices, such as multiple servers used by an enterprise to perform operations "through the cloud."

[0028] Computing device 102 includes an inventory forecasting system 104. The inventory forecasting system 104 is implemented at least partially in the hardware of computing device 102 to process user data 106, which represents information describing a known inventory 108 of at least one item owned by a user as indicated in the user data 106. User data 106 is shown to be maintained in storage device 110 of computing device 102 and, in some implementations, represents data obtained from one or more sources remote from computing device 102, such as data obtained from one or more remote sources via network 112. In this way, user data 106 represents a range of information types indicating item ownership.

[0029] For example, in an example implementation, user data 106 includes at least one of the following: explicit user input at computing device 102 (e.g., a spreadsheet with entries tracking gifts received by the user), user profile data obtained from at least one e-commerce platform (e.g., describing the user's purchase history via the e-commerce platform), email data obtained from a messaging service (e.g., messages indicating order confirmations for the user from one or more vendors), social data (e.g., text and / or image data describing and / or depicting items associated with the user obtained from a social media platform), and combinations thereof. Therefore, the known inventory 108 of a specified user represents information collected from one or more sources describing items that have been acquired by the specified user or otherwise owned, possessed, held, or controlled by the specified user.

[0030] The inventory forecasting system 104 processes user data 106 using a forecasting model trained with machine learning to output predicted inventory items 114, which represent items not included in the known inventory 108 of the user data 106 for a given user. The trained forecasting model is configured to output predicted inventory items 114 by processing the known inventory 108 of the given user and a cross-category directed graph 116 as input.

[0031] Cross-category directed graph 116 represents information describing the ownership of items by multiple different users, where the nodes of the graph represent multiple different categories of items. Edges linking pairs of nodes are established based on the number of users owning items in the linked nodes and the values ​​assigned to the two nodes linked by the edges. In some implementations, inventory forecasting system 104 is configured to generate cross-category directed graph 116 using user data 106, as described in further detail below. Alternatively, inventory forecasting system 104 is configured to obtain cross-category directed graph 116 from storage device 110 of computing device 102 or from a source other than computing device 102, such as via network 112.

[0032] The inventory forecasting system 104 is configured to output a description of the forecasted inventory item 114 in a user interface 118 via a display device 120 of the computing device 102. In one implementation, the description of the forecasted inventory item 114 is displayed in the user interface 118 as an image of the forecasted inventory item 114, a text description of the forecasted inventory item 114 (e.g., item title, product description, product category, manufacturer, brand, condition, etc.), or a combination thereof.

[0033] The inventory forecasting system 104 is also configured to display a list of recommended items 122 for the predicted inventory item 114 in the user interface 118. In some implementations, the recommended items 122 are selectively generated by the inventory forecasting system 104 in response to determining that the predicted inventory item 114 corresponds to the popular items list 124 or other information indicating market demand for the predicted inventory item 114. To this end, the inventory forecasting system 104 is configured to compile information describing popular items from one or more retail entities (e.g., e-commerce platforms, online marketplaces, etc.) and generate a ranked list indicating current market demand for popular items.

[0034] In one implementation, the inventory forecasting system 104 is configured to generate a list 124 of popular items for discrete geographic regions, such as where a computing device 102 is located. Alternatively, the list 124 represents global information describing the current market demand for the items listed in the list. The list 124 is updated periodically (e.g., every second, every hour, every day, etc.) and thus represents real-time monitoring of market demand for items indicated by purchases from retail entities. Given the real-time monitoring provided by the list 124, the inventory forecasting system 104 identifies an estimated current value for the predicted inventory item 114 and includes the estimate 126 in the table entry recommendation 122.

[0035] The inventory forecasting system 104 is therefore configured to forecast items owned by the user that are not identified in the information describing the user's known inventory, inform the user of estimates of these items, and recommend items to be listed in response to identifying the correlation between the forecasted inventory items and the list of popular items.

[0036] Generally, the functions, features, and concepts described with respect to the examples above and below can be used in the context of the example processes described in this section. Furthermore, the functions, features, and concepts described with respect to the different figures and examples in this document are interchangeable and are not limited to implementations within the context of a particular figure or process. Additionally, the boxes associated with different representative processes and their corresponding figures herein are configured to be applied and / or combined in different ways. Therefore, the various functions, features, and concepts described with respect to different example environments, devices, components, figures, and processes can be used in any suitable combination, and are not limited to the combinations represented by the examples listed in this specification.

[0037] Inventory item forecasts and item recommendations

[0038] Using a cross-category directed graph

[0039] Figure 2 A more detailed description is provided. Figure 1 The example implementation of the inventory forecasting system 104 is shown in system 200. In this example, the inventory forecasting system 104 begins by utilizing a graph generation module 202, which is configured to generate a cross-category directed graph 116 using user data 106. To describe the generation of the cross-category directed graph 116 in detail, consider... Figure 3 .

[0040] Figure 3 The system 300 is depicted in more detail in an example implementation of the operation of the graph generation module 202 employed by the inventory forecasting system 104. In this example, user data 106 is provided to the data aggregation module 302. The data aggregation module 302 processes the user data 106 into a structured data format that associates each individual user 304 identified in the user data 106 with a corresponding known inventory, where the known inventory 108 for user 304 identifies one or more items known to be owned by that user.

[0041] Then, a structured data format describing the known inventory 108 of each user 304 included in user data 106 is provided to item classification module 306. Item classification module 306 is configured to generate multiple item categories, wherein each item category is represented as a category node 308 to be included in the cross-category directed graph 116. Each category node 308 includes multiple items 310, wherein items are assigned to a specific category node 308 based on a product description that identifies at least one attribute of the item (e.g., item title, item brand, item condition, item type, item seller, item average selling price, etc.), or a combination thereof.

[0042] In some implementations, the item classification module 306 assigns items 310 from user data 106 (e.g., represented by the known inventory 108 of each user 304 described in user data 106) to one of a plurality of predefined item categories. For example, the predefined item categories are specified by the developers of the inventory forecasting system 104, obtained from storage device 110 of the computing device 102 implementing the inventory forecasting system 104, obtained from a location remote from the computing device 102 via network 112 (e.g., as a list of categories for organizing items for navigation via one or more online marketplaces), combinations thereof, etc.

[0043] Alternatively or additionally, the item classification module 306 is configured to generate category nodes 308 independently of information specifying predefined item categories. For example, the item classification module 306 is configured to process attribute information for each item specified in user data 106 and generate item groups 310 with a threshold number of common attributes. The threshold number of common attributes used to assign items 310 to category nodes 308 can be configured to any suitable integer and can be pre-specified by the developer of inventory forecasting system 104, specified via manual user input to computing device 102 implementing inventory forecasting system 104, or a combination thereof. Although only a single category node 308 is shown in example system 300, the item classification module 306 is configured to generate any suitable number of category nodes (e.g., hundreds, thousands, millions, etc.) from user data 106.

[0044] The item classification module 306 is also configured to assign a value 312 to each 308. In some implementations, the value 312 of a category node 308 is determined based on information describing the average selling price of each item 310 included in the category node 308. Alternatively or additionally, the value 312 of a category node 308 is determined based on information describing the table price, advertising price, discount, etc., of the item 310 included in the category node 308. In this way, the value 312 represents the market value of the item 310 included in the category node 308, such that a category node 308 with a high value 312 represents an item 310 with a generally higher price than items 310 included in category nodes 308 corresponding to lower values ​​312. The item classification module 306 is configured to periodically update the value 312 of each category node 308, such that the graph generation module 202 is provided with real-time information about the current market valuation of the item represented by the category node 308.

[0045] Then, each category node 308 is provided to the edge generation module 314. The edge generation module 314 is configured to compute weighted node connections 316, where each weighted node connection 316 connects two category nodes 308. In response to the edge generation module 314 detecting that the known inventory of at least two different users includes items in the two category nodes 308 linked by the weighted node connection, the weighted node connection 316 is established. The edge generation module 314 assigns a weight to each of the weighted node connections 316 based on the number of users whose known inventory indicates ownership of items in the two category nodes 308 linked by the weighted node connection.

[0046] In some implementations, the weighted node connections 316 are generated by the edge generation module 314 in a tabular structure. For example, in the tabular format, the first column identifies the identifier of the first of the category nodes 308 linked by the node connection, the second column identifies the identifier of the second of the category nodes 308 linked by the node connection, and the third column identifies the weight of the node connection (e.g., an integer value identifying the number of different users in the user data 106 that have two linked category nodes 308). Such a tabular format only represents the type of structured data, and the edge generation module 314 is configured to output the weighted node connections 316 in various data structure types.

[0047] The weighted node connections 316 are then provided to the sparsity control module 318, which is configured to filter the weighted node connections 316 according to an edge threshold 320. The edge threshold 320 represents a measure of the sparsity of the cross-category directed graph 116, such that if a node connection has a weight that satisfies the edge threshold 320, an edge 322 is established in the cross-category directed graph 116 from one of the weighted node connections 316. In this way, a lower edge threshold 320 results in an increased edge density in the cross-category directed graph 116 compared to a higher edge threshold 320. While the increased edge density improves the accuracy of predictions generated using the cross-category directed graph 116, it similarly increases the amount of computational resources required to perform the predictions.

[0048] Considering this trade-off between prediction accuracy and computational cost, the sparsity control module 318 is configured to compute a value for the edge threshold 320 that minimizes computational resource requirements while maximizing prediction accuracy. To this end, the sparsity control module 318 generates an evaluation dataset based on user data 106, which includes U users and J category nodes, where U specifies an integer subset of users 304 and J specifies an integer subset of category nodes 308. Therefore, U and J each represent any appropriate integer, constrained only by the number of users identified by the data aggregation module 302 and the number of category nodes 308 output by the item classification module 306, respectively.

[0049] In this way, the U×J matrix M (真) This represents the true ownership relationship between user 304 and the items included in category node 308, such that if user u owns an item in category node j, then M uj (真) =1, otherwise =0. The evaluation dataset, implemented by the sparsity control module 318, masks (i.e. hides) some fundamental facts about user item ownership data, denoted as AS. Given this masking, the evaluation dataset with hidden ownership data, represented in the known inventory 108, is expressed as matrix M, such that if... M uj If NULL and M uj =M uj (真) .

[0050] The sparsity control module 318 then attempts to predict the masked known inventory 108 values ​​in the evaluation dataset. To do this, for each masked known inventory 108 value, the sparsity control module 318 considers the unmasked values ​​in the user 304's known inventory 108 and identifies a category node 308 that includes items 310 corresponding to unmasked items listed in the user's known inventory 108. The sparsity control module 318 then determines a value 312 for the identified category node 308 and uses weighted node connections 316 to identify different category nodes 308 that have higher values ​​than the identified category node 308 and are linked to the identified category node 308 via one of the weighted node connections 316.

[0051] The sparsity control module 318 then predicts which item 310 is included in different category nodes 308 by the mask value in the evaluation dataset. To do this, the sparsity control module 318 compares the titles of items in the user's known inventory 108 used to identify different category nodes 308 with the titles of items 310 included in different category nodes 308. Using natural language processing, the item with the highest similarity among different category nodes 308 is output as the predicted mask value in the evaluation dataset. The sparsity control module 318 is configured to implement any suitable natural language processing method to determine the similarity between the titles of items in the user's known inventory 108 used to identify different category nodes 308 and the titles of items 310 included in different category nodes 308, such as cosine similarity, Euclidean distance, Jaccard similarity, item frequency, etc.

[0052] For example, in an example implementation using cosine similarity, the sparsity control module 318 uses words describing the items (e.g., item titles, item descriptions, etc.) to generate a vector representation of each item. The sparsity control module 318 then calculates the cosine of the angle between the two vectors as projected into a multidimensional space. A cosine value closer to one indicates that the items are similar, while a cosine value closer to zero indicates that the items are dissimilar.

[0053] In another example implementation using item frequencies, the sparsity control module 318 performs at least one of stemming or lemmatization on the words describing the items (e.g., item titles, item descriptions, etc.) and processes the words into word tokens. Each word token represents a common variation of the root word, illustrating the word's usage in the full vocabulary of the corresponding language, in order to better suit item matching, in contrast to the original words from which these word tokens are generated. To determine whether items are similar, the sparsity control module 318 calculates the item frequency of each item's word token relative to the total number of word tokens generated for the items under consideration. Item frequencies closer to one indicate that items are similar, while item frequency values ​​closer to zero indicate that items are dissimilar.

[0054] Let x represent the title of the item in the user's known inventory 108 used to identify different category nodes 308, and let y1, y2, ... y1 represent the n items 310 included in different category nodes 308. n The sparsity control module 318 predicts the i'th item among the nodes 308 of different categories as the mask value in the evaluation dataset according to Equation 1. In Equation 1, the argmax function returns the maximum output of the similarity function, where the similarity function represents the natural language processing method implemented by the sparsity control module 318.

[0055] i′=argmax i Similarity (x, y) i (Equation 1)

[0056] The prediction made using Equation 1 for the masking values ​​in the evaluation dataset is expressed as follows: Where δ represents the edge threshold 320, the resulting complexity of the cross-class directed graph 116 generated using the edge threshold 320 is represented as Ω(δ). The sparsity control module 318 is configured to select the edge threshold 320 that minimizes the loss function described in Equation 2, which achieves minimizing inaccurate predictions (e.g., minimizing the error associated with masking values ​​in the prediction evaluation dataset) and the optimal edge density of the cross-class directed graph 116. In Equation 2, This represents the cardinality set of the evaluation dataset.

[0057]

[0058] Then, the edge generation module 314 filters the weighted node connections 316 using the edge threshold 320 calculated according to Equation 2, and generates edges 322 in the cross-category directed graph 116 for each weighted node connection 316 with a corresponding weight that satisfies the edge threshold 320. In this way, the cross-category directed graph 116 is generated with edges 322 connecting the category node pairs only if the user data 106 indicates a threshold number of users who have a known inventory 108 of items listed in the two category nodes 308 included in the category node pair.

[0059] Edge generation module 314 assigns a weight 324 to each edge 322 based on a corresponding specified weight in the weighted node connections 316 used to generate the edge 322. Edge generation module 314 also assigns a direction 326 to each edge 322. The direction 326 of each edge is assigned based on the value 312 of each category node 308 in the node pair connected by edge 322. In some implementations, the direction 326 of edge 322 flows from the category node 308 with the lower value 312 in the node pair to the category node 308 with the higher value 312 in the node pair. Alternatively, the direction 326 is specified to flow from the higher value to the lower value. For an example illustration of the cross-category directed graph 116, consider Figure 4 .

[0060] like Figure 4 As shown in example implementation 400, the cross-category directed graph 116 includes multiple category nodes 308, where various categories of node pairs 308 are linked by edges 322. Detailed view 402 depicts an example of four category nodes 404, 406, 408, and 410 connected to each other in the cross-category directed graph 116 via one or more edges 412, 414, 416, and 418.

[0061] In example implementation 400, category node 404 represents category node 308, which includes item 310 classified as "Smartphone" by item classification module 306. Therefore, category node 404 includes smartphone items from known inventories of different users, such as "iPhone 12" item 420, "Galaxy S21" item 422, "Pixel 5" item 424, etc. Category node 406 represents items classified as "Smartphone Parts" by item classification module 306, category node 408 represents items classified as "Smartwatch," and category node 410 represents items classified as "Smartphone Accessories."

[0062] The relative value 312 of category nodes 404, 406, 408, and 410 is indicated by the direction of connecting edges 412, 414, 416, and 418. For example, edge 412 is depicted as flowing from category node 410 to category node 404, indicating that smartphone items included in category node 404 have a higher value than cellular phone accessories included in category node 410. Edge 414 is depicted as flowing from category node 406 to category node 408, indicating that smartphone accessories have a lower value than smartwatches, as indicated by the respective category nodes. Similarly, edge 416 indicates that items included in category node 406 are generally associated with values ​​greater than those associated with items in category node 410, while edge 418 indicates that values ​​associated with items in category node 410 are also less than those associated with category node 408.

[0063] In this way, the cross-category directed graph 116 provides a representation of common item ownership among the known inventory of different users, as expressed by user data 106, classifying known inventory items based on type and associating different item categories based on values ​​associated with items included in different item categories. In doing so, the cross-category directed graph 116 constructs data describing a user's known inventory items in a manner that allows for accurate prediction of ownership of items not explicitly listed in a user's known inventory while minimizing the computational resources required for the output prediction.

[0064] return Figure 2 The graph generation module 202 provides a cross-category directed graph 116 to the item recognition module 204. The item recognition module 204 is configured to implement a trained prediction model 206 to output predicted inventory items 114 for a specified user 208 (such as one of a plurality of users represented in user data 106). For this purpose, information describing at least one item known to be owned by the specified user 208 is input into the prediction model 206. In some implementations, the specified user 208 is represented in user data 106, and the item recognition module 204 selects items known to be owned by the specified user 208 from the corresponding known inventory 108 included in user data 106. Alternatively or additionally, items known to be owned by the specified user 208 are collected from data separate from user data 106, such as via user input at a computing device implementing the inventory prediction system 104.

[0065] Prediction model 206 is trained to identify one of the category nodes 308 in the cross-category directed graph 116, which includes items known to be owned by a specified user 208. To this end, prediction model 206 implements natural language processing methods (e.g., cosine similarity, Euclidean distance, Jaccard similarity, etc.) to compare information describing the items known to be owned by the specified user 208 (e.g., item title, item description, etc.) with the labels assigned to the category nodes 308 in the cross-category directed graph 116. When identifying the category node with the greatest similarity to the items known to be owned by the specified user 208, prediction model 206 determines whether the category node is associated with any edge 322 having a direction from the category node to different category nodes in the cross-category directed graph 116.

[0066] In response to determining that an identified category node is not associated with an edge from the identified category node to a different category node, prediction model 206 selects different items known to be owned by the specified user 208 for use in outputting predicted inventory items 114. Alternatively, in response to determining that an identified category node is associated with one or more edges 322 far from the identified category node, prediction model 206 identifies the edge with the highest weight 324 and traverses the highest-weighted edge to detect different category nodes connected to the identified category node through that edge. For example, in the context of example implementation 400, in response to determining that an item known to be owned by the specified user 208 corresponds to category node 406, prediction model 206 identifies edge 414 as the highest-weighted edge far from category node 406 and traverses edge 414 to detect category node 408.

[0067] Predictive model 206 then implements Equation 1 as described above to identify the item in the detected category nodes that is most similar to an item known to be owned by the specified user 208. Regarding Equation 1, the item known to be owned by the specified user 208 is represented as x and includes items in the detected category nodes (e.g., items included in the category nodes related to...). Figure 4 The items in category node 408 detected in the above example are represented as y1, y2, ... y n Prediction model 206 uses Equation 1 to output the predicted inventory item 114 as the i-th item in the detected category nodes. As implemented in prediction model 206, the argmax function returns the maximum output of the similarity function, and the similarity function represents the values ​​of y1, y2, ..., y1 in the detected category nodes. n A natural language processing method for the similarity between an item and an item known to be owned by a specified user 208.

[0068] The item identification module 204 outputs the predicted inventory item 114 for display, for example, on the display device of the computing device implementing the inventory prediction system 104. In some implementations, the item identification module 204 outputs the display of the predicted inventory item 114 and a prompt for confirming the accuracy of the predicted inventory item 114. In response to receiving feedback indicating that the predicted inventory item 114 represents an item owned by a specified user 208, the inventory prediction system 104 is configured to update the database entry in the user data 106 associated with the specified user 208 to add the predicted inventory item 114 to the known inventory of the specified user 208.

[0069] The item identification module 204 also provides the predicted inventory item 114 to the item recommendation module 210. The item recommendation module 210 is configured to compare the predicted inventory item 114 with popular items 212 included in the popular item list 124 and calculate a popularity score for the predicted inventory item 114. To calculate the popularity score for the predicted inventory item 114, the item recommendation module 210 employs a logistic regression model 216 to compare the attributes of the predicted inventory item 114 with the attributes 214 of each of at least one popular item 212 specified in the popular item list 124. Example attributes 214 include the product description of the popular item 212, seller information of the popular item 212, category description of the popular item 212, brand of the popular item 212, condition of the popular item 212, ranking of the popular item 212 relative to other items in the popular item list 124, average selling price of the popular item 212, etc.

[0070] Logistic regression model 216 is configured to consider three criteria as input when generating a popularity score for predicted inventory item 114: item similarity, rank in the popular item list 124, and item value. Item recommendation module 210 quantifies the similarity between predicted inventory item 114 and popular item 212 on a scale of zero to one, where zero indicates no similarity between predicted inventory item 114 and items included in the popular item list 124, and one indicates that predicted inventory item 114 is included in the popular item list 124. In determining the similarity between predicted inventory item 114 and popular item 212, item recommendation module 210 implements a natural language processing model (e.g., cosine similarity model, Euclidean distance model, Jaccard similarity model, etc.) to identify the similarity between attribute 214 of popular item 212 and the corresponding attribute of predicted inventory item 114.

[0071] The input criteria for the logistic regression model 216, used to represent the ranking in the popular item list 124, are normalized by the item recommendation module 210 on a scale from one to zero, where a value of one indicates that the predicted inventory item 114 is the highest-ranking popular item in the popular item list 124, and a value of zero indicates that the predicted inventory item 114 is not in the popular item list 124. In some implementations where the predicted inventory item 114 is not in the popular item list 124 but meets a similarity threshold level to one of the popular items included in the popular item list 124, the ranking of similar items in the popular item list 124 is used to predict the inventory item 114 as the input criterion for the logistic regression model 216.

[0072] The input criterion for the logistic regression model 216, which represents the predicted value of inventory item 114, is the predicted average selling price of inventory item 114. In an implementation where the predicted inventory item 114 corresponds to a popular item 212 listed in the popular item list 124, the item recommendation module 210 determines the average selling price based on attribute 214 of the popular item 212. Alternatively, in an implementation where the predicted inventory item 114 is not listed in the popular item list 124, the item recommendation module 210 determines the average selling price by querying one or more e-commerce marketplaces to obtain items offering the predicted inventory item 114 for sale.

[0073] The logistic regression model 216 then determines, according to Equation 3, whether to generate an item recommendation 122 for the predicted inventory item 114. In Equation 3, p(y i ) indicates the probability that item recommendation 122 should be generated for predicted inventory item 114, y i w0 is the partial term, and w1 is the item similarity criterion x. 1i The weights (for predicted inventory items), w2 is the popular ranking criterion x 2i The weights, and w3 is the value criterion x of the item. 3i The weight.

[0074]

[0075] The item recommendation module 210 uses the loss function described in Equation 4 to train the logistic regression model 216, where i represents the training data index ranging from 1 to N. Combined with gradient descent, the loss function is used to adjust the bias term and various weights used by the logistic regression model 216 in determining whether to generate an item recommendation for the predicted inventory item 114. As described in Equation 4, Θ represents (w0, W1, w2, w3) and J represents the loss function.

[0076]

[0077] In response to determining that the probability of generating an entry recommendation for the predicted inventory item 114 meets a probability threshold, the entry recommendation module 210 generates an entry recommendation 122. In some implementations, the probability threshold is set to 0.5. Alternatively, the probability threshold is set to z, where 0 < z ≤ 1.

[0078] In some implementations where predictions are generated simultaneously for multiple predicted inventory items 114, the probability threshold is determined based on the display capabilities of the computing device implementing the inventory prediction system 104. For example, if the computing device is limited to displaying only three recommended entries in its available display area, the probability threshold is set to exclude all probabilities calculated for each predicted inventory item 114 except the top three probabilities, such that recommended entries 122 are generated only for the top three predicted inventory items whose associated probability ranking is calculated according to Equation 4. Recommended entries 122 are generated to include descriptions of the predicted inventory items 114 in the form of images, text descriptions, or a combination thereof. Recommended entries 122 are also generated to include estimates 126 for the predicted inventory items 114. In some implementations, estimates 126 are determined by the recommended entries module 210 based on information included in the popular items list 124. Alternatively or additionally, the estimate 126 of the predicted inventory item 114 is determined by comparing the attributes of the predicted inventory item 114 (e.g., title, category, brand, condition, description, etc.) with information describing at least one similar item sold through one or more retail entities (e.g., total merchandise value, number of unique buyers, available quantity sold, quantity purchased on at least one similar item, average selling price, etc.).

[0079] By providing an estimate 126 for the predicted inventory item 114, the entry recommendation 122 informs the user of the inventory forecasting system 104 about the current market demand or valuation for an item owned by the user, but which is not identified as owned in information describing the user's known inventory. In some implementations, the entry recommendation 122 is populated with options selectable via input to specify the user's intent relative to the predicted inventory item 114.

[0080] For example, table entry recommendation 122 includes option 218, which can be selected to indicate the user's intention to maintain forecasted inventory item 114. In response to input being detected in option 218, inventory forecasting system 104 is configured to update database record entries in user data 106 to add forecasted inventory item 114 to the known inventory associated with the specified user 208.

[0081] Alternatively or additionally, entry recommendation 122 includes option 220, which can be selected to instruct a user to list the anticipated inventory item 114 for sale. In response to input being detected in option 220, inventory forecasting system 104 causes a user interface (e.g., via display device 120) of the retail entity to be displayed, which can be used to generate entries for the anticipated inventory item 114. In some implementations, as part of causing the retail entity to display an entry generation interface, inventory forecasting system 104 sends information describing the anticipated inventory item 114 to the retail entity for use in automatically generating sales entries.

[0082] The inventory forecasting system 104 is configured to repeat the above operations to output at least one additional forecasted inventory item 114 for a specified user 208. In some implementations, the inventory forecasting system 104 uses the forecasted inventory item 114 as input to the forecasting model 206 for outputting the additional forecasted inventory item 114 for the specified user 208.

[0083] Alternatively or additionally, the inventory forecasting system 104 selects another item from the known inventory of the specified user 208 to output an additional forecasted inventory item 114, and is configured to output multiple forecasted inventory items as needed until the known inventory of the specified user 208 regarding the items actually owned by the specified user 208 is completed. Based on the multiple forecasted inventory items, the item recommendation module 210 processes the items using a logistic regression model 216 and generates an item recommendation 122 for each forecasted inventory item associated with an output probability that satisfies a probability threshold of the logistic regression model 216.

[0084] like Figure 5 As shown in Example Implementation 500, the inventory forecasting system 104 is configured to output a display of multiple recommended entries for predicted inventory items that are identified by the entry recommendation module 210 as satisfying the threshold probability of the logistic regression model 216.

[0085] As depicted in example implementation 500, the inventory forecasting system 104 generates three different table entry recommendations 502, 504, and 506 for the corresponding predicted inventory item 114 output for a specified user 208. In this implementation, the different table entry recommendations represented by table entry recommendations 502, 504, and 506 are simultaneously output by the inventory forecasting system 104 to the user interface 118. In some implementations, when the inventory forecasting system 104 outputs a new predicted inventory item 114 for the specified user 208, the user interface 118 is periodically updated so that the user interface 118 is updated in real time to display the items predicted to be owned by the specified user 208 that satisfy the corresponding prediction threshold of the logistic regression model 216.

[0086] In some implementations, the item recommendations output in the user interface 118 are ranked based on the probability that the indication output by the logistic regression model 216 should generate item recommendations for its corresponding predicted inventory item. For example, in example implementation 500, item recommendation 502 identifies a smartphone, item recommendation 504 identifies a children's toy, and item recommendation 506 identifies a watch, each representing a predicted inventory item 114 identified as popular by the item recommendation module 210 and output to a specified user 208.

[0087] In the example shown, the relative positioning of the item recommendations from left to right indicates that the smartphone in item recommendation 502 has the highest probability relative to all predicted inventory items 114 considered by the logistic regression model 216, with children's toys having the second highest probability, watches having the third highest probability, and so on. The inventory prediction system 104 is configured to present any suitable number of item recommendations 122 in any suitable order and / or positioning in the user interface 118, and is not constrained by the user interface of the depicted implementation 500. The user interface 118 is configured to output for display in a range of ways, such as in the application's native user interface, as part of a webpage, as part of an electronic message, as part of a notification, or a combination thereof.

[0088] Having considered example systems and techniques for generating cross-category directed graphs, using cross-category directed graphs to output predicted inventory items, and generating table item recommendations for predicted inventory items, we now consider example procedures to illustrate aspects of the techniques described in this paper.

[0089] Example process

[0090] The following discussion describes techniques configured to be implemented using the systems and devices previously described. Aspects of each process are configured to be implemented in hardware, firmware, software, or a combination thereof. These processes are shown as a set of boxes specifying operations performed by one or more devices, and are not necessarily limited to the order in which the operations are performed by the respective boxes as shown. References are made in the following sections of the discussion. Figures 1 to 5 .

[0091] Figure 6A process 600 in an example implementation of generating a cross-category directed graph according to the techniques described herein is depicted. According to one or more implementations, process 600 is performed by an inventory forecasting system 104 to generate a cross-category directed graph 116. For this purpose, user data from multiple users is received, wherein the user data describes one or more items owned by each of the multiple users (box 602). A data aggregation module 302, implemented by a graph generation module 202, receives, for example, user data 106. In some implementations, user data 106 is received from a storage device 110 of a computing device 102 implementing the inventory forecasting system 104. Alternatively or additionally, user data 106 is received from one or more sources remote from the computing device 102, such as via a network 112.

[0092] Then, a cross-category directed graph is generated using the user data (box 604). As part of generating the cross-category directed graph 116, the graph generation module 202 generates category nodes, each including multiple items described in the user data (box 606). For example, the data aggregation module 302 parses the user data 106 to determine the known inventory 108 of one or more items owned by each user 304 listed in the user data 106. The data aggregation module 302 then transmits the known inventory 108 data to the item classification module 306, which assigns individual items from the known inventory to category nodes 308 based on attributes describing the individual items, and calculates a value 312 for each category node based on the corresponding value of the item 310 included in the category node.

[0093] Then, connections between category nodes are identified, and a weight is assigned to each connection based on the number of users who own items included in the two category nodes linked by that connection (box 608). For example, edge generation module 314 calculates weighted node connections 316 between each category node pair in response to identifying that the known inventory of at least two different users includes items listed in the two nodes of the category node pair. The weight assigned to a single weighted node connection represents the number of users whose known inventory includes items listed in the two category nodes linked by that node connection.

[0094] A threshold is then calculated to establish edges between category nodes for inclusion in the cross-category directed graph (box 610). The sparsity control module 318 calculates the edge threshold 320, for example, by generating an evaluation dataset that masks certain items listed in the masked user data 106. The sparsity control module 318 attempts to predict the masked known inventory 108 values ​​in the evaluation dataset by evaluating item title similarity using natural language processing, and determines the value of threshold 320 according to equations 1 and 2.

[0095] Then, edges are generated for each connection with weights that satisfy the threshold (box 612). For example, edge generation module 314 filters weighted node connections 316 by generating edges 322 only for those weighted node connections 316 with corresponding weights that satisfy edge threshold 320. Finally, a direction is assigned to each edge (box 614). For example, edge generation module 314 assigns a direction 326 to each edge 322 based on the value 312 associated with each category node 308 in the node pair connected by edge 322. For example, the direction 326 of edge 322 is assigned to point from category node 308 in the node pair with lower value 312 to category node 308 in the node pair with higher value 312.

[0096] The cross-category directed graph 116 (box 616) is then output. For example, the graph generation module 202 outputs the cross-category directed graph 116 as including multiple category nodes 308 generated by the item classification module 306, which are linked by edges 322 created by the edge generation module 314. In some implementations, the cross-category directed graph 116 is output to the storage device 110 of the computing device implementing the inventory forecasting system 104. Alternatively or additionally, the cross-category directed graph 116 is output to different computing devices, storage locations, etc.

[0097] Figure 7 The process 700 in an example implementation of predicting inventory items owned by a user via a cross-category directed graph, and generating recommended entries for the predicted inventory items, is described according to the techniques described herein. First, user data describing the items owned by the user is received (box 702). The item identification module 204 of the inventory prediction system 104 receives, for example, an instruction that predicted inventory item 114 will be output to a specified user 208. The item identification module 204 compares the identity of the specified user 208 with the user data 106 to identify one or more items included in the known inventory 108 associated with the specified user 208.

[0098] Then, user data and a cross-category directed graph are used to predict additional items owned by the user (box 704). For example, the item recognition module 204 receives the cross-category directed graph 116 from the graph generation module 202 and uses the prediction model 206 to process at least one item identified based on the known inventory 108 of the specified user 208.

[0099] Given at least one item and a cross-category directed graph 116 as input, prediction model 206 is configured to identify category nodes (box 706) in the cross-category directed graph. To this end, prediction model 206 first selects a category node that includes or contains items similar to those known to be owned by a specified user 208 in the cross-category directed graph 116. If the selected category node is associated with one or more edges 322 that are far from the identified category node, prediction model 206 identifies the edge with the highest weight 324 and traverses the highest-weighted edge to detect different category nodes connected to the selected category node.

[0100] For example, in the context of example implementation 400, in response to determining that an item known to be owned by the specified user 208 is included in category node 410, prediction model 206 compares the corresponding weights of edges 412, 416, and 418 emanating from category node 410 to identify the edge with the highest weight. In response to determining that edge 412 has the highest weight among edges farthest from the selected category node 410, prediction model 206 traverses edge 412 to identify category node 404.

[0101] Then, by calculating the title similarity between items known to be owned by the user and items in the identified category nodes, similar items are selected from the category nodes (box 708). Continuing with the example described in the implementation 400 shown, prediction model 206 implements Equation 1 to identify the item in category node 404 that is most similar to an item known to be owned by the specified user 208 (e.g., item 420, item 422, or item 424), and designates that similar item as prediction inventory item 114.

[0102] Similar items are output as predicted additional items owned by the user (box 710). For example, item recognition module 204 outputs predicted inventory item 114 for display, such as at a display device of a computing device implementing inventory prediction system 104. In some implementations, predicted inventory item 114 is output along with descriptive information such as item title, item description, estimate, etc.

[0103] Then, item recommendations are generated for additional items (box 712). For example, item identification module 204 provides predicted inventory item 114 to item recommendation module 210 of inventory prediction system 104. Item recommendation module 210 compares predicted inventory item 114 with popular items 212 included in popular item list 124 and uses logistic regression model 216 to calculate the popularity score of predicted inventory item 114.

[0104] Logistic regression model 216 is configured to consider three criteria as input when generating a popularity score for predicted inventory item 114: item similarity, rank in the popular item list 124, and item value. Logistic regression model 216 then determines, according to Equation 3, whether to generate an item recommendation for predicted inventory item 114. In response to determining that the probability of generating an item recommendation for predicted inventory item 114 meets a probability threshold, item recommendation module 210 generates item recommendation 122.

[0105] The table entry recommendation 122 is generated to include a description of the predicted inventory item 114, in the form of an image, text description, or a combination thereof. The table entry recommendation 122 is further generated to include an estimate 126 of the predicted inventory item 114. In one implementation, the estimate 126 is determined by the table entry recommendation module 210 based on information included in the popular items list 124.

[0106] The generation entry recommendation 122 includes option 220, which can be selected to indicate the intention of a specified user 208 to list the predicted inventory item 114 for sale. In response to input being detected in option 220, the inventory forecasting system 104 causes a user interface (e.g., via display device 120) of the retail entity to be displayed, which can be used to generate entries for the predicted inventory item 114. In some implementations, as part of causing the retail entity to display an entry generation interface, the inventory forecasting system 104 sends information describing the predicted inventory item 114 to the retail entity for use in automatically generating sales entries.

[0107] Having described example processes based on one or more implementations, we now consider example systems and devices that implement the various techniques described herein.

[0108] Example systems and devices

[0109] Figure 8 An example system 800, including example computing device 802, is shown, representing one or more computing systems and / or devices implementing the various technologies described herein. This is illustrated by including inventory forecasting system 104. Computing device 802 is configured, for example, as a server for a service provider, a device associated with a client (e.g., a client device), a system-on-a-chip, and / or any other suitable computing device or computing system.

[0110] The example computing device 802 shown includes a processing system 804 communicatively coupled to each other, one or more computer-readable media 806, and one or more I / O interfaces 808. Although not shown, the computing device 802 is also configured to include a system bus or other data and command transfer system that couples various components to each other. The system bus includes any one or a combination of different bus architectures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and / or a processor or local bus utilizing any of a variety of bus architectures. Various other examples, such as control lines and data lines, are also contemplated.

[0111] Processing system 804 represents the functionality of performing one or more operations using hardware. Therefore, processing system 804 is shown as including hardware elements 810 configurable as processors, function blocks, etc. For example, hardware element 810 is implemented in hardware as an application-specific integrated circuit or other logic device formed using one or more semiconductors. Hardware elements 810 are not limited by the materials forming them or the processing mechanisms employed therein. For example, processors alternatively or additionally include semiconductors and / or transistors (e.g., electronic integrated circuits (ICs)). In such a context, processor-executable instructions are electronically executable instructions.

[0112] Computer-readable storage medium 806 is shown as including memory / storage device 812. Memory / storage device 812 represents a memory / storage capacity associated with one or more computer-readable media. Memory / storage device 812 represents volatile media (such as random access memory (RAM)) and / or non-volatile media (such as read-only memory (ROM), flash memory, optical disk, magnetic disk, etc.). Memory / storage device 812 is configured to include fixed media (e.g., RAM, ROM, fixed hard disk drive, etc.) and removable media (e.g., flash memory, removable hard disk drive, optical disk, etc.). In some implementations, computer-readable medium 806 is configured in various other ways as further described below.

[0113] Input / output interface 808 represents a function that allows a user to input commands and information into computing device 802, and also allows information to be presented to the user and / or other components or devices using various input / output devices. Examples of input devices include keyboards, cursor control devices (e.g., mice), microphones, scanners, touch functionality (e.g., capacitive or other sensors configured to detect physical touch), cameras (e.g., devices configured to identify movement as gestures not involving touch using visible or invisible wavelengths such as infrared frequencies), etc. Examples of output devices include display devices (e.g., monitors or projectors), speakers, printers, network interface cards, haptic-responsive devices, etc. Therefore, computing device 802 represents various hardware configurations for supporting user interaction, as further described below.

[0114] Various technologies are described in the general context of software, hardware components, or program modules. Typically, such modules include routines, programs, objects, elements, parts, data structures, etc., that perform specific tasks or implement specific abstract data types. As used herein, the terms “module,” “function,” and “part” generally refer to software, firmware, hardware, or a combination thereof. The technologies described herein are characterized as platform-independent, meaning that these technologies are configured for implementation on a variety of commercial computing platforms with a wide range of processors.

[0115] The implementation of the described modules and technologies is stored on or transmitted via some form of computer-readable medium. Computer-readable medium includes various media accessible by computing device 802. By way of example and not limitation, computer-readable medium includes "computer-readable storage medium" and "computer-readable signal medium".

[0116] "Computer-readable storage medium" means a medium and / or device capable of persistently and / or non-transitory storing information, as opposed to mere signal transmission, carrier waves, or signals themselves. Therefore, computer-readable storage medium refers to a non-signal-bearing medium. Computer-readable storage media include hardware, such as volatile and non-volatile, removable and non-removable media and / or storage devices implemented with methods or techniques suitable for storing information such as computer-readable instructions, data structures, program modules, logic elements / circuits, or other data. Examples of computer-readable storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disk (DVD) or other optical storage, hard disk, magnetic tape cassette, magnetic tape, disk storage devices or other magnetic storage devices, or other storage devices, tangible media, or articles of art suitable for storing information required for computer access.

[0117] "Computer-readable signal medium" refers to a signal-bearing medium configured to transmit instructions, such as via a network, to the hardware of a computing device 802. Signal media typically embody computer-readable instructions, data structures, program modules, or other data as modulated data signals, such as carrier waves, data signals, or other transmission mechanisms. Signal media also includes any information transmission medium. The term "modulated data signal" refers to a signal whose one or more 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-wire connections, and wireless media such as acoustic, RF, infrared, and other wireless media.

[0118] As previously described, hardware element 810 and computer-readable medium 806 represent modules, programmable device logic, and / or fixed device logic implemented in hardware form, which in some embodiments implement at least some aspects of the techniques described herein, such as executing one or more instructions. In some implementations, the hardware includes components of integrated circuits or systems-on-a-chip, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), and other implementations in silicon or other hardware. In this context, the hardware operates as a processing device for executing program tasks defined by instructions and / or logic embodied in the hardware, and as hardware for storing instructions for execution, such as the previously described computer-readable storage medium.

[0119] The various techniques described herein are implemented using a combination of the foregoing. Therefore, software, hardware, or executable modules are implemented as one or more instructions and / or logic embodied on some form of computer-readable storage medium and / or implemented by one or more hardware elements 810. Computing device 802 is configured to implement instructions and / or functions corresponding to the software and / or hardware modules. Therefore, the implementation of modules executable by computing device 802 as software is at least partially implemented in hardware, for example, by using the computer-readable storage medium and / or hardware elements 810 of processing system 804. Instructions and / or functions may be executed / operated by one or more articles of art (e.g., one or more computing devices 802 and / or processing system 804) to implement the techniques, modules, and examples described herein.

[0120] The techniques described herein are supported by various configurations of computing device 802, and are not limited to specific examples of the techniques described herein. This functionality is also configured to be implemented, wholly or partially, through a distributed system, such as via a platform 816 described below, through a “cloud” 814.

[0121] Cloud 814 includes and / or represents platform 816 for resource 818. Platform 816 abstracts the underlying functionality of the hardware (e.g., server) and software resources of cloud 814. Resource 818 includes applications and / or data utilized when computer processing is performed on a server remote from computing device 802. Resource 818 also includes services provided via the Internet and / or via subscriber networks (e.g., cellular or Wi-Fi networks).

[0122] Platform 816 is configured to abstract resources and functions to connect computing device 802 to other computing devices. Platform 816 is also configured to abstract resource scaling to provide corresponding scaling levels to any encountered demand for resources 818 implemented via platform 816. Therefore, in interconnect device implementations, the implementations of the functions described herein are configured to be distributed throughout system 800. For example, in some configurations, functions are implemented partly on computing device 802 and partly via platform 816, which abstracts the functions of cloud 814.

[0123] Conclusion

[0124] Although the invention has been described using language specific to structural features and / or methodological actions, the invention as defined in the appended claims is not necessarily limited to the specific features or actions described. Rather, these specific features and actions are disclosed as exemplary forms of implementing the claimed invention.

Claims

1. A method implemented by a computing device, the method comprising: receiving data describing at least one item owned by a user; predicting an additional item owned by the user by implementing a predictive model trained using machine learning, the predictive model to: determine a first item category that includes the at least one item; identify a second item category that is related to the first item category and that includes the additional item; and determine a description of the at least one item and select the additional item from the second item category based on the description; based on a probability that an item recommendation for the additional item should be generated satisfying a popularity threshold probability value, output, at a client device associated with the user, a display of an item recommendation for the additional item, the display of the item recommendation including an estimated value of the additional item, a first control to receive input indicating an intent of the user to possess the additional item, and a second control to receive input indicating an intent of the user to list the additional item for sale; receive a user input of the user via the first control or the second control; if the user input is entered via the first control, update a database record associated with the user to include the additional item in the data describing the at least one item owned by the user in response to the user input; if the user input is entered via the second control, generate a sale listing for the additional item in response to the user input.

2. The method of claim 1, further comprising: generating a cross-category directed graph including a plurality of nodes, wherein each node of the plurality of nodes represents an item category including a plurality of items; generating a plurality of edges each connecting two nodes of the plurality of nodes, wherein each edge of the plurality of edges is generated in response to a determination that items included in the two nodes of the plurality of nodes connected by the edge are owned by at least two different users; and outputting the cross-category directed graph, wherein the predictive model is trained to use the cross-category directed graph to identify the second item category. the predictive model is configured to identify the second item category that is related to the first item category by detecting that one edge of the plurality of edges in the cross-category directed graph:

3. The method of claim 2, wherein, links one node of the plurality of nodes representing the first item category to one node of the plurality of nodes representing the second item category; and has a direction pointing from the first item category to the second item category. the predictive model is further configured to:

4. The method of claim 3, wherein, determine that one node of the plurality of nodes representing the first item category is associated with at least two edges of the plurality of edges having a direction pointing away from the first item category; determine a weight associated with each of the at least two edges of the plurality of edges; and in response to identifying that the one edge of the plurality of edges has a greater weight relative to other edges of the at least two edges of the plurality of edges, select the one edge of the plurality of edges. ​ ​ 5. The method of claim 1, wherein, The prediction model is trained to select the additional item by generating similarity scores using natural language processing, each of the similarity scores indicating a degree of similarity between the at least one item and an item included in the second item category.

6. The method of claim 1, wherein, Outputting a display of the item recommendation for the additional item includes: causing a logistic regression model to generate a probability indicating that the item recommendation for the additional item should be generated by comparing the additional item to attributes describing one or more items included in a list of popular items; and determining that the additional item is popular in response to identifying that the probability satisfies the popular threshold probability value.

7. The method of claim 6, wherein, The logistic regression model is configured to generate the probability based on a similarity of the additional item to the one or more items included in the list of popular items, a ranking of the additional item relative to the list of popular items, and an estimated value of the additional item.

8. An inventory prediction system comprising: at least one processor; and a computer-readable storage medium storing instructions executable by the at least one processor to perform operations comprising: receiving user data describing, for each of a plurality of users, known inventories specifying at least one item owned by the user; generating, from the user data, a cross-category directed graph comprising a plurality of category nodes and a plurality of edges, each category node representing a plurality of items specified in the known inventories of the user data, each edge linking two of the plurality of category nodes and indicating ownership of items included in the two linked category nodes by at least two different users; receiving data describing a first item owned by a first user; determining a first item category comprising the first item; identifying, based on the cross-category directed graph, a second item category that is related to the first item category and that comprises an additional item; determining a description of the first item and selecting, from the second item category, the additional item based on the description; outputting, at a client device associated with the first user, a display of an item recommendation for the additional item based on a probability that indicates that the item recommendation for the additional item should be generated satisfying a popular threshold probability value, the display of the additional item including an estimated value of the additional item, a first control to receive input indicating an intent of the first user to keep the additional item, and a second control to receive input indicating an intent of the first user to list the additional item for sale; receiving user input of the first user via the first control or the second control; if the user input is entered via the first control, updating, in response to the user input, a database record associated with the first user to include the additional item in data describing at least one item owned by the first user; if the user input is entered via the second control, generating, in response to the user input, a listing for sale of the additional item.

9. The inventory forecasting system of claim 8, wherein, Generating the cross-category directed graph includes assigning a value to each category node of the plurality of category nodes, the value based on a value of the plurality of items represented by the category node.

10. The inventory forecasting system of claim 9, wherein, Generating the cross-category directed graph includes assigning a direction to each edge of the plurality of edges, wherein the direction is assigned to the edge based on values of two nodes of the plurality of nodes linked by the edge.

11. The inventory forecasting system of claim 8, wherein, Generating the cross-category directed graph includes: generating a plurality of node connections using the user data, each node connection of the plurality of node connections linking two category nodes of the plurality of category nodes and indicating that known inventories of at least two different users in the user data include items in the two category nodes of the plurality of category nodes; assigning a weight to each category node connection of the plurality of category node connections based on a number of users in the user data having known inventories including items in the two category nodes of the plurality of category nodes; determining an edge threshold for filtering the plurality of node connections; and generating, for each category node connection of the plurality of category node connections, one edge of the plurality of edges, the one edge having an assigned weight that satisfies the edge threshold.

12. The inventory forecasting system of claim 11, wherein, Determining the edge threshold includes: generating an evaluation data set from the user data by masking a subset of items described in the known inventories of the plurality of users; using unmasked information in the evaluation data set to predict an identifier of each of the masked subset of items, and identifying a density of edges in the evaluation data set that minimizes an error associated with predicting the identifier; and selecting the edge threshold based on the identified density of edges.

Citation Information

Patent Citations

  • Commodity recommendation method, device, system, readable storage medium and electronic equipment

    CN112258301A

  • Recommendation system article prediction method based on similarity pairwise ranking

    CN112464098A