IP Library Granted Patent US 12,353,471
Granted Patent B2
US 12,353,471 · App. 18/500,791 · Granted Jul 8, 2025

Identifying content items in response to a text-based request

Inventors: Nikil Pancha (San Francisco, CA); Andrew Huan Zhai (Belmont, CA); Charles Joseph Rosenberg (Cupertino, CA)
Assignee: Pinterest, Inc.
G06F16/483G06F16/444G06F16/45G06N20/00G06F40/56
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,353,471
App. No.
18/500,791
Granted
Jul 8, 2025
Kind
B2
Abstract

Systems and methods for responding to a subscriber's text-based request for content items are presented. In response to a request from a subscriber, word pieces are generated from the text-based terms of the request. A request embedding vector of the word pieces is obtained from a trained machine learning model. Using the request embedding vector, a set of content items, from a corpus of content items, is identified. At least some content items of the set of content items are returned to the subscriber in response to the text-based request for content items.

Claims (67)

1. A computing system, comprising:

one or more processors; and

a memory storing program instructions that, when executed by the one or more processors, cause the one or more processors to at least:

maintain a plurality of image content items, wherein the plurality of image content items are associated with a plurality of image content item embedding vectors that project the plurality of image content items into an image content item embedding space;

in response to a text-based query, project a request embedding vector generated from the text-based query into the image content item embedding space;

determine, based at least on the plurality of image content item embedding vectors and the request embedding vector, an image content item from the plurality of image content items; and

provide the image content item in response to the text-based request.

2. The computing system of claim 1 , wherein the program instructions include further instructions that, when executed by the one or more processors, further cause the one or more processors to at least generate, using a trained machine learning model, the request embedding vector.

3. The computing system of claim 2 , wherein generating the request embedding vector includes:

determining a plurality of word pieces from the text-based query;

determining a plurality of word piece embedding vectors for the plurality of word pieces; and

combining the plurality of word piece embedding vectors to generate the request embedding vector.

4. The computing system of claim 3 , wherein combing the plurality of word piece embedding vectors includes:

determining weights for at least one word piece embedding vector of the plurality of word piece embedding vectors; and

combining the plurality of word piece embedding vectors according to the determined weights.

5. The computing system of claim 2 , wherein the trained machine learning model is trained using training data generated using request-content item logs that includes a plurality of positive request-content item pairs.

6. A computer-implemented method, comprising:

projecting a first plurality of embedding vectors corresponding to a plurality of images into an image embedding space;

generating a second embedding vector representative of a text input, wherein generating the second embedding vector includes:

determining a plurality of word pieces based on the text input;

determining a plurality of word piece embedding vectors for the plurality of word pieces; and

combining the plurality of word piece embedding vectors to generate the second embedding vector;

projecting the second embedding vector into the image embedding space;

determining, based at least in part on the projection of the second embedding vector and the projection of the first plurality of embedding vectors, a first image from the plurality of images; and

providing the first image in response to the text input.

7. The computer-implemented method of claim 6 , wherein generating the second embedding vector further includes:

performing a semantic analysis of the text input, the performing the semantic analysis including determining an intent of the text input.

8. The computer-implemented method of claim 6 , wherein determining the plurality of word pieces includes:

performing a morphological analysis of a set of terms derived from the text input, the performing the morphological analysis including determining a plurality of morphemes as the plurality of word-pieces.

9. The computer-implemented method of claim 8 , wherein the set of terms is determined using a lexical analysis of the text input.

10. The computer-implemented method of claim 8 , further comprising:

storing the plurality of morphemes in association with a plurality of corresponding words;

receiving a second text input;

generating a third embedding vector representative of the second text input, wherein generating the third embedding vector includes determining a second plurality of word pieces for the second text input based at least in part on the stored plurality of morphemes;

projecting the third embedding vector into the image embedding space;

determining, based at least in part on the projection of the third embedding vector and the projection of the first plurality of embedding vectors, a second image from the plurality of images; and

providing the second image in response to the second text input.

11. The computer-implemented method of claim 6 , wherein combining the plurality of word piece embedding vectors includes:

determining weights for at least one word piece embedding vector of the plurality of word piece embedding vectors; and

combining the plurality of word piece embedding vectors according to the determined weights.

12. The computer-implemented method of claim 11 , wherein the weights are based at least in part on at least one of:

an intent of the text input;

a topic of the text input;

an importance of a first corresponding word piece; or

a frequency of a second corresponding word piece.

13. The computer-implemented method of claim 6 , wherein determining the first image from the plurality of images is based at least in part on a distance between the second embedding vector and a respective embedding vector of the first plurality of embedding vectors that is associated with the first image in the image embedding space based on a cosine similarity of the second embedding vector and the respective embedding vector associated with the first image.

14. The computer-implemented method of claim 6 , wherein determining the first image from the plurality of images includes:

identifying a closest image from the plurality of images that is closest to the request embedding vector in the image embedding space;

conducting a random walk originating from the closest image in a content item graph representing relationships between the plurality of images;

determining, based at least in part on the random walk, a second plurality of images from the plurality of images; and

determining the first image from the second plurality of images.

15. The computer-implemented method of claim 6 , further comprising: storing the second embedding vector in association with the text input; receiving a second text input;

determining a third embedding vector for the second text input based at least in part on the stored second embedding vector;

projecting the third embedding vector into the image embedding space;

determining, based at least in part on the projection of the third embedding vector and the projection of the first plurality of embedding vectors, a second image from the plurality of images; and

providing the second image in response to the second text input.

16. A computer-implemented method, comprising:

maintaining a plurality of image content items in a content item graph, wherein each image content item of the plurality of image content items is associated with a respective embedding vector that projects each image content item into an image content item embedding space;

in response to a text-based input, generating, using a trained machine learning model, a first embedding vector representative of the—text-based input;

projecting the first embedding vector into the image content item embedding space;

determining, based at least in part on the first embedding vector and a second embedding vector associated with a first image content item of the plurality of image content items, that the first image content item is responsive to the text-based input; and

providing the first image content item in response to the text-based input.

17. The computer-implemented method of claim 16 , wherein the trained machine learning model is trained using training data generated using request-content item logs that includes a plurality of positive request-content item pairs.

18. The computer-implemented method of claim 16 , wherein:

the first image content item corresponds to a first node in the content item graph; and

the first image content item is determined based at least in part on conducting a random walk originating from a second node of the content item graph that corresponds to a second image content item that is determined to be closest to the text-based input in the image content item embedding space.

19. The computer-implemented method of claim 16 , wherein the first embedding vector is based at least in part on a combination of weighted word piece embedding vectors derived from the text-based input.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2023
From: PANCHA, NIKIL; ZHAI, ANDREW HUAN; ROSENBERG, CHARLES JOSEPH
To: PINTEREST, INC.
Reel/Frame 065439/0836 →
Continuity (3)
Continuation 18148386 · Dec 29, 2022
Continuation 16998398 · Aug 20, 2020
Related Publication 20240061875A1 · Feb 22, 2024
References Cited (8)
US 11409821B1 · Pal · 2022 [cited by examiner]
US 20020173971A1 · Stirpe · 2002 [cited by examiner]
US 20110191374A1 · Bengio · 2011 [cited by examiner]
US 20180075137A1 · Lifar · 2018 [cited by examiner]
US 20190286943A1 · Leskovec · 2019 [cited by examiner]
US 20200372073A1 · Dahl · 2020 [cited by examiner]
US 20210089822A1 · Baek · 2021 [cited by examiner]
US 20210248173A1 · Hansen · 2021 [cited by examiner]