IP Library Granted Patent US 12,400,433
Granted Patent B2
US 12,400,433 · App. 18/049,874 · Granted Aug 26, 2025

System and method for automated construction of data sets for retraining a machine learning model

Inventors: Roni Gurvich (Ramat Gan, IL); Peng Yu (Montreal, CA)
Assignee: SHOPIFY INC.
G06V10/774G06V10/776
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,400,433
App. No.
18/049,874
Granted
Aug 26, 2025
Kind
B2
Abstract

A computer-implemented method and system for optimally retraining a supervised machine learning model based on newly received data. The method comprises receiving, from a requestor device, a new data set for updating a previously-trained model generated using a first training data set and tested using a first testing data set. Then, the new data set is checked for components having an association to both the first training data set and the first testing data set; and where such components are found, they are deleted. Once all of the components of the new data have been examined, remaining components of the new data set are assigned to one of the first training or testing data set in dependence upon a relationship connectivity therewith to form at least one of an updated testing and training data set for building the updated model.

Claims (65)

1. A computer-implemented method comprising:

receiving a new data set from a requestor device for updating a previously-trained machine learning model generated using supervised learning with a first training data set and tested using a first testing data set;

generating a bipartite graph having a plurality of vertices corresponding to respective components of the first training data set and the first testing data set;

adding vertices corresponding to components of the new data set to the bipartite graph;

determining based on the bipartite graph that the new data set has one or more components having an association, directly or indirectly via another component, to both the first training data set and the first testing data set;

responsive to determining that the new data set has one or more components having an association to both the first training data set and the first testing data set, deleting the one or more components; and

assigning remaining components of the new data set to one of the first training data set or the first testing data set in dependence upon a relationship connectivity determined therewith to form at least one of an updated testing data set and an updated training data set for building an updated machine learning model.

2. The method of claim 1 , wherein the machine learning model is a classification model.

3. The method of claim 1 , further comprising: applying the updated testing data set having at least some components of the new data set for evaluating both the updated machine learning model and the previously-trained machine learning model to determine a performance comparison therebetween.

4. The method of claim 3 , wherein the previously-trained machine learning model and the updated machine learning model are classification models, and wherein subsequent to applying the updated testing data set to determine the performance comparison, deploying one of: the previously-trained machine learning model and the updated machine learning model corresponding to an improved performance for classification of subsequent data sets.

5. The method of claim 1 , wherein components previously partitioned in the first training data set and the first testing data set remain in persistent original partitions for performing testing or training when the at least one of the updated testing data set and the updated training data set is formed.

6. The method of claim 5 , wherein each component of the new data set, the first training data set, the first testing data set, and the at least one of the updated training data set and the updated testing data set comprises data corresponding to one of: a product identification, a product image and a product textual data.

7. The method of claim 6 , further comprising:

determining that a particular component vertex of the added vertices of the bipartite graph is connected by one or more graph edges to both a vertex of the first testing data set and to a vertex of the first training data set,

wherein deleting the one or more components comprises: removing the particular component vertex from the bipartite graph,

wherein the bipartite graph comprises a first portion having at least one vertex corresponding to product image data, a second portion having at least one vertex corresponding to product textual data, and graph edges connecting vertices of the first portion to vertices of the second portion to indicate sharing data therebetween.

8. The method of claim 1 , further comprising:

applying a maximum independent set algorithm to the bipartite graph, the bipartite graph further comprising the added vertices corresponding to components of the new data set, for determining a largest independent data set to form the at least one of the updated training data set and the updated testing data set,

wherein deleting the one or more components comprises: removing vertices from the bipartite graph not associated with the determined largest independent data set,

wherein the bipartite graph comprises a first portion having at least one vertex corresponding to a product image, a second portion having at least one vertex corresponding to a product textual data, and graph edges connecting vertices of the first portion to the second portion.

9. The method of claim 8 , wherein deleting the one or more components further comprises: deleting vertices connected by one or more graph edges to vertices not associated with the determined largest independent data set.

10. The method of claim 1 , further comprising:

receiving a trigger from the requestor device providing an indication of updating the previously-trained machine learning model, the trigger comprising one or more of: a defined time interval from generating the previously-trained machine learning model; and an indication from the requestor device that the previously-trained machine learning model is degrading in performance; and,

in response to the trigger, querying the requestor device for the new data set for retraining the previously-trained machine learning model.

11. The method of claim 10 , wherein the machine learning model is a classification model and the indication that the previously-trained machine learning model is degrading in performance comprises degrading in performance for classifying incoming data sets.

12. The method of claim 2 , further comprising:

receiving a trigger from the requestor device providing an indication of updating the previously-trained machine learning model, the trigger comprising: a notification that incoming datasets for classification by the classification model have different classifications than the first training data set; and,

in response to the trigger, querying the requestor device for the new data set for retraining the previously-trained machine learning model.

13. The method of claim 1 , further comprising: transmitting the updated machine learning model to the requestor device, across a communications network for automatically applying to subsequent data sets.

14. A computer system comprising:

a processor; and

a storage storing instructions that, when executed by the processor, cause the system to:

receive a new data set from a requestor device for updating a previously-trained machine learning model generated using supervised learning with a first training data set and tested using a first testing data set;

generate a bipartite graph having a plurality of vertices corresponding to respective components of the first training data set and the first testing data set;

add vertices corresponding to components of the new data set to the bipartite graph;

determine based on the bipartite graph that the new data set has one or more components having an association, directly or indirectly via another component, to both the first training data set and the first testing data set;

responsive to determining that the new data set has one or more components having an association to both the first training data set and the first testing data set, delete the one or more components; and

assign remaining components of the new data set to one of the first training data set or the first testing data set in dependence upon a relationship connectivity determined therewith to form at least one of an updated testing data set and an updated training data set for building an updated machine learning model.

15. The system of claim 14 , wherein the machine learning model is a classification model.

16. The system of claim 14 , wherein the instructions, when executed by the processor, further cause the system to:

apply the updated testing data set having at least some components of the new data set to evaluate both the updated machine learning model and the previously-trained machine learning model to determine a performance comparison therebetween.

17. The system of claim 16 , wherein the previously-trained machine learning model and the updated machine learning model are classification models, and wherein the instructions, when executed by the processor, further cause the system to:

subsequent to applying the updated testing data set to determine the performance comparison, deploy one of: the previously-trained machine learning model and the updated machine learning model corresponding to an improved performance for classification of subsequent data sets.

18. The system of claim 14 , wherein components previously partitioned in the first training data set and the first testing data set remain in persistent original partitions for performing testing or training when the at least one of the updated testing data set and the updated training data set is formed.

19. The system of claim 18 , wherein each component of the new data set, the first training data set, the first testing data set, and the at least one of updated training data set and the updated testing data set comprises data corresponding to one of: a product identification, a product image and a product textual data.

20. The system of claim 19 , wherein the instructions, when executed by the processor, further cause the system to:

determine that a particular component vertex of the added vertices of the bipartite graph is connected by one or more graph edges to both a vertex of the first testing data set and to a vertex of the first training data set,

wherein deleting the one or more components comprises: removing the particular component vertex from the bipartite graph,

wherein the bipartite graph comprises a first portion having at least one vertex corresponding to product image data, a second portion having at least one vertex corresponding to product textual data, and graph edges connecting vertices of the first portion to vertices of the second portion to indicate sharing data therebetween.

21. The system of claim 14 , wherein the instructions, when executed by the processor, further cause the system to:

apply a maximum independent set algorithm to the bipartite graph, the bipartite graph further comprising the added vertices corresponding to components of the new data set, for determining a largest independent data set to form the at least one of the updated training data set and the updated testing data set,

wherein deleting the one or more components comprises: removing vertices from the bipartite graph not associated with the determined largest independent data set,

wherein the bipartite graph comprises a first portion having at least one vertex corresponding to a product image, a second portion having at least one vertex corresponding to a product textual data, and graph edges connecting vertices of the first portion to the second portion.

22. The system of claim 21 , wherein deleting the one or more components further comprises the processor being configured to delete vertices connected by one or more graph edges to vertices not associated with the determined largest independent data set.

23. The system of claim 14 , wherein the instructions, when executed by the processor, further cause the system to:

receive a trigger from the requestor device providing an indication of updating the previously-trained machine learning model, the trigger comprising one or more of: a defined time interval from generating the previously-trained machine learning model; an indication from the requestor device that the previously-trained machine learning model being a classification model is degrading in performance for classifying incoming data sets; or a notification that incoming datasets for classification by the machine learning model being a classification model have different classifications than the first training data set; and,

in response to the trigger, query the requestor device for the new data set for retraining the previously-trained machine learning model.

24. The system of claim 12 , wherein the instructions, when executed by the processor, further cause the system to: transmit the updated machine learning model to the requestor device, across a communications network for automatically applying to subsequent data sets.

25. A non-transitory computer readable medium having instructions tangibly stored thereon, wherein the instructions, when executed by one or more processors cause the one or more processors to:

receive a new data set from a requestor device for updating a previously-trained machine learning model generated using supervised learning with a first training data set and tested using a first testing data set;

generate a bipartite graph having a plurality of vertices corresponding to respective components of the first training data set and the first testing data set;

add vertices corresponding to components of the new data set to the bipartite graph;

determine based on the bipartite graph that the new data set has one or more components having an association, directly or indirectly via another component, to both the first training data set and the first testing data set;

responsive to determining that the new data set has one or more components having an association to both the first training data set and the first testing data set, delete the one or more components; and

assign remaining components of the new data set to one of the first training data set or the first testing data set in dependence upon a relationship connectivity determined therewith to form at least one of an updated testing data set and an updated training data set for building an updated machine learning model.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2025
From: DONDE FASHION, INC.
To: SHOPIFY INC.
Reel/Frame 073259/0063 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2024
From: DONDE FASHION, INC.
To: SHOPIFY INC.
Reel/Frame 066914/0253 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2022
From: DONDE MOBILE R&D LTD.
To: DONDE FASHION, INC.
Reel/Frame 062168/0339 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2022
From: SHOPIFY QUEBEC INC.
To: SHOPIFY INC.
Reel/Frame 062119/0809 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2022
From: GURVICH, RONI
To: DONDE MOBILE R&D LTD.
Reel/Frame 061630/0766 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2022
From: YU, PENG
To: SHOPIFY QUEBEC INC.
Reel/Frame 061630/0812 →
Continuity (1)
Related Publication 20240144654A1 · May 2, 2024
References Cited (11)
US 20120284212A1 · Lin · 2012 [cited by examiner]
US 20190378010A1 · Morris · 2019 [cited by examiner]
US 20210224687A1 · Goldszmidt · 2021 [cited by examiner]
US 20230325630A1 · Wu · 2023 [cited by examiner]
Li et al, Maximal independent sets in bipartite graphs with at least one cycle, 2013, Discrete Mathematics and Theoretical Computer Science, 15:2, 243-258. (Year: 2013). [cited by examiner]
Jambor et al, On a scalable problem transformation method for multi-label learning, 2019, arXiv: 1905.11518v1, pp. 1-3. (Year: 2019). [cited by examiner]
Hashemi et al, A bipartite matching-based feature selection for multi-label learning, 2020, Int. J. Machine Learning and Cybernetics, (2021)12: 459-475. (Year: 2020). [cited by examiner]
Wu et al, Learning of Multimodal Representations with Random Walks on the Click Graph, 2015, IEEE Transactions on Image Processing, (25)2: 630-642. (Year: 2015). [cited by examiner]
Ali Ibrahim Site, “Maximum Independent Set in Bipartite Graphs,” https://ali-ibrahim137.github.io/competitive/programming/2020/01/02/maximum-independent-set-in-bipartite-graphs.html (accessed Oct. 26, 2022), Jan. 2, 202… [cited by applicant]
Author Unknown, “Maximal independent set,” Wikipedia, Available online at: «https://en.wikipedia.org/wiki/Maximal_independent_set», Page last edited: Jul. 10, 2022, 12 pages. [cited by applicant]
Weisstein, Eric W., “Bipartite Graph,” MathWorld—A Wolfram Web Resource, Oct. 11, 2022, Accessed Oct. 28, 2022 from the Internet: URL: <https://mathworld.wolfram.com/BipartiteGraph.html>, 4 pages. [cited by applicant]