DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claims 1-20 are currently pending. Claims 13-19 have been withdrawn in response to the restriction requirement. Claims 1-12 and 20 have been examined in this application. This communication is the first action on the merits.
Election/Restrictions
Claims 13-19 are withdrawn from further consideration pursuant to 37 CFR 1.142(b) as being drawn to a nonelected inventions, there being no allowable generic or linking claim. Election was made without traverse in the reply filed on May 26, 2026.
Claim Objections
A series of singular dependent claims is permissible in which a dependent claim refers to a preceding claim which, in turn, refers to another preceding claim.
A claim which depends from a dependent claim should not be separated by any claim which does not also depend from said dependent claim – as in the instant case, dependent claim 12. It should be kept in mind that a dependent claim may refer to any preceding independent claim. In general, applicant's sequence will not be changed. See MPEP § 608.01(n).
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 4-7 and 11 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor, or for pre-AIA , the applicant, regards as the invention.
Claim 4 recites “obtaining, for each respective grocery product included in the subset of grocery products, every other grocery product included in the selected category; and generating, for each respective grocery product included in the subset of grocery products, a list of candidate substitute products, the list of candidate substitute products comprising grocery products identified in the hierarchical structure for which the relationship with the respective grocery product satisfies the threshold criteria, the list of candidate substitute products further comprises every other grocery product included in the selected category for the respective grocery product specified by the retailer. [emphasis added].” As recited, it is unclear whether “every other” was intended to mean all remaining products other than the respective product (e.g. For A, you obtain B, C, D, E, F), or alternating products (e.g. you obtain B, D, F). Consequently, one of ordinary skill in the art cannot determine how to avoid infringement of these claims because the metes and bounds of these claims are unclear. For examination purposes, the Examiner has interpreted this claim as merely obtaining grocery products included in the selected category; and generating, for each respective grocery product included in the subset of grocery products, a list of candidate substitute products, the list of candidate substitute products comprising grocery products identified in the hierarchical structure for which the relationship with the respective grocery product satisfies the threshold criteria.
Claims 5-7 depend from claim 4 and thus inherit the deficiencies of claim 4.
Claim 5 recites “providing the list of candidate substitute grocery products as an input to a language processing machine learning model configured to, for reach respective grocery product, order the list of candidate substitute grocery products from most substitutable to least substitutable [emphasis added].” As recited, there appears to be a grammatical error, the term “reach” should read as “each.” Additionally, as recited the term “order” is ambiguous, as it is unclear whether Applicant intended for the order to be ordering as in organizationally or ordering as in purchasing. Consequently, one of ordinary skill in the art cannot determine how to avoid infringement of these claims because the metes and bounds of these claims are unclear. For examination purposes, the Examiner has interpreted this claim as merely providing the list of candidate substitute grocery products as an input to a machine learning model.
Claims 6 and 7 depend from claim 5 and thus inherit the deficiencies of claim 5.
Claim 6 recites “modifying, for each respective grocery product, an order of the list of candidate substitute grocery products based, at least in part, on other data. [emphasis added].” As recited the term “order” is ambiguous, as it is unclear whether Applicant intended for the order to be ordering as in organizationally or ordering as in purchasing. Consequently, one of ordinary skill in the art cannot determine how to avoid infringement of these claims because the metes and bounds of these claims are unclear. For examination purposes, the Examiner has interpreted this claim as merely modifying the list of candidate substitute grocery products based, at least in part, on other data.
Claim 7 depends from claim 6 and thus inherit the deficiencies of claim 6.
Claim 11 recites “a second score indicating how often the respective grocery product and the respective substitute grocery product are selected by personal shoppers as substitutes;” As recited, it is unclear whether the Applicant intended for the second score to indicate how often both the respective grocery product and the respective substitute grocery product are selected as substitutes (for other products) or how often the respective substitute grocery product is selected as a substitute for the respective grocery product. Consequently, one of ordinary skill in the art cannot determine how to avoid infringement of these claims because the metes and bounds of these claims are unclear. For examination purposes, the Examiner has interpreted this limitation as merely a second score indicating how often the respective grocery product is substituted by the respective substitute grocery product.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-12 and 20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to non-statutory subject matter.
Step 1. When considering subject matter eligibility under 35 U.S.C. 101, it must be determined whether the claim is directed to one of the four statutory categories of invention, i.e., process, machine, manufacture, or composition of matter.
Step 2A – Prong One. If the claims fall within one of the statutory categories, it must then be determined whether the claims recite an abstract idea, law of nature, or natural phenomenon.
Step 2A – Prong Two. If the claims recite an abstract idea, law of nature, or natural phenomenon, it must then be determined whether the claims recite additional elements that integrate the judicial exception into a practical application. If the claims do not recite additional elements that integrate the judicial exception into a practical application, then the claims are directed to a judicial exception.
Step 2B. If the claims are directed to a judicial exception, it must be evaluated whether the claims recite additional elements that amount to an inventive concept (i.e. “significantly more”) than the recited judicial exception.
In the instant case, claims 1-12 are directed to a process; claim 20 is directed to a machine.
A claim “recites” an abstract idea if there are identifiable limitations that fall within at least one of the groupings of abstract ideas enumerated in MPEP 2106. In the instant case, claim 1, and similarly claim 20, recites the steps of:
generating a hierarchical structure defining a relationship between each of a plurality of different grocery products based, at least in part, on one or more of a plurality of different attributes associated with each of the grocery products; generating data based on the hierarchical structure, the data comprising, for each respective grocery product included in a subset of the plurality of different grocery products, a list of candidate substitute grocery products ranked from most substitutable to least substitutable -- these claim limitations set forth certain methods of organizing human activity, particularly commercial interactions including advertising, marketing, and sales activities/behaviors.
Additionally, these steps set forth mental processes, particularly concepts performed in the human mind or by a human using a pen and paper, including, inter alia, the observation and evaluation of information.
Further, the limitations of the claims are not indicative of integration into a practical application. Taking the independent claim elements separately, the additional elements of performing the steps via training data and training the machine learning model using the training data merely implement the abstract idea on a computer environment. Additionally, taking the dependent claim elements separately, the additional elements of performing the steps online also merely implement the abstract idea on a computer environment. Considered in combination, the steps of Applicant’s method add nothing that is not already present when the steps are considered separately.
Thus, claims 1-12 and 20 are directed to an abstract idea.
Regarding the independent claims, the technical elements of training data and training the machine learning model using the training data are recited at a high level of generality and thus does not amount to significantly more. Additionally, regarding the dependent claims, the technical elements of performing the steps online merely implement the abstract idea on a computer environment.
When considering the elements and combinations of elements, the claim(s) as a whole, do not amount to significantly more than the abstract idea itself. This is because the claims do not amount to an improvement to another technology or technical field; the claims do not amount to an improvement to the functioning of a computer itself; the claims do not move beyond a general link of the use of an abstract idea to a particular technological environment; the claims merely amounts to the application or instructions to apply the abstract idea on a computer; or the claims amounts to nothing more than requiring a generic computer to perform generic computer functions that are well-understood, routine and conventional activities previously known to the industry.
The analysis above applies to all statutory categories of invention. Accordingly, claims 1-12 and 20 are rejected as ineligible for patenting under 35 USC 101 based upon the same rationale.
Claim Rejections - 35 USC § 102
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claims 1-7 and 20 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Prasad (US PGP 2022/0292567).
As per claim 1, Prasad teaches method for training a machine learning model to automatically recommend substitute grocery products for a grocery product selected by a user, comprising:
generating a hierarchical structure defining a relationship between each of a plurality of different grocery products based, at least in part, on one or more of a plurality of different attributes associated with each of the grocery products; (Prasad: [0029] (The replacement analyzer 408 accesses a taxonomy database 402, which stores a hierarchical taxonomy of products sold by retailers 110 associated with the online concierge system 102. The hierarchical taxonomy is a taxonomy of ranked categories of products sold at one or more retailers 110. Each category may include a plurality of other subcategories (also referred to as “categories” for simplicity) and a plurality of products labeled with the category. For example, the product “Butterfly Organic Butter” may be labeled with the categories “Dairy” and “Butter,” where “Butter” is a category of “Dairy.” The hierarchical taxonomy may be generated by a machine-learning model trained to determine a hierarchy of products based on retailer 110 information, an inventory of products, historical orders placed by customer 104, and/or historical search queries entered by customers 104 via the CMA 106. . . . An example of a portion of the hierarchical taxonomy is shown in FIGS. 5A-5C.); Figs. 5A-5C, (FIGS. 5A-5C illustrate labeling products based on a portion 500 of a hierarchical taxonomy, according to one embodiment. . . . The hierarchical taxonomy includes a plurality of nodes 505 that are hierarchically connected. The nodes 505 describe categories of products available at a retailer 510. For example, the retailer 510 may sell products that can be classified as “food,” which includes “produce” and “condiments,” among other categories of food. Furthermore, “produce” includes “fruit” and “vegetables,” and “fruit” includes “cherries,” which are sold at the retailer 510. In some instances, “cherries” may also be a category associated with more types or particular brands of cherries, like “yellow cherries” or “Sherry's Organic red cherries.”); [0039])
generating training data based on the hierarchical structure, the training data comprising, for each respective grocery product included in a subset of the plurality of different grocery products, a list of candidate substitute grocery products ranked from most substitutable to least substitutable; and (Prasad: [0034]-[0036] (The replacement model 406 may be trained by a training module 410 using training data describing replacements made by customers 104. For instance, a customer 104 may have an opportunity to replace a first product with a second product when the first product is unavailable. . . . Whether or not the customer 104 replaces the first product with the second product may be stored as historical data by the CMA 106, which the training module 410 may use as training data to train the replacement model 406. For example, if a customer 104 entered the search query “organic milk” and ended up ordering “Smooth Sailing Vanilla Almond Milk” shortly after viewing “Sweet Farms Vanilla Almond Milk,” the training data would include the set of “Smooth Sailing Vanilla Almond Milk” and “Sweet Farms Vanilla Almond Milk” labeled with a “1.” Further, if the customer 104 also viewed “Store Brand Almond Milk” after viewing “Sweet Farms Vanilla Almond Milk,” but did not order “Store Brand Almond Milk,” the training data would include the set of “Store Brand Almond Milk” and “Sweet Farms Vanilla Almond Milk” labeled with a “0.” Each set may also include the characteristics of each product. The training data comprises a plurality of labeled sets of products viewed by a plurality of customers in the scenarios. The training module 410 trains the replacement model 406 on the labeled sets of products to predict a computed likelihood that a second product is a replacement for a second product. In some embodiments, the training data may also include historical data representing feedback from customers 104 about products used as replacements. . . . In one example, a picker 108 may replace a product upon determining that the product is unavailable at a retailer 110 when shopping. . . . Further, upon receiving the order, the customer may enter feedback via the CMA 106 about the replacement for the product (e.g., whether the customer 104 liked the replacement or not or a rating of the replacement). . . . These occurrences of products being replaced may be stored as historical data by the CMA 106. The training module 410 may label the historical data to use as training data. This training data comprises a plurality of labeled sets of products viewed by a plurality of customers in the occurrences. For example, if a customer 104 replaced the product “Smooth Sailing Vanilla Almond Milk” with “Sweet Farms Vanilla Almond Milk,” the training data would include the set of “Smooth Sailing Vanilla Almond Milk” and “Sweet Farms Vanilla Almond Milk” labeled with a “1.” In another example, if the customer 104 rated the replacement “Store Brand Almond Milk” for “Sweet Farms Vanilla Almond Milk” as a 1 out of 5, the training data would include the set of “Store Brand Almond Milk” and “Sweet Farms Vanilla Almond Milk” labeled with a “0.” Each set may also include the characteristics of each product. Further, in some embodiments, the training data may include each sets of the unlabeled product with each product at a retailer 110 (or each product within a similar department or category of the unlabeled product) labeled with a similarity. The similarity may be a percentage determined based on how many attributes the unlabeled product and product share. For example, the set of products “Red Raspberries” and “Organic Yellow Raspberries” may be labeled with a similarity of 96% due to having many of the same attributes (e.g., both are “fruit,” both sold in a “fruit department,” etc.). The training module 410 trains the replacement model 406 on the labeled sets of products to predict a computed likelihood that a second product is a replacement for a second product.)); [0039]-[0040] (The replacement analyzer 408 receives 604 an unlabeled product from the inventory database 404 and determines a set of labeled products that may be potential replacements for the unlabeled product. The labeled products may be products from the hierarchical taxonomy with similar characteristics to the unlabeled product (e.g., include at least a threshold number of the same characteristics). Alternatively, the unlabeled product may be associated with a category from the taxonomy (e.g., “Fruit” or “Snacks”), and the replacement analyzer may select labeled products included in the category. The replacement analyzer 408 inputs the unlabeled product and each of the labeled products to the replacement model 406 to predict 606 a replacement for the unlabeled product. The replacement model 406 is trained to output, for each labeled product, a likelihood a customer 104 would select the labeled product as a replacement for the unlabeled product.); [0031])
training the machine learning model using the training data. (Prasad: [0034]-[0036] (The replacement model 406 may be trained by a training module 410 using training data describing replacements made by customers 104. . . . Whether or not the customer 104 replaces the first product with the second product may be stored as historical data by the CMA 106, which the training module 410 may use as training data to train the replacement model 406. For example, if a customer 104 entered the search query “organic milk” and ended up ordering “Smooth Sailing Vanilla Almond Milk” shortly after viewing “Sweet Farms Vanilla Almond Milk,” the training data would include the set of “Smooth Sailing Vanilla Almond Milk” and “Sweet Farms Vanilla Almond Milk” labeled with a “1.” Further, if the customer 104 also viewed “Store Brand Almond Milk” after viewing “Sweet Farms Vanilla Almond Milk,” but did not order “Store Brand Almond Milk,” the training data would include the set of “Store Brand Almond Milk” and “Sweet Farms Vanilla Almond Milk” labeled with a “0.” Each set may also include the characteristics of each product. The training data comprises a plurality of labeled sets of products viewed by a plurality of customers in the scenarios. The training module 410 trains the replacement model 406 on the labeled sets of products to predict a computed likelihood that a second product is a replacement for a second product. . . . The training module 410 trains the replacement model 406 on the labeled sets of products to predict a computed likelihood that a second product is a replacement for a second product.)); [0039]-[0040] (The replacement analyzer 408 inputs the unlabeled product and each of the labeled products to the replacement model 406 to predict 606 a replacement for the unlabeled product. The replacement model 406 is trained to output, for each labeled product, a likelihood a customer 104 would select the labeled product as a replacement for the unlabeled product.))
As per claim 2, Prasad teaches wherein the plurality of different attributes comprise one or more of: a dietary attribute; a marketing attribute; a distribution attribute; a sensory attribute; and an organization attribute. Prasad: [0029] (The replacement analyzer 408 accesses a taxonomy database 402, which stores a hierarchical taxonomy of products sold by retailers 110 associated with the online concierge system 102. The hierarchical taxonomy is a taxonomy of ranked categories of products sold at one or more retailers 110. Each category may include a plurality of other subcategories (also referred to as “categories” for simplicity) and a plurality of products labeled with the category. For example, the product “Butterfly Organic Butter” may be labeled with the categories “Dairy” and “Butter,” where “Butter” is a category of “Dairy.” The hierarchical taxonomy may be generated by a machine-learning model trained to determine a hierarchy of products based on retailer 110 information, an inventory of products, historical orders placed by customer 104, and/or historical search queries entered by customers 104 via the CMA 106. . . . An example of a portion of the hierarchical taxonomy is shown in FIGS. 5A-5C.); Figs. 5A-5C, (FIGS. 5A-5C illustrate labeling products based on a portion 500 of a hierarchical taxonomy, according to one embodiment. . . . The hierarchical taxonomy includes a plurality of nodes 505 that are hierarchically connected. The nodes 505 describe categories of products available at a retailer 510. For example, the retailer 510 may sell products that can be classified as “food,” which includes “produce” and “condiments,” among other categories of food. Furthermore, “produce” includes “fruit” and “vegetables,” and “fruit” includes “cherries,” which are sold at the retailer 510. In some instances, “cherries” may also be a category associated with more types or particular brands of cherries, like “yellow cherries” or “Sherry's Organic red cherries.”); [0039])
As per claim 3, Prasad teaches wherein generating the list of candidate substitute grocery products comprises:
determining, for each respective grocery product included in the subset of grocery products, the relationship between the respective grocery product and another grocery product represented in the hierarchical structure satisfies a threshold criteria. (Prasad: [0031]-[0033] (The replacement analyzer 408 selects a set of labeled products as potential replacements for the unlabeled product. In some embodiments, the replacement analyzer 408 selects labeled products with a threshold number of the same characteristics as the unlabeled product. In some embodiments, the set of labeled products are all products the inventory database 404 or the taxonomy database 402. For each labeled product in the set, the replacement analyzer 408 inputs the labeled product and the unlabeled product, including characteristics of each, to the replacement model 406. . . . In an alternate embodiment, the replacement analyzer 408 determines a set of labeled products with a likelihood above a threshold value. For instance, the replacement analyzer 408 may add labeled products with a likelihood of over 85% to the set.); [0039] (The labeled products may be products from the hierarchical taxonomy with similar characteristics to the unlabeled product (e.g., include at least a threshold number of the same characteristics).)
As per claim 4, Prasad teaches wherein generating the list of candidate substitute grocery products further comprises:
obtaining, for each respective grocery product included in the subset of grocery products, a selected category of a plurality of different categories specified by a retailer; (Prasad: [0039] (FIG. 6 illustrates a flowchart of a process 600 for labeling a product with a category of a hierarchical taxonomy, according to one embodiment. For instance, the replacement analyzer 408 accesses 602 a hierarchical taxonomy stored in the taxonomy database 402. In some embodiments, the hierarchical taxonomy may be the same for all retailers 110 or geographic locations or the taxonomy database 402 may store a plurality of hierarchical taxonomies that are each specific to a retailer 110 or geographic region.); [0029] (The replacement analyzer 408 accesses a taxonomy database 402, which stores a hierarchical taxonomy of products sold by retailers 110 associated with the online concierge system 102. The hierarchical taxonomy is a taxonomy of ranked categories of products sold at one or more retailers 110. Each category may include a plurality of other subcategories (also referred to as “categories” for simplicity) and a plurality of products labeled with the category. For example, the product “Butterfly Organic Butter” may be labeled with the categories “Dairy” and “Butter,” where “Butter” is a category of “Dairy.” . . . In some cases, portions of the hierarchical taxonomy may be manually labeled by a moderator. An example of a portion of the hierarchical taxonomy is shown in FIGS. 5A-5C.); [0037] (FIGS. 5A-5C illustrate labeling products based on a portion 500 of a hierarchical taxonomy, according to one embodiment. . . . The hierarchical taxonomy includes a plurality of nodes 505 that are hierarchically connected. The nodes 505 describe categories of products available at a retailer 510. For example, the retailer 510 may sell products that can be classified as “food,” which includes “produce” and “condiments,” among other categories of food. Furthermore, “produce” includes “fruit” and “vegetables,” and “fruit” includes “cherries,” which are sold at the retailer 510. In some instances, “cherries” may also be a category associated with more types or particular brands of cherries, like “yellow cherries” or “Sherry's Organic red cherries.”))
obtaining, for each respective grocery product included in the subset of grocery products, every other grocery product included in the selected category; and (Prasad: [0031]-[0033] (The replacement analyzer 408 selects a set of labeled products as potential replacements for the unlabeled product. In some embodiments, the replacement analyzer 408 selects labeled products with a threshold number of the same characteristics as the unlabeled product.))
generating, for each respective grocery product included in the subset of grocery products, a list of candidate substitute products, the list of candidate substitute products comprising grocery products identified in the hierarchical structure for which the relationship with the respective grocery product satisfies the threshold criteria, the list of candidate substitute products further comprises every other grocery product included in the selected category for the respective grocery product specified by the retailer. (Prasad: [0031]-[0033] (The replacement analyzer 408 selects a set of labeled products as potential replacements for the unlabeled product. In some embodiments, the replacement analyzer 408 selects labeled products with a threshold number of the same characteristics as the unlabeled product. . . . For each labeled product in the set, the replacement analyzer 408 inputs the labeled product and the unlabeled product, including characteristics of each, to the replacement model 406. . . . In an alternate embodiment, the replacement analyzer 408 determines a set of labeled products with a likelihood above a threshold value. For instance, the replacement analyzer 408 may add labeled products with a likelihood of over 85% to the set.); [0039] (The labeled products may be products from the hierarchical taxonomy with similar characteristics to the unlabeled product (e.g., include at least a threshold number of the same characteristics).)
As per claim 5, Prasad teaches wherein generating the training data comprises:
providing the list of candidate substitute grocery products as an input to a language processing machine learning model configured to, for reach respective grocery product, order the list of candidate substitute grocery products from most substitutable to least substitutable. (Prasad: [0031] (For each labeled product in the set, the replacement analyzer 408 inputs the labeled product and the unlabeled product, including characteristics of each, to the replacement model 406.); [0039] (The replacement analyzer 408 inputs the unlabeled product and each of the labeled products to the replacement model 406 to predict 606 a replacement for the unlabeled product. The replacement model 406 is trained to output, for each labeled product, a likelihood a customer 104 would select the labeled product as a replacement for the unlabeled product.); [0040]; [0030] (The replacement model 406 may be a machine learning model, such as a deep neural network, a regression model, a classifier, or any other suitable type of machine learning model.))
As per claim 6, Prasad teaches wherein generating the training data further comprises:
modifying, for each respective grocery product, an order of the list of candidate substitute grocery products based, at least in part, on other data. (Prasad: [0031]-[0032] (The replacement analyzer 408 selects a set of labeled products as potential replacements for the unlabeled product. In some embodiments, the replacement analyzer 408 selects labeled products with a threshold number of the same characteristics as the unlabeled product. In some embodiments, the set of labeled products are all products the inventory database 404 or the taxonomy database 402. For each labeled product in the set, the replacement analyzer 408 inputs the labeled product and the unlabeled product, including characteristics of each, to the replacement model 406. Further, in some instances, the replacement analyzer may input features that relate to the user engagement with the products, such as a number of times (or percentage of time) that a labeled product has been used to replace the unlabeled product on the online concierge system 102. The replacement model 406 outputs a likelihood that the labeled product would be used to replace the unlabeled product. For example, the product “Moo Moo Organic 2% Milk” may have a 70% likelihood of being replaced by “Moo Moo 2% Milk” and a 15% likelihood of being replaced by “Moo Moo Organic Whole Milk.” . . . The replacement analyzer 408 receives a likelihood for each of the set of labeled products from the replacement model 406. The replacement analyzer 408 selects a replacement from the set with the highest likelihood of replacing the unlabeled product.); [0034]-[0036]; [0039]-[0040])
As per claim 7, Prasad teaches wherein the other data comprises previously selected substitutions from a personal shopper. (Prasad: [0031]-[0032] (The replacement analyzer 408 selects a set of labeled products as potential replacements for the unlabeled product. In some embodiments, the replacement analyzer 408 selects labeled products with a threshold number of the same characteristics as the unlabeled product. In some embodiments, the set of labeled products are all products the inventory database 404 or the taxonomy database 402. For each labeled product in the set, the replacement analyzer 408 inputs the labeled product and the unlabeled product, including characteristics of each, to the replacement model 406. Further, in some instances, the replacement analyzer may input features that relate to the user engagement with the products, such as a number of times (or percentage of time) that a labeled product has been used to replace the unlabeled product on the online concierge system 102.); [0034]-[0036] (In some embodiments, the training data may also include historical data representing feedback from customers 104 about products used as replacements. . . . In one example, a picker 108 may replace a product upon determining that the product is unavailable at a retailer 110 when shopping. The CMA 106 may send a notification of the replacement to the customer 104 to approve or deny. Further, upon receiving the order, the customer may enter feedback via the CMA 106 about the replacement for the product (e.g., whether the customer 104 liked the replacement or not or a rating of the replacement). In another instance, the customer 104 may select a replacement for a product before placing the order (e.g., upon checking out, the CMA 106 may indicate that a product is unavailable and needs to be replaced). These occurrences of products being replaced may be stored as historical data by the CMA 106. The training module 410 may label the historical data to use as training data. This training data comprises a plurality of labeled sets of products viewed by a plurality of customers in the occurrences. For example, if a customer 104 replaced the product “Smooth Sailing Vanilla Almond Milk” with “Sweet Farms Vanilla Almond Milk,” the training data would include the set of “Smooth Sailing Vanilla Almond Milk” and “Sweet Farms Vanilla Almond Milk” labeled with a “1.” In another example, if the customer 104 rated the replacement “Store Brand Almond Milk” for “Sweet Farms Vanilla Almond Milk” as a 1 out of 5, the training data would include the set of “Store Brand Almond Milk” and “Sweet Farms Vanilla Almond Milk” labeled with a “0.); [0039]-[0040])
As per claim 20, this claim is substantially similar to claim 1 and is therefore rejected in the same manner as this claim, as set forth above.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102 of this title, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 8-12 are rejected under 35 U.S.C. 103 as being unpatentable over Prasad in view of Thangali (US PGP2023/0245146).
As per claim 8, Prasad teaches wherein training the machine learning model comprises:
providing, for each respective grocery product, one or more scores between the respective grocery product and a respective substitute grocery product included in the list of candidate substitute grocery products for the respective grocery product as an input to the machine learning model; (Prasad: [0031] (The replacement analyzer 408 selects a set of labeled products as potential replacements for the unlabeled product. In some embodiments, the replacement analyzer 408 selects labeled products with a threshold number of the same characteristics as the unlabeled product. . . . For each labeled product in the set, the replacement analyzer 408 inputs the labeled product and the unlabeled product, including characteristics of each, to the replacement model 406. Further, in some instances, the replacement analyzer may input features that relate to the user engagement with the products, such as a number of times (or percentage of time) that a labeled product has been used to replace the unlabeled product on the online concierge system 102. The replacement model 406 outputs a likelihood that the labeled product would be used to replace the unlabeled product. . . . The replacement model 406 is trained by the training module 410, which is further described below.))
generating, by the machine learning model, an output comprising a predicted list of the substitute grocery products for the respective grocery product ranked from most substitutable to least substitutable; (Prasad: [0031]-[0032] (The replacement model 406 outputs a likelihood that the labeled product would be used to replace the unlabeled product. For example, the product “Moo Moo Organic 2% Milk” may have a 70% likelihood of being replaced by “Moo Moo 2% Milk” and a 15% likelihood of being replaced by “Moo Moo Organic Whole Milk.” The replacement model 406 is trained by the training module 410, which is further described below.); [0036]-[0041])
Prasad does not explicitly disclose the following known techniques which are taught by Thangali:
comparing the predicted list of the substitute grocery products to a reference list of substitute grocery products; and (Thangali: [0003] (food and consumables); [0048] (food); [0071] (At step 510, item substitution determination computing device 102 may determine if the machine learning process is sufficiently trained. For example, item substitution determination computing device 102 may compare the output data generated during application of the machine learning process to the validation set to ground truth data, and may determine if at least one metric satisfies a threshold, as described herein.)
modifying one or more parameters of the machine learning model based on the comparing. (Thangali: [0071] (At step 510, item substitution determination computing device 102 may determine if the machine learning process is sufficiently trained. For example, item substitution determination computing device 102 may compare the output data generated during application of the machine learning process to the validation set to ground truth data, and may determine if at least one metric satisfies a threshold, as described herein. If item substitution determination computing device 102 determines that the machine learning process is not sufficiently trained, the method proceeds back to step 502 to generate an additional training set. Otherwise, if item substitution determination computing device 102 determines the machine learning process is sufficiently trained, the method proceeds to step 512. At step 512, item substitution determination computing device 102 stores configuration parameters associated with the trained machine learning process in a data repository (e.g., machine learning model data 380 within database 116).))
This known technique is applicable to the method of Prasad as they both share characteristics and capabilities, namely, they are directed to determining substitution products.
One of ordinary skill in the art at the time of filing would have recognized that applying the known technique of Thangali would have yielded predictable results and resulted in an improved method. It would have been recognized that applying the technique of Thangali to the teachings of Prasad would have yielded predictable results because the level of ordinary skill in the art demonstrated by the references applied shows the ability to incorporate such reference list features into similar methods. Further, applying the comparing the predicted list of the substitute grocery products to a reference list of substitute grocery products; and modifying one or more parameters of the machine learning model based on the comparing to the teachings of Prasad would have been recognized by those of ordinary skill in the art as resulting in an improved method that would allow a retailer to more reliably provide substitute items for original items, such as low-velocity items that do not sell very frequently, when those low-velocity items are not available for sale. (Thangali: [0002]-[0005])
As per claim 9, Prasad/Thangali teach the invention of claim 8 as set forth above. Additionally, Prasad/Thangali teach wherein training the machine learning model comprises training the machine learning model to boost a substitute grocery product included in the predicted list of substitute grocery products according to one or more attributes specified by a retailer that is selling the substitute grocery product. (Prasad: [0029] (The replacement analyzer 408 accesses a taxonomy database 402, which stores a hierarchical taxonomy of products sold by retailers 110 associated with the online concierge system 102. The hierarchical taxonomy is a taxonomy of ranked categories of products sold at one or more retailers 110. Each category may include a plurality of other subcategories (also referred to as “categories” for simplicity) and a plurality of products labeled with the category. For example, the product “Butterfly Organic Butter” may be labeled with the categories “Dairy” and “Butter,” where “Butter” is a category of “Dairy.” . . . In some cases, portions of the hierarchical taxonomy may be manually labeled by a moderator. An example of a portion of the hierarchical taxonomy is shown in FIGS. 5A-5C.); [0037] (FIGS. 5A-5C illustrate labeling products based on a portion 500 of a hierarchical taxonomy, according to one embodiment. . . . The hierarchical taxonomy includes a plurality of nodes 505 that are hierarchically connected. The nodes 505 describe categories of products available at a retailer 510. For example, the retailer 510 may sell products that can be classified as “food,” which includes “produce” and “condiments,” among other categories of food. Furthermore, “produce” includes “fruit” and “vegetables,” and “fruit” includes “cherries,” which are sold at the retailer 510. In some instances, “cherries” may also be a category associated with more types or particular brands of cherries, like “yellow cherries” or “Sherry's Organic red cherries.”); [0036] (Further, in some embodiments, the training data may include each sets of the unlabeled product with each product at a retailer 110 (or each product within a similar department or category of the unlabeled product) labeled with a similarity. The similarity may be a percentage determined based on how many attributes the unlabeled product and product share. For example, the set of products “Red Raspberries” and “Organic Yellow Raspberries” may be labeled with a similarity of 96% due to having many of the same attributes (e.g., both are “fruit,” both sold in a “fruit department,” etc.). The training module 410 trains the replacement model 406 on the labeled sets of products to predict a computed likelihood that a second product is a replacement for a second product.); [0039])
As per claim 10, Prasad/Thangali teach the invention of claim 9 as set forth above. Additionally, Prasad/Thangali teach wherein the one or more attributes comprise at least one:
data indicating the substitute grocery product is a most frequently selected substitute for the respective grocery product; and (Prasad: [0031]-[0032] (Further, in some instances, the replacement analyzer may input features that relate to the user engagement with the products, such as a number of times (or percentage of time) that a labeled product has been used to replace the unlabeled product on the online concierge system 102. The replacement model 406 outputs a likelihood that the labeled product would be used to replace the unlabeled product. For example, the product “Moo Moo Organic 2% Milk” may have a 70% likelihood of being replaced by “Moo Moo 2% Milk” and a 15% likelihood of being replaced by “Moo Moo Organic Whole Milk.” . . . The replacement analyzer 408 receives a likelihood for each of the set of labeled products from the replacement model 406. The replacement analyzer 408 selects a replacement from the set with the highest likelihood of replacing the unlabeled product.); [0034]-[0036] (In some embodiments, the training data may also include historical data representing feedback from customers 104 about products used as replacements. . . . In one example, a picker 108 may replace a product upon determining that the product is unavailable at a retailer 110 when shopping. The CMA 106 may send a notification of the replacement to the customer 104 to approve or deny. . . . In another instance, the customer 104 may select a replacement for a product before placing the order (e.g., upon checking out, the CMA 106 may indicate that a product is unavailable and needs to be replaced). These occurrences of products being replaced may be stored as historical data by the CMA 106. The training module 410 may label the historical data to use as training data. This training data comprises a plurality of labeled sets of products viewed by a plurality of customers in the occurrences. For example, if a customer 104 replaced the product “Smooth Sailing Vanilla Almond Milk” with “Sweet Farms Vanilla Almond Milk,” the training data would include the set of “Smooth Sailing Vanilla Almond Milk” and “Sweet Farms Vanilla Almond Milk” labeled with a “1.”); [0039]-[0040])
data indicating an entity associated with the substitute grocery product has paid for the substitute grocery product to be recommended as a preferred substitute for the respective grocery product.
As per claim 11, Prasad/Thangali teach the invention of claim 8 as set forth above. Additionally, Prasad/Thangali teach wherein the one or more scores comprise at least one of:
a first score indicating how often the respective grocery product and the respective substitute grocery product are included in a same online order;
a second score indicating how often the respective grocery product and the respective substitute grocery product are selected by personal shoppers as substitutes; (Prasad: [0031]-[0032] (Further, in some instances, the replacement analyzer may input features that relate to the user engagement with the products, such as a number of times (or percentage of time) that a labeled product has been used to replace the unlabeled product on the online concierge system 102. The replacement model 406 outputs a likelihood that the labeled product would be used to replace the unlabeled product. For example, the product “Moo Moo Organic 2% Milk” may have a 70% likelihood of being replaced by “Moo Moo 2% Milk” and a 15% likelihood of being replaced by “Moo Moo Organic Whole Milk.”); [0034]-[0036] (In some embodiments, the training data may also include historical data representing feedback from customers 104 about products used as replacements. . . . In one example, a picker 108 may replace a product upon determining that the product is unavailable at a retailer 110 when shopping. The CMA 106 may send a notification of the replacement to the customer 104 to approve or deny. . . . In another instance, the customer 104 may select a replacement for a product before placing the order (e.g., upon checking out, the CMA 106 may indicate that a product is unavailable and needs to be replaced). These occurrences of products being replaced may be stored as historical data by the CMA 106. The training module 410 may label the historical data to use as training data. This training data comprises a plurality of labeled sets of products viewed by a plurality of customers in the occurrences. For example, if a customer 104 replaced the product “Smooth Sailing Vanilla Almond Milk” with “Sweet Farms Vanilla Almond Milk,” the training data would include the set of “Smooth Sailing Vanilla Almond Milk” and “Sweet Farms Vanilla Almond Milk” labeled with a “1.”); [0039]-[0040])
a third score indicating how often the respective grocery product and the respective substitute grocery product are purchased by similar types of shoppers; and
a fourth score indicating a similarity between a price of the respective grocery product and a price of the respective substitute grocery product.
As per claim 12, Prasad/Thangali teach the invention of claim 9 as set forth above. Additionally, Prasad/Thangali teach wherein the one or more scores further comprise at least one of:
a fifth score indicating a similarity between a quantity of the respective grocery product and a quantity of the respective substitute grocery product; and a sixth score indicating a similarity between a price per quantity for the respective grocery product and a price per quantity for the respective substitute grocery product (Thangali: [0003] (food and consumables); [0048] (food); [0053]-[0054] (Based on customer data 350, item substitution determination computing device 102 may generate high-velocity substitution scores 330 for one or more high-velocity items. For example, item substitution determination computing device 102 may parse customer data 350 to determine a number of transactions, within one or more of store history data 354 and online history data 356, involving each of a plurality of items over a temporal period (e.g., over a previous month, quarter, year, holiday season, etc.). For example, item substitution determination computing device 102, for an item with a given item ID, item substitution determination computing device 102 may determine a number of store transactions that include the item, and a number of online transactions that include the item, over the temporal period (e.g., for all customers). In addition, and based on the number of store transactions and the number of online transactions for the item, item substitution determination computing device 102 may determine whether the item is a high-velocity item. For example, item substitution determination computing device 102 may sum the number of store transactions and the number of online transactions for the item, and determine whether the sum is at or above a predetermined threshold (e.g., 10,000 transactions). If the sum is at or above the threshold, item substitution determination computing device 102 may generate a label 399 within item data 390 for the item labelling the item as high-velocity. . . . For example, based on the items labelled as high-velocity, item substitution determination computing device 102 may apply any process to generate substitution scores 330 (e.g., ground truth values) between pairs of the high-velocity items.))
The motivation for applying the known techniques of Thangali to the teachings of Prasad is the same as that set forth above, in the rejection of Claim 8.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure:
Kirk, George Alan. “Price promotions and retail store profitability: The influence of direct substitutes, close substitutes, and complementary goods.” Texas Tech University, 1996. – analysis of substitutions during price promotions
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JENNIFER V LEE whose telephone number is (571)272-4778. The examiner can normally be reached Monday - Friday 9AM - 5PM EST.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, JEFFREY A. SMITH can be reached at (571)272-6763. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/JENNIFER V LEE/Examiner, Art Unit 3688
/Jeffrey A. Smith/Supervisory Patent Examiner, Art Unit 3688