A non-transitory computer-readable medium configured to store code comprising instructions for improving a query engine, wherein the instructions, when executed by one or more processors, cause the one or more processor to:
- maintain an embedding database that comprises a plurality of embeddings, each embedding having at least ten dimensions, the plurality of embeddings comprising a plurality of item embeddings and a plurality of item-category embeddings, each item embedding representing an item in a latent space and each item-category embedding representing a query term in the latent space, wherein the item is offered by an online concierge system and the query term corresponding to a category of the items that are arranged in an hierarchical taxonomy, wherein the item hierarchical taxonomy defines hierarchical relationships among the items and categories of items, wherein the item embeddings and the item-category embeddings are generated in part based on historical user data and the hierarchical relationships among the items and categories of items that are defined in the item hierarchical taxonomy;
- receive, from a client device, a request to view a user interface, the user interface configured to receive a search query for the query engine;
- receive, via the user interface, a query term from a user searching for items;
- determine an item-category embedding corresponding to the query term;
- identify a plurality of items embeddings that are associated with the item-category embedding;
- cause to display, at the user interface, a plurality of items corresponding to the plurality of identified item embeddings;
- receive, via the user interface, a selection of a first item from the user, the first item corresponding to a first identified item embedding;
- generate a recommendation of a second item that corresponds to a second identified item embedding responsive to the selection of the first item.