Embedding-based retrieval techniques for feeds
AssigneeMicrosoft Technology Licensing, LLC
InventorsFrancisco José Claude Faust, Ali Mohamed, Nisheedh Raveendran, Namit Sikka, Siddharth Dangi, Birjodh Singh Tiwana, Adam Robert Peck
Life of this patent
Estimating the term…
Abstract
Described herein is a technique to facilitate filtering during candidate retrieval stage performed by an information retrieval system that utilizes embedding models. An aNN indexing structure is created for each end-user, and in some instances, each activity type. This allows a single request for candidate content items to invoke a single process to obtain content items that satisfy the filtering criteria (e.g., in this case, the in-network requirement) from the separate per-end-user indexes.
Claims20
A computer-implemented method comprising:
- generating a plurality of approximate nearest neighbor (“aNN”) indexes, each aNN index storing content item embeddings for content items associated with one end-user of a feed of an online service;
- at a candidate selection module, receiving a request to obtain a number “k” of content items for presentation to a first end-user of the feed, the request including a query embedding representing the first end-user and data identifying other end-users of the online service who are connections or follows of the first end-user;
- generating, by the candidate selection module, an intermediate set of content items by adding to the intermediate set a content item selected from each aNN index associated with an end-user of the online service who is a connection or follow of the first end-user, each content item selected for adding to the intermediate set representing the content item in its respective index having the highest similarity score, the similarity score based on a measure of distance between the query embedding and a content item embedding representing the content item;
- iteratively performing operations, by the candidate selection module, to add content items to a result set until the number of content items in the result set is equal to “k,” the operations including:
- moving, from the intermediate set of content items to the result set, the content item in the intermediate set having the highest similarity score;
- and
- updating the intermediate set of content items by adding to the intermediate set a content item selected from the aNN index from which the last content item moved to the result set was selected;
- and
- ranking, by a ranking module, the content items in the result set;
- and
- selecting a subset of ranked content items for presentation to the first end-user via a user interface of the feed.
A system comprising:
- a processor configured to execute computer-readable instructions;
- and
- a memory storage device storing computer-readable instructions thereon, which, when executed by the processor, cause the system to perform operations comprising:
- generating a plurality of approximate nearest neighbor (“aNN”) indexes, each aNN index storing content item embeddings for content items associated with one end-user of a feed of an online service;
- at a candidate selection module, receiving a request to obtain a number “k” of content items for presentation to a first end-user of the feed, the request including a query embedding representing the first end-user and data identifying end-users of the online service who are connections or follows of the first end-user;
- generating, by the candidate selection module, an intermediate set of content items by adding to the intermediate set a content item selected from each aNN index associated with an end-user of the online service who is a connection or follow of the first end-user, each content item selected for adding to the intermediate set representing the content item in its respective index having the highest similarity score, the similarity score based on a measure of distance between the query embedding and a content item embedding representing the content item;
- iteratively performing operations, by the candidate selection module, to add content items to a result set until the number of content items in the result set is equal to “k,” the operations including:
- moving, from the intermediate set of content items to the result set, the content item in the intermediate set having the highest similarity score;
- and
- updating the intermediate set of content items by adding to the intermediate set a content item selected from the aNN index from which the last content item moved to the result set was selected;
- and
- ranking, by a ranking module, the content items in the result set;
- and
- selecting a subset of ranked content items for presentation to the first end-user via a user interface of the feed.
A system comprising:
- means for generating a plurality of approximate nearest neighbor (“aNN”) indexes, each aNN index storing content item embeddings for content items associated with an end-user of a feed of an online service;
- means for receiving, at a candidate selection module, a request to obtain a number “k” of content items for presentation to the first end-user of the feed, the request including a query embedding representing the first end-user and data identifying end-users of the online service who are connections or follows of the first end-user;
- means for generating an intermediate set of content items by adding to the intermediate set a content item selected from each aNN index associated with an end-user of the online service who is a connection or follow of the first end-user, each content item selected for adding to the intermediate set representing the content item in its respective index having the highest similarity score, the similarity score based on a measure of distance between the query embedding and a content item embedding representing the content item;
- means for iteratively performing operations, by the candidate selection module, to add content items to a result set until the number of content items in the result set is equal to “k,” the operations including:
- moving, from the intermediate set of content items to the result set, the content item in the intermediate set having the highest similarity score;
- and
- updating the intermediate set of content items by adding to the intermediate set a content item selected from the aNN index from which the last content item moved to the result set was selected;
- and
- means for ranking, by a ranking module, the content items in the result set;
- and
- means for selecting a subset of ranked content items for presentation to the first end-user via a user interface of the feed.
Dependencies are inferred from the claim text.