IP Library Granted Patent US 11,361,362
Granted Patent B2
US 11,361,362 · App. 16/707,441 · Granted Jun 14, 2022

Method and system utilizing ontological machine learning for labeling products in an electronic product catalog

Inventors: Keld Lundgaard (Cambridge, MA); Cameron Wolfe (Austin, TX)
Assignee: Salesforce, Inc.
G06Q30/0629G06F16/90344G06F16/90348G06Q30/0603G06Q30/0621G06Q30/0627G06Q30/0641
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,361,362
App. No.
16/707,441
Granted
Jun 14, 2022
Kind
B2
Abstract

Systems and methods are provided for receiving, at a server, a selection of an anchor product from an electronic catalog stored in at least one storage device communicatively coupled to the server, and vectorizing at least one of text and images associated with the selected anchor product and other products in the catalog. At least one of key words may be determined from text data and key images from image data for each product of the catalog. Vectors may be formed from at least one of the keywords and key images, and concatenating the separate vectors together to form final vectors for the products. A similarity search may be performed using the final vectors to determine a group of similar products from the vectorized products of the catalog. Selected products that are within a same slot as the anchor product may be labelled in batch.

Claims (44)

1. A method comprising:

receiving, at a server, a selection of an anchor product from an electronic catalog stored in at least one storage device communicatively coupled to the server, and vectorizing at least one of text and images associated with the selected anchor product and other products in the catalog, wherein the selected anchor product and the other products in the catalog are without slot labels, and wherein the slot labels are used to label one or more products, with different products having different slot labels, and wherein a machine learning model at the server is untrained in labeling the one or more products with the slot labels;

determining, at the server, at least one selected from the group consisting of: key words from the text, and key images from the images for each product of the catalog;

forming, at the server, vectors from at least one selected from the group consisting of: the key words, and key images;

concatenating, at the server, the separate vectors together to form final vectors for the products;

performing, at the server, a similarity search using the final vectors to determine a group of similar products from the vectorized products of the catalog;

transmitting, via a communication network coupled to the server, the similar products for display;

receiving, at the server, a selection of the products that are within a same slot as the anchor product;

labelling, at the server, the selected products in batch, wherein the selection of the products and the anchor product within the same slot have the same slot label;

determining, at the server, whether a predetermined number of products required to train the machine learning model has been labelled, wherein the predetermined number of products is at least partially based on at least one selected from the group consisting of: a size of the product catalog, and a number of products;

in accordance with a determination that the predetermined number of products has been labelled, dynamically training, at the server, the machine learning model based on the labelled products by iteratively transmitting predictions by the machine learning model for slots of a product to be labelled;

receiving selections of products that are within the same slot as a product to be labelled; and

dynamically retraining, at the server, a classifier of the machine learning model that labels a next batch of products based on first labels of a first batch of products and existing labels for the products of the electronic catalog.

2. The method of claim 1 , wherein the received selection of the anchor product comprises:

receiving, at the server, a randomly selected product from the electronic catalog.

3. The method of claim 1 , wherein the vectorizing comprises:

vectorizing the at least one of text and images associated with the selected anchor product and other products in the catalog using term frequency-inverse document frequency (TFIDF).

4. The method of claim 1 , wherein the vectorizing comprises:

vectorizing columns of the at least one of text and images associated with the selected anchor product and other products in the catalog by at least one selected from a group consisting of: product name, product type, product description, and category name list; and

concatenating the vectorized columns together to form final vectors of the anchor product and other products.

5. The method of claim 1 , further comprising:

assigning a unique slot index to a group of the labeled products.

6. The method of claim 1 , further comprising:

assigning one or more products to an existing slot.

7. A system comprising:

a server including a hardware processor and a memory, to:

receive a selection of an anchor product from an electronic catalog stored in at least one storage device communicatively coupled to the server, and vectorize at least one of text and images associated with the selected anchor product and other products in the catalog, wherein the selected anchor product and the other products in the catalog are without slot labels, and wherein the slot labels are used to label one or more products, with different products having different slot labels, and wherein a machine learning model at the server is untrained in labeling the one or more products with the slot labels;

determine at least one selected from the group consisting of: key words from the text, and key images from the images for each product of the catalog;

form vectors from at least one selected from the group consisting of: the key words and key images;

concatenate the separate vectors together to form final vectors for the products;

perform a similarity search using the final vectors to determine a group of similar products from the vectorized products of the catalog;

transmit, via a communication network coupled to the server, the similar products for display;

receive a selection of the products that are within a same slot as the anchor product;

label the selected products in batch, wherein the selection of the products and the anchor product within the same slot have the same slot label;

determine whether a predetermined number of products required to train the machine learning model has been labelled, wherein the predetermined number of products is at least partially based on at least one selected from the group consisting of: a size of the product catalog, and a number of products;

in accordance with a determination that the predetermined number of products has been labelled, dynamically train the machine learning model based on the labelled products by iteratively transmitting predictions by the machine learning model for slots of a product to be labelled;

receive selections of products that are within the same slot as a product to be labelled; and

dynamically retrain a classifier of the machine learning model that labels a next batch of products based on first labels of a first batch of products and existing labels for the products of the electronic catalog.

8. The system of claim 7 , wherein the server receives a randomly selected product from the electronic catalog.

9. The system of claim 7 , wherein the server vectorizes the at least one of text and images associated with the selected anchor product and other products in the catalog using term frequency-inverse document frequency (TFIDF).

10. The system of claim 7 , wherein the server vectorizes columns of the at least one of text and images associated with the selected anchor product and other products in the catalog by at least one selected from a group consisting of: product name, product type, product description, and category name list, and

wherein the server concatenates the vectorized columns together to form final vectors of the anchor product and other products.

11. The system of claim 7 , wherein the server assigns a unique slot index to a group of the labeled products.

12. The system of claim 7 , wherein the server assigns one or more products to an existing slot.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0470 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2019
From: LUNDGAARD, KELD
To: SALESFORCE.COM, INC.
Reel/Frame 051218/0276 →
Continuity (2)
Provisional Application 62887744 · Aug 16, 2019
Related Publication 20210049664A1 · Feb 18, 2021
Cited By (1)
US 12,493,998