Methods of determining ingredients and controlling food preparation machines

The method uses mass spectrometry and unsupervised learning with sparse coding to efficiently determine suitable ingredients for recreating foods, addressing the challenges of creating new recipes in a cost-effective and personalized manner.

WO2025107032A1PCT designated stage expired Publication Date: 2025-05-30DEEP LIQUID PTY LTD
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
PCT/AU2024/051237
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-11-23
Filing Date
2024-11-22
Publication Date
2025-05-30

AI Technical Summary

Technical Problem

Current methods for creating new food or drink recipes are time-consuming, costly, and often result in ingredient waste, as they fail to efficiently discover or validate new ingredient combinations and adapt to personalized, healthy, and cost-effective demands.

Method used

A computer-implemented method that uses mass spectrometry analysis to determine target food characteristics, processes these characteristics to extract food features, and employs unsupervised learning with sparse coding to compare these features with ingredient characteristics, selecting suitable ingredients for recreating a food and controlling a food preparation machine.

Benefits of technology

This method simplifies and streamlines the creation of new recipes, optimizes costs and nutritional value, and allows for personalized recipes, effectively addressing the need for innovative and consumer-preferred dietary solutions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure AU2024051237_30052025_PF_FP_ABST
    Figure AU2024051237_30052025_PF_FP_ABST
Patent Text Reader

Abstract

A computer-implemented method (300) of determining ingredients for recreating a food, the method comprising: at a processor: receiving (302) target food characteristics that comprise a mass spectrometry analysis of the food; processing (304) the received target food characteristics to extract food features; and using unsupervised learning comprising sparse coding adapted for ingredient feasibility, comparing (306) the extracted food features with ingredient characteristics to select one or more ingredients suitable for making a food copy.
Need to check novelty before this filing date? Find Prior Art

Description

Methods of Determining Ingredients and Controlling Food Preparation MachinesTechnical Field

[0001] The present disclosure broadly relates to recipe creation, determining ingredients, and food preparation. More particularly, the disclosure relates to a system for, and a method of, determining ingredients for recreating a food and controlling a food preparation machine.Background

[0002] Creating new food or drink recipes involves finding new ingredient combinations, testing them in basic recipes, and refining them into balanced recipes. This process is time-consuming, costly, and often results in ingredient waste. Additionally, new combinations of ingredients do not always lead to successful end products with desired characteristics, making the effort sometimes futile.

[0003] Current methods can alter known recipes by adjusting ingredient quantities based on taste and aroma targets, but they do not help in discovering or validating new ingredient combinations. These methods also fail to adapt to modem demands for personalised, healthy, and cost-effective food solutions.

[0004] Any discussion of documents, acts, materials, devices, articles or the like which has been included in the present specification is not to be taken as an admission that any or all of these matters form part of the prior art base or were common general knowledge in the field relevant to the present disclosure as it existed before the priority date of each claim of this application.Summary

[0005] Described herein are methods that can simplify and streamline the creation of new recipes, optimise costs and nutritional value, and allow recipe personalisation. The methods and systems described herein allow cooks, FMCG manufacturers, consumers,hospitality hosts and the like to identify promising ingredient combinations and quickly develop them into finalised recipes and easily adapt existing recipes. The approaches described herein address the need for personalised dietary solutions and cater to evolving consumer preferences.

[0006] In one aspect there is provided a computer-implemented method of determining ingredients for recreating a food, the method comprising: at a processor: receiving target food characteristics that comprise a mass spectrometry analysis of the food; processing the received target food characteristics to extract food features; and using unsupervised learning comprising sparse coding adapted for ingredient feasibility, comparing the extracted food features with ingredient characteristics to select one or more ingredients suitable for making a food copy.

[0007] The method may comprise: (a) determining the target food characteristics using a mass spectrometry measurements system; and / or (b) retrieving the ingredient characteristics from an ingredient database, wherein the ingredient characteristics include an ingredient feasibility associated with each ingredient; and / or (c) receiving feedback characteristics, and processing the received target food characteristics together with feedback characteristics to extract the food features; and / or (d) storing the selected one or more ingredients in a recipe database as a recipe for making the food copy.

[0008] The unsupervised learning may comprise sparse coding optimisation adapted for ingredient feasibility by including a cost parameter per ingredient.

[0009] The comparing may comprise pattern matching comprising: feature normalisation and preprocessing; applying a similarity measure or a distance measure to compare the extracted food features with ingredient characteristics to calculate a similarity score; applying a comparison threshold to the similarity score to identify an ingredient subset; and assessing combinations within the identified ingredient subset to identify ingredient combinations suitable for making the food copy. Selecting the oneor more ingredients may comprise selecting one of the identified ingredient combinations.

[0010] In another aspect there is provided a data processing system comprising means for carrying out the method described.

[0011] In another aspect there is provided a computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out the method described.

[0012] In another aspect there is provided a computer-readable medium comprising instructions which, when executed by a computer, cause the computer to carry out the method described.

[0013] In another aspect there is provided a food preparation controller for controlling a food preparation machine comprising an ingredient store with an ingredient delivery module, and a food processing unit, the food preparation controller comprising one or more processors configured to: receive a recipe for making a food copy, wherein the recipe comprises recipe ingredients determined using the method described; based on the received recipe, cause the ingredient delivery module to deliver ingredients from the ingredient store to a food receptacle; and cause the food processing unit to process the delivered ingredients in the food receptacle to make the food copy.

[0014] Receiving the recipe may comprises: retrieving data from a recipe store, and / or inputting data via a user interface, and / or receiving data via a communication network, and / or requesting data via a communication network.

[0015] The one or more processors may be configured to process the recipe to determine local ingredients based on at least the recipe ingredients and contents of the ingredient store.

[0016] Causing the food processing unit to process the delivered ingredients may comprise one or more of the following: heating, chilling, mixing, shaking, and / or blending the delivered ingredients.

[0017] In another aspect there is provided a method of controlling a food preparation machine comprising an ingredient store with an ingredient delivery module, and a food processing unit, the method comprising: receiving a recipe for making a food copy, wherein the recipe comprises recipe ingredients determined using the method of determining ingredients for recreating a food described; based on the received recipe, causing the ingredient delivery module to deliver ingredients from the ingredient store to a food receptacle; and causing the food processing unit to process the delivered ingredients in the food receptacle to make the food copy.

[0018] Receiving the recipe may comprise retrieving data from a recipe store, inputting data via a user interface, receiving data via a communication network, and / or requesting data via a communication network;

[0019] The method may comprise processing the recipe to determine local ingredients (i.e., available ingredients) based on at least the recipe ingredients and contents of the ingredient store.

[0020] Causing the food processing unit to process the delivered ingredients may comprise one or more of the following: heating, chilling, mixing, shaking, or blending the delivered ingredients.

[0021] In another aspect there is provided a data processing system comprising means for carrying out the method of controlling a food preparation machine.

[0022] In another aspect there is provided a computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out the method of controlling a food preparation machine.

[0023] In another aspect there is provided a computer-readable medium comprising instructions which, when executed by a computer, cause the computer to carry out the method of controlling a food preparation machine.

[0024] Throughout this specification the word “comprise” or variations such as “comprises” or “comprising”, will be understood to imply the inclusion of a stated element, integer or step, or group of elements, integers or steps, but not the exclusion of any other element, integer or step, or group of elements, integers or steps.Brief Description of Drawings

[0025] Embodiments of the disclosure are now described by way of example with reference to the accompanying drawings in which:

[0026] Figure l is a schematic representation of an embodiment of a system for making food and beverages.

[0027] Figure 2 is a block diagram of an example embodiment of a computing device.

[0028] Figure 3 is a flow diagram of an embodiment of a method of determining ingredients for recreating a food.

[0029] Figure 4A is a schematic representation of the components of a mass spectrometry profile for a food.

[0030] Figure 4B illustrates how a combination of mass spectrometry profiles may be used to achieve a combined mass spectrometry profile comparable to that of an original food.

[0031] Figure 5 is a flow diagram of an embodiment of a pattern matching process.

[0032] Figure 6 is a schematic representation of an embodiment of a food preparation controller.

[0033] Figure 7 is a flow diagram of an embodiment of a method of controlling a food preparation machine.

[0034] Figure 8 is a schematic diagram of an embodiment of a food processing machine.

[0035] In the drawings, like reference numerals designate similar parts.Detailed Description

[0036] Figure 1 of the drawings shows an embodiment of a system 100 that can be used for making food and / or beverages. The system includes a computing device 101 running a server 102 in data communication with an ingredient profile database 104 and a recipe database 106. A plurality of food preparation controllers 110, each with a controller client 111 and each associated with a respective food preparation machine 112. The plurality of food preparation controllers 110 is in communication with the computing device 101 via a communication network 120. The food preparation machine 112 may be, for example, a food processor, a cocktail mixer, a coffee maker, or the like.

[0037] In some embodiments, the computing device 101 may be in communication with a feedback database 160. The feedback database 160 may be updated with user preferences received from various sources, and may include feedback received via one or more of the controllers and / or food preparation machines.

[0038] User devices 150 each with a user client 152 provide the users with access to relevant functionality. This may include, for example, access to personalised recipes, a history of recipes, feedback user interfaces, and the like. In some embodiments, feedback may be received from users. For example, after a user has received a personalised food beverage, on the user client 152 (e.g., in the form of a mobile app on their device 150), they review the beverage, the review details are received by the server 102, and are stored in the feedback database 160. The review data may be usedto refine the user’s taste profile and offered products, for example by adjusting a recipe taking into account the review. For example, if a user indicates "it was too sweet", then the sweet ingredients in the recipe may be reduced. In some embodiments, user feedback may be provided to third parties, e.g., that some customers find their product too sweet.

[0039] Figure l is a block diagram of an example embodiment of a computing device 200 that can be used in the system described herein, for example as computing device 101 as shown in Figure 1 of the drawings. Each computing device 200 includes a processor 210, storage 220, memory 230, and a communication interface 240 (also referred to as a “data interface” herein) for communicating with other computing devices. The various components of the computing device 200 are interconnected via a bus 250. This configuration may be implemented using a bespoke computing device, or in one or all embodiments standard devices such as a mobile phone, tablet, desktop computer, laptop or the like may be used.

[0040] Figure 3 of the drawings is a flow diagram of a method 300 of determining ingredients for recreating a food. This is similar to finding a recipe to achieve a certain taste, nutritional combination, or the like. The computing device 101 comprises one or more processors configured to receive (at 302) target food characteristics. In some embodiments, the “target food characteristics” may include the desired temperature, texture, nutrition, and / or taste of the food or beverage that will be made. The target food characteristics may, for example, be provided in the form of a mass spectrometry analysis of the food that is associated with the taste profile of the food.

[0041] At 304 the method includes processing the received target food characteristics to extract food features that encompass realistic parameters for a combination of ingredients. At 306 the method 300 comprises comparing the extracted food features with ingredient characteristics to select one or more ingredients suitable for making a food copy. The method may include retrieving the ingredient characteristics from an ingredient database 104.

[0042] The characteristics (being the target food characteristics and / or ingredient characteristics) may comprise one or more food-related parameters including taste, texture, nutritional value (e.g. protein or calorie content), etc. The characteristics may comprise one or more non-food related parameters, such as availability, cost, source, etc.

[0043] In some embodiments, the method includes determining (at 301) the target food characteristics using a mass spectrometry measurements system.

[0044] In some embodiments, the ingredient characteristics include an ingredient feasibility associated with each ingredient. Ingredient feasibility may relate to taste, texture, cost, availability, and the like. For example, certain ingredients may need to be controlled in quantity and combination. For instance, it is not feasible to drink a cup of hops oil or mix lemon juice with milk. Some ingredients are expensive, and cheaper alternatives can provide similar flavours. Dietary needs also matter, such as using avocado instead of cream for lactose intolerance.

[0045] In some embodiments, the system may include an ingredient feasibility database for storing ingredient feasibility parameters associated with ingredients.

[0046] In some embodiments, the method 300 may include receiving feedback characteristics 310, and the received target food characteristics are then processed together with the feedback characteristics (at 304) to extract the food features that represent the desired end product and that are sought within the ingredients.

[0047] In some embodiments, the method 300 includes storing the selected one or more ingredients in a recipe database 106 as a recipe for making the food copy.

[0048] In some embodiments, the comparison step at 306 comprises unsupervised learning that involves sparse coding optimisation adapted for ingredient feasibility, for example by including a feasibility parameter such as a cost parameter per ingredient.

[0049] In general, the method may be understood with reference to Figures 4A and 4B of the drawings. In this example, the taste profile of an original beverage is analysed so that a similar beverage with comparable taste profile can be recreated. Mass spectrometry can be used to analyse the taste profile of food. As shown in Figure 4A, the mass spectrometry (MS) profile 410 of the original beverage comprises several spectral components. Available ingredients, Component 1 and Component 2, each have a respective MS profile (420 and 430). When the component MS profiles 420, 430 are combined, a combination MS profile 440 is created. As shown in Figure 4B, this combination MS profile 440 is similar to or comparable to the original beverage MS profile 410. Therefore, Component 1 and Component 2 may be combined in a beverage recipe to obtain a recreated beverage with a taste profile similar to the original beverage.Machine Learning: Sparse Coding

[0050] Sparse coding is a technique used in machine learning and signal processing to represent data (like images, audio, or other signals) as a sparse linear combination of basic elements, known as "atoms" or "basis vectors." The goal is to find a set of basis vectors such that each data point can be approximated as a linear combination of a few of these vectors. This leads to a representation that is both sparse (using as few basis vectors as possible) and informative.

[0051] Sparsity relates to representing the data using a small number of non-zero coefficients. This results in a more efficient and compact representation. Sparse coding involves learning a dictionary (a set of basis vectors) from data, which can then be used to represent new data points sparsely. It usually involves solving an optimisation problem that balances reconstruction accuracy and sparsity. The typical formulation is:where y is the input data, D is the dictionary matrix (to be learned), x is the sparse representation of the data, ||x||i is the Li-norm (which promotes sparsity), and X is a regularisation parameter that controls the trade-off between reconstruction accuracy and sparsity.

[0052] Sparse coding is typically used to provide efficient, compact, and meaningful data representations and is well suited to tasks involving high-dimensional data.

[0053] The output of mass spectrometry (MS) is a type of high-dimensional data that is suitable for sparse coding. Mass spectrometry data typically consists of spectra with intensity values recorded across a wide range of mass-to-charge ratios (m / z), where a single spectrum can contain thousands of m / z values, each representing a potential ion fragment. When analysing multiple samples or time points, the dimensionality of the dataset increases significantly, classifying it as high-dimensional data. Furthermore, these spectra are often sparse, as only a few m / z values exhibit significant intensity peaks, while the majority remain close to zero or are dominated by noise. This inherent sparsity is particularly evident in fields where a limited set of molecules are present in substantial quantities. Sparse coding leverages this sparsity by representing the data using a minimal number of non-zero coefficients, corresponding to the significant m / z peaks.

[0054] Mass spectrometry data is also characterised by its noisy nature, resulting from factors like instrumental variability, sample preparation inconsistencies, and environmental influences. Sparse coding proves beneficial in denoising such data, as it focuses on capturing the true signal, thereby emphasizing significant peaks while disregarding noise. Additionally, MS data often contains complex patterns related to molecular structures, fragmentation behaviours, and isotopic distributions. Sparse coding can extract these intricate patterns by learning a set of basis vectors that encapsulate the underlying structure of the data. This capability makes it a powerful tool for feature extraction, aiding in tasks like classification, clustering, and biomarker discovery.

[0055] Moreover, sparse coding can reconstruct spectra using only a few basis vectors, which enhances the signal-to-noise ratio by filtering out irrelevant noise, thus facilitating easier identification of meaningful peaks. It can also be applied to pattern recognition, enabling the identification of characteristic spectral patterns associated with different conditions, such as distinguishing between healthy and diseased states ordifferentiating sample types. In addition to improving data analysis, sparse coding supports data compression by reducing storage requirements for large MS datasets, which is particularly advantageous in high-throughput studies. It can also assist in anomaly detection, identifying unusual spectra that deviate from typical patterns, which may indicate unexpected contaminants or novel compounds.

[0056] Mass spectrometry applications can greatly benefit from sparse coding. Given the high-dimensional and often sparse nature of mass spectrometry data, sparse coding provides an effective method for feature extraction, noise reduction, and pattern recognition, leading to more efficient and interpretable representations of complex biochemical information.Sparse Coding Example Embodiment 1

[0057] An example of an algorithm suitable for sparse coding is the K-SVD (K- Singular Value Decomposition) algorithm. This method aims to learn a dictionary of basis vectors that can be used to represent the input data sparsely. The process involves two main steps: dictionary learning and sparse coding.The K-SVD algorithm is an iterative method that alternates between updating the sparse representations of the data and optimizing the dictionary. The algorithm includes initialisation of the dictionary D, and setting the sparsity level T. Using Orthogonal Matching Pursuit, OMP, the optimisation problem is solved for each data sample y. The OMP algorithm is then used to find Xi. Then the dictionary D is updated using Singular Value Decomposition, SVD. After a convergence check, the learned dictionary D is output together with a set of sparse codes X.

[0058] After extracting sparse features from raw data using methods such as sparse coding, the subsequent step involves comparing these features with existing components stored in a database. This comparison entails pattern matching to identify similarities between the newly extracted features and those of known components. Initially, the extracted feature vectors must undergo normalization to ensure consistency, which may involve scaling them to a specific range or applying L2normalisation to adjust for differences in magnitude. If the features are highdimensional, dimensionality reduction techniques like Principal Component Analysis (PC A) or t-SNE can be applied to simplify the feature space. The database itself should be structured for efficient retrieval, with each stored component linked to a subset of known features. These features can be stored as sparse vectors or as fingerprints that encapsulate the essential characteristics of the components. Efficient indexing structures, such as KD-trees, ball trees, or Locality-Sensitive Hashing (LSH), facilitate faster search and comparison, particularly in large databases.Sparse Coding Example Embodiment 2

[0059] In another example embodiment, the target food characteristics and / or extracted food features are compared to ingredient characteristics to determine one or more ingredients suitable for making a food copy using sparse coding. The process involves learning sparse representations for each dataset independently or jointly, then performing comparisons in the sparse feature space to determine which subsets exhibit similarity.

[0060] The first step is to learn the sparse representations. Each dataset is represented as a collection of data samples, denoted as YxG IRmxW1for Dataset 1 and Y2E IRmxW2for Dataset 2, where m is the dimensionality of the samples and Ni and N2 are the number of samples in each dataset. A sparse coding algorithm is applied to each dataset to learn sparse representations Xi and X2, such that:Yj « DxXi.. Y2D2X2, where Di and D2 are the learned dictionaries, and Xi and X2 are the sparse coefficient matrices. Alternatively, a shared dictionary D may be learned for both datasets to ensure a consistent basis for comparison.

[0061] The next step is normalising the sparse coefficients (Xi and X2) to account for scale differences and ensure meaningful comparisons. Normalisation can, for example, involve Li- or L2-norm scaling.

[0062] The next step is to compare the sparse representations to identify similar subsets between the datasets. The similarity between a sample from Dataset 1 and a sample from Dataset 2 can be computed using a similarity metric (e.g. Cosine similarity) or distance metric (e.g., Euclidian distance). By calculating these measures across all pairs of samples, similarity scores or distances are obtained between all combinations of samples from the two datasets.

[0063] The computed similarity measures can then be used to identify subsets in Dataset 2 that correspond closely to specific subsets in Dataset 1. This can be achieved by, for example, retaining pairs with similarity scores above a certain threshold or distances below a threshold, grouping similar samples using clustering techniques like k-means or hierarchical clustering to identify coherent subsets, or for each sample in Dataset 1, finding its nearest neighbours in Dataset 2 based on the similarity measure.

[0064] The resulting similar subsets represent samples from Dataset 2 that align with specific subsets in Dataset 1 in the sparse feature space. This provides insights into shared structures or patterns between the datasets so that one or more ingredients suitable for making a food copy can be identified.

[0065] This approach leverages the sparsity and interpretability of the learned representations, allowing for efficient comparison of high-dimensional datasets and identification of meaningful subsets with similar characteristics.Sparse Coding Example Embodiment 3Recipes

[0066] In this example embodiment, let the characteristics of a beverage be described by a vector: x G Ikn. In this example we describe both the beverage and its characteristics by x. The characteristics of a beverage might be estimated by a human, or measured by processes such as mass-spectrometry, by chemical testing, or the like.

[0067] Let a set of K beverages be represented as:

[0068] Given a set of beverages X the set of ingredients from which to reconstruct the characteristics xi can be determined as follows. Let both an ingredient and its characteristics be described by a vector (p G IRn. Similarly let a set of J ingredients be i= { fc i-

[0069] The ingredients are combined to recreate a food or beverage. Algebraically this means that each beverage x can be represented as a linear combination of ingredients as follows:where q represents the volume of (|)j to be added. r i J

[0070] Let the vector r = \rj j=1. The vector r thus specifies a volume, mass, or other suitable unit for each ingredient, so that the combination of “amounts” result a recipe (although it will be understood that the relative ratios can be used to increase or decrease the final size, quantity, etc. of the food / beverage made).

[0071] Specifying a vector r provides a full specification for a beverage, through equation (1). The volume of each ingredient here need only be specified relative to the volume of the other ingredients, and thus the resulting scale indeterminacy can be solved by assuming that

[0072] Let a set of K foods / beverages be represented as ?- —and let q.k represent the jthcomponent of the kthrecipe vector in R. The ingredients are found through optimising the following:is a function associated with a feasibility of an ingredient (for example, reflecting the cost of manufacturing a set of ingredients together with using them according to recipes R). In some embodiments, C (1Z, X) reflects the feasibility of using and / or creating various ingredients. For example, for some ingredient characteristic vectors (|) it may not be practical to create a corresponding physical ingredient.

[0073] According to equation (2), there are feasibility factors for each ingredient, such as cost, but the total cost of the ingredients required can be minimised to make a given set of products. The ingredients may include off-the-shelf products (e.g., hop drops), and / or bespoke products (e.g., a beer-like liquid that needs to be brewed). Although bespoke ingredients would typically result in some variation, this can be accommodated by including an analysis of the bespoke ingredients as part of the process. For example, if the recipe creation and application incorporates mass spectrometry, then a MS analysis of the bespoke ingredient can be taken into consideration at the time of recreating the food / beverage in order to adapt the recipe ingredients accordingly.

[0074] The feasibility factor need not be cost, but could relate to taste, chemical composition, health requirements, texture, etc.

[0075] The scalar parameter k is a scaling factor that reflects the relative importance of each term. This is typically determined via a calibration step using a reference data set.

[0076] Equation (2) provides an optimisation-based mechanism for identifying a set of ingredients that might be mixed to reconstruct a set of beverages x. By providing measured characteristics of a set of K beverages, and a cost function C -, •) it is thus possible to determine a set of J ingredients suitable for recreating a food or beverage.Creating a food or beverage using a recipe

[0077] In an example embodiment, a food preparation controller associated with a food preparation machine receives a recipe r E which represents the relativeamounts, volumes, mass etc. of each of J ingredients from JTto be blended. The recipe need only be accessed, received, retrieved, selected, etc. at the time that the food or beverage is made, dispensed, created, served etc., and can be different for each dispensing event.

[0078] Upon receiving a recipe, the controller causes the machine to dispense a specified volume of liquid (or units or mass of dry foodstuff, etc.) such that the relative amounts / volumes of the ingredients are proportioned according to the ratios of ingredients as defined by the recipe r.The recipe generation process

[0079] In one example embodiment, given a vector of beverage characteristics x, and a set of ingredients Z, a recipe for x can be recovered by solving equation (3):

[0080] Each recipe r is a vector in U . New recipes can thus be created and / or represented by algebraic operations. A recipe that is half-way between rb and ra, for example, can be constructed as.

[0081] Figure 5 of the drawings is a flow diagram of an embodiment of a pattern matching process 500 used in the comparison step 306 of method 300. The pattern matching process 500 optionally includes feature normalisation and preprocessing at 502. At 503 process 500 compares the two relevant datasets, for example the taste profile (e.g. in the form of a MS analysis) that is aimed for in the final product and the taste profiles of possible ingredients. The comparison step may include the use of sparse coding as described elsewhere herein, and / or may include applying a similarity measure or a distance measure to compare the extracted food features with ingredient characteristics to calculate a similarity score. Process 500 includes (at 506) applying a comparison threshold or other suitable comparison parameter to the similarity score toidentify an ingredient subset. Process 500 includes (at 508) assessing combinations within the identified ingredient subset to identify ingredient combinations suitable for making the food copy.

[0082] Selecting the one or more ingredients suitable for making the food copy comprises, at 510, selecting one of the identified ingredient combinations based on criteria that can be predetermined, user defined, determined as part of the learning or comparison processes, or some combination thereof.

[0083] In some embodiments, to compare the features, an appropriate similarity or distance measure may be chosen, with options including cosine similarity, Euclidean distance, Manhattan distance, Jaccard similarity, or correlation coefficient, depending on the nature of the feature vectors. For each query feature vector, the system calculates similarity scores or distances relative to the stored components in the database, identifying those with the highest similarity. For large databases, Approximate Nearest Neighbours (ANN) algorithms, such as FAISS, Annoy, or FLANN, can be employed to expedite the search process. Once similarity scores are computed, the system applies a threshold to filter out matches that do not meet a predefined similarity level, thus reducing the likelihood of false positives. The remaining matches are ranked by their similarity scores, with higher scores or lower distances indicating closer matches.

[0084] For the purpose of classification, the system assigns the query data point to the category associated with the highest-ranked match. For identification tasks, it retrieves metadata linked to the best-matching component, providing relevant labels, descriptions, or other information. If necessary, post-processing techniques like majority voting, confidence scoring, or ensemble methods may be applied to refine the results, especially when multiple features or criteria are used for matching. Further refinement can also involve hierarchical clustering or graph-based methods to differentiate between closely matched components. The final output includes the most similar components, along with their respective similarity scores or distances. The system may also visualize results using tools such as heatmaps, t-SNE plots, ordendrograms, thereby enhancing interpretability and providing deeper insights into the pattern matching process.

[0085] This approach is particularly useful in applications like mass spectrometry, where sparse features from a sample spectrum can be compared to a database of known chemical compounds to identify the most similar matches, aiding in tasks such as identifying ingredients or components based on spectral data.

[0086] Figure 6 of the drawings shows a schematic representation of an embodiment of a food preparation controller 610 for controlling a food preparation machine 612 that comprises an ingredient store with an ingredient delivery module, and a food processing unit. The food preparation controller comprising one or more processors 620, a control module 630 adapted to output control signals to actuators of the food processing machine 612. In some embodiments the one or more processors 620 may comprise the control module 630.

[0087] The food preparation controller 610 includes an I / O module 640 in communication with a user interface 650. In some embodiments the controller 610 may include the user interface 650.

[0088] The food preparation controller 610 includes local storage, for example in the form of a local database 660. The food preparation controller 610 includes a communications interface 670 for communicating with the server 102.

[0089] Figure 7 of the drawings is a flow diagram of an embodiment of a method 700 of controlling a food preparation machine. The one or more processors of the food preparation controller are configured to receive (at 702) a recipe for making a food copy. The recipe comprises recipe ingredients determined using the methods described elsewhere herein. The method 700 includes, based on the received recipe, causing (at 704) the ingredient delivery module to deliver ingredients from the ingredient store to a food receptacle. This may be via solenoids, flow meters, and the like. At 706, the method 700 includes causing the food processing unit to process the deliveredingredients in the food receptacle to make the food copy. The food processing may include, for example, heating the ingredients, chilling, mixing, shaking, carbonating, blending or the like.

[0090] In some embodiments the food receptacle may be a serving receptacle. For example, where a beverage is prepared, the ingredients may be dispensed directly into a glass or cup used for serving.

[0091] Optionally, receiving the recipe (702) may comprise retrieving data from a recipe store 708, or (at 710) inputting data via a user interface (e.g. a QR code associated with a recipe), and / or requesting and / or receiving data via a communication network (e.g. from the recipe database 106 via the server 102).

[0092] In some embodiments, the method 700 may comprise (at 720) processing the recipe to determine local ingredients based on at least the recipe ingredients and contents of the ingredient store.

[0093] Figure 8 is a schematic diagram of an embodiment of a food processing machine 800 that includes an ingredient store 810 with various ingredient containers 812, an ingredient delivery module 820, and a food processing module 830. Various actuators, for example in the form of solenoids, flow meters, and the like, are responsive to control signals received from the controller to dispense ingredients into a food or beverage receptacle, for example into a mixing chamber or mixing bowl. The food processing machine 800 may optionally include a dispensing module 840 that dispenses the final made beverage or food to a user. The dispensing module may include, for example, a tap, a window, a door, components of a vending machine, or the like. In some embodiments the ingredient delivery module 820 may incorporate the dispensing module 840.Example embodiment 4: recipe recommender

[0094] One of the benefits of the systems and methods described herein is that they facilitate personalisation of foods and beverages. Every food dispensed can be unique.Rather than requiring users to devise their own recipes, a new recipe can be created on the basis of, for example, a user’s general and / or specific preferences, for example a general preference of sweet beverages, or a specific preference of a previously made beverage.

[0095] Referring to the feedback data 310, as shown in Figure 3 of the drawings, user preferences can be taken into consideration in the processing step 304 in order to generate a bespoke recipe. In some embodiments the feedback may be associated with one particular user, with a user group (where the group may be grouped based on location, demographics, etc.), with a type of ingredient / food / beverage, or combinations of there or other factors.

[0096] In one example embodiment, assume that a user has provided ratings (scores) {sl } / = 1 for a provided set of beveragesIf we let {n } / =l be the recipes for M , then a beverage that reflects the user’s preferences can be constructed according to recipe:

[0097] To generate and explore new foods / beverages on the basis of scores provided by other users, a collaborative filtering approach may be applied. For example, the score that a user C is predicted to provide for a beverage specified by recipe r may be given by:where •$ p represents the mean score for recipe r, 5 cfrepresents the average score of user d and C = {cm}7Ti— i represents the set of users. The similarity function ^(-, •) measures the correspondence between the scores of two users and

[0098] Equation (5) above allows predicting a particular user’s score for a recipe that has not been created previously, but this requires interpolating values for 5* r and

[0099] A database of previous users’ preferences for previous beverages can be used to devise a new recipe f for user C as

[0100] In other words, equations (4)-(6) describe using a user’s feedback regarding their own preferences, while equation (7) described also taking into account other users’ feedback.

[0101] The two methods for recipe creation above can be modified to enable users to have direct input into recipe creation, thus enabling them to devise personalised beverage recipes. These recipes are represented by a vector r, which can be distributed easily, e.g. electronically via social media, direct messaging, QR code, or the like.

[0102] Advantageously, this recipe recommender method does not require large amounts of data to make an accurate prediction. Instead, the method is able to create a personalised recipe based on a limited number of datapoints due to the use of the combination of mass spectrometry and sparse coding.Example Embodiment 5

[0103] If a user selects 0.2 bitterness level, 0.6 sweetness level and 0.2 viscosity level., then the Target Vector: Xk = [0.2, 0.6, 0.2],

[0104] The MA analysis performed on each ingredient provides a bitterness, sweetness, and viscosity to make up ingredients characteristic vectors (4>j). For example for cocoa powder (|)2 = [0.9 0.1 0.2], for stevia (|>3 = [0.2 0.8 0.1], and for whey protein powder 4>1 = [0.1 0.3 0.9],

[0105] The recipe vector (rk) = [0.4 0.3 0.3] specifies 0.4 (40% cocoa powder), 0.3 (30% stevia), and 0.3 (30% whey protein powder).

[0106] A shake profiles may be given by:0.4-[0.9 0.1 0.2] + 0.3-[0.2 0.8 0.1] + 0.3-[0.1 0.3 0.9] = [0.45 0.37 0.38], with Error = || [0.2 0.6 0.2] - [0.45 0.37 0.38] ||2 = 0.1478.

[0107] Using optimization techniques (e.g., gradient descent), the ingredient proportions maybe adjusted iteratively to minimise the error. After optimization, the proportions might change to:Recipe Vector (rk) = [0.3 0.5 0.2]0.3 (30% cocoa powder)0.5 (50% stevia)0.2 (20% whey protein powder)Shake profile = 0.3-[0.9 0.1 0.2 ]+0.5-[0.2 0.8 0.1 ]+0.2-[0.1 0.3 0.9 ]= [0.39 0.49 0.29](The values represent the level of bitterness, sweetness and viscosity respectively) Error calculation || [0.2 0.6 0.2] - [0.39 0.49 0.29] ||2 = 0.0563Table 1: Initial standard recipeTable 2: Optimised recipeExample Embodiment 6

[0108] If a user selects 0.1 bitterness level, 0.7 sweetness level and 0.2 viscosity level, the Target Vector Xk = [0.1, 0.7, 0.2], The vector for each ingredient is:Cocoa powder: (|)2 = [0.9 0.1 0.2];Stevia: (^3 = [0.2 0.8 0.1];Whey protein powder: 4> 1 = [0.1 0.3 0.9],

[0109] The initial standard drink Recipe Vector (rk) = [0.4 0.3 0.3], with Shake Profile= [0.45 0.37 0.38], and Error = || [0.10.7 0.2] - [0.45 0.37 0.38] ||2 = 0.5136

[0110] After optimisation using the methods described herein, the recipe vector rk = [0.1 0.6 0.3], with Shake profile = [0.24 0.58 0.35], and Error = || [0.1 0.7 0.2] - [0.24 0.58 0.35] ||2 = 0.0565.Table 3: Initial recipeTable 4: Optimised recipeExample Embodiment 7

[0111] If a user selects 0.6 sweetness level, 0.4 acidity level and 0.5 alcohol level, then the Target Vector Xk = [0.6, 0.4, 0.5],

[0112] If the vector for each ingredient is as follows:Sugar syrup: 4> 1 = [0.8 0.2 0.0];Lime juice: (|>2 = [0.1 0.7 0.2]; and vodka: (|>3 = [0.0 0.0 0.9], then the initial standard recipe is given by rk = [0.3 0.5 0.9], with Cocktail profile = [0.34 0.56 0.81], and Error = || [0.6 0.4 0.5] - [0.34 0.56 0.81] ||2 = 0.73

[0113] After optimisation using the methods described herein, the recipe vector becomes rk = [0.5 0.4 0.6], with cocktail profile = [0.44 0.38 0.62], and Error = ||[0.6 0.4 0.5] - [0.48 0.45 0.54] ||2 = 0.0404.Table 5: Initial recipeTable 6: Optimised recipe

[0114] Advantageously, mass spectrometry can be used to analyse the molecular pattern of each ingredient used for a food or beverage. For a protein shake, for example, the methods described can reduce the proportion of some ingredients in favour of other preferred ingredients (e.g., affordable ingredients) that still achieve the desired flavour profile. For example, an original recipe may include whey protein for its protein content (a high-quality, expensive ingredient) and cocoa powder for bitterness. The method might optimise costs by reducing the amount of whey protein and replacing part of it with pea protein (a cheaper ingredient that still provides a good protein profile). To maintain the bitterness profile, it might substitute some cocoa powder with a cheaper ingredient like carob powder, which provides similar bitterness but at a lower cost.

[0115] The methods described herein reduce the need for physical trials by simulating and testing ingredient combinations in a virtual environment, significantly saving time, resources, and costs. A food preparation machine can then cater for diverse customer preferences while simultaneously gathering data on their flavour choices. This helps producers formulate new recipes that align with evolving consumer trends.

[0116] Advantageously, the systems and methods described herein enable the dispensing of a wide range of foods and beverages according to recipes supplied at the time of dispensing, and based on inputs provided at the time and point of dispensing. A novel method of determining the ingredients allows a large variety of foods to be dispensed. Because the recipe is applied at the time of dispensing based on customised or personalised data provides a greater range of foods or beverages that can be dispensed than has previously been possible. Determining individual recipes on thebasis of feedback allows users to be provided with their own personalised food or beverage.

[0117] The methods described herein may be used for post-mixable beverages such as beer, gin, seltzer and the like. The delivery mechanism is able to mix specified quantities of each ingredient to deliver a combined beverage. The recipe specifies the quantities (each quantity being positive). The ingredient specification process identifies the ingredients to this process that are best able to generate a set of desired beverages.

[0118] The ingredients that make up the recipes can be provided or made locally. The recipes that are based on individual preference are of particular value to the users as they can be customised and / or personalised, and the recipes can move around the world at no cost because they can be in digital form.

[0119] The methods and systems described herein can generate and dispense personalised foods beverages on demand. The methods are repeatable, and can be applied at a global scale.

[0120] For example, the popularity of home brewing and craft beer has shown the public enthusiasm for uniqueness in beverages, but the process does not scale. The systems and methods described herein facilitate identical copies of unique foods and beverages to be served globally seconds after being crafted. In this way personalisation is possible at a resolution that has previously been infeasible for foods and / or beverages at any scale, let alone globally.

[0121] Advantageously, due to the ease and scalability of the digital implementation, two users can create a recipe together, and share identical copies of the resulting food or beverage, despite being on opposite sides of the globe.

[0122] Advantageously, user preferences with respect to recipes that do not even exist yet can be analysed and applied by combining, averaging, and otherwise processinguser preferences at various granularities, i.e., per user, per location, per demographic, etc.

[0123] It will be understood to persons skilled in the art of the invention that many modifications may be made without departing from the spirit and scope of the invention.

Claims

CLAIMS:

1. A computer-implemented method (300) of determining ingredients for recreating a food, the method comprising: at a processor: receiving (302) target food characteristics that comprise a mass spectrometry analysis of the food; processing (304) the received target food characteristics to extract food features; and using unsupervised learning comprising sparse coding adapted for ingredient feasibility, comparing (306) the extracted food features with ingredient characteristics to select one or more ingredients suitable for making a food copy.

2. The method of claim 1, further comprising one or more of the following:(a) determining (301) the target food characteristics using a mass spectrometry measurements system;(b) retrieving the ingredient characteristics from an ingredient database (104), wherein the ingredient characteristics include an ingredient feasibility associated with each ingredient;(c) receiving (310) feedback characteristics, and processing the received target food characteristics together with feedback characteristics to extract the food features; and(d) storing the selected one or more ingredients in a recipe database (106) as a recipe for making the food copy.

3. The method of claim 1 or claim 2, wherein the unsupervised learning comprises sparse coding optimisation adapted for ingredient feasibility by including a cost parameter per ingredient.

4. The method of any one of the preceding claims, wherein the comparing comprises pattern matching comprising: feature normalisation and preprocessing; applying a similarity measure or a distance measure to compare the extracted food features with ingredient characteristics to calculate a similarity score; applying a comparison threshold to the similarity score to identify an ingredient subset; and assessing combinations within the identified ingredient subset to identify ingredient combinations suitable for making the food copy.

5. The method of claim 4, wherein selecting the one or more ingredients comprises selecting one of the identified ingredient combinations.

6. A data processing system comprising means for carrying out the method of any one of claims 1 to 5.

7. A computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out the method of any one of claims 1 to 5.

8. A computer-readable medium comprising instructions which, when executed by a computer, cause the computer to carry out the method of any one of claims 1 to 5.

9. A food preparation controller for controlling a food preparation machine comprising an ingredient store with an ingredient delivery module, and a food processing unit, the food preparation controller comprising one or more processors configured to: receive a recipe for making a food copy, wherein the recipe comprises recipe ingredients determined using the method of any one of claims 1 to 5; based on the received recipe, cause the ingredient delivery module to deliver ingredients from the ingredient store to a food receptacle; and cause the food processing unit to process the delivered ingredients in the food receptacle to make the food copy.

10. The food preparation controller of claim 9, wherein one or more of the following apply: receiving the recipe comprises one or more of the following: retrieving data from a recipe store, inputting data via a user interface, receiving data via a communication network, or requesting data via a communication network; the one or more processors are configured to process the recipe to determine local ingredients based on at least the recipe ingredients and contents of the ingredient store; or causing the food processing unit to process the delivered ingredients comprises one or more of the following: heating, chilling, mixing, shaking, or blending the delivered ingredients.

11. A method of controlling a food preparation machine comprising an ingredient store with an ingredient delivery module, and a food processing unit,the method comprising: receiving a recipe for making a food copy, wherein the recipe comprises recipe ingredients determined using the method of any one of claims 1 to 5; based on the received recipe, causing the ingredient delivery module to deliver ingredients from the ingredient store to a food receptacle; and causing the food processing unit to process the delivered ingredients in the food receptacle to make the food copy.

12. The method of claim 11, wherein one or more of the following apply: receiving the recipe comprises one or more of the following: retrieving data from a recipe store, inputting data via a user interface, receiving data via a communication network, or requesting data via a communication network; the method comprises processing the recipe to determine local ingredients based on at least the recipe ingredients and contents of the ingredient store; or causing the food processing unit to process the delivered ingredients comprises one or more of the following: heating, chilling, mixing, shaking, or blending the delivered ingredients.

13. A data processing system comprising means for carrying out the method of claim 11 or 12.

14. A computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out the method of claim 11 or 12.

15. A computer-readable medium comprising instructions which, when executed by a computer, cause the computer to carry out the method of claim 11 or 12.

Citation Information

Patent Citations

  • Formula and recipe generation with feedback loop

    US11205101B1

  • Food preparation system

    US20050193901A1

  • Multifunction programmable foodstuff preparation

    US20160353932A1

  • Spectrometry system applications

    US20170292908A1

  • Mobile Device for Food Identification and Quantification using Spectroscopy and Imaging

    US20180149519A1