Two-step sampling for accelerated decomposition generation
Patent Information
- Application Number
- JP2023543133
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-01-26
- Filing Date
- 2022-01-19
- Publication Date
- 2026-10-30
- Estimated Expiration
- 2042-01-19
AI Technical Summary
【0007】 開示される実施形態は、詳細な説明、添付の請求項、および付随の図(または図面)からより容易に明白になるであろう、他の利点ならびに特徴を有する。図の簡単な紹介が、下記で行われる。
Smart Images

Figure 0007943855000001 
Figure 0007943855000002 
Figure 0007943855000003
Abstract
Description
Technical Field
[0001] (Cross-Reference to Related Applications) This application claims the benefit of U.S. Provisional Application No. 63 / 141,723, filed on January 26, 2021, the disclosure of which is hereby incorporated by reference in its entirety into the present specification.
[0002] (Technical Field) The present disclosure relates generally to the field of machine learning, and more specifically, to de-formulating an ingredient list using single-stage or multi-stage machine learning.
Background Art
[0003] (Background) For many consumer goods (e.g., cosmetics, hair care), it is common knowledge that the ingredient list is listed in order from the most prevalent ingredient to the least prevalent, but the exact amounts of the various ingredients are not known to competitors. Reverse engineering chemical compounds is difficult and even impossible using chemical techniques. Existing essentially non-chemical techniques for performing "de-formulation" (i.e., reverse engineering ingredient amounts based on an ordered ingredient list) are extremely inefficient, resulting in waste and low accuracy.
Summary of the Invention
Means for Solving the Problems
[0004] Structure Overview Systems and methods for decomposing a list of raw materials are disclosed herein by using machine learning (e.g., variational autoencoders (VAEs)) in addition to various sampling techniques (e.g., one-stage sampling and two-stage sampling techniques) for constructing the decomposed raw material quantities. As will become apparent through the following disclosure, the two-stage sampling approach leverages the structure in the VAE latent space to find promising samples more efficiently than random sampling in the original formulation vector space, and therefore represents a more efficient method for decomposition than that which might be possible with single-stage sampling, thereby reducing the processing power and computational resources that would otherwise be required to carry out the decomposition.
[0005] In one embodiment, the decomposition tool receives a raw material list, which includes a sequence of raw materials, and the sequence establishes the relative amount of each raw material based on where each raw material is located within the sequence. The decomposition tool generates multiple formulation vectors, each formulation vector derived by performing random sampling of the raw material list, which indicates the relative occupancy of known candidate raw materials that may be present in the raw material list. The decomposition tool inputs the multiple formulation vectors into a machine learning model, which uses an encoder to generate encoded versions of each of the multiple formulation vectors, and then outputs the multiple reconstructed formulation vectors as derived using a decoder.
[0006] The decomposition tool identifies a subset of multiple reconstructed formulation vectors that have an order matching the sequence, and defines a latent space using encoded versions of the subset of reconstructed formulation vectors. The decomposition tool iteratively samples the latent space until a threshold number of samples that match the ordering constraints corresponding to the sequence is derived, performs statistical aggregation of the samples, and indicates the absolute amount of each ingredient in the ingredient list. Outputs the command. This specification also provides, for example, the following: (Item 1) It is a method, Receiving a list of raw materials, including a sequence of raw materials, wherein the sequence establishes the relative quantity of each raw material based on the location where each raw material is present within the sequence. The method involves generating multiple formulation vectors, each formulation vector being derived by performing random sampling of the raw material list, which represents the relative proportion of known candidate raw materials that may exist within the raw material list. The process involves inputting the aforementioned plurality of formulation vectors into a machine learning model, wherein the machine learning model uses an encoder to generate encoded versions of each of the plurality of formulation vectors, and then outputs the plurality of reconstructed formulation vectors as derived using a decoder. Identifying a subset of the plurality of reconstructed formulation vectors having an order that matches the sequence, Defining the latent space using the encoded version of the reconstructed subset of the formulation vectors, The latent space is sampled iteratively until a threshold number of samples that satisfies the ordering constraints corresponding to the sequence is derived. To perform statistical aggregation of the aforementioned samples, Outputting an indication of the absolute quantity of each raw material in the aforementioned raw material list. Methods that include... (Item 2) The sequence according to item 1, wherein the sequence begins with the raw material having the largest relative amount and ends with the raw material having the smallest relative amount. (Item 3) The machine learning model is a variational autoencoder (VAE) as described in item 1. (Item 4) The method according to item 3, wherein the VAE is trained using training data, which includes formulation recipes labeled based on the resulting competition, and the formulation recipes specify the amount of each ingredient present in each given formulation recipe. (Item 5) The method according to item 3, wherein the encoder outputs a plurality of latent space vectors, and the decoder takes the plurality of latent space vectors as input and outputs the plurality of reconstructed formulation vectors based on the processing of the plurality of latent space vectors. (Item 6) The ordering constraint is initialized to require a reconstructed formulation vector having ingredients in relative amounts in an order that matches the sequence, and the latent space is iteratively sampled. Determining whether the number of reconstructed formulation vectors satisfying the ordering constraints satisfies the threshold number of samples, In response to the determination that the number of reconstructed formulations satisfying the ordering constraint does not satisfy the threshold number of samples, the ordering constraint is relaxed. The method described in item 1, including the method described in item 1. (Item 7) The method according to item 6, wherein relaxing the ordering constraint includes ignoring the smallest ingredient, and further relaxing the ordering constraint in response to a further iteration includes then ignoring the next smallest ingredient. (Item 8) The number of thresholds for a sample is a first number of thresholds for a sample that is smaller than a second number of thresholds for a sample, and the method further responds to the determination that the first threshold is satisfied, A promising latent space is defined by using encoded versions of the individual formulation vectors that conform to the ordering constraint corresponding to the first threshold number of samples, The process of iteratively sampling the promising latent space until a second number of samples satisfying the second threshold and conforming to a second ordering constraint corresponding to the sequence is derived, and performing the statistical aggregation of the samples includes performing the statistical aggregation on the second number of samples. The method described in item 1, including the method described in item 1. (Item 9) A non-transient computer-readable medium comprising memory on which encoded instructions are located, wherein, when the instructions are executed by one or more processors, the instructions cause the one or more processors to perform an operation, Receiving a list of raw materials, including a sequence of raw materials, wherein the sequence establishes the relative quantity of each raw material based on the location where each raw material is present within the sequence. The method involves generating multiple formulation vectors, each formulation vector being derived by performing random sampling of the raw material list, which represents the relative proportion of known candidate raw materials that may exist within the raw material list. The process involves inputting the aforementioned plurality of formulation vectors into a machine learning model, wherein the machine learning model uses an encoder to generate encoded versions of each of the plurality of formulation vectors, and then outputs the plurality of reconstructed formulation vectors as derived using a decoder. Identifying a subset of the plurality of reconstructed formulation vectors having an order that matches the sequence, Defining the latent space using the encoded version of the reconstructed subset of the formulation vectors, The latent space is sampled iteratively until a threshold number of samples that satisfies the ordering constraints corresponding to the sequence is derived. To perform statistical aggregation of the aforementioned samples, Outputting an indication of the absolute quantity of each raw material in the aforementioned raw material list. A non-transient, computer-readable medium containing instructions for performing a certain action. (Item 10) The sequence described above begins with the raw material having the largest relative amount and ends with the raw material having the smallest relative amount, in a non-transient computer-readable medium as described in item 9. (Item 11) The aforementioned machine-learned model is a variational autoencoder (VAE) for non-transient computer-readable media as described in item 9. (Item 12) The VAE is trained using training data, which includes formulation recipes labeled based on the resulting competition, and the formulation recipes specify the amount of each ingredient present in each given formulation recipe, in a non-transient, computer-readable medium as described in item 11. (Item 13) The non-transient computer-readable medium described in item 11, wherein the encoder outputs a plurality of latent space vectors, and the decoder takes the plurality of latent space vectors as input and outputs a plurality of reconstructed formulation vectors based on the processing of the plurality of latent space vectors. (Item 14) The ordering constraint is initialized to require a reconstructed formulation vector having ingredients in relative amounts in an order that matches the sequence, and the instruction for iteratively sampling the latent space is, Determining whether the number of reconstructed formulation vectors satisfying the ordering constraints satisfies the threshold number of samples, In response to the determination that the number of reconstructed formulations satisfying the ordering constraint does not satisfy the threshold number of samples, the ordering constraint is relaxed. A non-transient computer-readable medium as described in item 9, including instructions for performing the following actions. (Item 15) The non-transient computer-readable medium according to item 14, wherein the instructions for relaxing the ordering constraint include instructions for ignoring the smallest ingredient, and the instructions further include instructions for further relaxing the ordering constraint in subsequent iterations by ignoring the next smallest ingredient. (Item 16) The number of thresholds for a sample is a first number of thresholds for a sample that is smaller than a second number of thresholds for a sample, and the instruction further responds to the determination that the first threshold is met, A promising latent space is defined by using encoded versions of the individual formulation vectors that conform to the ordering constraint corresponding to the first threshold number of samples, The process of iteratively sampling the promising latent space until a second number of samples satisfying the second threshold and conforming to a second ordering constraint corresponding to the sequence is derived, and performing the statistical aggregation of the samples includes performing the statistical aggregation on the second number of samples. A non-transient computer-readable medium as described in item 9, including instructions for performing the following actions. (Item 17) It is a system, On top of that, memory with encoded instructions, One or more processors and Equipped with, When one or more processors execute the instruction, Receiving a list of raw materials, including a sequence of raw materials, wherein the sequence establishes the relative quantity of each raw material based on the location where each raw material is present within the sequence. The method involves generating multiple formulation vectors, each formulation vector being derived by performing random sampling of the raw material list, which represents the relative proportion of known candidate raw materials that may exist within the raw material list. The process involves inputting the aforementioned plurality of formulation vectors into a machine learning model, wherein the machine learning model uses an encoder to generate encoded versions of each of the plurality of formulation vectors, and then outputs the plurality of reconstructed formulation vectors as derived using a decoder. Identifying a subset of the plurality of reconstructed formulation vectors having an order that matches the sequence, Defining the latent space using the encoded version of the reconstructed subset of the formulation vectors, The latent space is sampled iteratively until a threshold number of samples that satisfies the ordering constraints corresponding to the sequence is derived. To perform statistical aggregation of the aforementioned samples, Outputting an indication of the absolute quantity of each raw material in the aforementioned raw material list. A system that can perform actions, including those mentioned above. (Item 18) The system according to item 17, wherein the sequence begins with the raw material having the largest relative amount and ends with the raw material having the smallest relative amount. (Item 19) The aforementioned machine learning model is a variational autoencoder (VAE), as described in item 17. (Item 20) The VAE is trained using training data, which includes formulation recipes labeled based on the resulting competition, and the formulation recipes specify the amount of each ingredient present in each given formulation recipe, as described in item 19.
[0007] The disclosed embodiments have other advantages and features that will become more readily apparent from the detailed description, the appended claims, and the accompanying figures (or drawings). A brief introduction to the figures is given below. [Brief explanation of the drawing]
[0008] [Figure 1] Figure 1 illustrates one embodiment of an environment for interfacing with a client device that includes a decomposition tool.
[0009] [Figure 2] Figure 2 illustrates one embodiment of an exemplary module and database for a decomposition tool.
[0010] [Figure 3] Figure 3 illustrates an exemplary data flow for decomposing a raw material list using single-step or two-step machine learning.
[0011] [Figure 4] Figure 4 is a block diagram illustrating the components of an exemplary machine capable of reading instructions from a machine-readable medium and executing them within a processor (or controller).
[0012] [Figure 5] Figure 5 is an illustrative flowchart of the process for decomposing a recipe.
[0013] [Figure 6] Figure 6 depicts an exemplary user interface for inputting a recipe and receiving the demixed recipe as output based on machine learning demixing. [Modes for carrying out the invention]
[0014] (Detailed explanation) The figures and the following description relate to preferred embodiments for illustrative purposes only. It should be noted from the following discussion that alternative embodiments of the structures and methods disclosed herein will be readily recognizable as viable alternatives that can be adopted without departing from the principles of the claimed ones.
[0015] Herein, several embodiments will be referred to in detail, the embodiments of which are illustrated in the accompanying figures. Note that whenever possible, similar or identical reference numerals may be used in the figures to indicate similar or identical functionality. The figures are for illustrative purposes only and depict embodiments of the disclosed system (or method). Those skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be adopted without departing from the principles described herein.
[0016] Functionality of demixing tools Figure 1 illustrates one embodiment of an environment for interfacing with a client device that includes a decomposition tool. Figure 1 includes a client device 110, a network 120, and a decomposition tool 130. The client device 110 can be operated by any user who wishes to decompose a recipe. For example, a user inputs a recipe having an ordered list of ingredients into a user interface (for example, as discussed below with respect to Figure 6), and these parameters are transmitted to the decomposition tool 130, which can decompose the recipe using the system and method disclosed below with respect to Figure 2-5 via the network 120 (which may be any network such as the Internet). In one embodiment, the decomposition tool 130 operates partially or completely as a module of the client device 110 (for example, as a downloaded application).
[0017] Network 120 may be any network, such as the Internet, a wide area network, a local area network, a cellular network, or any other means of data communication, through which recipes may be transmitted from client devices 110 and decomposition lists may be transmitted from decomposition tools 130.
[0018] The decomposition tool 130 uses machine learning techniques to decompose the recipe provided by the client device 110. These techniques are discussed in more detail below with respect to Figure 2-4. After the recipe has been decomposed, the decomposition tool 130 transmits the decomposed recipe to the client device 110 (for example, using the network 120).
[0019] Figure 2 illustrates one embodiment of exemplary modules and databases for a decomposition tool. As depicted in Figure 2, the decomposition tool 130 includes a VAE training module 231, a raw material list processing module 232, a sampling module 233, a recipe matching module 234, a subspace determination module 235, a VAE resampling module 236, a statistical aggregation module 237, and a post-processing module 238, as well as VAE training data 240 and a model database 241. The modules and databases depicted in Figure 2 are illustrative only, and fewer or more modules may be used to achieve the functionality described herein. Furthermore, the modules and databases do not need to be in a single location, but may be distributed across the environment 100 and communicate with each other using a network 120.
[0020] The VAE training module 231 retrieves training data from one or more databases (e.g., VAE training data 240). The VAE training data 240 is described as part of the decomposition tool 130, but may be located partially or entirely outside the decomposition tool 130 (e.g., a third-party database, or distributed between decomposition tools 130 and across one or more third-party databases). The training data may include known formulation recipes, such as those labeled by the composition resulting from a given formulation recipe. A formulation recipe specifies the amount of each ingredient present in the formulation. In some embodiments, the formulation recipe may include additional information such as formulation properties and formulation processing information. The composition labeling may be general and / or specific (e.g., "shampoo" is a general label, "anti-dandruff shampoo" is more specific, and "[trademark name][product name] shampoo" is even more specific).
[0021] In one embodiment, the VAE training module 231 constructs an M×N matrix using at least a portion of the training data. In such an embodiment, M is defined as the number of formulation ingredients traversed across the training data, and N is the number of rows in the matrix, where each formulation ingredient in each training data example takes its individual row of data, thus resulting in complete training data of dimension M×N.
[0022] Following the acquisition of training data, the VAE training module 231 generates and trains a VAE. The VAE has two halves, namely an encoder and a decoder. The VAE training module 231 inputs the formulation vectors into the encoder (for example, individually or as part of a matrix). The formulation vectors are representations of the ingredients that are part of a given formulation and those that are not. For example, the formulation vector for a formulation having five ingredients may include values representing the quantities of each of those five ingredients, and may also include null values for other ingredients that are part of the training data. The encoder projects each formulation vector (for example, each row of a matrix) onto a lower-dimensional (d-dimensional) latent space. The VAE training module 231 inputs the latent space projections into the decoder, which in turn reconstructs the input formulation as faithfully as possible and outputs the reconstructions.
[0023] The encoder is trained to take a formulation vector (e.g., a vector of dimension M) as input and output a latent space vector (e.g., a vector of dimension d) from it. The decoder is trained to take a latent space vector (e.g., a vector of dimension d) as input and output a reconstructed formulation vector (e.g., a vector of dimension M).
[0024] A VAE may have any number of layers within its encoder or decoder layers. In one embodiment, a VAE may have three encoder layers and three decoder layers, all tightly connected. The latent space of a VAE may have any number of dimensions less than the total number of raw materials, and in one embodiment, there may be M = 1,000 raw materials of interest, and the latent space may have a dimension of d = 6. In one embodiment, the final layer of the decoder may include a softmax activation function that can be used to ensure that the raw material fractions total 100%. The VAE training module 231 trains the VAE on training data (e.g., matrices) to reconstruct the training data as accurately as possible. The VAE training module 231 may store one or more trained VAEs in the model database 241.
[0025] The raw material list processing module 232 receives as input an ordered list of raw materials (i.e., from most abundant to least abundant) without associated raw material fractions, e.g., water, NaCl, and KCl. The raw material list processing module 232 determines that the ordering is done from the largest fraction to the smallest fraction. In the above embodiment, based on the order in which the list is received, there is more water than NaCl in the formulation and more NaCl than KCl in the formulation. The raw material list processing module 232 may receive lists from manual input (e.g., the user typing or speaking the raw materials) into a user interface, or it may receive lists based on user input for products that have publicly available raw material lists. For example, the raw material list processing module 232 may receive an identifier for a given bottle of shampoo (e.g., the user scanning the product's barcode or QR code® using the application of the decomposition tool 130), and based on that, it may search one or more databases for raw material lists corresponding to that product.
[0026] The sampling module 233 generates random samples from the compounding space. In one embodiment, to generate random samples, the sampling module 233 assigns randomized occupancy rates to ingredients appearing in the received ingredient list. The sampling module 233 may assign zero occupancy rates to candidate ingredients that are known within the system but are not part of the received ingredient list. In one embodiment, random samples are generated by sampling from a Dirichlet distribution such that all ingredient fractions sum to 1. The sampling module 233 may generate any number of random samples. In one embodiment, 10,000 initial random samples are generated. The quantity of random samples may be determined by the administrator, or is random, or is randomized itself within a defined range of samples. In an optional embodiment, the samples are not exactly random, but are instead random within the constraint that the occupancy rates assigned to each given ingredient map to an order mandated by the ingredient list. For example, if the list of raw materials is water, NaCl, and KCl, a constraint may be applied that the random proportions must follow a rule such that more proportions are applied to water than to NaCl, and more proportions are applied to NaCl than to KCl.
[0027] The sampling module 233 may generate a reconstructed formulation vector using random samples. In one embodiment, the sampling module 233 receives each random sample as input through a trained VAE, and each random sample is processed first by the encoder of the trained VAE, and then by its decoder. Once each random sample has been processed by the encoder, an encoded version of the vector is optionally stored for further processing in the two-stage embodiment described below. The sampling module 233 receives the reconstructed formulation vector for each random sample as output from the trained VAE (e.g., from the decoder).
[0028] The recipe matching module 234 identifies vectors from the reconstructed formulation vectors that match the ingredient sequence list. To do this, the recipe matching module 234 compares the reconstructed formulation vectors with the ingredient sequence list. Specifically, the recipe matching module 234 compares the ingredient sequence of each reconstructed formulation vector with the initially entered target sequence. The recipe matching module 234 determines a subset of reconstructed formulation vectors that exactly match the initially entered target sequence. The recipe matching module 234 determines whether the number of reconstructed formulation vectors in the subset satisfies a threshold. The threshold may be set by the administrator, may be a default (e.g., a default of 1 if the determination is satisfied if any match exists), or may be determined according to a heuristic method. In response to a determination that the threshold is not satisfied, the recipe matching module 234 relaxes one or more constraints that require an exact match of the sequence.
[0029] The manner in which constraints may be relaxed may be defined by the administrator or a heuristic method. In an exemplary embodiment, when relaxing one or more constraints, the recipe matching module 234 may first determine whether a threshold number of matches exists, ignoring the minimum number of ingredients (i.e., the first M-1 maximum ingredients, where M is the number of ingredients). If none are found, the system may further relax the constraint to M-2, then to M-3, and so on, until a threshold number of matches is met. Any other constraints may also be determined to be relaxed when iteratively pursuing matches. For example, instead of relaxing from M-1 to M-2, etc., the recipe matching module 234 may relax to M-1, then to M-2 and M-1, then to M-3, then to M-3 and M-1, and so on, based on a programmed heuristic method.
[0030] The term “single-step sampling” refers to an embodiment in which only one set of reconstructed formulation vectors is identified and subjected to the recipe matching module 234, as used herein. In embodiments in which single-step sampling is used, if only one reconstructed formulation vector matches, the recipe matching module 234 may determine that the matching reconstructed formulation vector represents a decomposed list of ingredients. If more than one match is found, the recipe matching module 234 may perform a statistical operation across the matches (e.g., averaging across the matching vectors or any other statistical operation) and use the result of the statistical operation to represent a decomposed list of ingredients.
[0031] Direct, one-step sampling (such as that performed directly from the formulation space, as carried out by the sampling module 233 and the recipe matching module 234) can be computationally inefficient in scenarios where very few reconstructed formulation vectors match the correct ingredient order. Such scenarios result in a wasteful use of a great deal of computational power in iteratively relaxing constraints and reanalyzing a vast number of reconstructed formulation vectors until a match is found.
[0032] In some embodiments where further computational efficiency is desired, a two-stage sampling system is employed. The term “two-stage sampling” as used herein refers to embodiments in which a latent subspace is sampled, then a match is performed to a lower threshold than that which would be used for one-stage sampling, and then a second sampling is performed in a promising subspace of the latent space based on the match. The efficiency obtained using a two-stage sampling system is derived from the number of random samples required for a certain quality of match. For example, using the one-stage system described above, 20,000 random points may be sampled, in which case the best identified matches would be M-4 (meaning 4 raw materials are not matched). This requires a huge amount of processing power to iteratively explore the space after relaxing many constraints. Alternatively, using the two-stage sampling system described below, the system can first sample a smaller number (e.g., 10,000) to identify promising latent areas (latent areas based on a small number of matches, such as thresholds substantially smaller than those used in one-stage sampling). The system may then sample another, for example, 10,000, from the promising latent areas, in which case the system is far more likely to find better matches (e.g., M-2) at the same or lower computational cost.
[0033] Following a two-step approach, the subspace determination module 235 defines a latent subspace using the corresponding latent space encoding. That is, the subspace determination module 235 inputs the match into the VAE encoder but has not yet decoded the latent subspace. For example, as described above with respect to the VAE training module 231, the VAE may store the encoder output for subsequent use in the two-step approach prior to decoding the encoder output.
[0034] In one embodiment, the subspace determination module 235 defines the latent subspace as the minimum to maximum range of the latent space dimensions in the encoded states of all matches. That is, the sampling module 233 and the recipe matching module 234 may operate in the manner described above, and in response to detecting a threshold number of matches (e.g., a small threshold such as only one or a few matches), the constraint relaxation is completed (earlier than would occur if a higher threshold of matches were pursued, such as in a one-step approach). The subspace determination module 235 then determines the latent subspace based on this small number of matches using the encoded states of the matching reconstructed formulation vectors. In one embodiment, the minimum and maximum ranges may be padded by coefficients to ensure complete coverage (e.g., by an additional 0.5 inches in each direction, or by any number determined by the administrator or heuristic method).
[0035] The VAE resampling module 236 generates randomized vectors by randomly sampling from a latent subspace (a promising latent space that is more likely to yield a better match, using less computational power compared to a one-step approach). In one embodiment, resampling is performed using an already encoded vector, saved from the encoder output when the reconstructed formulation vector is generated. In another embodiment, the VAE resampling module 236 generates random samples by uniform sampling from the latent subspace. The latent subspace is constrained to a narrow region based on the initial match (e.g., a region of the latent subspace from the encoded vector corresponding to a lower threshold match vector in a two-step process), which can lead to samples that have a higher probability of matching the ordering constraints. These benefits result in dramatic improvements in both the speed and quality of sample generation.
[0036] The VAE resampling module 236 may then pass these samples from the latent subspace through decoding half of the VAE to generate a reconstructed formulation vector. As previously described, the reconstructed formulation vector is checked for matches in ordering using the same gradual relaxation method described above with respect to the recipe matching module 234. The VAE resampling module 236 generates samples by searching for matches until a minimum threshold number of matches is identified. The minimum may be defined by the administrator as X samples (e.g., X=25) or by a heuristic method.
[0037] Improved efficiency is achieved in this process. For example, there is a proportional cost in that greater accuracy requires further sampling and calculation. The two-stage approach is computationally more efficient than the one-stage approach with respect to a given accuracy by using this second sampling stage. Therefore, if the system should maintain a constant raw material matching filter threshold (i.e., M-4 raw materials must match), this will require, on average, a much smaller total number of samples when using the two-stage sampling approach than when using the one-stage sampling approach.
[0038] In addition, sampling from latent space is inherently more computationally efficient than sampling from formulation space because it uses far less memory and fewer network resources. Therefore, sampling in formulation space to first find promising spaces, and then sampling promising spaces within latent space, is more computationally efficient, even when taking the same number of samples as in a single-stage embodiment.
[0039] As an example, the demixing tool 130 may aim to demix using the average raw material match for the first M-4 raw materials across the entire dataset. If the demixing tool 130 attempts demixing on 10 randomly selected candidates to adjust the number of random samples, this may require 100,000 single-stage samples to achieve accurate results compared to 10,000 + 10,000 two-stage samples. In addition, accuracy can be enhanced by having the demixing tool 130 add more second-stage samples, so 10,000 and 90,000 for a total of 100,000, but this is still not computationally more expensive than 100,000 single-stage samples, as sampling 90,000 in the latent space is, on average, much more accurate and efficient than sampling everything in the blending space. Another measure of accuracy involves including the number of target matches X as input by the user or administrator, which functions in a nearly identical manner, namely, the two-step process will require a smaller total number of samples to match the required X than the one-step process. Ultimately, the two-step process will either be more accurate at the same cost, faster at the same accuracy, or a combination of both, and the choice of the balance is left to the user.
[0040] Regardless of whether a one-step or two-step approach is used, if more than one match is determined, the statistical aggregation module 237 aggregates the matched samples by using statistical operations on the raw material fractions of X samples (for example, to generate one formulation vector). In one embodiment, this statistical aggregation may be performed by averaging the raw material fractions across X samples, but any statistical operation is within the scope of this disclosure.
[0041] In some embodiments, following statistical aggregation, the reconstructed formulation vector may have non-zero ingredient fractions for ingredients that were not present in the initial ingredient list. To address this issue, the post-processing module 238 may set ingredients that do not appear in the ingredient list to 0.0, and then renormalize the vector so that its sum is 1. The resulting formulation vector represents the final de-compounding.
[0042] Figure 3 illustrates an exemplary dataflow for decomposing an ingredient list using single-stage or two-stage machine learning. While dataflow 300 focuses on several specific use cases and constraints, this is for convenience and ease of illustration only, and any modifications of the operation described herein are within the scope of dataflow 300. Dataflow 300 begins with a training stage ("Stage A"), during which the decomposition tool 130 acquires training data of an existing formulation recipe, including ingredient fractions (e.g., from VAE training data 240) (305). The decomposition tool 130 then trains a VAE (e.g., using a VAE training module 231) to reproduce the training data with minimal loss in a normal latent spatial distribution (310).
[0043] The data flow 300 proceeds to stage B, which describes a step unique to the one-stage approach but also contributing to the two-stage approach as desired. The decomposition tool 130 receives a list of raw materials with a defined order, but omitting the precise amounts of each given raw material (e.g., using the raw material list processing module 232) (315). The decomposition tool 130 then performs random sampling from a Dirichlet distribution, for example, (e.g., using the sampling module 233) to ensure that the other raw material fractions sum up to 1, using zero to represent the amount of a raw material that is not present (320). The decomposition tool 130 then feeds the samples through a trained VAE (325) and filters the samples to a recipe that follows a known ordering (330), and if nothing is found, the constraints are relaxed until a threshold number of matches is found (e.g., as performed using the recipe matching module 234). In a one-step approach, the filtered recipe (or a statistically aggregated recipe, for example) will be output as the final decomposition product. In a two-step approach, data flow 300 proceeds to step C.
[0044] In step C, the decomposition tool 130 uses matches to define a new subspace within the VAE latent space (e.g., identification of a promising subspace, as performed by the subspace determination module 235) (335). The decomposition tool 130 proceeds to sample from the VAE latent subspace until at least a threshold number of samples (e.g., a lower threshold used for a two-step approach compared to a one-step approach, as performed by the resampling module 236) that matches the ordering constraints is found (340). The decomposition tool 345 then performs statistical operations on the matched samples (e.g., as performed by the statistical aggregation module 237) and post-processes the resulting vectors to obtain the final decomposition raw material amounts (e.g., as performed by the post-processing module 238) (350).
[0045] Figure 4 is a block diagram illustrating components of an exemplary machine capable of reading instructions from a machine-readable medium and executing them within a processor (or controller). Specifically, Figure 4 shows a schematic representation of a machine in an exemplary form of a computer system 400 in which program code (e.g., software) can be executed to cause the machine to perform one or more of the methodologies discussed herein. The program code may consist of instructions 424 that can be executed by one or more processors 402. In alternative embodiments, the machine may operate as a standalone device or be connected to other machines (e.g., networked). In a networked deployment, the machine may operate within the capacity of a server machine or client machine in a server / client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
[0046] A machine can be a server computer, client computer, personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), mobile phone, smartphone, web device, network router, switch or bridge, or any machine capable of executing (sequentially or separately) Instruction 424 which defines the actions to be taken by such machine. Furthermore, although only a single machine is illustrated, the term “machine” should also be understood to include any set of machines that individually or collectively execute Instruction 424 and implement one or more of the methodologies discussed herein.
[0047] The exemplary computer system 400 includes a processor 402 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), one or more application-specific integrated circuits (ASICs), one or more radio frequency integrated circuits (RFICs), or any combination thereof), main memory 404, and static memory 406, which are configured to communicate with each other via a bus 408. The computer system 400 may further include a visual display interface 410. The visual interface may include software drivers that enable the display of a user interface on a screen (or display). The visual interface may display the user interface directly (e.g., on a screen) or indirectly on a surface, window, or equivalent (e.g., via a visual projection unit). For ease of discussion, the visual interface may be described as a screen. The visual interface 410 may include, or interface with, a touch-enabled screen. The computer system 400 may also include an alphanumeric input device 412 (e.g., a keyboard or touchscreen keyboard), a cursor control device 414 (e.g., a mouse, trackball, joystick, motion sensor, or other pointing device), a memory unit 416, a signal generating device 418 (e.g., a speaker), and a network interface device 420, which are also configured to communicate via the bus 408.
[0048] The memory unit 416 includes a machine-readable medium 422 on which instructions 424 (e.g., software) embodying one or more of the methodologies or functions described herein are stored. The instructions 424 (e.g., software) may also reside in the main memory 404 or in the processor 402 (e.g., in the processor's cache memory) during their execution by the computer system 400, main memory 404, and processor 402, which also constitute the machine-readable medium, either entirely or at least partially. The instructions 424 (e.g., software) may be transmitted or received via the network 426 and the network interface device 420.
[0049] Although the machine-readable medium 422 is shown in the exemplary embodiments as a single medium, the term “machine-readable medium” should be understood to include a single medium or multiple mediums (e.g., a centralized or distributed database, or associated caches and servers) capable of storing instructions (e.g., instructions 424). The term “machine-readable medium” should also be understood to include any medium capable of storing instructions for machine execution (e.g., instructions 424) that causes a machine to perform one or more of the methodologies disclosed herein. The term “machine-readable medium” includes, but is not limited to, data repositories in the form of solid-state memory, optical media, and magnetic media.
[0050] Figure 5 is an illustrative flowchart of the process for decomposing a recipe. The elements of process 500 may be carried out by a processor 402 executing instruction 424. The elements of process 500 are illustrative only and may be carried out in any order or may include fewer or additional elements as described elsewhere in this disclosure. Process 500 begins with the decomposing tool 130 receiving a raw materials list (502) containing a sequence of raw materials (e.g., using a raw materials list processing module 232), where the sequence establishes the relative amount of each raw material based on where each raw material is located in the sequence. The decomposing tool 130 may then generate a plurality of formulation vectors (504) (e.g., using a sampling module 233), each formulation vector derived by performing random sampling of the raw materials list, each representing the relative occupancy of known candidate raw materials that may be present in the raw materials list.
[0051] The decomposition tool 130 may then input the multiple preparation vectors into a machine learning model (e.g., a VAE from the model database 241) (506), which uses an encoder to generate encoded versions of each of the multiple preparation vectors, and then outputs the multiple reconstructed preparation vectors as derived using a decoder (e.g., based on training performed by the VAE training module 231). The decomposition tool 130 may then identify a subset of the multiple reconstructed preparation vectors having an order that matches the sequence (e.g., using the recipe matching module 234) (508), and then define a latent space using the encoded versions of the subset of reconstructed preparation vectors (e.g., using the subspace determination module 235) (510).
[0052] The decomposition tool 130 may iteratively sample the latent space (for example, using the VAE resampling module 236) until a threshold number of samples that satisfy the ordering constraints corresponding to the sequence is derived (512). In response to the threshold being satisfied, the decomposition tool 130 may perform statistical aggregation of the samples (for example, using the statistical aggregation module 237) (514), and may output an indication of the absolute amount of each raw material in the raw material list (for example, using a user interface as further described below with respect to Figure 6) (516).
[0053] Figure 6 depicts an exemplary user interface for inputting a recipe and receiving a decomposed recipe as output based on machine learning decomposition. The user interface 600 may be displayed on a client device 110 and includes an input option 610 and an output option 620. The input option 610 is depicted as a dropdown menu that allows selection for inputting an ordered list of ingredients. Exemplary selections include manually typing (or speaking) within the ingredient list, typing in a product name (by which an ingredient search will be performed), scanning a barcode, and scanning a QR code®. Other selections for obtaining the ingredient list (e.g., capturing an image of the ingredient list, or using optical character recognition to decompose the ingredients explicitly shown therein) are also within the scope of this disclosure. After the ingredient list has been obtained (e.g., either via manual input or search), the output option 620 takes in the ratio of the ingredient list as determined by the decomposition tool 130.
[0054] Additional configuration considerations Throughout this specification, multiple instances may implement a component, operation, or structure described as a single instance. While individual operations of one or more methods are illustrated and described as separate operations, one or more of these operations may be performed in parallel, and it is not required that the operations be performed in the order they are illustrated. Structures and functionalities presented as separate components in exemplary configurations may be implemented as combined structures or components. Similarly, structures and functionalities presented as single components may be implemented as separate components. These and other variations, modifications, additions, and improvements are within the scope of the subject matter of this specification.
[0055] One embodiment described herein includes logic or several components, modules, or mechanisms. A module may be either a software module (e.g., code embodied on a machine-readable medium or in a transmitted signal) or a hardware module. A hardware module is a tangible unit capable of performing an operation and may be configured or arranged in a certain manner. In exemplary embodiments, one or more computer systems (e.g., standalone, client, or server computer systems) or one or more hardware modules of a computer system (e.g., processors or groups of processors) may be configured by software (e.g., applications or application portions) as hardware modules that operate to perform an operation as described herein.
[0056] In various embodiments, hardware modules may be mechanically or electronically implemented. For example, a hardware module may comprise a dedicated network or logic (e.g., a special-purpose processor such as a field-programmable gate array (FPGA) or application-specific integrated circuit (ASIC)) that is permanently configured to perform a certain operation. A hardware module may also comprise a programmable logic or network (e.g., contained within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform a certain operation. It should be understood that decisions to mechanically implement a hardware module within a dedicated and permanently configured network or a temporarily configured network (e.g., configured by software) may be driven by cost and time considerations.
[0057] Therefore, it should be understood that the term “hardware module” encompasses a tangible entity that is physically constructed, permanently configured (e.g., wired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations as described herein. As used herein, “hardware implementation module” refers to a hardware module. When considering embodiments in which a hardware module is temporarily configured (e.g., programmed), each hardware module does not need to be configured or instantiated in any single instance within a given time. For example, if a hardware module comprises a general-purpose processor configured using software, the general-purpose processor may be configured as separate, different hardware modules at different times. The software, therefore, may configure the processor to constitute a particular hardware module in one instance of time and different hardware modules in different instances of time.
[0058] Hardware modules can provide information to and receive information from other hardware modules. Therefore, the hardware modules described can be considered as being communicatively coupled. If multiple such hardware modules exist simultaneously, communication may be achieved through signal transmission connecting the hardware modules (e.g., via appropriate circuits and buses). In embodiments where multiple hardware modules are configured or instantiated at different times, communication between such hardware modules may be achieved, for example, through the storage and retrieval of information in a memory structure that multiple hardware modules have access to. For example, one hardware module may perform an operation and store the output of that operation in a communicatively coupled memory device. Further hardware modules may then, at a later time, access the memory device, read the stored output, and process it. Hardware modules may also initiate communication with input or output devices and operate based on resources (e.g., a collection of information).
[0059] Various operations of the exemplary methods described herein may be performed, at least in part, by one or more processors that are temporarily (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute a processor implementation module that operates to perform one or more operations or functions. In some exemplary embodiments, the modules referred to herein may comprise a processor implementation module.
[0060] Similarly, the methods described herein may be at least partially processor-implemented. For example, at least some of the operations of the methods may be performed by one or more processors or processor-implemented hardware modules. The performance of some of the operations may be distributed among one or more processors and deployed across several machines, rather than residing within a single machine. In some exemplary embodiments, the processor or a group of processors may be located in a single location (e.g., in a home environment, an office environment, or a server farm), while in other embodiments, the processors may be distributed across several locations.
[0061] One or more processors may also operate to support the performance of related operations within a “cloud computing” environment or as “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as an embodiment of a machine, including processors), and these operations may be accessible over a network (e.g., the Internet) and over one or more suitable interfaces (e.g., application programming interfaces (APIs)).
[0062] The performance of certain operations may be distributed across one or more processors and deployed not only within a single machine but also across several machines. In some exemplary embodiments, one or more processors or processor implementation modules may be located within a single geographical location (e.g., a home environment, an office environment, or a server farm). In other exemplary embodiments, one or more processors or processor implementation modules may be distributed across several geographical locations.
[0063] Several parts of this specification are presented in terms of algorithms or symbolic representations of operations on data stored as bits or binary digital signals in machine memory (e.g., computer memory). These algorithms or symbolic representations are examples of techniques used by those skilled in the field of data processing to convey the importance of their operations to others skilled in the art. As used herein, “algorithm” is a self-consistent sequence of operations or similar operations that lead to a desired result. In this context, algorithms and operations involve the physical manipulation of physical quantities. Typically, but not necessarily, such quantities may take the form of electrical, magnetic, or optical signals that can be stored, accessed, transferred, combined, compared, or otherwise manipulated by a machine. Sometimes, primarily for reasons of general use, it is convenient to refer to such signals using terms such as “data,” “content,” “bit,” “value,” “element,” “symbol,” “character,” “term,” “number,” “numerical value,” or equivalents. However, these terms are merely convenient labels and should be associated with appropriate physical quantities.
[0064] Unless otherwise specifically stated, any discussion herein using terms such as “process,” “calculate,” “calculate,” “determine,” “present,” “display,” or equivalents may refer to an action or process of a machine (e.g., a computer) that manipulates or transforms data expressed as a physical (e.g., electronic, magnetic, or optical) quantity in one or more memories (e.g., volatile memory, non-volatile memory, or a combination thereof), registers, or other machine components that receive, store, transmit, or display information.
[0065] As used herein, any reference to “one embodiment” or “a particular embodiment” means that certain elements, features, structures, or characteristics described in relation to an embodiment are included in at least one embodiment. Expressions of the phrase “in one embodiment” in various places within this specification do not necessarily all refer to the same embodiment.
[0066] Some embodiments, along with their derivatives, may be described using the expressions “combined” and “connected.” It should be understood that these terms are not intended to be synonyms of each other. For example, some embodiments may be described using the term “connected” to indicate that two or more elements are directly physically or electrically connected to each other. In other embodiments, some embodiments may be described using the term “combined” to indicate that two or more elements are directly physically or electrically in contact with each other. However, the term “combined” may also mean that two or more elements do not directly contact each other, but still cooperate or interact with each other. Embodiments are not limited in this context.
[0067] As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having,” or any other variations thereof are intended to encompass non-exclusive inclusion. For example, a process, method, article, or apparatus comprising a list of elements is not necessarily limited to those elements alone and may include other elements not expressly enumerated or specific to such process, method, article, or apparatus. Furthermore, unless expressly stated in contrast, “or” refers to an “or” of inclusion, not an “exclusive or.” For example, condition A or B is satisfied by any one of the following: A is true (or exists) and B is false (or does not exist); A is false (or does not exist) and B is true (or exists); and both A and B are true (or exist).
[0068] In addition, the use of "a" or "an" is employed to describe the elements and components of the embodiments herein. This is done solely for convenience and to give a general meaning to the invention. This description should be read as including one or at least one singular noun, and including plural nouns unless it is evident that they are meant otherwise.
[0069] Upon careful reading of this disclosure, those skilled in the art will understand, through the principles disclosed herein, further additional alternative structures and functional designs for systems and processes for using machine learning to generate capability maps. Therefore, while specific embodiments and applications are illustrated and described, it should be understood that the disclosed embodiments are not limited to the precise arrangements and components disclosed herein. It will be apparent to those skilled in the art that various modifications, changes, and variations may be made in the arrangement, operation, and details of the methods and apparatus disclosed herein without departing from the spirit and scope defined in the appended claims.
Claims
1. It is a method, Receiving a list of raw materials, including a sequence of raw materials, wherein the sequence establishes the relative quantity of each raw material based on the location where each raw material is present within the sequence. The method involves generating multiple formulation vectors, each formulation vector being derived by performing random sampling of the raw material list, which represents the relative proportion of known candidate raw materials that may exist within the raw material list. The process involves inputting the aforementioned plurality of formulation vectors into a machine learning model, wherein the machine learning model uses an encoder to generate encoded versions of each of the plurality of formulation vectors, and then outputs the plurality of reconstructed formulation vectors as derived using a decoder. Identifying a subset of the plurality of reconstructed formulation vectors having an order that matches the sequence, Defining the latent space using the encoded version of the reconstructed subset of the formulation vectors, The latent space is sampled iteratively until a threshold number of samples that satisfies the ordering constraints corresponding to the sequence is derived. By performing statistical aggregation of the aforementioned samples, a formulation vector representing the absolute amount of each ingredient in the ingredient list is generated, The formulation vector is output as an indication of the absolute amount of each raw material in the raw material list. Methods that include...
2. The method according to claim 1, wherein the sequence begins with the raw material having the maximum relative amount and ends with the raw material having the minimum relative amount.
3. The method according to claim 1, wherein the machine learning model is a variational autoencoder (VAE).
4. The method according to claim 3, wherein the VAE is trained using training data, which includes formulation recipes labeled based on the resulting competition, and the formulation recipes specify the amount of each ingredient present in each given formulation recipe.
5. The method according to claim 3, wherein the encoder outputs a plurality of latent space vectors, and the decoder takes the plurality of latent space vectors as input and outputs a plurality of reconstructed formulation vectors based on the processing of the plurality of latent space vectors.
6. The ordering constraint is initialized to require a reconstructed formulation vector having ingredients in relative amounts in an order that matches the sequence, and the latent space is iteratively sampled. Determining whether the number of reconstructed formulation vectors satisfying the ordering constraints satisfies the threshold number of samples, In response to the determination that the number of reconstructed formulations satisfying the ordering constraint does not satisfy the threshold number of samples, the ordering constraint is relaxed. The method according to claim 1, including the method described in claim 1.
7. The method according to claim 6, wherein relaxing the ordering constraint includes ignoring the smallest ingredient, and further relaxing the ordering constraint in response to a further iteration includes then ignoring the smallest ingredient.
8. The number of thresholds for a sample is a first number of thresholds for a sample that is smaller than a second number of thresholds for a sample, and the method further responds to the determination that the first threshold is satisfied, A promising latent space is defined by using encoded versions of the individual formulation vectors that conform to the ordering constraint corresponding to the first threshold number of samples, The process of iteratively sampling the promising latent space until a second number of samples satisfying the second threshold and conforming to a second ordering constraint corresponding to the sequence is derived, and performing the statistical aggregation of the samples includes performing the statistical aggregation on the second number of samples. The method according to claim 1, including the method described in claim 1.
9. A non-transient computer-readable medium comprising memory on which encoded instructions are located, wherein, when the instructions are executed by one or more processors, the instructions cause the one or more processors to perform an operation, Receiving a list of raw materials, including a sequence of raw materials, wherein the sequence establishes the relative quantity of each raw material based on the location where each raw material is present within the sequence. The method involves generating multiple formulation vectors, each formulation vector being derived by performing random sampling of the raw material list, which represents the relative proportion of known candidate raw materials that may exist within the raw material list. The process involves inputting the aforementioned plurality of formulation vectors into a machine learning model, wherein the machine learning model uses an encoder to generate encoded versions of each of the plurality of formulation vectors, and then outputs the plurality of reconstructed formulation vectors as derived using a decoder. Identifying a subset of the plurality of reconstructed formulation vectors having an order that matches the sequence, Defining the latent space using the encoded version of the reconstructed subset of the formulation vectors, The latent space is sampled iteratively until a threshold number of samples that satisfies the ordering constraints corresponding to the sequence is derived. By performing statistical aggregation of the aforementioned samples, a formulation vector representing the absolute amount of each ingredient in the ingredient list is generated, The formulation vector is output as an indication of the absolute amount of each raw material in the raw material list. A non-transient, computer-readable medium containing instructions for performing a certain action.
10. The non-transient computer-readable medium according to claim 9, wherein the sequence begins with the raw material having the largest relative amount and ends with the raw material having the smallest relative amount.
11. The non-transient computer-readable medium according to claim 9, wherein the machine-learned model is a variational autoencoder (VAE).
12. The non-transient computer-readable medium according to claim 11, wherein the VAE is trained using training data, which includes formulation recipes labeled based on the resulting competition, and the formulation recipes specify the amount of each ingredient present in each given formulation recipe.
13. The non-transient computer-readable medium according to claim 11, wherein the encoder outputs a plurality of latent space vectors, and the decoder takes the plurality of latent space vectors as input and outputs a plurality of reconstructed formulation vectors based on the processing of the plurality of latent space vectors.
14. The ordering constraint is initialized to require a reconstructed formulation vector having ingredients in relative amounts in an order that matches the sequence, and the instruction for iteratively sampling the latent space is, Determining whether the number of reconstructed formulation vectors satisfying the ordering constraints satisfies the threshold number of samples, In response to the determination that the number of reconstructed formulations satisfying the ordering constraint does not satisfy the threshold number of samples, the ordering constraint is relaxed. A non-transient computer-readable medium according to claim 9, including instructions for performing the following.
15. The non-transient computer-readable medium according to claim 14, wherein the instructions for relaxing the ordering constraint include instructions for ignoring the smallest ingredient, and the instructions further include instructions for further relaxing the ordering constraint in subsequent iterations by ignoring the next smallest ingredient.
16. The number of thresholds for the sample is a first number of thresholds for the sample that is smaller than a second number of thresholds for the sample, and the instruction further responds to the determination that the first threshold is met, A promising latent space is defined by using encoded versions of the individual formulation vectors that conform to the ordering constraint corresponding to the first threshold number of samples, The process of iteratively sampling the promising latent space until a second number of samples satisfying the second threshold and conforming to a second ordering constraint corresponding to the sequence is derived, and performing the statistical aggregation of the samples includes performing the statistical aggregation on the second number of samples. A non-transient computer-readable medium according to claim 9, including instructions for performing the following.
17. It is a system, On top of that, memory with encoded instructions, One or more processors and Equipped with, When one or more processors execute the instruction, Receiving a list of raw materials, including a sequence of raw materials, wherein the sequence establishes the relative quantity of each raw material based on the location where each raw material is present within the sequence. The method involves generating multiple formulation vectors, each formulation vector being derived by performing random sampling of the raw material list, which represents the relative proportion of known candidate raw materials that may exist within the raw material list. The process involves inputting the aforementioned plurality of formulation vectors into a machine learning model, wherein the machine learning model uses an encoder to generate encoded versions of each of the plurality of formulation vectors, and then outputs the plurality of reconstructed formulation vectors as derived using a decoder. Identifying a subset of the plurality of reconstructed formulation vectors having an order that matches the sequence, Defining the latent space using the encoded version of the reconstructed subset of the formulation vectors, The latent space is sampled iteratively until a threshold number of samples that satisfies the ordering constraints corresponding to the sequence is derived. By performing statistical aggregation of the aforementioned samples, a formulation vector representing the absolute amount of each ingredient in the ingredient list is generated, The formulation vector is output as an indication of the absolute amount of each raw material in the raw material list. A system that can perform actions, including those mentioned above.
18. The system according to claim 17, wherein the sequence begins with the raw material having the largest relative amount and ends with the raw material having the smallest relative amount.
19. The system according to claim 17, wherein the machine learning model is a variational autoencoder (VAE).
20. The system according to claim 19, wherein the VAE is trained using training data, which includes formulation recipes labeled based on the resulting competition, and the formulation recipes specify the amount of each ingredient present in each given formulation recipe.
Citation Information
Patent Citations
Methods for high-throughput screening and computer modelling of pharmaceutical compounds
CA2447047A1
System, method, and program for managing data
JP2020161044A
Recipe generation based on neural networks
JP2022514185A
Pharmaceutical Platform Technology for the Development of Natural Products
US20090028968A1