System and method for associating user-entered text to database entries
AssigneeMyFitnessPal, Inc.
InventorsPatrick Howell, Chul Lee, Hesamoddin Salehian
Life of this patent
Estimating the term…
Abstract
System and method for associating user-entered consumable item description to an entry in a consumable item database. In one embodiment, formally structured restaurant menu item is matched to a large database of food items that has been constructed via crowd-sourcing. A novel, practical, and scalable machine learning solution architecture, consisting of two major steps is utilized. First a query generation approach is applied, based on a Markov Decision Process algorithm, to reduce the time complexity of searching for matching candidates. That is then followed by a re-ranking step, using deep learning techniques, to ensure matching quality goals are met.
Claims19
A method for enabling efficient association of a consumable item to one of a plurality of consumable item records in a database, said method comprising:
- receiving a text input from a user device, said text input provided as an initial search query comprising user-generated descriptive data regarding said consumable item;
- using a first machine learning technique to derive one or more additional search queries based on said text input, wherein the first machine learning technique includes (i) deriving at least one hidden query based on the text input, (ii) determining a weight vector by assigning a respective weight to each respective term of the at least one hidden query, (iii) obtaining search results based on the at least one hidden query, and (iv) updating the weight vector by updating the respective weight assigned to each respective term of the at least one hidden query based on a contribution of the respective term in each of the obtained search results, wherein the weight vector is updated iteratively until a distance between an updated value of the weight vector and a previous value of the weight vector is less than a predetermined threshold amount;
- querying said database for a list of possible consumable item records which are determined to comprise descriptive data associated with said text input using said one or more additional search queries;
- receiving said list of possible consumable item records, said list of possible consumable item records having an initial ranking;
- applying a second machine learning technique to re-rank said list of possible consumable item records to generate a re-ranked list;
- and
- outputting a highest ranked one of said re-ranked list to said user device,
- wherein said first machine learning technique and said second machine learning technique are characterized by different training sets and different chosen features.
A non-transitory, computer readable medium comprising a plurality of instructions which are configured to, when executed by a processor, cause a server device to:
- query a database comprising a plurality of consumable item records for a list of possible consumable item records which comprise descriptive data associated with a text input received from a user device using one or more queries derived via a first machine learning technique, wherein said one or more queries derived via said first machine learning technique include a weight vector having a respective weight assigned to each respective term of said one or more queries, wherein the weight vector is updated by updating the respective weight assigned to each respective term of said one or more queries based on a contribution of the respective term in search results from the database, the weight vector being updated iteratively until a distance between an updated value of the weight vector and a previous value of the weight vector is less than a predetermined threshold amount;
- and
- apply a second machine learning technique to re-rank the list of possible consumable item records in order to generate a re-ranked list which identifies a most closely related one of said plurality of consumable item records, wherein said first machine learning technique and said second machine learning technique are characterized by different training sets and different chosen features.
A method for associating a consumable item in a crowd-sourced database, the method comprising:
- querying a database comprising a plurality of consumable item records for a list of possible consumable item records which comprise descriptive data associated with a text input received from a user device using one or more queries derived via a first machine learning technique, wherein said one or more queries derived via said first machine learning technique include a weight vector having a respective weight assigned to each respective term of said one or more queries, wherein the weight vector is updated by updating the respective weight assigned to each respective term of said one or more queries based on a contribution of the respective term in search results from the database, the weight vector being updated iteratively until a distance between an updated value of the weight vector and a previous value of the weight vector is less than a predetermined threshold amount;
- and
- applying a second machine learning technique to re-rank the list of possible consumable item records in order to generate a re-ranked list which identifies a most closely related one of said plurality of consumable item records, wherein said first machine learning technique and said second machine learning technique are characterized by different training sets and different chosen features.
Dependencies are inferred from the claim text.