IP Library › Granted Patent US 11,769,193
Granted Patent B2
US 11,769,193 · App. 15/430,191 · Granted Sep 26, 2023

System and method for detecting visually similar items

Inventors: Benjamin Eliot Klein (Princeton, NJ); Adi Guila Haviv (New York, NY)
Assignee: eBay Inc.
G06Q30/0631G06F18/2414G06F18/24147G06N3/045G06V10/454G06V10/764G06V10/82
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 11,769,193
App. No.
15/430,191
Granted
Sep 26, 2023
Kind
B2
Abstract

A computer-implemented method includes determining a set of target listings, retrieving a seed image associated with the seed listing, the seed listing is categorized within a first item category, and generating a seed item feature vector for the seed image using a convolutional neural network (CNN) trained with images of items. The method also includes identifying a plurality of feature vectors associated with the first item category, comparing the seed item feature vector to the plurality of feature vectors using a k-nearest neighbors (kNN) algorithm, and generating a set of nearest neighbor listings to the seed listing. The method further includes storing the set of nearest neighbor listings as associated with the seed listing, selecting one or more nearest neighbor listings from the set of nearest neighbors, and presenting the one or more nearest neighbor listings as a recommendation to a user of the online e-commerce system.

Claims (86)

1. An image analysis system comprising:

one or more hardware processors;

a memory storing images associated with listings presented via an online e-commerce system, each listing represents an item offered for sale; and

an image analysis engine, executable by the one or more hardware processors, configured to perform operations comprising:

determining a set of target listings, each target listing of the set of target listings includes a category identifier, a listing identifier, and an image associated with the item;

for a seed listing of the set of target listings, retrieving a seed image of a seed item associated with the seed listing, the seed listing categorized within a first item category;

training a convolutional neural network (CNN) with images of items, the images of items being labeled with the first item category;

generating a seed item feature vector for the seed image using the CNN trained with the images of items labeled with the first item category, wherein the seed image is an input to the CNN, the seed item feature vector including an array of values representing features of the image;

identifying a plurality of feature vectors associated with the first item category, wherein each feature vector of the plurality of feature vectors is associated with a listing categorized within the first item category, the plurality of feature vectors being previously stored;

adding the seed item feature vector to the stored plurality of feature vectors;

comparing the seed item feature vector to the plurality of feature vectors using a k-nearest neighbors (kNN) algorithm;

generating a first set of nearest neighbor listings to the seed listing based on the comparing and based on a time that the seed listing was added to the online e-commerce system, wherein each nearest neighbor listing represents a listing for an item that is visually similar to the seed item and that is categorized within the first item category;

storing the first set of nearest neighbor listings associated with the seed listing in a database;

receiving, via a client device subsequent to storing the first set of nearest neighbor listings in the database, a query for the seed listing;

selecting one or more nearest neighbor listings from the first set of nearest neighbor listings stored in the database based on receiving the query;

communicating the one or more nearest neighbor listings to the client device as a recommendation of the online e-commerce system in response to the query; and

generating a second set of nearest neighbor listings to the seed listing based on a passage of a time duration following generation of the first set of nearest neighbor listings, wherein the second set of nearest neighbor listings include at least one listing for an item that was added to the online e-commerce system following generation of the first set of nearest neighbor listings.

2. The image analysis system of claim 1 , further comprising an in-memory database, the operations further comprising:

generating a database entry including the listing identifier of the seed item and listing identifiers of each listing in the first set of nearest neighbor listings; and

storing the database entry in the in-memory database,

wherein selecting the one or more nearest neighbor listings further includes selecting the one or more nearest neighbor listings from the database entry.

3. The image analysis system of claim 1 , wherein the CNN uses a GoogLeNet model.

4. The image analysis system of claim 1 , wherein determining the set of target listings further comprises:

determining one or more target listings added to the online e-commerce system within a pre-determined period of time.

5. The image analysis system of claim 1 , the operations further comprising:

converting the seed image to a standard size prior to generating the seed item feature vector, wherein the standard size is used for images used to generate the plurality of feature vectors.

6. The image analysis system of claim 1 , the operations further comprising:

storing the seed item feature vector along with the plurality of feature vectors for use in future similarity comparisons.

7. The image analysis system of claim 1 , the operations further comprising:

identifying a labeled set of images associated with the first item category, wherein each image in the labeled set of images includes a label based on a first category factor, and wherein the first category factor identifies a factor applicable to items within the first item category; and

training the CNN based on the labeled set of images.

8. A computer-implemented method for image-based analysis, the method comprising:

determining a set of target listings of an online e-commerce system, each target listing of the set of target listings includes a category identifier, a listing identifier, and an image associated with an item;

for a seed listing of the set of target listings, retrieving a seed image of a seed item associated with the seed listing, the seed listing categorized within a first item category;

training a convolutional neural network (CNN) with images of items, the images of items being labeled with the first item category;

generating a seed item feature vector for the seed image using the CNN trained with the images of items labeled with the first item category, wherein the seed image is an input to the CNN, the seed item feature vector including an array of values representing features of the image;

identifying a plurality of feature vectors associated with the first item category, wherein each feature vector of the plurality of feature vectors is associated with a listing categorized within the first item category, the plurality of feature vectors being previously stored;

adding the seed item feature vector to the stored plurality of feature vectors;

comparing the seed item feature vector to the plurality of feature vectors using a k-nearest neighbors (kNN) algorithm;

generating a first set of nearest neighbor listings to the seed listing based on the comparing and based on a time that the seed listing was added to the online e-commerce system, wherein each nearest neighbor listing represents a listing for an item that is visually similar to the seed item and that is categorized within the first item category;

storing the first set of nearest neighbor listings associated with the seed listing in a database;

receiving, via a client device subsequent to storing the first set of nearest neighbor listings in the database, a query for the seed listing;

selecting one or more nearest neighbor listings from the first set of nearest neighbor listings stored in the database based on receiving the query;

communicating the one or more nearest neighbor listings to the client device as a recommendation of an online e-commerce system in response to the query; and

generating a second set of nearest neighbor listings to the seed listing based on a passage of a time duration following generation of the first set of nearest neighbor listings, wherein the second set of nearest neighbor listings include at least one listing for an item that was added to the online e-commerce system following generation of the first set of nearest neighbor listings.

9. The method of claim 8 , further comprising:

generating a database entry including the listing identifier of the seed item and listing identifiers of each listing in the first set of nearest neighbor listings; and

storing the database entry in an in-memory database,

wherein selecting the one or more nearest neighbor listings further includes selecting the one or more nearest neighbor listings from the database entry.

10. The method of claim 8 , wherein the CNN uses a GoogLeNet model.

11. The method of claim 8 , wherein determining the set of target listings further comprises:

determining one or more target listings added to the online e-commerce system within a pre-determined period of time.

12. The method of claim 8 , further comprising:

converting the seed image to a standard size prior to generating the seed item feature vector, the standard size is used for images used to generate the plurality of feature vectors.

13. The method of claim 8 , further comprising:

storing the seed item feature vector along with the plurality of feature vectors for use in future similarity comparisons.

14. The method of claim 8 , further comprising:

identifying a labeled set of images associated with the first item category, wherein each image in the labeled set of images includes a label based on a first category factor, and wherein the first category factor identifies a factor applicable to items within the first item category; and

training the CNN based on the labeled set of images.

15. A non-transitory machine-readable medium storing processor-executable instructions which, when executed by a processor, cause a system to:

determine a set of target listings of an online e-commerce system, each target listing of the set of target listings includes a category identifier, a listing identifier, and an image associated with an item;

for a seed listing of the set of target listings, retrieve a seed image of a seed item associated with the seed listing, the seed listing categorized within a first item category;

train a convolutional neural network (CNN) with images of items, the images of items being labeled with the first item category;

generate a seed item feature vector for the seed image using the CNN trained with the images of items labeled with the first item category, wherein the seed image is an input to the CNN, the seed item feature vector including an array of values representing features of the image;

identify a plurality of feature vectors associated with the first item category, each feature vector of the plurality of feature vectors is associated with a listing categorized within the first item category, the plurality of feature vectors being previously stored;

add the seed item feature vector to the stored plurality of feature vectors;

compare the seed item feature vector to the plurality of feature vectors using a k-nearest neighbors (kNN) algorithm;

generate a first set of nearest neighbor listings to the seed listing based on the comparing and based on a time that the seed listing was added to the online e-commerce system, wherein each nearest neighbor listing represents a listing for an item that is visually similar to the seed item and that is categorized within the first item category;

store the first set of nearest neighbor listings associated with the seed listing in a database;

receive, via a client device subsequent to storing the first set of nearest neighbor listings in the database, a query for the seed listing;

select one or more nearest neighbor listings from the first set of nearest neighbor listings stored in the database based on receiving the query;

communicate the one or more nearest neighbor listings to a client device as a recommendation of an online e-commerce system in response to the query; and

generate a second set of nearest neighbor listings to the seed listing based on a passage of a time duration following generation of the first set of nearest neighbor listings, wherein the second set of nearest neighbor listings include at least one listing for an item that was added to the online e-commerce system following generation of the first set of nearest neighbor listings.

16. The non-transitory machine-readable medium of claim 15 , wherein the processor-executable instructions further cause the system to:

generate a database entry including the listing identifier of the seed item and listing identifiers of each listing in the first set of nearest neighbor listings; and

store the database entry in an in-memory database,

wherein selecting the one or more nearest neighbor listings further includes selecting the one or more nearest neighbor listings from the database entry.

17. The non-transitory machine-readable medium of claim 15 , wherein determining the set of target listings further comprises:

determining one or more target listings added to the online e-commerce system within a pre-determined period of time.

18. The non-transitory machine-readable medium of claim 15 , wherein the processor-executable instructions further cause the system to:

convert the seed image to a standard size prior to generating the seed item feature vector, wherein the standard size is used for images used to generate the plurality of feature vectors.

19. The non-transitory machine-readable medium of claim 15 , wherein the processor-executable instructions further cause the system to:

store the seed item feature vector along with the plurality of feature vectors for use in future similarity comparisons.

20. The non-transitory machine-readable medium of claim 15 , wherein the processor-executable instructions further cause the system to:

identify a labeled set of images associated with the first item category, wherein each image in the labeled set of images includes a label based on a first category factor, and wherein the first category factor identifies a factor applicable to items within the first item category; and

train the CNN based on the labeled set of images.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2017
From: KLEIN, BENJAMIN ELIOT; HAVIV, ADI GUILA
To: EBAY INC.
Reel/Frame 041591/0861 →
Continuity (2)
Provisional Application 62294178 · Feb 11, 2016
Related Publication 20170236183A1 · Aug 17, 2017
Cited By (4)
US 12,430,678 US 12,443,985 US 12,505,479 US 12,700,028