This disclosure relates generally to taste and food matching methods and systems, and more particularly to methods and systems for recommending food that matches a user's taste profile.
Finding what to eat is often a challenge. A tool, system, or method that provides accurate, user-specific, restaurant dish recommendations would be very useful.
The present disclosure describes a method for a user to obtain accurate, user-specific, restaurant dish recommendations. Specific exemplary embodiments of the method feature a Recommendation Engine that may be implemented on a tool, such as a software app, that constantly learns a user's taste preferences based on the ratings given to each dish by the user, and based on viewing and searching habits inside of the app.
The present disclosure describes methods and processes to produce a taste recommendation between a user and a Taste Item offered by a food provider categorized by the user's taste preferences. The user's taste preferences include the user's dietary requirements.
The present disclosure also describes methods and processes to initialize, populate, gather, evolve, learn, and understand a user's taste preferences.
The present disclosure describes methods and processes to identify the good and bad combinations of Taste Tags for a specific user.
The present disclosure describes methods and processes to evolve a user's taste preferences based on their actions such as viewing, searching, liking, rating, and so forth.
The present disclosure describes methods and processes to create and populate a Taste Item database through the curated input of a Taste Expert.
The present disclosure describes methods and processes to produce a Recommendation Engine result between a user and a consumable or edible Item categorized by the Item's taste. The result is displayed to the user in one or more suitable ways, such as numerical, graphical, auditory, and the like.
The present disclosure describes methods and processes to render on a screen the Recommendation Engine result between a user and a consumable or edible Item categorized by the Item's taste.
The present disclosure describes methods and processes to categorize an edible or consumable Item based on a predetermined and evolving Taste Network.
The present disclosure describes method and process to create, curate, maintain, and expand a Taste Network by a Taste Expert.
For a more complete understanding of the present disclosure, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
The following discussion is directed to various embodiments of the invention. The term “invention” is not intended to refer to any particular embodiment or otherwise limit the scope of the disclosure. Although one or more of these embodiments may be preferred, the embodiments disclosed should not be interpreted, or otherwise used, as limiting the scope of the disclosure, including the claims. In addition, one skilled in the art will understand that the following description has broad application, and the discussion of any embodiment is meant only to be exemplary of that embodiment, and not intended to intimate that the scope of the disclosure, including the claims, is limited to that embodiment.
In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . .” Also, the term “link” or “points to,” and forms thereof, are intended to mean either an indirect or direct connection. Thus, if a first component links to a second component, that connection may be through a direct connection or through an indirect connection via other components and connections.
Certain terms are used throughout the following description and claims to refer to particular system components and method steps. As one skilled in the art will appreciate, different products may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. The following defined terms and phrases are used in the description of the Recommendation Engine methods and processes:
Taste Expert: A human or non-human entity that follows a defined process to categorize a Taste Item using Tags in the Taste Network.
Taste Network: User curated hierarchical graph that relates the Taste Tags to each other and between themselves. The Taste Network is curated by a Taste Expert and can be enhanced through: user actions, forced temporary or permanent relations, automated learning, Internet crawling, Application Program Interface (“API”) callers, and so forth.
Taste Tags (“Tags”): Set of words that fall into one of the 17 unique Tag types. They are used to describe every possible component of taste. They are curated by a Taste Expert and can be enhanced through: user actions, admin actions, Taste Experts, Internet crawling, and API callers.
Unique Tag Types:
Cuisine type
Ingredients
Textures
Aromas
Cooking methods
Temperature
Dish type
Taste intensity profile
Mood
Size
Dietary description
Time
Density
Occasion
Seasonality
Region
Weather
Taste Item or Item: Any edible or consumable thing offered by a food provider, including, but not limited to, food dishes, menu entries, ingredients, spices, and sauces, as well as drinks, cocktails, refreshments and desserts.
All data in the present Recommendation Engine can be tweaked, enhanced, or modified by a Taste Expert. Data is stored in databases such as the following:
User Databases: Modified by admin, user, API caller. Each user database is created with initial content provided by the API caller, user, admin, or through a quiz, survey, or the user's Internet profiles such as Instagram, Facebook, and the like. All data can be updated and re-fetched as long as the user has an entry in the database. User databases consist of a preference database, which holds the user's preference information towards each Tag in the Taste network. Each preference entry consists of pairings databases, which hold the user's preference information for the combination between that preference and another preference. The user databases are constantly evolving through the rating system to generate a user taste profile expressed, for example, of Taste Tags.
Taste Item Database: Modified by admin, user, and/or API caller. It is created with initial content provided by the API caller, user, admin, through a quiz, survey, or from the owner's Internet profiles. It is comprised of Taste Tags that are part of the Taste Network.
All databases record the following factors: date, time, user data (gender, age, ethnicity, and so forth), location of API/request caller, current weather at the location of the caller, current local events at location of caller, and taste information requested.
Analytics are recorded when the following actions are performed: viewing, searching, rating a Taste Item, and app specific interactions.
The engine works in direct conjunction with a specific database schema, multiple engines, and setup that utilizes a food-specific set of Tags that are connected in a network based on their relationships.
The Recommendation Engine is comprised of 3 subsystems that are required for its complete functionality:
Rating System—When the user expresses interest in an Item, the engine records all the possible combinations of all the Tags owned by that dish in a preference database specific for that user. This also records the frequency of these combinations alongside with the rating provided, which allows them to be recorded as good pairings and bad pairings.
The user has a preference database that records the frequency and average rating for each Tag the user has expressed any interested in, as well as a pointer to 2 separate databases good pairing and bad pairing, to record the combinational relationships between Tags for that user.
Matching Algorithm—When a recommendation is calculated, it evaluates an Item's set of Tags against the preference database to see how many good and bad pairings it includes. It then evaluates the frequency of that preference and pairing for that user and changes its weight based on the accumulated average rating for that specific Tag. The final score is calculated as a difference of the total good pairing weighted frequency and the total bad pairing weighted frequency. A final percentage match is also calculated to provide a confidence factor for the final score. This percentage takes into account an initial set of Tag preferences provided by the user, as well as dietary requirements.
Taste Network—All taste data is stored in a curated relational network of Taste Tags that is comprised of words that fall into the set of 17 unique Tag types.
Turning now to the drawings and referring to
The rating system of
If from a rating scale of 1 through 5, Pablo rates a taco made with onion, avocado and pork, a 5, the engine would proceed to first record and/or update the frequency and average rating all these Tags in the user's preference database. Secondly, it would record all the possible combinations as good pairings given a rating threshold of 3, inclusive, and record/update their frequency and average rating. After the iterative process completes, the system would know that user Pablo considers all of the following to be good combinations: taco and onion, taco and avocado, taco and pork, onion and avocado, onion and pork, and avocado and pork.
In another way to illustrate the example, User Pablo has rated 3 tacos that have the following Tags:
Taco 1: [taco, onion, avocado, pork]—Rated a 5
Taco 2: [taco, onion, pork, mango]—Rated a 5
Taco 3: [taco, shrimp, mango]—Rated a 2
In this scenario, the threshold for a good pairing is at 3, inclusive. That user's databases would look like the following:
Preference Database
Good Pairing Database
Bad Pairing Database
Another way to describe
An example helps further explain
Find 222 if the user has a preference entry for ‘taco’. Since it does 212, it loads the good pairings for ‘taco’ for that user: onion, avocado, pork, mango, as well as the bad pairings: shrimp, mango.
It then scans 314 the rest of the Item Tags, in this case: bacon, avocado, for a good or bad pairing 316. In this case, it finds ‘avocado’ in the good pairings, and updates the calculation 318.
It moves to the next Item Tag 222 and finds if the user has a preference entry for ‘bacon’ 212. Since it doesn't, it replaces it 310 leveraging information on the Taste Network, in this case, with ‘pork’ and loads the good and bad pairings.
It then scans the rest of the Item Tags 222, in this case: avocado, for a good or bad pairing 212, and finds it as a good pairing 314.
These steps are repeated until all the Item Tags are processed for all the possible combinations and a final score is calculated 324. The accumulation of scores over time creates a user preference profile. Additionally, the engine determines or enhances a match between a user and offering based on the taste preferences of multiple users who share other similar traits.
The computer system 700 may include a processor 702 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both), a main memory 704 and a static memory 706, which communicate with each other via a bus 708. The computer system 700 may further include a video display unit 710 (e.g., a touch screen, a liquid crystal display (LCD), a flat panel, a solid state display, or a cathode ray tube (CRT)). The computer system 700 may include an input device 712 (e.g., a keyboard, touch screen or voice), a cursor control device 714 (e.g., a mouse, touch screen, a remote control), a disk drive unit 716, a signal generation device 718 (e.g., a speaker, Internet connection, or remote control) and a network interface device 720.
The disk drive unit 716 may include a machine-readable medium 722 on which is stored one or more sets of instructions (e.g., software 724) embodying any one or more of the methodologies or functions described herein, including those methods illustrated in herein above. The instructions 724 may also reside, completely or at least partially, within the main memory 704, the static memory 706, and/or within the processor 702 during execution thereof by the computer system 700. The main memory 704 and the processor 702 also may constitute machine-readable media. Dedicated hardware implementations including, but not limited to, application specific integrated circuits, programmable logic arrays and other hardware devices can likewise be constructed to implement the methods described herein. Applications that may include the apparatus and systems of various embodiments broadly include a variety of electronic and computer systems. Some embodiments implement functions in two or more specific interconnected hardware modules or devices with related control and data signals communicated between and through the modules, or as portions of an application-specific integrated circuit. Thus, the example system is applicable to software, firmware, and hardware implementations.
In accordance with various embodiments of the present disclosure, the methods described herein are intended for operation as software programs running on a computer processor. Furthermore, software implementations can include, but not limited to, distributed processing or component/object distributed processing, parallel processing, or virtual machine processing can also be constructed to implement the methods described herein.
The present disclosure contemplates a machine readable medium containing instructions 724, or that which receives and executes instructions 724 from a propagated signal so that a device connected to a network environment 626 can send or receive voice, video or data, and to communicate over the network 726 using the instructions 724. The instructions 724 may further be transmitted or received over a network 726 via the network interface device 720.
While the machine-readable medium 722 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any non-volatile medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to: solid-state memories such as a memory card or other package that houses one or more read-only (non-volatile) memories, random access memories, or other re-writable (volatile) memories; magneto-optical or optical medium such as a disk or tape; and computer instructions in a non-volatile transmission medium; and/or a digital file attachment to e-mail or other self-contained information archive or set of archives is considered a distribution medium equivalent to a tangible storage medium. Accordingly, the description is considered to include any one or more of a machine-readable medium or a distribution medium, as listed herein and including art-recognized equivalents and successor media, in which the software implementations herein are stored.
Although the present specification describes components and functions implemented in the embodiments with reference to particular standards and protocols, the disclosure is not limited to such standards and protocols. Each of the standards for Internet and other packet switched network transmission (e.g., TCP/IP, UDP/IP, HTML, HTTP) represent examples of the state of the art. Such standards are periodically superseded by faster or more efficient equivalents having essentially the same functions. Accordingly, replacement standards and protocols having the same functions are considered equivalents.
The methods and systems defined in this patent greatly improve the likelihood for an individual to find the best Taste Item for them. Currently, most people select what to eat based on reviews, comments, and ratings from other persons. However this is not only time consuming, but also inefficient as there is still a great chance the individual will not share the same opinion, due to factors like personal preferences, allergies, and dietary restrictions. A personalized taste recommendation system that evolves as it learns directly from the user brings constant value to the consumers as well as the food providers, who can learn exactly what their clients' taste preferences are. This in turn allows them to improve the products and experiences provided to their customers.
Many modifications and other embodiments of the Recommendation Engine described herein will come to mind to one skilled in the art to which this disclosure pertains having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the disclosure is not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
The present application is related to, a continuation-in-part of, claims priority from and the benefit of U.S. patent application Ser. No. 14/829,030, filed Aug. 18, 2015, having the same title and the same inventors, the disclosure of which is incorporated herein by reference in its entirety.