WO2024086098A1 - Executable media for identifying product substitutes field - Google Patents
Executable media for identifying product substitutes field Download PDFInfo
- Publication number
- WO2024086098A1 WO2024086098A1 PCT/US2023/035207 US2023035207W WO2024086098A1 WO 2024086098 A1 WO2024086098 A1 WO 2024086098A1 US 2023035207 W US2023035207 W US 2023035207W WO 2024086098 A1 WO2024086098 A1 WO 2024086098A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- product
- substitute
- substitute product
- candidates
- computer
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 126
- 230000008569 process Effects 0.000 claims abstract description 68
- 238000010801 machine learning Methods 0.000 claims abstract description 33
- 230000015654 memory Effects 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 4
- 238000003860 storage Methods 0.000 abstract description 10
- 239000000047 product Substances 0.000 description 400
- 238000004422 calculation algorithm Methods 0.000 description 187
- 238000007726 management method Methods 0.000 description 35
- 238000006467 substitution reaction Methods 0.000 description 26
- 238000004519 manufacturing process Methods 0.000 description 23
- 238000001914 filtration Methods 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 9
- 230000003993 interaction Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 238000007637 random forest analysis Methods 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 238000005303 weighing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0623—Item investigation
- G06Q30/0625—Directed, with specific intent or strategy
- G06Q30/0629—Directed, with specific intent or strategy for generating comparisons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/02—Computing arrangements based on specific mathematical models using fuzzy logic
- G06N7/023—Learning or tuning the parameters of a fuzzy system
Definitions
- This disclosure relates generally to refining substitute products for a target product, and more specifically, to constraint-based refinement of a set of substitute products for a target product.
- a distributor that sources ordered products and/or services for their customers typically has contractual relationships with multiple vendors/suppliers to provide products and services for sale by the distributor.
- Each contractual relationship typically comprises terms on price, delivery, discounts and other business considerations. Implementation of the terms can become complex when certain terms influence other terms.
- discount rates are typically based on purchase volume by the distributor from the supplier, regardless to whom the distributor sells the supplied products and services.
- Product management systems do not currently allow users to perform this function in tandem with evaluating functional aspects of a target product and acceptable substitution product(s) for that target product.
- FIG. 1 is a block diagram of a system depicting interacting functional modules for identifying substitute products for a target product via a distributor’s product management computer system in accordance with an example implementation of the present technology
- FIG. 2 is a flow diagram of a method of identifying substitute products for a target product via a distributor’s product management computer system, in accordance with an example implementation of the present technology
- FIG. 3 illustrates an example algorithm engine process that can be implemented in examples disclosed herein;
- FIG. 4 illustrates an example initial product search process that can be implemented in examples disclosed herein;
- FIG. 5 illustrates an example final product filtering and ranking process that can be implemented in examples disclosed herein;
- FIG. 6A illustrates an example flow for utilizing fuzzy matching to identify substitute products for a target product that can be implemented in examples disclosed herein ;
- FIG. 6B illustrates an example flow for implementing substitute algorithms for identifying substitute products of a target product that can be implemented in examples disclosed herein;
- FIG. 7 depicts an exemplary processor-based computing system suitable for use as a platform for executing certain routines of the presently disclosed AI/ML modeling.
- references to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure.
- the appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments.
- various features are described which may be exhibited by some embodiments and not by others.
- the presently disclosed technology comprises (includes, but is not necessarily limited to) a computer implemented method for identifying substitute products for a target product (a particular product identified for look-up) via a distributor’s product management computer system.
- the method includes receiving, at the distributor’s product management computer system, data representing a target product of interest to a user of the system. Examples of such users can include customers of the distributor and/or sales representatives within the distributor.
- the target product is described by a plurality (two or more) of variable-value attributes associated therewith.
- a “variable-value attribute” is an aspect of the product that can have different values. An example is light bulb wattage.
- variable-value attribute is type, such as incandescent versus Light Emitting Diode (LED).
- the disclosed method further includes processing the received data through a machine- learning-produced algorithm (model) and thereby generating data representing a first set of substitute product candidates for the target product and wherein each substitute product candidate has a corresponding match-score that represents a degree of determined similarity between that substitute product candidate and the target product.
- the method includes transforming the generated data that represents the first set of substitute product candidates into data representing a refined set of substitute product candidates by processing the generated data (that defines the first set of substitute product candidates) utilizing a constraint-based algorithm (imposing required criteria) that filters the first set of substitute product candidates to those that meet the criteria of the constraint-based algorithm.
- the constraint can be based on respective match-scores of each substitute product candidate in the first set of substitute product candidates.
- the method includes outputting data representing the refined set of substitute product candidates.
- a distributor’s product management computer system can include one or more processors and a computer-readable medium comprising instructions stored therein, which when executed by the one or more processors, cause the one or more processors to receive data representing a target product of interest to a user of the system, wherein the target product is described by a plurality of variable-value attributes associated therewith.
- the instructions can also cause the one or more processors to process the received data through a machine-leaming-produced algorithm and thereby generating data representing a first set of substitute product candidates for the target product and wherein each substitute product candidate has a corresponding match-score that represents a degree of determined similarity between that substitute product candidate and the target product.
- the instructions can cause the one or more processors to transform the generated data that represents the first set of substitute product candidates into data representing a refined set of substitute product candidates by processing the generated data utilizing a constraint-based algorithm (imposing required criteria) that filters the first set of substitute product candidates to those that meet the criteria of the constraint-based algorithm.
- the constraint can be based on respective match-scores of each substitute product candidate in the first set of substitute product candidates.
- the instructions can cause the one or more processors to output data representing the refined set of substitute product candidates.
- a non-transitory computer-readable storage medium comprising instructions stored therein, which when executed by one or more processors, cause the one or more processors to receive, in a distributor’ s product management computer system, data representing a target product of interest to a user of the system, wherein the target product is described by a plurality of variablevalue attributes associated therewith.
- the instructions can also cause the one or more processors to process the received data through a machine-learning-produced algorithm and thereby generating data representing a first set of substitute product candidates for the target product and wherein each substitute product candidate has a corresponding match-score that represents a degree of determined similarity between that substitute product candidate and the target product.
- the instructions can cause the one or more processors to transform the generated data that represents the first set of substitute product candidates into data representing a refined set of substitute product candidates by processing the generated data utilizing a constraint-based algorithm (imposing required criteria) that filters the first set of substitute product candidates to those that meet the criteria of the constraint-based algorithm.
- the constraint can be based on respective match-scores of each substitute product candidate in the first set of substitute product candidates.
- the instructions can cause the one or processors to output data representing the refined set of substitute product candidates.
- a distributor in need of a product or service generally has contractual relationships with multiple vendors to provide the desired product or service.
- the contractual relationship may define such terms as price, delivery, amount of discount, and other business considerations. These terms can become complex as one term can influence other terms, such as different levels of discounts based on the number of items ordered. As these contractual relationships become more complex, factoring these terms into a product management system also becomes more complex.
- product management systems may not enable users operating the product management systems to evaluate functional aspects of the target product and substitutions in light of terms of the contractual relationship.
- the present disclosure includes systems, methods, and computer-readable media for solving these problems/inferiorities.
- the present technology includes systems, methods, and computer-readable media that facilitate systematic identification of substitute products for a target product based upon predetermined criteria and set processes, such that the substitutions are made in a manner that increases or otherwise optimizes efficiency.
- the present technology facilitates identification of product substitutions compatible with the target product's functional aspects to ensure a more desirable product recommendation. More specifically, the present technology facilitates product substitutions based upon predetermined criteria and set processes, such that the substitutions are made in a manner that optimizes efficiency with respect to cost, price, and margin.
- FIG. l is a block diagram representing an end user searching for a comparable substitute product via a distributor’s product management computer system.
- the product management computer system 100 initiates with an end user 101 inquiring about a target product in which that end user is interested.
- the end user 101 (which can be an internal sales representative for the distributor) desires to purchase a specific product (target product) but is willing to consider products that are suitable substitutes for the specified target product.
- the end user 101 may consider similar product (substitute product candidates) if, for instance, the substitute product is less expensive, but made by the same manufacturer.
- the end user 101 can be a customer of the distributor, an internal sales representative of the distributor, an agent of a principal, the principal, or the like.
- the target product identified by the end user 101 has one or more variable-value attributes; that is, attributes that can have different values.
- an attribute of specific value constitutes complete information 103 that identifies the target product.
- “complete information 103” on a target product can be constituted by an associated stock-keeping unit (commonly referred to as SKU), a subscriber identity model (commonly referred to as SIM or ICCID), or any identifier capable of fully representing an item’s relevant attributes.
- a variable-value attribute of the target product may constitute only partial information 104 about the product if the end user 101 does not have complete information 103 that fully identifies the target product.
- partial information 104 about an item’s attributes is insufficient to identify a known product within the product management computer system 100 or its supporting database component(s) 140.
- Such partial information 104 on an attribute of the target product might be the target product’s tradename, its manufacturer or any other detail that helps describe the product but is insufficient to conclusively identify the target product.
- the end user 101 places constraints, conditions, and/or limitations on certain attribute values.
- the constraint may be a limitation that requires a certain, discrete value of a required attribute of the target product.
- a product attribute might be constrained to a certain color, material of construction, binary value or numerical value. If the constraint on the product attribute is numerically based, the limitation imposed may limit the attribute value to (i) greater than, (ii) less than, (iii) equal to or (iv) within a prescribed value range.
- the intended purpose of inputting a target product’s information into the distributor’s product management computer system is to identify suitable substitute product candidates.
- the identified substitute product candidates will share common attributes, characteristics and/or fall within the same system category as the target product.
- the distributor’s product management computer system 100 can include multiple components. Additional components can be added, or fewer components can be utilized, without departing from this disclosure.
- the distributor’s product management computer system 100 can be implemented on an electronic device.
- the distributor’s product management computer system 100 can serve the purpose of providing substitute products candidates while factoring certain constraints such as deal breakers 524, pricing, inventory status 525, and preference via algorithms produced by machine learning.
- An additional factor can include the availability lead time of a product. It should be noted that the factors that have been initially described are not exhaustive; other factors can be added or removed.
- Descriptive information about the target product is input to the distributor’s product management computer system 100 by the end user 101, typically via a target product’s front end interaction component 106.
- the data received at the target products front end interaction component 106 is transmitted to the algorithm engine component 110.
- the algorithm engine component 110 processes the inputted data via algorithms that serve the purpose(s) of the distributor.
- the algorithm engine component 110 comprises one or more algorithms. If multiple algorithms are utilized, each can be configured to serve a different purpose when searching for substitute product candidates.
- the algorithms of the algorithm engine can include: (i) an algorithm for initial search 111; (ii) an algorithm for matching products 112; (iii) an algorithm for inventory and pricing 113; (iv) an algorithm for refinement of the matching list and further search of matching products 114; (v) an algorithm for ranking and compiling a final list of substitute products candidates 115; and (vi) an algorithm for user’s interactions analytics 116.
- the different algorithms of the algorithm engine component 110 can be deployed depending on whether the data provided by the end user 101 is complete information 103 or partial information 104 identifying the target product.
- the algorithms for matching products 112 may include Fuzzy Match type algorithms 310 such as Partial Ratio 311, Levenshtein Distance 312, Damerau- Levenshtein Distance 313, Jarro Distance 314, Jarro-Winkler Distance 315, and Jaccard Similarity 316.
- the algorithms for matching products 112 can further include non-Fuzzy Match type algorithms 320, such as LightGBM Models 321, Random Forest 322, XGBoost 323, and Siamese neural Network Models 324.
- the algorithms for matching products 112 can generate data representing a first set of substitute product candidates.
- the Fuzzy Match type algorithms 310 can be string matching algorithms for matching potential substitute products with target products.
- the end user 101 can provide either complete information 103 or partial information 104 about the intended target product.
- each algorithm of the Fuzzy Match type algorithms 310 can produce its separate list of substitute product candidates. There can be some substitute product candidates yielded in one of the Fuzzy Match type algorithms 310 that may not appear in the results of other Fuzzy Match type algorithms 310.
- each type of the Fuzzy Match type algorithms 310 may, for each substitute product candidate, determine a match-score based on how similar the attributes of the substitute product candidate are with the attributes of the target product. Additionally, given the varying configurations of each type of Fuzzy Match type algorithms 310, for a particular substitute product candidate, each type of Fuzzy Match type algorithms 310 may determine a different match-score.
- the match-score can be defined by the equation of the algorithms within the Fuzzy Match type algorithms 310. Because each algorithm within the Fuzzy Match type algorithms 310 can produce its own match-score, replicated substitute product candidates from the different lists of Fuzzy Match type algorithms 310.
- Some examples have the replicated substitute product candidate’s similarity score average that produces a one-to-one substitute product candidate and match-score.
- the process of assigning a match-score for replicated substitute product candidates by averaging is not the only applicable process, other processes for assigning a match-score for replicated matching products can be appreciated.
- a substitute product which appears in a list of a few Fuzzy Match type Algorithms can have a matching score that is generated from remaining Fuzzy Match type Algorithms and utilized in an averaging process.
- a particular algorithm within the Fuzzy Match type algorithms 310 may be selected to be the controlling algorithm for assigning a match-score.
- the controlling algorithm can be selected based on previous matchings and match-score performance of the now-selected controlling algorithm by a category manager or an authorized user.
- the specified controlling algorithm can be selected for a particular category or attribute of the target product.
- the Levenshtein Distance 312 algorithm can be selected as the controlling Fuzzy Match type algorithms for all target products relating to a light bulb category.
- the Levenshtein Distance 312 algorithm can assign the match-score that supersedes the match-scores of the identical matching substitute product candidates from the other algorithms of the Fuzzy Match type algorithms 310.
- algorithms for initial searching 1 11 may include Siamese Neural Network 324, Bayesian Belief Network 412, and Database Search 413 as depicted in FIG. 4.
- the algorithms for initial searching 111 can be used when partial information 104 is provide by the end user 101.
- the algorithms for initial searching 111 can be utilized in scenarios where the end user 101 provides partial information 104 about the target product.
- the algorithm for initial search 111 may determine target product’s complete information 103 based on the partial information 104.
- the complete information 103 can then be input back into the algorithm engine component 110 of the distributor’s product management computer system 100 to obtain a list and ranking of substitute product candidates.
- the distributor’s product management computer system 100 may include a machine learning component 120 that communicates with the algorithm engine component 110. Training of the algorithms can be conducted in the machine learning component 120 to yield trained algorithms 121 which can be deployed in the algorithm engine component 110.
- the trained algorithms 121 can be fine-tuned algorithms of previously or currently deployed algorithms in the algorithm engine component 110. Additionally, the trained algorithms 121 may produce more qualified pairing potentials or account for new data such as new products from a supplier or the end user 101.
- the machine learning for the trained algorithms 121 within the machine learning component 120 are produced by inputting the algorithms from the algorithm engine component 110 by a Category Manager and Internal Sale Representative component 130, hereinafter referred to as CMISR component 130.
- Inputs for the machine learning component 120 can include category managers’ constraints, feedback, and/or decisions 131 from the CMISR component 130 and databases from a database component 140.
- Both the CMISR component 130 and the database component 140 are components of the distributor’s product management computer system 100.
- the CMISR component 130 communicates with the algorithm engine component 110 and the machine learning component 120.
- the CMISR component 130 includes the category managers’ constraints, feedbacks, and/or decisions 131; an inner sales representative’ constraints, feedbacks, and/or decisions 132; and/or any constraints, feedbacks, and/or decisions of any personnel with authority.
- the CMISR component 130 can serve the purpose of assisting the machine learning component 120 in computing a trained algorithm 121 by supplying inputs.
- the inputs can be constraints, feedbacks, and/or decisions of the category manager 131, inner sales representative 132, or any personnel with authority.
- the database component 140 can include a database of customers.
- the database of customers can include data on customers’ preferred manufacturer preference, the customers’ identity and association, the customers’ purchase history and behavior on selecting suitable product candidates based on the variable-value attributes associated with the suitable product candidates.
- the machine learning component 120 can include the algorithms in the algorithm engine component 110.
- the algorithm engine component 110 can require input data.
- One input data for example, can be the CMISR component 130.
- the CMISR component 130 can supply the machine learning component 120 new algorithms and approve or disapprove the trained algorithms 121.
- disapproval of atrained algorithm 121 can be because that trained algorithm 121 yielded an unsuitable substitute product candidate or does not comport with the likeness of the CMISR component 130.
- the machine learning component 120 may be trained utilizing training data stored in a database of the database component 140.
- the database component 140 can also include a products’ database 141, new products’ database 142, matching products database 143, and inventory and pricing database 144.
- the products’ database 141 (distributor database) can include complete product information or only certain products’ descriptive data.
- the products’ database 141 includes data representing products that have been designated a member of a category, wherein each member of a category has at least one common attribute and at least a portion of the products in a category are known substitutes for at least one other product in that category.
- the new products’ database 142 includes new products yet to be added in proper categories of the products’ database 141.
- the new products’ database 142 can be products provided by a supplier or distributor.
- the database of matching products 143 can include comparator and cross reference datasets (datasets of previously paired target products and substitute products candidates and cross reference substitute products provided by manufacturers, other distributers and the like) and data of users’ selections.
- the database of matching products 143 (distributor database) can include previous or current designation of products that are suitable substitute for another product.
- the database component 140 can communicate with the algorithm engine component 110 directly to supply the algorithm engine component 110 with data from the database component 140 to execute its algorithms.
- the data from the database component 140 can be specifically the product descriptive data from the distributor database (products’ database 141). At least in one example, the product descriptive data and/or data from the database component 140 can generate a first set of substitute product candidates.
- the machine learning component 120 can then utilize the training data from the database component 140 to train the algorithms, which the CMISR component 130, in some examples, provide further input such as feedback and help produce a trained algorithm 121.
- the trained algorithm 121 can then be deployed or replace the antedated algorithms in the algorithm engine component 110.
- the ranking algorithms and final list of substitute product candidates 115 as depicted in FIG. 5 of the algorithm engine component 110 can retrieve data of the first set of substitute product candidates produced by the algorithms for matching products 112. The retrieved data can then be processed by the ranking algorithms and final list of substitute product candidates 115 which can utilize a constraint-based algorithm.
- the ranking algorithms and final list of substitute product candidates 115 can include a matching score weight 521, a price margin weight 522, a variable manufacture supplier consideration weight 523, deal breakers 524, inventory status 525, and final listing 526.
- the matching score weight 521 can be the match-scores of the substitute product candidates yielded by the algorithms for matching products 112 given a certain percentage.
- the price margin weight 522 include pricing, net profit margin, and the like. In other examples, the price margin weight 522 can include rebates, discounts, and any other factors affecting the price of the target products.
- the variable manufacture supplier consideration weight 523 can include a particular supplier or manufacturer that can be assigned a certain percentage.
- the matching score weight 521, price margin weight 522 and variable manufacture supplier consideration weight 523 can each be assigned a certain weight percentage that can total up to one hundred percent.
- the matching score weight 521 can be fifty percent
- price margin weight 522 can be forty percent
- variable manufacture supplier consideration weight 523 can be 10 percent.
- the weight percentage can exceed one hundred percent. Additional factors can be added or fewer components may be utilized, without departing from the teachings of this disclosure.
- the price margin weight 522 can include a net product price to the distributor.
- a poor weigh score can be assigned to a substitute product, or the product can otherwise be disqualified, when the net product price to the distributor is too high or too low.
- the net product price to the distributor can be calculated by reducing or subtracting the substitute product candidate price from an applied vendor rebate and/or vendor discount.
- the net product price to the distributor can be calculated by adding an applied customer rebate and/or an applied customer discount to the substitute product candidate price.
- the deal breaker 524 may indicate whether a particular substitute product candidate of the first set of substitute product candidates may be removed from final listing 526.
- the deal breaker 524 may include a value or a range of values. Additionally, in examples where the deal breaker 524 includes a value, the deal breaker 524 may indicate that a substitute product candidate may be removed if a corresponding match-score is less than or more than the value of the deal breaker 524. Further, in examples where deal breaker 524 includes a range of values, the deal breaker 524 may indicate that a substitute product may be removed if a corresponding match-score is less than or greater than the range of values of the deal breaker 524.
- deal breaker 524 may disqualify the substitute product candidate from final listing 526 if a corresponding match-score is equal to the value of dealbreaker 524 or within the range of values of deal breaker 524.
- the required values of the deal breaker 524 can be the match-score of the matching score weight 521, the margin weight 522, variable manufacture supplier consideration weight 523, and/or other additional factors.
- the required values of the deal breaker 524 can be defined by the category manager 131, inner sales representative 132, or any authorized personnel.
- the deal breaker 524 includes a rigid attribute of the target product, where the rigid attribute can be a certain attribute of the target product.
- the deal breaker 524 may include an inflexible attribute value. Additionally, in examples where the deal breaker 524 includes the inflexible attribute value, a substitute product candidate may be removed or disqualified if the attribute value of the substitute product is outside of the inflexible value of the identified rigid value.
- the inflexible attribute value may be a value or a predefined range of values.
- the deal breaker 524 may indicate a substitute product candidate qualifies or may be recommended to user 101 if the attribute value of the substitute product is equal to, less than, greater than the inflexible attribute or equal to, less than, greater than or within a predefined range of values of the inflexible value.
- the inflexible attribute value may be characters, or attribute.
- the inventory status 525 can include whether the substitute product candidate is in stock and can also include the quantity and age of the substitute product candidate. If the substitute product is not in stock, it may be eliminated as a substitute product candidate or not outputted to the end user 101. In other words, the out of stock substitute product candidate may be removed from appearing in the final listing 526.
- the inventory status 525 can factor in lead time. In at least one example, lead time can be defined as the time necessary for processing, preparing materials, manufacturing, and delivery of an order.
- the inventory status 525 in at least one example, can rank a substitute product candidate based on its respective availability lead time. Where the availability lead time of a substitute product candidate exceeds an end user’s 101 desired date of delivery which can constitute as an unacceptably long lead time, the respective substitute product candidate can thus be eliminated from the final listing 526.
- the final listing 526 lists suitable substitute product candidates similar to the target product.
- the listing can be in numerical order.
- the numerical order can be based on an equation or the culmination of the matching score weight 521, price margin weight 522, and the variable manufacture supplier consideration weight 523.
- the final listing 526 can include a filter that removes out of stock, substitute product candidates or unfulfilled deal breakers 524 from the final listing 526.
- the final listing 526 can be outputted from the distributor’s product management computer system 100 on electric devices via the results and visualization element 107 of the target products front end interaction component 106.
- the final listing 526 can rank, from highest to lowest, the substitute product candidates by the candidates’ respective distributor percent product margin calculated as the summation of: (i) the stated product price (ii) minus any applied vendor rebate and any applied vendor discount (iii) plus any applied customer rebate and any applied customer discount and dividing the summation by the stated product price.
- FIG. 2 a flowchart is presented in accordance with an exemplary embodiment.
- the method 200 of FIG. 2 may be carried out using the configurations illustrated in FIGS. 1 and 3, for example, and various elements of these figures are referenced in explaining example method 200.
- Each block shown in FIG. 2 represents one or more processes, methods or subroutines, carried out in the example method 200.
- the illustrated order of blocks is illustrative only and the order of the blocks can change according to the present disclosure. Additional blocks can be added or fewer blocks can be utilized, without departing from this disclosure.
- the example method 200 can begin at block 202.
- data representing a target product of interests to the end user 101 of the distributor’s product management computer system 100 is received.
- the data of the target product can be complete information 103 or partial information 104.
- the information can relay the attributes of the target product.
- the complete information 103 can be the SKU, UID, the SIM number, or any identifying mark capable of fully representing an item’s attributes.
- Partial information 104 can be from when the end user 101 does not have complete information 103 about their intended target product.
- the partial information 104 can be attributes of the target product such as the target product’s name, manufacturer, characteristics, or any detail capable of assisting in identifying the target product.
- the received data is processed through one or more machine-leaming- produced algorithms and thereby generates data representing a first set of probable and/or substitute product candidates for the target product.
- the machine-learning- produced algorithms can each serve a different purpose in searching for a substitute product.
- the machine-learning-produced algorithms can include: (i) an algorithm for initial search 111 ; (ii) an algorithm for matching products 1 12; (iii) an algorithm for inventory and pricing 113;
- the algorithms for matching products 112 can include Fuzzy Match type algorithms 310 which can include, but not limited to, Partial Ratio 311, Levenshtein Distance 312, Damerau- Levenshtein Distance 313, Jarro Distance 314, Jarro-Winkler Distance 315, and Jaccard Similarity 316 as depicted in FIG. 3.
- the algorithms for matching products 112 can further include LightGBM Models 321, Random Forest 322, XGBoost 323, and Simese neural Network Models 324 as depicted in FIG. 3.
- an algorithm prior to querying the distributor database for input data to the trained machine learning model, an algorithm can designate more than one products in the distributor database as a suitable substitute for another product in the distributor database.
- the algorithms for matching products 112 can generate data representing a first set of substitute product candidates.
- the sequence in which the machine-learning-produced algorithms are executed can vary.
- the Fuzzy Match type algorithms 310 can be executed in parallel with non-Fuzzy Match type Algorithms 320 such as LightGBM Models 321, Random Forest 322, XGBoost 323, and Siamese neural Network Models 324.
- the Fuzzy Match type algorithms 310 and non-Fuzzy Match type Algorithms can be executed in sequence, in conjunction, or in absence of one another.
- one or more the machine-learning-produced algorithms may determine a match-score for each of the substitute product candidates, such as a match-score algorithm.
- the match-score may indicate the degree of similarity between the substitute product candidates to the target product.
- the order of executing the match-score algorithm can be in sequence or in conjunction with the machine-learning produced algorithms.
- the match-score algorithm may determine the match-score by taking the absolute value of the difference between the attribute’ s value of the substitute product candidate and the attribute’ s value of the target product divided by the attribute’s value of the target price.
- the processed data is transformed into data representing a refined set of probable substitute product candidates.
- the transformation can include processing the generated data utilizing a constraint-based algorithm, for example, a ranking algorithm and final list of substitute product candidates 115.
- the transformation can be conducted via an algorithm for ranking and producing a final list of substitute product candidates 115.
- the algorithm for ranking and producing a final list of substitute product candidates 115 may apply one or more weights to the match-score of each of the first set of substitute product candidates. Examples of the one or more weights include a matching score weight 521, a price margin weight 522, a variable manufacture supplier consideration weight 523, deal breakers 524, inventory status 525, and final listing 526.
- the matching score weight 521 can be the match-scores of the substitute product candidates, yielded by the algorithms for matching products 112, given a certain percentage.
- the price margin weight 522 can include pricing, net profit margin, and the like. In other examples, the price margin weight 522 can include rebates and discounts of the target products.
- the variable manufacture supplier consideration weight 523 can include the supplier or manufacturer.
- the matching score weight 521, price margin weight 522, and variable manufacture supplier consideration weight 523 can each be assigned a certain weight percentage that can total up to one hundred percent. In at least one example, the matching score weight 521 can be fifty percent, price margin weight 522 can be forty percent, and variable manufacture supplier consideration weight 523 can be 10 percent. Additional factors can be added or fewer components can be utilized, without departing from this disclosure.
- the weight percentage can exceed one hundred percent.
- the deal breaker 524 can include an exact value, a required greater than value, a required less than value, or a fixed range of value.
- the required values of the deal breaker 524 can be the match-score of the matching score weigh 521, the margin weigh 522, variable manufacture supplier consideration weight 523, and/or other additional factors.
- the required values of the deal breaker 524 can be defined by the category manager 131, inner sales representative 132, or any authorized personnel. If the deal breaker 524 is trigger, in some examples, by the substitute product falling outside the required valve, the substitute product may not be displayed on the final listing 526.
- the final listing 526 can list suitable substitute products compared to the target product.
- the listing can be in numerical order.
- the numerical order can be based on an equation or the culmination of the matching score weight 521, price margin weight 522, and the variable manufacture supplier consideration weight 523.
- the final listing 526 can include a filter algorithm that disqualifies the out-of-stock substitute products or deal breakers 524 from being listed in the final listing 526. After transforming the generated data into data representing a refined set of substitute product candidates at block 206, the method can proceed to block 208.
- block 202, block 204, and block 206 can be executed in advance and offline.
- the execution of the blocks 202, 204, and 206 can be conducted by an end user 101, category manager, or inner sales representative.
- the input data can be provided by the end user 101 , category manager, or inner sales representative which can execute the method 200.
- the generated final list 526 can be stored in the database of matching products 143.
- a pre-generated list can be provided without the requirement of executing the entire method in real-time.
- the data representing the refined set of substitute product candidates are outputted from the distributor’s product management computer system 100 on electronic devices.
- the results and visualization element 107 of the target product front end interaction component 106 can output the final list 526 to the end users 101.
- FIG. 3 illustrates an example algorithm engine process that can be implemented in accordance with the present disclosure.
- the algorithm engine process 300 is provided by way of example, as there are a variety of ways to carry out the process.
- the algorithm engine process 300 can begin with an end user 101 inputting data characterizing a desired target product’s variable- value attribute.
- the variable-value attributes can be complete information 103 about the target product.
- the complete information 103 can include a stock-keeping unit (commonly referred to as SKU), a subscriber identity model (commonly referred to as SIM or ICCID), or any identifying mark capable of fully representing an item’s attributes.
- the variable-value attributes of the target product can also be partial information 104 when the end user 101 does not have the complete information 103 about their intended target product.
- the partial information 104 can be an item’s attribute that is insufficient to determine a known product in the system 100 or database component 140.
- the partial information 104 can be the attributes about the target product such as the target product’s name, manufacturer, characteristics, or any details capable of assisting in identifying the target product.
- the substitute product candidates can share similar attributes, characteristics, or category with the target product.
- the data may be variously weighed via trained machine learning model to determine substitute product candidates for the target product.
- the data can be transmitted to at least one subsets of algorithms.
- the data can be transmitted to at least two subsets of algorithms — one subset of algorithms can be a Fuzzy Match type algorithm 310 and the second subset of algorithms can be non-Fuzzy Match type algorithm 320.
- the Fuzzy Match type algorithms 310 may include, but not limited to, Partial Ratio 311, Levenshtein Distance 312, Damerau-Levenshtein Distance 313, Jarro Distance 314, Jarro-Winkler Distance 315, and Jaccard Similarity 316. Additionally, the non-Fuzzy Match type Algorithms 320 may include, but not limited to, LightGBM Models 321, Random Forest 322, XGBoost 323, and Siamese neural Network Models 324.
- Both subsets of algorithms can serve to inquiry and/or search for substitute product candidates that can either be similar or share a common attribute or a category.
- the Fuzzy Match type algorithms 310 and the non-Fuzzy Match type algorithms 320 can be executed in parallel or in sequence.
- the algorithms in both subsets can assign a match-score.
- the match-score can be defined as the substitute product degree of determined similarity to the target product and may exemplarily be a numerical value.
- the Fuzzy Match type algorithms 310 can produce a Fuzzy Match list of similar product candidates with match-score 331 of the Fuzzy Match type algorithms 310.
- the non-Fuzzy Match type algorithms 320 likewise, after execution, can produce a list of similar product candidates with match-scores 332. Both the Fuzzy Match list of similar product candidates with match-scores 331 and the non-Fuzzy match list of similar product candidates with matchscores 332 can be sent to the ranking algorithms and final list of substitute product candidates 115.
- the ranking algorithms and final list of substitute product candidates 115 may filter and rank a final list of substitute product to output to the end user 101 based on the Fuzzy Match list of similar product candidates with match-scores 331 and the non-Fuzzy match list of similar product candidates with match-scores 332.
- the inventory and pricing database 144 can be inputted into the algorithm for ranking and compiling a final list of matching substitute product candidates 115 to execute the algorithm.
- the CMISR Component can be inputted into the algorithm for ranking and compiling a final list of matching substitute product candidates 115 to supply the Category mangers’ constraints, feedback, and/or decisions 131, the Inner sales representative’ constraints, feedback, and/or decisions 132, or any authorized personnel’s constraints, feedback, and/or decisions.
- the algorithm for ranking and compiling a final list of matching substitute product candidates 115 can produce a final listing 606 of the top ranked or best option of substitute candidates. The final listing 606 can be ranked based on the substitute product candidate’s matchscores
- FIG. 4 illustrates an example initial search process with partial information of a target product that can be implemented in examples disclosed herein.
- the initial search process 400 can begin with the end user 101 when the end user 101 only has partial information 104 on a target product.
- the end user 101 can begin the initial search process 400 by inputting a partial information 104.
- the partial information 104 can be the attributes about the target product such as the target product’s name, manufacturers, characteristics, or any details capable of assisting in identifying the target product.
- the partial information data can then be inputted into the algorithms for initial search 111 of the algorithm engine component 110.
- the algorithms for initial search 111 can include more than one algorithm such as a Siamese Neural Network 324, Bayesian Belief Network 412, and Database Search 413.
- the algorithms for initial search 111 can produce an initial list of suggested products 410.
- the initial list of suggested products 410 can be potential substitute product candidates.
- the initial list of suggested products 410 can then be outputted to the end user 101 via the distributor’s product management computer system on an electronic device.
- the end user 101 can then select a substitute product candidate from the initial list of suggested products 410. If the end user 101 selects a substitute product candidate 420 from the initial list of suggested products 410, the complete information 103 of the selected substitute product candidate is now derived.
- the initial search process 400 can input the complete information 103 into the algorithm engine component
- the initial search process 400 can proceed to having the end user 101 modifying the search 430 by providing additional information about the target product or modifying the partial information 104 provided by the end user 101 .
- the now modified partial information can be repeated through the process of inputting the now modified partial information into the algorithms for initial search 111, where the initial list of suggested products 410 can be reproduced and outputted to the end user 101.
- the end user can then select a substitute product candidate from the list of suggested products 410 or provide additional modification of the partial information 104 into the algorithms for initial search
- the selected substitute product candidate can then be inputted into the algorithm engine component 110 of the distributor’s product management computer system 100 to produce a final list of top ranked substitute product candidates.
- FIG. 5 illustrates an exemplary final filtering and ranking process 500 that can be implemented in examples disclosed herein. It should be noted that the following example is not the sole process for a final filtering and ranking of substitute product candidates and variations of the process disclosed can vary.
- the final filtering and ranking process 500 can filter and compile a ranked listing of substitute product candidates yielded from the algorithms for matching products 112. Upon producing the ranked listing of substitute product candidates, the final filtering and ranking process 500 can output the results to the end user 101 on an electronic device.
- the final filtering and ranking process 500 can begin with a pre-filtering process 510 where substitute product candidates 420 are inputted.
- the pre-filtering process 510 can include an algorithm score 511 which is defined to filter out substitute product candidate 420 that has a match-score below or fails to meet a certain threshold.
- the algorithm score 511 can be set to require a match-score from the substitute product candidate 420 of greater than or equal to seventy percent. Where the substitute product candidate 420 fails to meet the match-score threshold of the algorithm score 511, the substitute product candidate 420 can be proceeded to the not a valid recommendation 512 or removed from the final filtering and ranking process. Where the substitute product candidate 420 does meet the match-score threshold of the algorithm score 511, the substitute product candidate 420 can be proceeded to a final ranking 520 of the final filtering and ranking process 500.
- Factors the final ranking 520 of the final filtering and ranking process 500 can take into consideration includes a matching score weight 521, price margin weight 522, variable manufacture supplier consideration weight 523, deal breakers 524, and inventory status 525.
- the matching score weight 521 can be the match-scores of the substitute product candidates, yielded by the algorithms for matching products 112, given a certain percentage.
- the price margin weight 522 can include pricing, net profit margin, and the like. In other examples, the price margin weight 522 can include rebates, discounts, and any other factors affecting the price of the target products.
- the variable manufacture supplier consideration weight 523 can include a particular supplier or manufacturer that can be assigned a certain percentage.
- the matching score weight 521, price margin weight 522, and variable manufacture supplier consideration weight 523 can each be assigned a certain weight percentage that can total up to one hundred percent.
- the matching score weight 521 can be fifty percent
- price margin weight 522 can be forty percent
- variable manufacture supplier consideration weight 523 can be 10 percent.
- the weight percentage in other examples, can exceed one hundred percent. Additional factors can be added or fewer components can be utilized, without departing from this disclosure.
- the deal breaker 524 can include an exact value, a required greater than value, a required less than value, or a fixed range of value.
- the required values of the deal breaker 524 can be the match-score of the matching score weight 521, the margin weight 522, variable manufacture supplier consideration weight 523, and/or other additional factors.
- the required values of the deal breaker 524 can be defined by the category manager 131, inner sales representative 132, or any authorized personnel. In at least one example, if the deal breaker 524 is not within a defined value or range of value, the deal breaker can disqualify the substitute product candidate from displaying on the final listing 526.
- the inventory status 525 can include whether the substitute product candidate is in stock and can also include the quantity and age of the substitute product candidate of interest. In at least in one example, if the substitute product is not in stock, it will not be displayed or outputted to the end user 101. In other words, the substitute product candidate can be disqualified from appearing on the final listing 526.
- the final listing 526 can list suitable substitute product candidates similar to the target product.
- the listing can be in numerical order. The numerical order can be based on an equation or the culmination of the matching score weight 521, price margin weight 522, and the variable manufacture supplier consideration weight 523 weight.
- the final listing 526 can include a filter that disqualifies out-of-stock substitute product candidates, for example deal breakers 524 which removes disqualified substitute product candidates from the final listing 526.
- the final listing 526 can be outputted from the distributor’s product management computer system 100 on electric devices.
- the final filtering and ranking process 500 can proceed at 520 where different factors of the substitute product candidates can be considered.
- the first factor can be the matching score weight 521.
- the second factor can be the price margin weight 522.
- the third factor 523 can be the variable manufacture supplier consideration weight 523.
- the factors can be weighed chronologically or have different order sequence.
- a final score can be compiled by the summation of each factor and its attributing weight value. After each substitute product candidate’s factors are weighed and yield its final score, the final filtering and ranking process 500 then checks for any ties at 527. If there are no ties, the substitute product candidates with its final score can proceed to check if the substitute product candidates are in stock at 525.
- the substitute product candidate can be removed from the final list 526. If there is at least one tie the final filtering and ranking process 500, the process can proceed to 524 where deal breakers can be applied. In some examples, the deal breakers can be applied when there are no ties or before 527, the tie inquiry.
- the deal breaker 524 can include an exact value, a required greater than value, a required less than value, or a fixed range of value.
- the required values of the deal breaker 524 can be the match-score of the matching score weight 521, the margin weight 522, variable manufacture supplier consideration weight 523, and/or other additional factors.
- the required values of the deal breaker 524 can be defined by the category manager 131, inner sales representative 132, or any authorized personnel. If the deal breaker 524 is trigger, in some examples, by the substitute product falling outside the required valve, the substitute product can be disqualified from the final listing 526.
- the final filtering and ranking process 500 can then proceed to 525 where the process proceed to check if the substitute product candidates are in stock at 525. If the substitute product candidate is out of stock, then the substitute product candidate can be removed from appearing on the final list 526.
- the final list 526 can list in a top ranked fashion of the best options of the substitute product candidates.
- FIG. 6A illustrates an example flow 600 for utilizing fuzzy matching to identify substitute products for a target product.
- input data 602 is provided to the substitution algorithms 604.
- the input data 602 can include applicable data for identifying a substitute product for a target product, such as the data described herein.
- the input data 602 can include hybris data, spend cube, attribute weights templates, and populate attribute importance data.
- the substitution algorithms 604 can run as an initial pass at 606.
- the substitution algorithms can be run without applicable feedback information; e.g., feedback from category managers and feedback from updating deal breaker 524.
- the output from running the substitution algorithms 604 through an initial pass can include validation examples 608.
- the validation examples 608 can be aligned with the deal breakers 524 and/or the category managers. In turn, the attribute rankings and flag attributes can be updated based on the aligned validation examples.
- the substitution algorithms 604 can also be applied to the input data 602 after the initial pass. Specifically, the substitution algorithms 604 can be applied to the input data 602 at 610 after feedback is provided from the category managers and the deal breakers 524 are updated. The application(s) of the substitution algorithms after the initial pass can be used to generate examples for Internal Sales Representative (herein “ISR”) validation 612. In turn, these examples can implement applicable ISR feedback.
- ISR Internal Sales Representative
- substitution algorithms 604 after the initial pass can be used to generate output for reproduction through user interfaces at 614.
- the substitute algorithms can generate output for algorithm matches, attribute lookup table(s), and P360 comparator.
- FIG. 6B illustrates an example flow 650 of implementing substitute algorithms for identifying substitute products of a target product.
- input data such as hybris data, spend cube, attribute weights templates, and populate attribute importance data
- the input data is preprocessed to identify a list of subcategories for each category. This process can be repeated for each subcategory.
- the substitution algorithm is applied.
- a target SKU and potential matching SKUs to the target SKU are identified.
- the target SKU and the potential matching SKUs are checked to identify whether any deal breakers are applicable. If applicable deal breakers are identified, then at 660, a score is calculated for each attribute based on the type of deal breakers that are identified. If applicable deal breakers are not identified, then at 662, a fuzzy match score is calculated based on the attribute values.
- the scores, at 664 are weighted across the attributes based on attribute importance. Then, at 666, the total overall score is calculated. At 668, the final output is generated based on the total overall score.
- This score can be used in identifying suitable substitute products for the target product; e.g., as part of the final output.
- substitute product matches can be kept or otherwise selected based on scores relative to, e.g., above, a specific threshold.
- an attribute lookup table can be generated for all SKUs in the category based on the total overall score.
- FIG. 7 an example which illustrates an example of a processor-based computing system 700, is illustrated.
- the computing system 700 can include a processing unit (CPU or processor) 710 and a system bus 705 that may couple various system components including the system memory 715, such as read only memory (ROM) 720 and random-access memory (RAM) 725, to the processor 710.
- the computing system 700 can include a cache 712 of high-speed memory connected directly with, in close proximity to, or integrated as part of the processor 710.
- the computing system 700 can copy data from the memory 715, ROM 720, RAM 725, and/or storage device 730 to the cache 712 for quick access by the processor 710. In this way, the cache 712 can provide a performance boost that avoids processor delays while waiting for data. These and other modules can control the processor 710 to perform various actions.
- Other system memory 715 may be available for use as well.
- the memory 715 can include multiple different types of memory with different performance characteristics.
- the processor 710 can include any general-purpose processor and a hardware module or software module, such as (i) “module 1” 732; (ii) “module 2” 734, and (iii) “module 3” 736 stored in the storage device 730, configured to control the processor 710 as well as a special-purpose processor where software instructions are incorporated into the actual processor design.
- the processor 710 can essentially be a completely self-contained computing system, containing multiple cores or processors, a bus, memory controller, cache and the like.
- a multi-core processor may be symmetric or asymmetric.
- an input device 745 can represent any number of input mechanisms, such as a microphone for speech, a touch-protected screen for gesture or graphical input, keyboard, mouse, motion input, speech and so forth.
- An output device 735 can also be one or more of a number of output mechanisms known to those of skill in the art.
- multimodal systems can enable a user to provide multiple types of input to communicate with the computing system 700.
- the communications interface 740 can govern and manage the user input and system output. There may be no restriction on operating on any particular hardware arrangement and therefore the basic features here can easily be substituted for improved hardware or firmware arrangements as they are developed.
- the storage device 730 can be a non-volatile memory and can be a hard disk or other types of computer readable media which can store data that are accessible by a computer, such as magnetic cassettes, flash memory cards, solid state memory devices, digital versatile disks, cartridges, random access memory, read only memory, and hybrids thereof.
- the storage device 730 can include the software modules 732, 734, 736 for controlling the processor 710. Other hardware or software modules are contemplated.
- the storage device 730 can be connected to the system bus 705.
- a hardware module that performs a particular function can include a software component stored in a computer- readable medium in connection with the necessary hardware components, such as the processor 710, bus 705, output device 735, and so forth, to carry out the function.
- the present technology may be presented as including individual functional blocks including functional blocks comprising devices, device components, steps or routines in a method embodied in software, or combinations of hardware and software.
- the computer-readable storage devices, mediums, and memories can include a cable or wireless signal containing a bit stream and the like.
- non-transitory computer-readable storage media expressly exclude media such as energy, carrier signals, electromagnetic waves, and signals per se.
- Such instructions can comprise, for example, instructions and data which cause or otherwise configure a general-purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Portions of computer resources used can be accessible over a network.
- the computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, firmware, or source code. Examples of computer-readable media that can be used to store instructions, information used, and/or information created during methods according to described examples include magnetic or optical disks, flash memory, USB devices provided with non-volatile memory, networked storage devices and the like.
- Devices implementing methods according to these disclosures can comprise hardware, firmware and/or software, and can take any of a variety of form factors. Typical examples of such form factors include laptops, smart phones, small form factor personal computers, personal digital assistants, rackmount devices, standalone devices, and so on. Functionality described herein also can be embodied in peripherals or add-in cards. Such functionality can also be implemented on a circuit board among different chips or different processes executing in a single device, by way of further example.
- the instructions, media for conveying such instructions, computing resources for executing them, and other structures for supporting such computing resources are means for providing the functions described in these disclosures.
- Claim language reciting "at least one of' refers to at least one of a set and indicates that one member of the set or multiple members of the set satisfy the claim.
- claim language reciting “at least one of A and B” means A, B, or A and B.
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
A system, method and non-transitory computer-readable storage medium are provided for selecting one or more machine learning processes based on attributes of a target product. The selected one or more machine learning processes may generate a dataset that identifies a set of substitute product candidates for the target product. For example, a method may include receiving a first dataset identifying a target product and comprising data characterizing one or more attributes of the target product. Additionally, the method may include selecting one or more machine learning processes based on the one or more attributes of the target product and applying the selected one or more machine learning processes to the first dataset. Moreover, the method may include, based on the application of the selected one or more machine learning processes to the first dataset, generating, for the target product, a second dataset identifying a set of substitute product candidates.
Description
EXECUTABLE MEDIA FOR IDENTIFYING PRODUCT SUBSTITUTES FIELD
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims benefit of U.S. Non-Provisional Application No. 17/968,492 filed October 18, 2022, U.S. Non-Provisional Application No. 17/968,524 filed October 18, 2022, and U.S. NonProvisional Application No. 17/968,564 filed October 18, 2022, which are incorporated herein by reference.
[0002] This disclosure relates generally to refining substitute products for a target product, and more specifically, to constraint-based refinement of a set of substitute products for a target product.
BACKGROUND
[0003] Today’s product substitution methods depend on outdated systems and inefficient procedures to identify substitute products for a target product of interest. Current product management systems do not allow for easy customization or the necessary functionality to facilitate optimal product substitution. While current systems permit some customization, this customization is time consuming and costly to implement. These customizations must generally be hard coded into the application by the developer, thereby incurring increases in costs, delay in implementation, and loss of productivity. Additionally, conventional order substitution methods do not meet the growing need for evaluating and weighing a variety of product substitution factors in combination with business considerations in a cost efficient and timely manner.
[0004] For example, in the field of product management, a distributor that sources ordered products and/or services for their customers typically has contractual relationships with multiple vendors/suppliers to provide products and services for sale by the distributor. Each contractual relationship typically comprises terms on price, delivery, discounts and other business considerations. Implementation of the terms can become complex when certain terms influence other terms. As an example, discount rates are typically based on purchase volume by the distributor from the supplier, regardless to whom the distributor sells the supplied products and services. As these contractual relationships become more complex, factoring these terms into a product management system also becomes more complex, especially when multiple suppliers are considered. Product management systems do not currently allow users to perform this function in tandem with evaluating functional aspects of a target product and acceptable substitution
product(s) for that target product. These shortcomings of conventional product management systems decrease the likelihood of an optimal product substitution.
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] In order to describe the manner in which the above-recited and other advantages and features of this disclosure can be obtained, a more particular description of the principles briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the drawings that accompany this disclosure. The drawings depict exemplary embodiments of the technology described in the present disclosure but are not limiting in scope thereto; further, certain principles disclosed herein are described and explained with additional specificity and detail through the use of the accompanying drawings in which:
[0006] FIG. 1 is a block diagram of a system depicting interacting functional modules for identifying substitute products for a target product via a distributor’s product management computer system in accordance with an example implementation of the present technology;
[0007] FIG. 2 is a flow diagram of a method of identifying substitute products for a target product via a distributor’s product management computer system, in accordance with an example implementation of the present technology;
[0008] FIG. 3 illustrates an example algorithm engine process that can be implemented in examples disclosed herein;
[0009] FIG. 4 illustrates an example initial product search process that can be implemented in examples disclosed herein;
[0010] FIG. 5 illustrates an example final product filtering and ranking process that can be implemented in examples disclosed herein;
[0011] FIG. 6A illustrates an example flow for utilizing fuzzy matching to identify substitute products for a target product that can be implemented in examples disclosed herein ;
[0012] FIG. 6B illustrates an example flow for implementing substitute algorithms for identifying substitute products of a target product that can be implemented in examples disclosed herein; and
[0013] FIG. 7 depicts an exemplary processor-based computing system suitable for use as a platform for executing certain routines of the presently disclosed AI/ML modeling.
DETAILED DESCRIPTION
[0014] Various embodiments of the currently disclosed technology is discussed in greater detail hereinbelow. While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the disclosure. Thus, the following description and drawings are illustrative and are not to be construed as limiting. Numerous specific details are described to provide a thorough understanding of the disclosure. However, in certain instances, well-known or conventional details are not described in order to avoid obscuring important aspects of the technology.
[0015] Reference to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others.
[0016] The terms used in this specification generally have their ordinary meanings in the art, within the context of the disclosure, and in the specific context where each term is used. Alternative language and synonyms may be used for any one or more of the terms discussed herein, and no special significance should be placed upon whether a term is elaborated or discussed herein. In some cases, synonyms for certain terms are provided. A recital of one or more synonyms does not exclude the use of other synonyms. The use of examples in this specification are for illustrative purposes only, and is not intended to limit the scope of the disclosure. Likewise, the disclosure is not limited to the various embodiments described in this specification.
[0017] Without intent to limit the scope of the disclosure, examples of instruments, apparatus, methods and their related results according to the embodiments of the present disclosure are given below. Note that titles or subtitles may be used in the examples for convenience of the reader, but which in no way limit the scope of the disclosure. Unless otherwise defined, technical and scientific terms used herein have the meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains. In the case of conflict, the present document, including definitions control.
[0018] Additional features and advantages of the disclosed technology are set forth in the description which follows, and others will be obvious from the description or can be learned by practicing the principles described herein. The features and advantages of the disclosure can be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the presently disclosed technology will become more fully apparent from the following description and appended claims, or can be learned by the practice of the principles set forth herein.
OVERVIEW
[0019] The presently disclosed technology comprises (includes, but is not necessarily limited to) a computer implemented method for identifying substitute products for a target product (a particular product identified for look-up) via a distributor’s product management computer system. The method includes receiving, at the distributor’s product management computer system, data representing a target product of interest to a user of the system. Examples of such users can include customers of the distributor and/or sales representatives within the distributor. The target product is described by a plurality (two or more) of variable-value attributes associated therewith. In this regard, a “variable-value attribute” is an aspect of the product that can have different values. An example is light bulb wattage. That is, all light bulbs have a “wattage” attribute/rating, but the value of the variable-value attribute (wattage) can vary across different, but otherwise similar light bulbs. Another example of light bulb “variable-value attribute” is type, such as incandescent versus Light Emitting Diode (LED).
[0020] The disclosed method further includes processing the received data through a machine- learning-produced algorithm (model) and thereby generating data representing a first set of substitute product candidates for the target product and wherein each substitute product candidate has a corresponding match-score that represents a degree of determined similarity between that substitute product candidate and the target product. Further, the method includes transforming the generated data that represents the first set of substitute product candidates into data representing a refined set of substitute product candidates by processing the generated data (that defines the first set of substitute product candidates) utilizing a constraint-based algorithm (imposing required criteria) that filters the first set of substitute product candidates to those that meet the criteria of the constraint-based algorithm. The constraint can be based on respective match-scores of each
substitute product candidate in the first set of substitute product candidates. Finally, the method includes outputting data representing the refined set of substitute product candidates.
[0021] A distributor’s product management computer system can include one or more processors and a computer-readable medium comprising instructions stored therein, which when executed by the one or more processors, cause the one or more processors to receive data representing a target product of interest to a user of the system, wherein the target product is described by a plurality of variable-value attributes associated therewith. The instructions can also cause the one or more processors to process the received data through a machine-leaming-produced algorithm and thereby generating data representing a first set of substitute product candidates for the target product and wherein each substitute product candidate has a corresponding match-score that represents a degree of determined similarity between that substitute product candidate and the target product. Additionally, the instructions can cause the one or more processors to transform the generated data that represents the first set of substitute product candidates into data representing a refined set of substitute product candidates by processing the generated data utilizing a constraint-based algorithm (imposing required criteria) that filters the first set of substitute product candidates to those that meet the criteria of the constraint-based algorithm. The constraint can be based on respective match-scores of each substitute product candidate in the first set of substitute product candidates. Finally, the instructions can cause the one or more processors to output data representing the refined set of substitute product candidates.
[0022] A non-transitory computer-readable storage medium comprising instructions stored therein, which when executed by one or more processors, cause the one or more processors to receive, in a distributor’ s product management computer system, data representing a target product of interest to a user of the system, wherein the target product is described by a plurality of variablevalue attributes associated therewith. The instructions can also cause the one or more processors to process the received data through a machine-learning-produced algorithm and thereby generating data representing a first set of substitute product candidates for the target product and wherein each substitute product candidate has a corresponding match-score that represents a degree of determined similarity between that substitute product candidate and the target product. Additionally, the instructions can cause the one or more processors to transform the generated data that represents the first set of substitute product candidates into data representing a refined set of substitute product candidates by processing the generated data utilizing a constraint-based
algorithm (imposing required criteria) that filters the first set of substitute product candidates to those that meet the criteria of the constraint-based algorithm. The constraint can be based on respective match-scores of each substitute product candidate in the first set of substitute product candidates. Finally, the instructions can cause the one or processors to output data representing the refined set of substitute product candidates.
DESCRIPTION
[0023] As discussed previously, known product substitution methods typically use outdated systems and inefficient procedures in identifying substitute products for a target product. Current product management systems do not allow for easy customization or the necessary functionality to facilitate optimal product substitution. While current systems permit some customization, this customization is time consuming and costly to implement. These customizations must generally be hard coded into the application by the developers, thereby incurring increased costs, delays in implementation, and loss of productivity. Additionally, conventional order substitution methods do not meet the growing need for evaluating and weighing a variety of product substitution factors in combination with business considerations in a cost efficient, timely manner.
[0024] For example, in the field of product management, a distributor in need of a product or service generally has contractual relationships with multiple vendors to provide the desired product or service. The contractual relationship may define such terms as price, delivery, amount of discount, and other business considerations. These terms can become complex as one term can influence other terms, such as different levels of discounts based on the number of items ordered. As these contractual relationships become more complex, factoring these terms into a product management system also becomes more complex. However, such product management systems may not enable users operating the product management systems to evaluate functional aspects of the target product and substitutions in light of terms of the contractual relationship. These shortcomings of conventional product management systems decrease the likelihood of obtaining an optimal product substitution. Therefore, there is a need for systems and methods that can enable users to evaluate functional aspects of the target product and substitutions in light of terms of the contractual relationship.
[0025] The present disclosure includes systems, methods, and computer-readable media for solving these problems/inferiorities. Specifically, the present technology includes systems,
methods, and computer-readable media that facilitate systematic identification of substitute products for a target product based upon predetermined criteria and set processes, such that the substitutions are made in a manner that increases or otherwise optimizes efficiency.
[0026] Further, the present technology facilitates identification of product substitutions compatible with the target product's functional aspects to ensure a more desirable product recommendation. More specifically, the present technology facilitates product substitutions based upon predetermined criteria and set processes, such that the substitutions are made in a manner that optimizes efficiency with respect to cost, price, and margin.
[0027] FIG. l is a block diagram representing an end user searching for a comparable substitute product via a distributor’s product management computer system. For example, in FIG. 1, the product management computer system 100 initiates with an end user 101 inquiring about a target product in which that end user is interested. As an example, the end user 101 (which can be an internal sales representative for the distributor) desires to purchase a specific product (target product) but is willing to consider products that are suitable substitutes for the specified target product. The end user 101 may consider similar product (substitute product candidates) if, for instance, the substitute product is less expensive, but made by the same manufacturer.
[0028] The end user 101, for example, can be a customer of the distributor, an internal sales representative of the distributor, an agent of a principal, the principal, or the like. The target product identified by the end user 101 has one or more variable-value attributes; that is, attributes that can have different values. In some cases, an attribute of specific value constitutes complete information 103 that identifies the target product. For example, “complete information 103” on a target product can be constituted by an associated stock-keeping unit (commonly referred to as SKU), a subscriber identity model (commonly referred to as SIM or ICCID), or any identifier capable of fully representing an item’s relevant attributes. A variable-value attribute of the target product may constitute only partial information 104 about the product if the end user 101 does not have complete information 103 that fully identifies the target product. In some cases, such partial information 104 about an item’s attributes is insufficient to identify a known product within the product management computer system 100 or its supporting database component(s) 140. Such partial information 104 on an attribute of the target product might be the target product’s
tradename, its manufacturer or any other detail that helps describe the product but is insufficient to conclusively identify the target product.
[0029] The end user 101, in some instances, places constraints, conditions, and/or limitations on certain attribute values. The constraint, for example, may be a limitation that requires a certain, discrete value of a required attribute of the target product. Exemplarily, a product attribute might be constrained to a certain color, material of construction, binary value or numerical value. If the constraint on the product attribute is numerically based, the limitation imposed may limit the attribute value to (i) greater than, (ii) less than, (iii) equal to or (iv) within a prescribed value range.
[0030] As described, the intended purpose of inputting a target product’s information into the distributor’s product management computer system is to identify suitable substitute product candidates. Typically, the identified substitute product candidates will share common attributes, characteristics and/or fall within the same system category as the target product.
[0031] The distributor’s product management computer system 100 can include multiple components. Additional components can be added, or fewer components can be utilized, without departing from this disclosure. The distributor’s product management computer system 100 can be implemented on an electronic device. In at least one example, the distributor’s product management computer system 100 can serve the purpose of providing substitute products candidates while factoring certain constraints such as deal breakers 524, pricing, inventory status 525, and preference via algorithms produced by machine learning. An additional factor can include the availability lead time of a product. It should be noted that the factors that have been initially described are not exhaustive; other factors can be added or removed.
[0032] Descriptive information about the target product is input to the distributor’s product management computer system 100 by the end user 101, typically via a target product’s front end interaction component 106. After being input, the data received at the target products front end interaction component 106 is transmitted to the algorithm engine component 110. The algorithm engine component 110 processes the inputted data via algorithms that serve the purpose(s) of the distributor. In at least one example, the algorithm engine component 110 comprises one or more algorithms. If multiple algorithms are utilized, each can be configured to serve a different purpose when searching for substitute product candidates. Exemplarily, the algorithms of the algorithm engine can include: (i) an algorithm for initial search 111; (ii) an algorithm for matching products
112; (iii) an algorithm for inventory and pricing 113; (iv) an algorithm for refinement of the matching list and further search of matching products 114; (v) an algorithm for ranking and compiling a final list of substitute products candidates 115; and (vi) an algorithm for user’s interactions analytics 116. In at least one example, the different algorithms of the algorithm engine component 110 can be deployed depending on whether the data provided by the end user 101 is complete information 103 or partial information 104 identifying the target product.
[0033] As illustrated in FIG. 3, the algorithms for matching products 112 may include Fuzzy Match type algorithms 310 such as Partial Ratio 311, Levenshtein Distance 312, Damerau- Levenshtein Distance 313, Jarro Distance 314, Jarro-Winkler Distance 315, and Jaccard Similarity 316. The algorithms for matching products 112 can further include non-Fuzzy Match type algorithms 320, such as LightGBM Models 321, Random Forest 322, XGBoost 323, and Siamese neural Network Models 324. The algorithms for matching products 112 can generate data representing a first set of substitute product candidates.
[0034] As described herein, the Fuzzy Match type algorithms 310 can be string matching algorithms for matching potential substitute products with target products. In at least one example, in matching target products via Fuzzy Match type algorithms 310, the end user 101 can provide either complete information 103 or partial information 104 about the intended target product. In response, each algorithm of the Fuzzy Match type algorithms 310 can produce its separate list of substitute product candidates. There can be some substitute product candidates yielded in one of the Fuzzy Match type algorithms 310 that may not appear in the results of other Fuzzy Match type algorithms 310.
[0035] In some examples, each type of the Fuzzy Match type algorithms 310 may, for each substitute product candidate, determine a match-score based on how similar the attributes of the substitute product candidate are with the attributes of the target product. Additionally, given the varying configurations of each type of Fuzzy Match type algorithms 310, for a particular substitute product candidate, each type of Fuzzy Match type algorithms 310 may determine a different match-score. The match-score can be defined by the equation of the algorithms within the Fuzzy Match type algorithms 310. Because each algorithm within the Fuzzy Match type algorithms 310 can produce its own match-score, replicated substitute product candidates from the different lists of Fuzzy Match type algorithms 310. Some examples have the replicated substitute product
candidate’s similarity score average that produces a one-to-one substitute product candidate and match-score. For substitute product candidates without replications across the various algorithms of the Fuzzy Match type algorithms 310, there is no need to average singular matching products. The process of assigning a match-score for replicated substitute product candidates by averaging is not the only applicable process, other processes for assigning a match-score for replicated matching products can be appreciated. Specifically, a substitute product which appears in a list of a few Fuzzy Match type Algorithms can have a matching score that is generated from remaining Fuzzy Match type Algorithms and utilized in an averaging process.
[0036] A particular algorithm within the Fuzzy Match type algorithms 310 may be selected to be the controlling algorithm for assigning a match-score. The controlling algorithm can be selected based on previous matchings and match-score performance of the now-selected controlling algorithm by a category manager or an authorized user. In at least one example, the specified controlling algorithm can be selected for a particular category or attribute of the target product. As an illustrative example, the Levenshtein Distance 312 algorithm can be selected as the controlling Fuzzy Match type algorithms for all target products relating to a light bulb category. Thus, the Levenshtein Distance 312 algorithm can assign the match-score that supersedes the match-scores of the identical matching substitute product candidates from the other algorithms of the Fuzzy Match type algorithms 310.
[0037] Referring to FIG. 4, algorithms for initial searching 1 11 may include Siamese Neural Network 324, Bayesian Belief Network 412, and Database Search 413 as depicted in FIG. 4. In at least one example, the algorithms for initial searching 111 can be used when partial information 104 is provide by the end user 101. The algorithms for initial searching 111 can be utilized in scenarios where the end user 101 provides partial information 104 about the target product. The algorithm for initial search 111 may determine target product’s complete information 103 based on the partial information 104. The complete information 103 can then be input back into the algorithm engine component 110 of the distributor’s product management computer system 100 to obtain a list and ranking of substitute product candidates.
[0038] Referring to back to FIG. 1, the distributor’s product management computer system 100 may include a machine learning component 120 that communicates with the algorithm engine component 110. Training of the algorithms can be conducted in the machine learning component
120 to yield trained algorithms 121 which can be deployed in the algorithm engine component 110. The trained algorithms 121 can be fine-tuned algorithms of previously or currently deployed algorithms in the algorithm engine component 110. Additionally, the trained algorithms 121 may produce more qualified pairing potentials or account for new data such as new products from a supplier or the end user 101.
[0039] The machine learning for the trained algorithms 121 within the machine learning component 120 are produced by inputting the algorithms from the algorithm engine component 110 by a Category Manager and Internal Sale Representative component 130, hereinafter referred to as CMISR component 130. Inputs for the machine learning component 120 can include category managers’ constraints, feedback, and/or decisions 131 from the CMISR component 130 and databases from a database component 140. Both the CMISR component 130 and the database component 140 are components of the distributor’s product management computer system 100.
[0040] The CMISR component 130 communicates with the algorithm engine component 110 and the machine learning component 120. The CMISR component 130 includes the category managers’ constraints, feedbacks, and/or decisions 131; an inner sales representative’ constraints, feedbacks, and/or decisions 132; and/or any constraints, feedbacks, and/or decisions of any personnel with authority. The CMISR component 130 can serve the purpose of assisting the machine learning component 120 in computing a trained algorithm 121 by supplying inputs. The inputs can be constraints, feedbacks, and/or decisions of the category manager 131, inner sales representative 132, or any personnel with authority.
[0041] The database component 140 can include a database of customers. The database of customers can include data on customers’ preferred manufacturer preference, the customers’ identity and association, the customers’ purchase history and behavior on selecting suitable product candidates based on the variable-value attributes associated with the suitable product candidates.
[0042] The machine learning component 120 can include the algorithms in the algorithm engine component 110. To train the algorithms and produce refined algorithms, the algorithm engine component 110 can require input data. One input data, for example, can be the CMISR component 130. In at least one example, the CMISR component 130 can supply the machine learning component 120 new algorithms and approve or disapprove the trained algorithms 121. For
example, disapproval of atrained algorithm 121 can be because that trained algorithm 121 yielded an unsuitable substitute product candidate or does not comport with the likeness of the CMISR component 130.
[0043] In some examples, the machine learning component 120 may be trained utilizing training data stored in a database of the database component 140. The database component 140 can also include a products’ database 141, new products’ database 142, matching products database 143, and inventory and pricing database 144. The products’ database 141 (distributor database) can include complete product information or only certain products’ descriptive data. In at least one example, the products’ database 141 includes data representing products that have been designated a member of a category, wherein each member of a category has at least one common attribute and at least a portion of the products in a category are known substitutes for at least one other product in that category. The new products’ database 142 includes new products yet to be added in proper categories of the products’ database 141. The new products’ database 142 can be products provided by a supplier or distributor. The database of matching products 143 can include comparator and cross reference datasets (datasets of previously paired target products and substitute products candidates and cross reference substitute products provided by manufacturers, other distributers and the like) and data of users’ selections. The database of matching products 143 (distributor database) can include previous or current designation of products that are suitable substitute for another product.
[0044] The database component 140 can communicate with the algorithm engine component 110 directly to supply the algorithm engine component 110 with data from the database component 140 to execute its algorithms. The data from the database component 140 can be specifically the product descriptive data from the distributor database (products’ database 141). At least in one example, the product descriptive data and/or data from the database component 140 can generate a first set of substitute product candidates.
[0045] The machine learning component 120 can then utilize the training data from the database component 140 to train the algorithms, which the CMISR component 130, in some examples, provide further input such as feedback and help produce a trained algorithm 121. The trained algorithm 121 can then be deployed or replace the antedated algorithms in the algorithm engine component 110.
[0046] The ranking algorithms and final list of substitute product candidates 115 as depicted in FIG. 5 of the algorithm engine component 110 can retrieve data of the first set of substitute product candidates produced by the algorithms for matching products 112. The retrieved data can then be processed by the ranking algorithms and final list of substitute product candidates 115 which can utilize a constraint-based algorithm. The ranking algorithms and final list of substitute product candidates 115 can include a matching score weight 521, a price margin weight 522, a variable manufacture supplier consideration weight 523, deal breakers 524, inventory status 525, and final listing 526. The matching score weight 521 can be the match-scores of the substitute product candidates yielded by the algorithms for matching products 112 given a certain percentage. The price margin weight 522 include pricing, net profit margin, and the like. In other examples, the price margin weight 522 can include rebates, discounts, and any other factors affecting the price of the target products. The variable manufacture supplier consideration weight 523 can include a particular supplier or manufacturer that can be assigned a certain percentage. The matching score weight 521, price margin weight 522 and variable manufacture supplier consideration weight 523 can each be assigned a certain weight percentage that can total up to one hundred percent. As an example, the matching score weight 521 can be fifty percent, price margin weight 522 can be forty percent and variable manufacture supplier consideration weight 523 can be 10 percent. The weight percentage can exceed one hundred percent. Additional factors can be added or fewer components may be utilized, without departing from the teachings of this disclosure.
[0047] The price margin weight 522 can include a net product price to the distributor. A poor weigh score can be assigned to a substitute product, or the product can otherwise be disqualified, when the net product price to the distributor is too high or too low. The net product price to the distributor can be calculated by reducing or subtracting the substitute product candidate price from an applied vendor rebate and/or vendor discount. The net product price to the distributor can be calculated by adding an applied customer rebate and/or an applied customer discount to the substitute product candidate price.
[0048] In at least one example, the deal breaker 524 may indicate whether a particular substitute product candidate of the first set of substitute product candidates may be removed from final listing 526. In some examples, the deal breaker 524 may include a value or a range of values. Additionally, in examples where the deal breaker 524 includes a value, the deal breaker 524 may indicate that a substitute product candidate may be removed if a corresponding match-score is less
than or more than the value of the deal breaker 524. Further, in examples where deal breaker 524 includes a range of values, the deal breaker 524 may indicate that a substitute product may be removed if a corresponding match-score is less than or greater than the range of values of the deal breaker 524. In other examples, deal breaker 524 may disqualify the substitute product candidate from final listing 526 if a corresponding match-score is equal to the value of dealbreaker 524 or within the range of values of deal breaker 524. The required values of the deal breaker 524 can be the match-score of the matching score weight 521, the margin weight 522, variable manufacture supplier consideration weight 523, and/or other additional factors. The required values of the deal breaker 524 can be defined by the category manager 131, inner sales representative 132, or any authorized personnel.
[0049] In some examples, the deal breaker 524 includes a rigid attribute of the target product, where the rigid attribute can be a certain attribute of the target product. The deal breaker 524, in some examples, may include an inflexible attribute value. Additionally, in examples where the deal breaker 524 includes the inflexible attribute value, a substitute product candidate may be removed or disqualified if the attribute value of the substitute product is outside of the inflexible value of the identified rigid value. In some instances, the inflexible attribute value may be a value or a predefined range of values. In other instances, the deal breaker 524 may indicate a substitute product candidate qualifies or may be recommended to user 101 if the attribute value of the substitute product is equal to, less than, greater than the inflexible attribute or equal to, less than, greater than or within a predefined range of values of the inflexible value. In various instances, the inflexible attribute value may be characters, or attribute.
[0050] The inventory status 525 can include whether the substitute product candidate is in stock and can also include the quantity and age of the substitute product candidate. If the substitute product is not in stock, it may be eliminated as a substitute product candidate or not outputted to the end user 101. In other words, the out of stock substitute product candidate may be removed from appearing in the final listing 526. In other examples, the inventory status 525 can factor in lead time. In at least one example, lead time can be defined as the time necessary for processing, preparing materials, manufacturing, and delivery of an order. The inventory status 525, in at least one example, can rank a substitute product candidate based on its respective availability lead time. Where the availability lead time of a substitute product candidate exceeds an end user’s 101 desired
date of delivery which can constitute as an unacceptably long lead time, the respective substitute product candidate can thus be eliminated from the final listing 526.
[0051] The final listing 526 lists suitable substitute product candidates similar to the target product. The listing can be in numerical order. The numerical order can be based on an equation or the culmination of the matching score weight 521, price margin weight 522, and the variable manufacture supplier consideration weight 523. The final listing 526 can include a filter that removes out of stock, substitute product candidates or unfulfilled deal breakers 524 from the final listing 526. The final listing 526 can be outputted from the distributor’s product management computer system 100 on electric devices via the results and visualization element 107 of the target products front end interaction component 106.
[0052] The final listing 526 can rank, from highest to lowest, the substitute product candidates by the candidates’ respective distributor percent product margin calculated as the summation of: (i) the stated product price (ii) minus any applied vendor rebate and any applied vendor discount (iii) plus any applied customer rebate and any applied customer discount and dividing the summation by the stated product price.
[0053] Referring to FIG. 2, a flowchart is presented in accordance with an exemplary embodiment. The method 200 of FIG. 2 may be carried out using the configurations illustrated in FIGS. 1 and 3, for example, and various elements of these figures are referenced in explaining example method 200. Each block shown in FIG. 2 represents one or more processes, methods or subroutines, carried out in the example method 200. Furthermore, the illustrated order of blocks is illustrative only and the order of the blocks can change according to the present disclosure. Additional blocks can be added or fewer blocks can be utilized, without departing from this disclosure. The example method 200 can begin at block 202.
[0054] At block 202, data representing a target product of interests to the end user 101 of the distributor’s product management computer system 100 is received. The data of the target product can be complete information 103 or partial information 104. In at least one example, the information can relay the attributes of the target product. The complete information 103 can be the SKU, UID, the SIM number, or any identifying mark capable of fully representing an item’s attributes. Partial information 104 can be from when the end user 101 does not have complete information 103 about their intended target product. For example, the partial information 104 can
be attributes of the target product such as the target product’s name, manufacturer, characteristics, or any detail capable of assisting in identifying the target product. After data representing a target product of interests to the end user 101 is received at block 202, the method can proceed to block 204.
[0055] At block 204, the received data is processed through one or more machine-leaming- produced algorithms and thereby generates data representing a first set of probable and/or substitute product candidates for the target product. In at least one example, the machine-learning- produced algorithms can each serve a different purpose in searching for a substitute product. For example, the machine-learning-produced algorithms can include: (i) an algorithm for initial search 111 ; (ii) an algorithm for matching products 1 12; (iii) an algorithm for inventory and pricing 113;
(iv) an algorithm for refinement of the matching list and further search of matching products 114;
(v) an algorithm for ranking and compiling a final list of substitute product candidates 115; and
(vi) an algorithm for user’s interactions analytics 116.
[0056] The algorithms for matching products 112 can include Fuzzy Match type algorithms 310 which can include, but not limited to, Partial Ratio 311, Levenshtein Distance 312, Damerau- Levenshtein Distance 313, Jarro Distance 314, Jarro-Winkler Distance 315, and Jaccard Similarity 316 as depicted in FIG. 3. The algorithms for matching products 112 can further include LightGBM Models 321, Random Forest 322, XGBoost 323, and Simese neural Network Models 324 as depicted in FIG. 3. In some examples, prior to querying the distributor database for input data to the trained machine learning model, an algorithm can designate more than one products in the distributor database as a suitable substitute for another product in the distributor database. The algorithms for matching products 112 can generate data representing a first set of substitute product candidates.
[0057] It should be noted that the sequence in which the machine-learning-produced algorithms are executed can vary. In one example, the Fuzzy Match type algorithms 310 can be executed in parallel with non-Fuzzy Match type Algorithms 320 such as LightGBM Models 321, Random Forest 322, XGBoost 323, and Siamese neural Network Models 324. In other examples, the Fuzzy Match type algorithms 310 and non-Fuzzy Match type Algorithms can be executed in sequence, in conjunction, or in absence of one another.
[0058] Additionally, one or more the machine-learning-produced algorithms may determine a match-score for each of the substitute product candidates, such as a match-score algorithm. As described herein, the match-score may indicate the degree of similarity between the substitute product candidates to the target product. The order of executing the match-score algorithm can be in sequence or in conjunction with the machine-learning produced algorithms. In some examples, the match-score algorithm may determine the match-score by taking the absolute value of the difference between the attribute’ s value of the substitute product candidate and the attribute’ s value of the target product divided by the attribute’s value of the target price. After processing the received data into a first set of substitute product candidates with an associated match-score at block 204, the method can proceed to block 206.
[0059] At block 206, the processed data is transformed into data representing a refined set of probable substitute product candidates. The transformation can include processing the generated data utilizing a constraint-based algorithm, for example, a ranking algorithm and final list of substitute product candidates 115. The transformation can be conducted via an algorithm for ranking and producing a final list of substitute product candidates 115. The algorithm for ranking and producing a final list of substitute product candidates 115 may apply one or more weights to the match-score of each of the first set of substitute product candidates. Examples of the one or more weights include a matching score weight 521, a price margin weight 522, a variable manufacture supplier consideration weight 523, deal breakers 524, inventory status 525, and final listing 526. The matching score weight 521 can be the match-scores of the substitute product candidates, yielded by the algorithms for matching products 112, given a certain percentage. The price margin weight 522 can include pricing, net profit margin, and the like. In other examples, the price margin weight 522 can include rebates and discounts of the target products. The variable manufacture supplier consideration weight 523 can include the supplier or manufacturer. The matching score weight 521, price margin weight 522, and variable manufacture supplier consideration weight 523 can each be assigned a certain weight percentage that can total up to one hundred percent. In at least one example, the matching score weight 521 can be fifty percent, price margin weight 522 can be forty percent, and variable manufacture supplier consideration weight 523 can be 10 percent. Additional factors can be added or fewer components can be utilized, without departing from this disclosure. Further, the weight percentage can exceed one hundred percent.
[0060] In one example, the deal breaker 524 can include an exact value, a required greater than value, a required less than value, or a fixed range of value. The required values of the deal breaker 524 can be the match-score of the matching score weigh 521, the margin weigh 522, variable manufacture supplier consideration weight 523, and/or other additional factors. The required values of the deal breaker 524 can be defined by the category manager 131, inner sales representative 132, or any authorized personnel. If the deal breaker 524 is trigger, in some examples, by the substitute product falling outside the required valve, the substitute product may not be displayed on the final listing 526.
[0061] The final listing 526 can list suitable substitute products compared to the target product. The listing can be in numerical order. The numerical order can be based on an equation or the culmination of the matching score weight 521, price margin weight 522, and the variable manufacture supplier consideration weight 523. The final listing 526 can include a filter algorithm that disqualifies the out-of-stock substitute products or deal breakers 524 from being listed in the final listing 526. After transforming the generated data into data representing a refined set of substitute product candidates at block 206, the method can proceed to block 208.
[0062] In some examples, block 202, block 204, and block 206 can be executed in advance and offline. The execution of the blocks 202, 204, and 206 can be conducted by an end user 101, category manager, or inner sales representative. The input data can be provided by the end user 101 , category manager, or inner sales representative which can execute the method 200. Upon completion, the generated final list 526 can be stored in the database of matching products 143. Upon searching for the same complete information 103 of the target products, a pre-generated list can be provided without the requirement of executing the entire method in real-time.
[0063] At block 208, the data representing the refined set of substitute product candidates are outputted from the distributor’s product management computer system 100 on electronic devices. In some examples, the results and visualization element 107 of the target product front end interaction component 106 can output the final list 526 to the end users 101.
[0064] FIG. 3 illustrates an example algorithm engine process that can be implemented in accordance with the present disclosure. The algorithm engine process 300 is provided by way of example, as there are a variety of ways to carry out the process. The algorithm engine process 300 can begin with an end user 101 inputting data characterizing a desired target product’s variable-
value attribute. The variable-value attributes can be complete information 103 about the target product. For example, the complete information 103 can include a stock-keeping unit (commonly referred to as SKU), a subscriber identity model (commonly referred to as SIM or ICCID), or any identifying mark capable of fully representing an item’s attributes. The variable-value attributes of the target product can also be partial information 104 when the end user 101 does not have the complete information 103 about their intended target product. The partial information 104 can be an item’s attribute that is insufficient to determine a known product in the system 100 or database component 140. In at least one example, the partial information 104 can be the attributes about the target product such as the target product’s name, manufacturer, characteristics, or any details capable of assisting in identifying the target product. The substitute product candidates can share similar attributes, characteristics, or category with the target product.
[00651 After receiving the data characterizing the variable-value attribute of the target product from the end user 101, the data may be variously weighed via trained machine learning model to determine substitute product candidates for the target product. In at least one example, the data can be transmitted to at least one subsets of algorithms. In at least one example, the data can be transmitted to at least two subsets of algorithms — one subset of algorithms can be a Fuzzy Match type algorithm 310 and the second subset of algorithms can be non-Fuzzy Match type algorithm 320. The Fuzzy Match type algorithms 310 may include, but not limited to, Partial Ratio 311, Levenshtein Distance 312, Damerau-Levenshtein Distance 313, Jarro Distance 314, Jarro-Winkler Distance 315, and Jaccard Similarity 316. Additionally, the non-Fuzzy Match type Algorithms 320 may include, but not limited to, LightGBM Models 321, Random Forest 322, XGBoost 323, and Siamese neural Network Models 324.
[0066] Both subsets of algorithms can serve to inquiry and/or search for substitute product candidates that can either be similar or share a common attribute or a category. The Fuzzy Match type algorithms 310 and the non-Fuzzy Match type algorithms 320 can be executed in parallel or in sequence. The algorithms in both subsets can assign a match-score. The match-score can be defined as the substitute product degree of determined similarity to the target product and may exemplarily be a numerical value.
[0067] After execution, the Fuzzy Match type algorithms 310 can produce a Fuzzy Match list of similar product candidates with match-score 331 of the Fuzzy Match type algorithms 310. The
non-Fuzzy Match type algorithms 320, likewise, after execution, can produce a list of similar product candidates with match-scores 332. Both the Fuzzy Match list of similar product candidates with match-scores 331 and the non-Fuzzy match list of similar product candidates with matchscores 332 can be sent to the ranking algorithms and final list of substitute product candidates 115. Additionally, the ranking algorithms and final list of substitute product candidates 115 may filter and rank a final list of substitute product to output to the end user 101 based on the Fuzzy Match list of similar product candidates with match-scores 331 and the non-Fuzzy match list of similar product candidates with match-scores 332. The inventory and pricing database 144 can be inputted into the algorithm for ranking and compiling a final list of matching substitute product candidates 115 to execute the algorithm. The CMISR Component can be inputted into the algorithm for ranking and compiling a final list of matching substitute product candidates 115 to supply the Category mangers’ constraints, feedback, and/or decisions 131, the Inner sales representative’ constraints, feedback, and/or decisions 132, or any authorized personnel’s constraints, feedback, and/or decisions. The algorithm for ranking and compiling a final list of matching substitute product candidates 115 can produce a final listing 606 of the top ranked or best option of substitute candidates. The final listing 606 can be ranked based on the substitute product candidate’s matchscores.
[0068] FIG. 4 illustrates an example initial search process with partial information of a target product that can be implemented in examples disclosed herein. The initial search process 400 can begin with the end user 101 when the end user 101 only has partial information 104 on a target product. The end user 101 can begin the initial search process 400 by inputting a partial information 104. For example, the partial information 104 can be the attributes about the target product such as the target product’s name, manufacturers, characteristics, or any details capable of assisting in identifying the target product. The partial information data can then be inputted into the algorithms for initial search 111 of the algorithm engine component 110.
[0069] The algorithms for initial search 111 can include more than one algorithm such as a Siamese Neural Network 324, Bayesian Belief Network 412, and Database Search 413. The algorithms for initial search 111 can produce an initial list of suggested products 410. The initial list of suggested products 410 can be potential substitute product candidates. The initial list of suggested products 410 can then be outputted to the end user 101 via the distributor’s product management computer system on an electronic device. The end user 101 can then select a
substitute product candidate from the initial list of suggested products 410. If the end user 101 selects a substitute product candidate 420 from the initial list of suggested products 410, the complete information 103 of the selected substitute product candidate is now derived. The initial search process 400 can input the complete information 103 into the algorithm engine component
110 of the distributor’s product management computer system 100 to produce a final list of top ranked substitute product candidates.
[0070] If the end user 101 does not select a substitute product candidate 420, the initial search process 400 can proceed to having the end user 101 modifying the search 430 by providing additional information about the target product or modifying the partial information 104 provided by the end user 101 . The now modified partial information can be repeated through the process of inputting the now modified partial information into the algorithms for initial search 111, where the initial list of suggested products 410 can be reproduced and outputted to the end user 101. The end user can then select a substitute product candidate from the list of suggested products 410 or provide additional modification of the partial information 104 into the algorithms for initial search
111 until the end user selects a substitute product candidate from the list of suggested products 410. The selected substitute product candidate can then be inputted into the algorithm engine component 110 of the distributor’s product management computer system 100 to produce a final list of top ranked substitute product candidates.
[0071] FIG. 5 illustrates an exemplary final filtering and ranking process 500 that can be implemented in examples disclosed herein. It should be noted that the following example is not the sole process for a final filtering and ranking of substitute product candidates and variations of the process disclosed can vary. The final filtering and ranking process 500 can filter and compile a ranked listing of substitute product candidates yielded from the algorithms for matching products 112. Upon producing the ranked listing of substitute product candidates, the final filtering and ranking process 500 can output the results to the end user 101 on an electronic device.
[0072] The final filtering and ranking process 500 can begin with a pre-filtering process 510 where substitute product candidates 420 are inputted. The pre-filtering process 510, in at least one example, can include an algorithm score 511 which is defined to filter out substitute product candidate 420 that has a match-score below or fails to meet a certain threshold. In some examples, the algorithm score 511 can be set to require a match-score from the substitute product candidate
420 of greater than or equal to seventy percent. Where the substitute product candidate 420 fails to meet the match-score threshold of the algorithm score 511, the substitute product candidate 420 can be proceeded to the not a valid recommendation 512 or removed from the final filtering and ranking process. Where the substitute product candidate 420 does meet the match-score threshold of the algorithm score 511, the substitute product candidate 420 can be proceeded to a final ranking 520 of the final filtering and ranking process 500.
[0073] Factors the final ranking 520 of the final filtering and ranking process 500 can take into consideration includes a matching score weight 521, price margin weight 522, variable manufacture supplier consideration weight 523, deal breakers 524, and inventory status 525.
[0074] The matching score weight 521 can be the match-scores of the substitute product candidates, yielded by the algorithms for matching products 112, given a certain percentage. The price margin weight 522 can include pricing, net profit margin, and the like. In other examples, the price margin weight 522 can include rebates, discounts, and any other factors affecting the price of the target products. The variable manufacture supplier consideration weight 523 can include a particular supplier or manufacturer that can be assigned a certain percentage. The matching score weight 521, price margin weight 522, and variable manufacture supplier consideration weight 523 can each be assigned a certain weight percentage that can total up to one hundred percent. In at least one example, the matching score weight 521 can be fifty percent, price margin weight 522 can be forty percent, and variable manufacture supplier consideration weight 523 can be 10 percent. The weight percentage, in other examples, can exceed one hundred percent. Additional factors can be added or fewer components can be utilized, without departing from this disclosure.
[0075] In one example, the deal breaker 524 can include an exact value, a required greater than value, a required less than value, or a fixed range of value. The required values of the deal breaker 524 can be the match-score of the matching score weight 521, the margin weight 522, variable manufacture supplier consideration weight 523, and/or other additional factors. The required values of the deal breaker 524 can be defined by the category manager 131, inner sales representative 132, or any authorized personnel. In at least one example, if the deal breaker 524 is not within a defined value or range of value, the deal breaker can disqualify the substitute product candidate from displaying on the final listing 526.
[0076] The inventory status 525 can include whether the substitute product candidate is in stock and can also include the quantity and age of the substitute product candidate of interest. In at least in one example, if the substitute product is not in stock, it will not be displayed or outputted to the end user 101. In other words, the substitute product candidate can be disqualified from appearing on the final listing 526.
[0077] The final listing 526 can list suitable substitute product candidates similar to the target product. The listing can be in numerical order. The numerical order can be based on an equation or the culmination of the matching score weight 521, price margin weight 522, and the variable manufacture supplier consideration weight 523 weight. The final listing 526 can include a filter that disqualifies out-of-stock substitute product candidates, for example deal breakers 524 which removes disqualified substitute product candidates from the final listing 526. The final listing 526 can be outputted from the distributor’s product management computer system 100 on electric devices.
[0078] The final filtering and ranking process 500 can proceed at 520 where different factors of the substitute product candidates can be considered. The first factor can be the matching score weight 521. The second factor can be the price margin weight 522. The third factor 523 can be the variable manufacture supplier consideration weight 523. The factors can be weighed chronologically or have different order sequence. A final score can be compiled by the summation of each factor and its attributing weight value. After each substitute product candidate’s factors are weighed and yield its final score, the final filtering and ranking process 500 then checks for any ties at 527. If there are no ties, the substitute product candidates with its final score can proceed to check if the substitute product candidates are in stock at 525. If the substitute product candidate is out of stock at 525, then the substitute product candidate can be removed from the final list 526. If there is at least one tie the final filtering and ranking process 500, the process can proceed to 524 where deal breakers can be applied. In some examples, the deal breakers can be applied when there are no ties or before 527, the tie inquiry.
[0079] In one example, the deal breaker 524 can include an exact value, a required greater than value, a required less than value, or a fixed range of value. The required values of the deal breaker 524 can be the match-score of the matching score weight 521, the margin weight 522, variable manufacture supplier consideration weight 523, and/or other additional factors. The
required values of the deal breaker 524 can be defined by the category manager 131, inner sales representative 132, or any authorized personnel. If the deal breaker 524 is trigger, in some examples, by the substitute product falling outside the required valve, the substitute product can be disqualified from the final listing 526.
[0080] The final filtering and ranking process 500 can then proceed to 525 where the process proceed to check if the substitute product candidates are in stock at 525. If the substitute product candidate is out of stock, then the substitute product candidate can be removed from appearing on the final list 526. The final list 526, can list in a top ranked fashion of the best options of the substitute product candidates.
[0081] FIG. 6A illustrates an example flow 600 for utilizing fuzzy matching to identify substitute products for a target product. In the example flow 600, input data 602 is provided to the substitution algorithms 604. The input data 602 can include applicable data for identifying a substitute product for a target product, such as the data described herein. In particular, the input data 602 can include hybris data, spend cube, attribute weights templates, and populate attribute importance data.
[0082] The substitution algorithms 604, can run as an initial pass at 606. In running as an initial pass, the substitution algorithms can be run without applicable feedback information; e.g., feedback from category managers and feedback from updating deal breaker 524. The output from running the substitution algorithms 604 through an initial pass can include validation examples 608. The validation examples 608 can be aligned with the deal breakers 524 and/or the category managers. In turn, the attribute rankings and flag attributes can be updated based on the aligned validation examples.
[0083] The substitution algorithms 604 can also be applied to the input data 602 after the initial pass. Specifically, the substitution algorithms 604 can be applied to the input data 602 at 610 after feedback is provided from the category managers and the deal breakers 524 are updated. The application(s) of the substitution algorithms after the initial pass can be used to generate examples for Internal Sales Representative (herein “ISR") validation 612. In turn, these examples can implement applicable ISR feedback.
[0084] Further, application(s) of the substitution algorithms 604 after the initial pass can be used to generate output for reproduction through user interfaces at 614. For example, the substitute
algorithms can generate output for algorithm matches, attribute lookup table(s), and P360 comparator.
[0085] FIG. 6B illustrates an example flow 650 of implementing substitute algorithms for identifying substitute products of a target product. In the example flow 650 and at step 652, input data, such as hybris data, spend cube, attribute weights templates, and populate attribute importance data, is received. At step 654, the input data is preprocessed to identify a list of subcategories for each category. This process can be repeated for each subcategory.
[0086] Once the subcategories are identified for each category, the substitution algorithm is applied. In particular, at 656, a target SKU and potential matching SKUs to the target SKU are identified. At 658, the target SKU and the potential matching SKUs are checked to identify whether any deal breakers are applicable. If applicable deal breakers are identified, then at 660, a score is calculated for each attribute based on the type of deal breakers that are identified. If applicable deal breakers are not identified, then at 662, a fuzzy match score is calculated based on the attribute values. The scores, at 664, are weighted across the attributes based on attribute importance. Then, at 666, the total overall score is calculated. At 668, the final output is generated based on the total overall score. This score can be used in identifying suitable substitute products for the target product; e.g., as part of the final output. For example, substitute product matches can be kept or otherwise selected based on scores relative to, e.g., above, a specific threshold. Further, an attribute lookup table can be generated for all SKUs in the category based on the total overall score.
[0087] Referring to FIG. 7, an example which illustrates an example of a processor-based computing system 700, is illustrated. As illustrated in FIG. 7, the components of system 700 are in electrical communication with each other using a bus 705. The computing system 700 can include a processing unit (CPU or processor) 710 and a system bus 705 that may couple various system components including the system memory 715, such as read only memory (ROM) 720 and random-access memory (RAM) 725, to the processor 710. The computing system 700 can include a cache 712 of high-speed memory connected directly with, in close proximity to, or integrated as part of the processor 710. The computing system 700 can copy data from the memory 715, ROM 720, RAM 725, and/or storage device 730 to the cache 712 for quick access by the processor 710. In this way, the cache 712 can provide a performance boost that avoids processor delays while
waiting for data. These and other modules can control the processor 710 to perform various actions. Other system memory 715 may be available for use as well. The memory 715 can include multiple different types of memory with different performance characteristics. The processor 710 can include any general-purpose processor and a hardware module or software module, such as (i) “module 1” 732; (ii) “module 2” 734, and (iii) “module 3” 736 stored in the storage device 730, configured to control the processor 710 as well as a special-purpose processor where software instructions are incorporated into the actual processor design. The processor 710 can essentially be a completely self-contained computing system, containing multiple cores or processors, a bus, memory controller, cache and the like. A multi-core processor may be symmetric or asymmetric.
[0088] To enable user interaction with the computing system 700, an input device 745 can represent any number of input mechanisms, such as a microphone for speech, a touch-protected screen for gesture or graphical input, keyboard, mouse, motion input, speech and so forth. An output device 735 can also be one or more of a number of output mechanisms known to those of skill in the art. In some instances, multimodal systems can enable a user to provide multiple types of input to communicate with the computing system 700. The communications interface 740 can govern and manage the user input and system output. There may be no restriction on operating on any particular hardware arrangement and therefore the basic features here can easily be substituted for improved hardware or firmware arrangements as they are developed.
[0089] The storage device 730 can be a non-volatile memory and can be a hard disk or other types of computer readable media which can store data that are accessible by a computer, such as magnetic cassettes, flash memory cards, solid state memory devices, digital versatile disks, cartridges, random access memory, read only memory, and hybrids thereof.
[0090] As discussed above, the storage device 730 can include the software modules 732, 734, 736 for controlling the processor 710. Other hardware or software modules are contemplated. The storage device 730 can be connected to the system bus 705. In some embodiments, a hardware module that performs a particular function can include a software component stored in a computer- readable medium in connection with the necessary hardware components, such as the processor 710, bus 705, output device 735, and so forth, to carry out the function. For clarity of explanation, in some instances the present technology may be presented as including individual
functional blocks including functional blocks comprising devices, device components, steps or routines in a method embodied in software, or combinations of hardware and software.
[0091] In some embodiments the computer-readable storage devices, mediums, and memories can include a cable or wireless signal containing a bit stream and the like. However, when mentioned, non-transitory computer-readable storage media expressly exclude media such as energy, carrier signals, electromagnetic waves, and signals per se.
[0092] Methods according to the above-described examples can be implemented using computerexecutable instructions that are stored or otherwise available from computer readable media. Such instructions can comprise, for example, instructions and data which cause or otherwise configure a general-purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Portions of computer resources used can be accessible over a network. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, firmware, or source code. Examples of computer-readable media that can be used to store instructions, information used, and/or information created during methods according to described examples include magnetic or optical disks, flash memory, USB devices provided with non-volatile memory, networked storage devices and the like.
[0093] Devices implementing methods according to these disclosures can comprise hardware, firmware and/or software, and can take any of a variety of form factors. Typical examples of such form factors include laptops, smart phones, small form factor personal computers, personal digital assistants, rackmount devices, standalone devices, and so on. Functionality described herein also can be embodied in peripherals or add-in cards. Such functionality can also be implemented on a circuit board among different chips or different processes executing in a single device, by way of further example.
[0094] The instructions, media for conveying such instructions, computing resources for executing them, and other structures for supporting such computing resources are means for providing the functions described in these disclosures.
[0095] Although a variety of examples and other information was used to explain aspects within the scope of the appended claims, no limitation of the claims should be implied based on particular features or arrangements in such examples, as one of ordinary skill would be able to use these
T1
examples to derive a wide variety of implementations. Further and although some subject matter may have been described in language specific to examples of structural features and/or method steps, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to these described features or acts. For example, such functionality can be distributed differently or performed in components other than those identified herein. Rather, the described features and steps are disclosed as examples of components of systems and methods within the scope of the appended claims.
[0096] Claim language reciting "at least one of' refers to at least one of a set and indicates that one member of the set or multiple members of the set satisfy the claim. For example, claim language reciting “at least one of A and B” means A, B, or A and B.
Claims
1. A computer-implemented method comprising: receiving a first dataset identifying a target product and comprising data characterizing one or more attributes of the target product; selecting one or more machine learning processes based on the one or more attributes of the target product; applying the selected one or more machine learning processes to the first dataset; based on the application of the selected one or more machine learning processes to the first dataset, generating, for the target product, a second dataset identifying in a database a set of substitute product candidates and, for each substitute product candidate of the set of substitute product candidates, a corresponding match-score indicating a degree of determined similarity between the substitute product candidate and the target product: and providing, to a computing device, the second dataset, the computing device being configured to perform a set of operations that present infomration of the second dataset.
2. The computer-implemented method of claim 1, wherein selecting the one or more machine learning processes based on the one or more attributes of the target product includes: determining information of at least a first attribute of the one or more attributes of the target product is complete based on one or more characteristics of the information; and selecting the one or more machine learning processes based on the determining the information of at least the first attribute is complete.
3. The computer-implemented method of claim 1, wherein selecting the one or more machine learning processes based on the one or more attributes of the target product includes: determining information of at least a first attribute of the one or more attributes of the target product is partial based on one or more characteristics of the information; and selecting the one or more machine learning processes based on determining the information of at least the first attribute is partial.
4. Tire computer-implemented method of claim 3, wherein the selected one or more machine learning processes includes a string matching process.
5. The computer-implemented method of claims 1 to 4, further comprising: obtaining, from a distributor database, product descriptive data; wherein the selected one or more machine learning processes is applied to the product descriptive data and tire first dataset; and wherein the second dataset is based on the application of the selected one or more machine learning processes to the product descriptive data and the first dataset.
6. Tire computer-implemented method of claim 5, further comprises: determining the set of substitute product candidates based on the application of the selected one or more machine learning processes to the first dataset and the product descriptive data.
7. The computer-implemented method of claim 6, wherein the product descriptive data identifies a plurality of substitute product candidates, and wherein the determining of the set of substitute product candidates includes: determining a match-score for each of the plurality of substitute product candidates; determining, for each of the plurality of substitute product candidates, whether the match-score meets a match-score threshold; and wherein the match-score of each of the set of substitute product candidates meets the match-score threshold.
8. Tire computer-implemented method of claims 5 to 7, wherein tire product descriptive data identifies, for each of the set of substitute product candidates, at least one of one or more portions of a stock keeping unit (SKU) identifier, and a category identifier.
9. Tire computer-implemented method of claims 5 to 8, wherein the first dataset identifies, for the target product, at least one of one or more portions of a stock keeping unit (SKU) identifier, and a category identifier.
10. The computer-implemented method of claims 1 to 9, further comprising: ranking each of the set of substitute product candidates based on the match-score of each of the set of substitute product candidates.
11. The computer-implemented method of claims 1 to 10, further comprising: ranking each of the set of substitute product candidates based on one or more attributes of each of the set of substitute product candidates.
12. The computer-implemented method of claim 1 or 11, further comprising: removing one or more substitute product candidates from the set of substitute product candidates, based on one or more constraints and the second dataset: and wherein the information presented by the computing device corresponds to one or more substitute product candidates remaining in tire set of substitute product candidates. f3. The computer-implemented method of claims 12, wherein the one or more constraints includes a match-score based constraint.
14. The computer-implemented method of claims 13, wherein the match-score based constraint includes a match-score threshold value, and wherein the computer-implemented method further comprising: determining which of the set of substitute product candidates is less than the match-score threshold value; and removing, from the set of substitute product candidates, each substitute product candidate of the set of substitute product candidates that is less than the match-score threshold value.
15. The computer-implemented method of claim 12, wherein the one or more constraints includes a rigid attribute constraint.
16. The computer-implemented method of claim 15, further comprising: determining at least a first attribute of the one or more attributes of the target product is a rigid attribute; and determining whether one or more of tire set of substitute product candidates satisfies the rigid attribute constraint, based on the rigid attribute constraint, the first attribute and one or more attributes of each of the set of substitute product candidates.
17. The computer-implemented method of claim 16, wherein the first attribute includes a range of values.
18. The computer- implemented method of claims 1-17, wherein the one or more machine learning processes is a fuzzy match type process.
19. The computer-implemented method of claim 1-18, wherein the one or more machine learning processes includes at least one of a partial ratio process, a Levenshtein Distance process, Damerau- Levenshtein process, a Jarro-Winkler Distance process, a Jarro Distance process, and a Jaccard Similarity process.
20. A computing system comprising: a communications interface; a memory storing instructions; and at least one processor coupled to the communications interface and to tire memory, the at least one processor being configured to execute the instructions to perform the method of claim 1.
21. A tangible, non-transitory computer readable medium storing instructions that, when executed by at least one processor, cause the at least one processor to perform the method of claim 1.
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202217968492A | 2022-10-18 | 2022-10-18 | |
US202217968524A | 2022-10-18 | 2022-10-18 | |
US17/968,564 | 2022-10-18 | ||
US17/968,564 US20240127172A1 (en) | 2022-10-18 | 2022-10-18 | System for identifying product substitutes field |
US17/968,524 | 2022-10-18 | ||
US17/968,492 | 2022-10-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024086098A1 true WO2024086098A1 (en) | 2024-04-25 |
Family
ID=88779641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2023/035207 WO2024086098A1 (en) | 2022-10-18 | 2023-10-16 | Executable media for identifying product substitutes field |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024086098A1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210398183A1 (en) * | 2020-06-23 | 2021-12-23 | Price Technologies Inc. | Systems and methods for deep learning model based product matching using multi modal data |
-
2023
- 2023-10-16 WO PCT/US2023/035207 patent/WO2024086098A1/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210398183A1 (en) * | 2020-06-23 | 2021-12-23 | Price Technologies Inc. | Systems and methods for deep learning model based product matching using multi modal data |
Non-Patent Citations (1)
Title |
---|
REBECCA WEST ET AL: "Interpretable Methods for Identifying Product Variants", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 12 April 2021 (2021-04-12), XP081935565 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10354184B1 (en) | Joint modeling of user behavior | |
US8781915B2 (en) | Recommending items to users utilizing a bi-linear collaborative filtering model | |
CN103309866B (en) | The method and apparatus for generating recommendation results | |
US8484099B1 (en) | Method, medium, and system for behavior-based recommendations of product upgrades | |
US8321279B2 (en) | Rule-based bidding platform | |
CN113469597A (en) | Intelligent supply chain system and server platform | |
US12086820B2 (en) | Technology opportunity mapping | |
KR102446649B1 (en) | Method and apparatus for producing application using recommended templet based on artificial intelligence model | |
US20230111745A1 (en) | Systems and methods for generating models for recommending replacement items for unavailable in-store purchases | |
Zhang et al. | Learning to select supplier portfolios for service supply chain | |
JP2020047156A (en) | Commodity recommendation device and program | |
CN109598404A (en) | Automatically to the method and apparatus for issuing the progress data processing of sales task list | |
US11500936B2 (en) | System and method for structure and attribute based graph partitioning | |
Chan et al. | A biased random key genetic algorithm approach for inventory-based multi-item lot-sizing problem | |
US11775989B1 (en) | Systems and methods for omnichannel environment relevance analytics | |
US20240127170A1 (en) | Computer implemented method for identifying product substitutes | |
US20240127172A1 (en) | System for identifying product substitutes field | |
CN113744009B (en) | Target object output method, device, computer readable medium and electronic equipment | |
KR102567458B1 (en) | Method, device and system for providing commerce platform service based on influencer and community connection using artificial intelligence model | |
WO2024086098A1 (en) | Executable media for identifying product substitutes field | |
CN113743968A (en) | Information delivery method, device and equipment | |
US20230027530A1 (en) | Artificial intelligence (ai) engine assisted creation of production descriptions | |
WO2023225093A1 (en) | System for and a method of graph model generation | |
WO2023219950A1 (en) | Systems and methods to control customized performance insight through machine learning based knowledge graphs | |
CN111316259A (en) | System and method for dynamic synthesis and transient clustering of semantic attributes for feedback and adjudication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23805260 Country of ref document: EP Kind code of ref document: A1 |