This application claims the priority, under 35 U.S.C. § 119, of European Patent Application EP 23215292.6, filed Dec. 8, 2023; the prior application is herewith incorporated by reference in its entirety.
The present invention relates to a method for providing recipes for cooking to a user of a cooking device, a related data processing program product, a control unit of the cooking device, a related central entity (such as a server or a cloud service) and a system including the cooking device, the control unit and the central entity.
Home appliances for cooking are attractive for users if they are easy to handle and the resulting meals are delicious. Thus, home appliance manufacturers have a genuine interest in providing the end users of their home appliances with creative and tasty recipes. That is especially true if the cooking devices are controlled automatically according to a recipe, which can be downloaded to e.g. an automatic food processor.
A food processor is an electric appliance, which may be used, for example, to chop, blend, puree, or grind food, while heating it. A food processor typically includes a heated bowl and an electric motor for driving exchangeable tools that can be used for various tasks such as slicing vegetables, shredding cheese, making dough, or stirring sauces. An example of a food processor is the CookIt manufactured by Bosch.
Typically recipes for a food processor are downloaded from the Internet, e.g. from a server of the home appliance manufacturer, or from a social network, in which users may exchange recipes which they created on their own. While that approach works well, of course, the number of available recipes is limited.
It is accordingly an object of the invention to provide a method, a control unit, a central entity, a system and a data processing program for providing recipes for cooking, which overcome the hereinafore-mentioned disadvantages of the heretofore-known devices and methods of this general type and which provide an improved technique for providing recipes for cooking to a user.
With the foregoing and other objects in view there is provided, in accordance with an aspect of the invention, a method for providing recipes for cooking to a user of a cooking device. The method can be implemented e.g. by a computer. The cooking device may include one or more elements of a group including a food processor (which may be automatic), a blender, an oven, a cooktop, a microwave, and an exhaust hood. According to the method, a trained recipe generator is provided or a recipe generator is trained. Training may also include pre-training and/or fine-tuning. A trigger is received from the user of the cooking device (and/or the control unit of the cooking device) and based on the trigger a new recipe is generated using the recipe generator. The new recipe is then provided to the user. This may mean, for example, that the recipe is rendered step-by-step to the user using a display or a loudspeaker and/or it may mean that the cooking device is automatically controlled according to the recipe. The trigger may include a request (e.g. a request formulated by voice and captured by a microphone), a query or a prompt (e.g. something like “give me a Chinese recipe with duck”). In some embodiments, already pressing a button or a simple instruction (like “start”) may be enough as a trigger.
Embodiments are described in the dependent claims and the following description as well as the figures.
Using a recipe generator may provide the advantage that the proposed recipes may be especially creative and/or surprising. Moreover, a huge number of recipes may be generated easily with little effort and costs. The recipe generator may have been trained using thousands of recipes taken from the Internet, in such a way that the recipe generator may be able to provide suitable recipes for any taste and occasion. The trigger may allow the user to lead the recipe generator reliably in the right direction, i.e. he or she may give the recipe generator valuable hints about the characteristics the proposed recipe shall possess. For example, he or she may choose the main ingredient (e.g. pork, beef, chicken), a regional cuisine (e.g. Italian, Chinese, Thai), a taste (e.g. sweet, sour, bitter, umami), a diet (e.g. gluten-free, without lactose) and/or a food class (e.g. cake, soup). With a very unspecific trigger (like pushing a button or saying “start”) a large amount of creativity may be expected, whereas a very specific trigger (like “give me a recipe for red-wine cake based on spelt flour prepared in a bundt cake pan”) may lead to a recipe which fits especially accurately to the wishes of the user.
The recipe generator may work based on generative artificial intelligence. It may include, for example, a foundational model. Preferably, it includes a large language model. Well known large language models are, for example, OpenAI's GPT-4 (also known as ChatGPT), Google's PaLM, and Meta's LLaMA. Large language models may have the advantage that they can provide a very accurate representation of the data because they often have millions of parameters and are therefore able to capture the nuances of the data. This can be particularly advantageous when dealing with natural language data, as the meaning of words can vary greatly depending on the context in which they are used. Moreover, large language models may be trained on very large data sets. This may be relevant because the more data a model is trained on, the better it will be at generalizing to new data.
In some embodiments, the recipe generator has been trained and/or is trained using language-to-language learning and/or language-to-tabular learning. Using language-to-language learning, a large language model may be e.g. fine-tuned to a specific task via a set of query-answer pairs {(xn,yn)|n=1, . . . , N}, collected as a training set. More specifically, some queries xn of the type “a traditional swabian dinner involving 500 g of beans, 100 g of flour . . . ” followed by a precise recipe yn, i.e. some detailed, verbose description of cooking steps for some given meal, may be used as a training set, in such a way that the large language model is trained to output yn upon being prompted by xn. Language-to-tabular learning may be tailored more specifically to an automatic food processor like the CookIt, as a food processor generally uses tabularized, step-wise instructions (such as “stir at 100 rpm for 2 minutes,” “bake at 170° C. for 10 minutes” etc.). In this case, a training set {(xn,zn)|n=1, . . . , N} may be collected, with zn being the tabularized instruction as a response to query xn. Of course, also for other cooking devices (e.g. for smart ovens) language-to-tabular learning may be advantageous and may be used.
While language-to-tabular learning may have the advantage of directly providing the tabularized data format that may be needed by the cooking device, language-to-language learning may be used more easily as e.g. ChatGPT is already based on language-to-language learning. Therefore, it may be especially advantageous to combine language-to-language learning and language-to-tabular learning. Accordingly, in some embodiments the method may include the further step of translating the new recipe into a sequence of steps taken from a list of predetermined actions, which are executable by the cooking device. During the translation, technical constraints of the cooking device may be taken into account. Thus, a new recipe as a verbose response yn may be translated to a specific tabular format zn that may be needed by the cooking device. A corresponding translation function may be engineered manually and/or learned as well by a large language model.
Various embodiments with regard to the distribution of the functionalities within the infrastructure (e.g. including clouds, servers, Internet connections and many cooking devices as well as control units) are possible and included by the invention. In some embodiments, the trained recipe generator is provided and/or trained at a central entity. The central entity may be, for example, a server, which may be located somewhere in the Internet or at the premises of the home appliance manufacturer. The central entity may also be a cloud service, which is e.g. implemented as migrate-able software code within a (possibly globally) distributed server farm, which preferably performs load balancing to optimize performance. A server and a cloud service may also be combined to form a central entity.
The trigger may be received from the user at a control unit of the cooking device. The control unit may be integrated into the cooking device, or it may be separate from the cooking device, but connected to the cooking device. Especially in the latter case, the control unit preferably includes a computer, a mobile device, a tablet PC, a smartphone and/or a smart speaker. In a preferred embodiment, the control unit includes a smart kitchen dock (a smart speaker offered by Bosch) and a tablet PC or a smartphone. The trigger may be sent from the control unit to the central entity, where the new recipe may be generated, based on the trigger, using the recipe generator. The new recipe may then be sent from the central entity to the control unit, in such a way that the new recipe may be provided to the user by the control unit.
In some embodiments, the recipe generator is sent from the central entity to a control unit of the cooking device. This may allow for a local execution of the recipe generator and local learning based on input received from the user. Accordingly, in some embodiments the trigger is received from the user at the control unit, the new recipe is generated (notably by the control unit) based on the trigger using the recipe generator and the new recipe is provided to the user by the control unit.
In some embodiments, the method includes the further step of compressing the recipe generator at the central entity to generate a compressed version of the recipe generator. The compressed version of the recipe generator may be sent from the central entity to the control unit of the cooking device. All features mentioned within this disclosure, which relate to the recipe generator, may be also applied to the compressed version of the recipe generator and vice versa.
The recipe generator is preferably compressed using knowledge distillation, wherein the recipe generator is a teacher model, and the compressed version of the recipe generator is a student model. Knowledge distillation relates to a process of transferring knowledge from a large model to a smaller one. As smaller models are less expensive to evaluate, they may be deployed on less powerful hardware like a control unit of a cooking device. Knowledge distillation is based on the general idea that a small student model is trained under the supervision from a large teacher model. Black-box knowledge distillation, where only the teacher predictions are accessible, and white-box knowledge distillation, where the teacher parameters are available to use, may be used. Standard knowledge distillation objectives often minimize the approximated forward Kullback-Leibler divergence between the teacher and the student distribution.
In a preferred embodiment, the method for providing recipes for cooking to a user of a cooking device may comprise the following steps:
As mentioned before, “trained” may also include “pre-trained.” In many cases, especially at the beginning, a pre-trained recipe generator will be provided or a recipe generator will be pre-trained, especially based on recipes, which are readily available in the Internet. Afterwards, the recipe generator may be fine-tuned locally e.g. based on input received from the user. In this way, the recipe generator may be customized to the user's taste.
Accordingly, the invention may include a method, being executed on a central entity, comprising the following steps:
Likewise, the invention may include a method, being executed on a control unit of a cooking device, comprising the following steps:
In some embodiments, all of the above described methods may include the further step of receiving input from the user. The input may be e.g. received at the control unit. The input may especially include feedback relating to a new recipe. For example, a user may want to let the system know that he or she really liked the most recently recommended recipe or he or she may want to say “I do not believe that garlic and peaches taste well together.” The input could also relate to some more practical issues like “the cake was difficult to extract from the baking pan.” Or the input may include a complaint (“how many times have I told you that I have a gluten intolerance?”) or a suggestion (“can I also do this with a gluten-free flour?”). In some embodiments, the input may include preferences. For example, the user may select from a list (e.g. presented on a touch-screen of the control unit) that he or she likes the Italian and French cuisine, but dislikes Asian-style food. Or he or she may select that he or she is a vegetarian or has a lactose intolerance. Of course, preferences may also be expressed with relation to a concretely recommended recipe (“thank you for the suggestion of Thai noodles, but I like pasta rather Italian-style”). In some embodiments, the input from the user is derived from observations of a camera, which observes the dish or food while being prepared and/or cooked and/or which observes the user while executing the recipe.
Based on the input, learning may be performed. The learning may be performed, for example, on the central entity and/or on the control unit. The learning may use e.g. reinforcement learning and/or self-supervised learning. In some embodiments, contrastive self-supervised learning is used. The learning may include training of the recipe generator. Preferably, the learning leads to (proposed or actual) updates for the recipe generator. The updates may include updated parameters relating to a model (e.g. an artificial neural network) used within the recipe generator and/or they may include additional training data. For example, it is possible that a newly generated recipe, which was rated by the user as excellent, is added to the training data, in such a way that future versions of the recipe generator can be trained also based on this excellent recipe. Furthermore, it may be possible that the user himself explicitly adds recipes to the training data. These recipes may have been conceived by the user e.g. based on human creativity or the user may have found the recipes somewhere in a cookbook or on the Internet.
Based on the input, filtering may be performed. Especially, if the input includes preferences it may be advantageous to transfer only a part of the recipe generator to the control unit. For example, if a user stated that he or she dislikes Asian food, the method can refrain from transferring a part of the recipe generator to the control unit, which relates to Asian cuisines. Or if the user has provided the input that he or she suffers from a gluten intolerance, all cake recipes using flours with gluten can be filtered out. In some embodiments, newly generated recipes may be filtered out and are not provided to the user if they erroneously do not fit to the preferences of the user. In this case, preferably a further new recipe is generated based on the trigger using the recipe generator. This may be repeated until a recipe has been generated, which fits to the user's preferences.
In some embodiments, the input and/or updates are sent from the control unit to the central entity and learning may be performed at the central entity. In addition or alternatively, the learning may be performed (locally) on the control unit. Possibly, the user may be asked under which conditions he or she wants to send his or hers input and/or updates from the control unit to the central entity, wherein the input and/or updates are sent from the control unit to the central entity, when these conditions are met. In some embodiments, the method includes the further steps of asking the user under which conditions he or she wants to send the input and/or updates from the control unit to the central entity, sending the input and/or updates from the control unit to the central entity, when these conditions are met, and adapting and/or training the recipe generator based on the input and/or updates at the central entity. This may serve the purpose of traffic optimization and/or the preservation of privacy.
The recipe generator, which is stored on the central entity, may be constantly improved as further input and/or updates are received and may be used to adapt and/or train the recipe generator. After some time, a new improved version of the recipe generator may be redistributed to the control unit. In some embodiments, the method may include the further steps of asking the user under which update conditions he or she wants to receive an updated version of the recipe generator from the central entity, sending these update conditions from the control unit to the central entity, receiving the update conditions at the central entity, sending an updated version of the recipe generator from the central entity to the control unit, when the update conditions are met, and receiving the updated version of the recipe generator at the control unit. Personal input and/or updates of the user may be kept and may be applied to the newly received recipe generator.
In preferred embodiments, the recipe generator is sent from the central entity to a plurality of control units. The recipe generator may be compressed. Each control unit may control one or more cooking devices. Preferably, input and/or updates are received from multiple control units at the central entity. Each input and/or update may relate to a certain user. Especially, each update may relate to the respective user of the cooking device being controlled by the respective control unit.
Some home appliance manufacturers sell their home appliances worldwide. Thus, there may be situations where the input and/or updates relate to users in very different regions of the world. In other words, one of the control units may be located in Germany, another in Brazil, a further one in Nigeria and yet a further one in China. The preferences of the users and their tastes may vary among the regions. Furthermore, even within one region, there may be some persons who prefer a different cuisine than the regional cuisine, for example, because they have a migration background or they simply like to be reminded of their last holidays. Moreover, in each region some persons eat meat and others are vegetarians. Thus, it may be advantageous to cluster the users into user groups. Accordingly, user-group-specific recipe generators may be provided and/or trained.
In some embodiments, the method includes the further step of clustering, at the central entity, the inputs and/or updates based on characteristics of the respective user to whom the input and/or update relates and/or based on a choice of the user to which group he or she wants to belong. The characteristics may be automatically determined, e.g. they may be learned, and/or they may be provided by the user himself. For example, a user may want to choose to belong to a user group called “Vegetarians in Europe,” “hot Asian-style,” “gluten-free no matter what,” “baking grandmas,” “Fish@Hamburg” or “luxury on Sylt.” Of course, a user may also be able to choose to belong to no group. He or she may be able to choose a recipe generator, which he or she wants to download, and can then locally train the downloaded recipe generator based on his or hers own taste.
In some embodiments, the method includes the further step of adapting and/or training, at the central entity, the recipe generator based on the clustered input and/or clustered updates, in such a way that preferably user-group-specific recipe generators are generated. User-group-specific recipe generators may be, for example, generated by selectively evolving the training data sets based on the clustered input and/or clustered updates. This may mean that an excellently rated gluten-free baking recipe may be added only to the training data set of the user groups “gluten-free no matter what” and “baking grandmas.” In this way, it may become possible to start with a pre-trained general-purpose recipe generator and to fork this recipe generator into many user-group-specific recipe generators by applying certain inputs and/or updates only to a certain copy of the original recipe generator.
In some embodiments, the method includes the further step of sending the user-group-specific recipe generator from the central entity to the control units of the user group. On the control units, the user-group-specific recipe generator may be further trained to be adapted to the taste of the specific user.
In some embodiments, federated learning and/or collaborative learning may be used to improve the recipe generator. Federated learning and/or collaborative learning may provide the advantage that the recipe generator is trained via multiple independent sessions, each using its own data set. This approach may stand in contrast to traditional centralized machine learning techniques where local datasets are merged into one training session, as well as to approaches that assume that local data sets are identically distributed. Federated learning and/or collaborative learning may enable multiple actors to build a common, robust machine learning model without sharing data, thus addressing critical issues such as data privacy, data security, data access rights and access to heterogeneous data.
In some embodiments, the method may include a further step of compressing, at the central entity, the user-group-specific recipe generator to generate a compressed version of the user-group-specific recipe generator, wherein the step of sending the user-group-specific recipe generator is a step of sending the compressed version of the user-group-specific recipe generator from the central entity to the control units of the user group. The notion “recipe generator” may mean the recipe generator in any version. Depending on the context, the notion “recipe generator” may relate to an uncompressed recipe generator, a compressed recipe generator, an uncompressed user-group-specific recipe generator or a compressed user-group-specific recipe generator.
Under unfavorable conditions, a new recipe may violate some constraints. A human educated cook or chef may well be able to recognize immediately that a proposed recipe includes a mistake, a bad idea or some kind of obstacle, which still needs to be overcome. However, a conventional large language model may still propose such a recipe, just because some words have a certain likelihood to follow a certain other word. Furthermore, especially when dealing with a food processor like Cookit, it may be advantageous to take technical limitations of the cooking device into account and/or to consider health and safety concerns. Therefore, some embodiments of the method may including the further step of verifying, at the control unit and/or the central entity, the new recipe using at least one element of an element group including a knowledge graph, an ontology, a reasoner and constraint optimization. Ontology-based reasoning relating to recipe technology (addressing questions such as “what are required functions of ingredients or groups of ingredients?,” “which ingredients can or cannot be combined?” or “how can I substitute certain ingredients?”) has been described e.g. in European Patent Application EP3958688 A1, corresponding to U.S. Publication No. 2022/0208310 A1 and European Patent Application EP3909479 A1. The disclosures of European Patent Application EP3958688 A1, corresponding to U.S. Publication No. 2022/0208310 A1 and European Patent Application EP3909479 A1, in their entirety is herewith included into the present disclosure by reference. In some embodiments, auxiliary data may be used to enhance the trigger, especially before the trigger is giving to the recipe generator. Accordingly, in some embodiments, the method may include a further step of enhancing the trigger with auxiliary data using e.g. a knowledge graph, an ontology, a database about available ingredients and/or knowledge about the available cooking devices. The auxiliary data may be stored, for example, in the form of a knowledge graph. In this way, the reliability of the generated recipes may be improved. In some embodiments, machine learning based constraint optimization methods may be used. For example, (e.g. in the domain of constrained classification) two-player methods that switch between optimizing the models parameters and Lagrange multipliers may be used, e.g. when a classifier has to be learned that respects side constraints such as an upper bound imposed on the False-Positive Rate. There is a great wealth of constraints that can be utilized by the two-player method and it can be applied to the domain of large language models.
In some embodiments, the method may include the further step of translating, at the control unit and/or the central entity, the new recipe into a sequence of steps taken from a list of predetermined actions, which are executable by the cooking device. During the translation, technical constraints of the cooking device may be respected and/or taken into account. This translation step my help to optimize the new recipe for a food processor like CookIt, which in general has a limited number of executable instructions.
In some embodiments, the method further includes the step of controlling by means of the control unit the cooking device according to the new recipe. The new recipe may be already in a form, which can be directly executed (e.g. without problems) by the cooking device. If the recipe is in a verbose form and/or in natural language, it still may contain passages like “bake at 200 degrees Celsius for 30 minutes,” “preheat the oven,” “cook at medium heat” or “constantly stir while cooking.” Such instructions may be sent to the cooking device to control it, too.
In some embodiments, the control unit is adapted to provide the new recipe to the user by guiding the user through a cooking process relating to the new recipe and/or by furnishing recommendations and/or instructions to the user during the cooking process relating to the new recipe. For example, the control unit may tell the user to cut carrots into pieces and to add them to the pot or the control unit may instruct the user to peel potatoes. In a preferred embodiment, the current cooking situation is determined. This can be done, for example, by using a camera, which is attached to the exhaust hood. Preferably, the recommendations and instructions are based on the determined current cooking situation. The method may give the user, for example, the advice to turn around a piece of meat, which has lain for 5 minutes in a hot pan on the same side.
In some embodiments, the control unit may be integrated into the cooking device. The CookIt, for example, includes its own processor, which may be understood as a part of the control unit. In other embodiments, the control unit may be separate from the cooking device, but is connected to the cooking device. The control unit may for instance includes a computer, a mobile device, a tablet PC, a smartphone and/or a smart speaker. A smart phone, for example, may be sending instructions to the cooking device via a wireless connection like a Wi-Fi or Bluetooth connection. Accordingly, the smartphone may function as a control unit. In a preferred embodiment, the control unit includes the smart kitchen dock of Bosch (a smart speaker) and a tablet PC, which is connected to the smart kitchen dock.
The control unit may be connected to an output unit or it may include an output unit. The output unit may include a display and/or a loudspeaker. Furthermore, the control unit may be connected to an input unit or it may include an input unit. The input unit may e.g. include a microphone, a camera, a keyboard, a mouse, a gesture sensor and/or a touch-sensitive surface. CookIt, for example, includes a touch-screen, on which recipe steps can be displayed and haptic inputs can be received. The smart kitchen dock of Bosch includes a loudspeaker, in such a way that audio instructions may be rendered to the user, and it includes a microphone array for receiving triggers or instructions from the user. Some exhaust hoods include a camera to be able to observe the user while cooking. The control unit may be connected to the exhaust hood and use the observations of the camera to generate input from the user, which is later on used for learning.
With the objects of the invention in view, there is also provided a further aspect, in which the invention includes a control unit for a cooking device. The cooking device may include e.g. a food processor (especially an automatic food processor), a blender, an oven, a cooktop, a microwave and/or an exhaust hood. The control unit comprises a storage unit for storing recipes and/or a compressed or uncompressed version of a recipe generator. The recipe generator may be user-group-specific. Preferably, the control unit includes a communication unit for communicating with a central entity, which may be, for example, a server or a cloud service. The communication unit may be used to download recipes and/or the recipe generator (in a compressed or uncompressed version) to the control unit, which stores the downloaded data in the storage unit. Some recipes and/or a start version of the recipe generator may be pre-installed on the control unit. This may be especially advantageous if the control unit is integrated into a cooking device, especially into a food processor like CookIt. Other techniques to transfer the recipes and/or the recipe generator to the control unit may be to connect the control unit to a USB-stick or some other storage device, on which the respective data is stored.
Furthermore, the control unit may include an input unit being adapted for receiving a trigger, especially a request, a query or a prompt, from a user of the cooking device. The input unit may include, for example, a microphone, a camera, a keyboard, a mouse, a gesture sensor and/or a touch-sensitive display. In addition, the control unit may include a processor being adapted to ask the central entity for a new recipe based on the trigger and/or for generating, based on the trigger, a new recipe using the recipe generator being stored in the storage unit of the control unit. Also an output unit for providing the new recipe to the user may be part of the control unit. In this respect, already being able to steer the cooking device according to the recipe may be understood as outputting the recipe. Accordingly, the output unit may include a steering unit for controlling the cooking device.
With the objects of the invention in view, there is furthermore provided another aspect, in which the invention includes a central entity. The central entity may comprise or include, for example, a server or a cloud service. The central entity includes a storage unit for storing a trained recipe generator; a communication unit for communicating with a control unit of a cooking device; and a processor. The processor may be adapted for generating a new recipe based on a trigger, especially a request, a query or a prompt, received from the control unit and based on the stored recipe generator. In addition or alternatively, the processor may be adapted for sending the recipe generator from the central entity to the control unit of the cooking device using the communication unit.
With the objects of the invention in view, there is additionally provided yet a further aspect, in which the invention includes a system for providing recipes for cooking to a user of a cooking device. The system comprises a cooking device, the above described control unit of the cooking device and the above described central entity, wherein the cooking device includes the control unit or is connected to the control unit. The connection may be e.g. based on Wi-Fi, Bluetooth, Ethernet and/or DSL and protocols like TCP and/or the Internet Protocol and/or standards like MATTER may be used. The cooking device may include e.g. a food processor, a blender, an oven, a cooktop, a microwave and/or an exhaust hood.
With the objects of the invention in view, the method may concomitantly be implemented in software. Thus, according to a further aspect, the invention includes a data processing program product comprising instructions which, when the program is executed by a data processing apparatus, cause the data processing apparatus to carry out the above-described method. Such a data processing program product may be offered, for example, as a downloadable software package.
The invention has been described with regard to a method, a data processing program product, a control unit, a central entity and a system. If not explicitly stated otherwise, the features and advantages, which have been described with regard to one claim category (e.g. method or data processing program product), may be applied in analogy to all other claim categories (e.g. the control unit, the central entity and the system) and vice versa. This may mean especially that certain units of the mentioned apparatuses or the apparatuses themselves may be adapted to carry out the steps of the method. This adaptation may be carried out, for example, by downloading and installing the data processing program product. Accordingly, the control unit, for example, may include a button that issues a trigger, when it is pressed. The processor of the central entity may be adapted for compressing the recipe generator to generate a compressed version of the recipe generator. The communication unit of the central entity may be adapted to send the recipe generator in any form (i.e. compressed or uncompressed and general-purpose or user-group-specific) from the central entity to the control unit of the cooking device. In some embodiments, of course, the system includes multiple control units and multiple cooking devices. The processor of the central entity may be adapted for clustering the input and/or updates received from the control units based on characteristics of the respective user to whom the input and/or update relates and/or based on a choice of the user to which group he or she wants to belong. The storage unit of the central entity may be adapted to store multiple user-group-specific recipe generators. The processors of the control units and/or the processor of the central entity may be adapted for verifying the new recipe using at least one element of an element group including a knowledge graph, an ontology, a reasoner and constraint optimization. Furthermore, these processors may be adapted for translating the new recipe into a sequence of steps taken from a list of predetermined actions, which are executable by the cooking device. Likewise, the processor of the control unit may be adapted for controlling the cooking device according to the new recipe.
Other features which are considered as characteristic for the invention are set forth in the appended claims.
Although the invention is illustrated and described herein as embodied in a method, a control unit, a central entity, a system and a data processing program for providing recipes for cooking, it is nevertheless not intended to be limited to the details shown, since various modifications and structural changes may be made therein without departing from the spirit of the invention and within the scope and range of equivalents of the claims.
The construction and method of operation of the invention, however, together with additional objects and advantages thereof will be best understood from the following description of specific embodiments when read in connection with the accompanying drawings.
Referring now in detail to the figures of the drawings, in which identical elements or elements which have a similar function may be identified by the same reference sign, and first, particularly, to
The control unit 1 includes an input unit 4. The input unit 4 may include, for example, a button, which can be pressed to generate a trigger, which instructs the recipe generator to generate a new recipe. It may furthermore include one or more microphones, a keyboard, a touch-display, a gesture sensor and/or a mouse to allow the user to input a trigger. Especially if the input unit 4 includes a microphone or a keyboard, the trigger may include a request, a query or a prompt, which may instruct the recipe generator to generate a new recipe having certain characteristics. The control unit 1 furthermore includes a processor 5. The processor 5 may be adapted to ask the central entity for a new recipe based on the trigger. This is especially advantageous if the control unit 1 does not store a recipe generator itself. The process 5 may also be adapted for generating, based on the trigger, a new recipe using a recipe generator being stored in the storage unit 2. Additionally, the control unit 1 includes an output unit 6. The output unit 6 may include, for example, a display (especially a touch-sensitive display), a loudspeaker, a steering unit to steer the cooking device, LEDs and/or a beeper.
Furthermore, the central entity 50 includes a processor 53. The processor 53 may be adapted to perform many tasks, such as
In step U4, the new recipe is provided to the user. This may mean, for example, that the user is guided step-by-step through the recipe and/or that the cooking device is automatically controlled to perform the necessary steps to carry out the recipe. In step U5, input from the user is received. This may mean, for example, that the user was observed while cooking and conclusions are drawn with regard to the new recipe. Thus, input may be given by the user through his or her cooking behavior. The user may also provide input more explicitly, for example, by rating the new recipe or by typing in preferences. In step U6, the input is sent from the control unit to the central entity. As illustrated by the circled C, the method M1 continues with step S5, in which the input is received on the central entity. In step S6, learning is performed based on the input, in such a way that the recipe generator, which is provided in step S1, is adapted and/or trained based on the input. This continuous improvement processes is indicated by the circled D.
A further embodiment of a method according to the invention is illustrated in
In step U12, a trigger is received from the user of the control unit and/or the cooking device. For example, the user may scroll through a recipe list on the touch-sensitive display of CookIt and press on an item called “surprise me with a new recipe.” In step U13, based on the trigger, a new recipe is generated using the recipe generator, which is stored within the control unit. In step U14, the new recipe is provided to the user. For example, the new recipe may be rendered on the display of CookIt. Then in step U15, input is received from the user. For example, the user may click on the touch-sensitive display whether he or she likes the new recipe or not. Also a rating of the new recipe, e.g., on a scale from 1 (very bad) to 10 (very good) may be input. Based on the input, learning is performed on the control unit in step U16, in such a way that updates, especially updates to the recipe generator, are determined. Ratings of recipes, for example, may be incorporated into the fine-tuning process as sampling weights for the corresponding recipe. The learning, of course, may include that the local recipe generator stored on the control unit is adapted and/or trained. The user may have been asked under which conditions he or she wants to send the input and/or updates from the control unit to the central entity. If these conditions are not yet met, the method M2 simply jumps back to the step U12 and waits for a new trigger. When the conditions are met, the input and/or updates are sent from the control unit to the central entity, where they are received in step S14 (as indicated by the circled letter B). If the conditions are chosen to be “false,” the user never wants to send any input and/or updates from the control unit to the central entity (e.g. for privacy reasons). In this case, the local recipe generator is only locally trained and/or adapted, in such a way that the recipe generator is increasingly well able to anticipate the specific taste of the user.
In step S15, the inputs and/or updates received from many control units are clustered. The clustering may be performed, for example, based on certain characteristics of the users to whom the respective input and/or update relates. For example, all inputs and/or updates received from a region A may be clustered in a first group and all inputs and/or updates received from a region B may be clustered in a second group. It is also possible that the respective users have chosen themselves to which group they want to belong. For example, a user may have chosen that he or she wants to belong to the group “baking grandmas.” Accordingly, his or her input and/or updates may be used to adapt and/or train the recipe generator, which is specific for this group. The adaptation and/or training is performed in step S16. It may be based on the clustered inputs and/or the clustered updates, in such a way that preferably user-group-specific recipe generators are generated. These user-group-specific recipe generators may be compressed again in step S12 (as indicated by the circled letter C). In general, input may also be understood as a plural. Thus, input may include many inputs.
The description of the figures is to be understood in an illustrative and not in a restrictive sense. Many modifications may be made to the embodiments described with regard to the figures without departing from the scope of the invention as defined by the appended claims.
The following is a summary list of reference numerals and the corresponding structure used in the above description of the invention:
| Number | Date | Country | Kind |
|---|---|---|---|
| 23215292.6 | Dec 2023 | EP | regional |