IP Library Granted Patent US 10,949,450
Granted Patent B2
US 10,949,450 · App. 16/209,887 · Granted Mar 16, 2021

Mtransaction processing improvements

Inventors: James Ryan Psota (Cambridge, MA); Jason Seth Prentice (Arlington, MA); Peter Goodings Swartz (Cambridge, MA); Timothy George Garnett (San Mateo, CA); Giulio Gueltrini (Cambridge, MA)
Assignee: Panjiva, Inc.
G06F16/288G06F16/215G06F16/2379G06F16/24578G06F16/285G06Q10/083
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 10,949,450
App. No.
16/209,887
Filed
Dec 4, 2018
Granted
Mar 16, 2021
Kind
B2
Examiner
TRAN, LOC
Art Unit
2165
USPC
707/692
Abstract

The technology features a system and computer-implemented method for resolving a relationship between objects. A target object index is generated based on a group of target objects. One or more lookup operations is performed on each target object in the target object index for each source object in a group of source objects. A plurality of source target object pairs is generated, each source target object pair comprising one source object and one target object having at least one matching data value. Each source target object pair is converted into a numeric feature vector. The numeric feature vector is classified corresponding to each source target object pair using a binary classifier. A match score to each source target object pair is applied based on the classification using the binary classifier. Any source target object pair having a match score lower than a match threshold value is discarded.

Claims (38)

1. A computer-implemented method for resolving a relationship between objects, the method comprising:

generating a target object index based on a group of target objects;

performing, for each source object in a group of source objects, one or more lookup operations on each target object in the target object index;

generating a plurality of source target object pairs, each source target object pair comprising one source object and one target object having at least one matching data value;

converting each source target object pair into a numeric feature vector;

classifying the numeric feature vector corresponding to each source target object pair using a binary classifier;

applying a match score to each source target object pair based on the classification using the binary classifier;

discarding any source target object pair having a match score lower than a match threshold value;

populating a disjoint set data structure with a plurality of entity objects;

ingesting source target object pairs having a match score higher than the match threshold value;

updating the disjoint set data structure using a union-find algorithm on each source target object pair having a match score higher than the match threshold value;

generating an edge weighting value for each source target object pair having a match score higher than the match threshold value based on the match score applied to the source target object pair;

determining a set of candidate cuts based on the edge weighting values, each candidate cut relating to one or more edges linking elements of the disjoint set data structure; scoring each candidate cut based on an expected error rate of the binary classifier; and

performing one of the candidate cuts based on a score assigned by the binary classifier being above a cut threshold value;

wherein performing one of the candidate cuts comprises:

creating a plurality of sub-clusters, each sub-cluster comprising a subset of elements of the disjoint set data structure;

recursively repeating the determining, scoring, and performing steps for each sub-cluster of the plurality of sub-clusters; and

defining a new entity object for each sub-cluster based on a score assigned by the binary classifier being below the cut threshold value.

2. The computer-implemented method of claim 1 further comprising:

ranking the source target object pairs having a match score higher than the match threshold value based on match scores;

selecting a subset of the ranked source target object pairs based on a likelihood that the source object and the target object of each source target object pair of the subset are associated with the same object; and

creating a persistent entry for each source target object pair of the subset, each persistent entry indicating the likelihood that the source object and the target object are associated with the same object.

3. The computer-implemented method of claim 1 wherein a plurality of server computing devices perform the recursively repeating step for the plurality of sub-clusters, each sub-cluster of the plurality of sub-clusters being operated on by a different server computing device substantially in parallel.

4. The computer-implemented method of claim 1 wherein determining a set of candidate cuts further comprises applying a candidate partition algorithm to the disjoint set data structure.

5. The computer-implemented method of claim 4 wherein the candidate partition algorithm is at least one of Karger's algorithm, the Karger-Stein algorithm, and a spectral clustering algorithm.

6. The computer-implemented method of claim 1 wherein each target object in the group of target objects comprises:

a target object identifier; and

at least one related value.

7. The computer-implemented method of claim 4 wherein each target object further comprises a target object partition key.

8. The computer-implemented method of claim 4 wherein the at least one related value matches a value of at least one other target object in the group of target objects.

9. The computer-implemented method of claim 4 further comprising performing a cleaning operation on the at least one related value of each target object.

10. The computer-implemented method of claim 9 wherein performing the cleaning operation further comprises one or more of normalizing the case of text, normalizing punctuation of text, and expanding abbreviations of text.

11. The computer-implemented method of claim 9 wherein the cleaning operation is performed prior to generating the index.

12. The computer-implemented method of claim 7 further comprising generating a separate index for each value of the partition key.

13. The computer-implemented method of claim 1 wherein each source object in the group of source objects comprises a source object identifier.

14. The computer-implemented method of claim 13 wherein each source object in the group of source objects further comprises a source object partition key.

15. The computer-implemented method of claim 1 wherein the binary classifier comprises a pretrained machine learning model based on one or more of a random forest method, logistic regression, a support vector machine, and a neural network.

16. The computer-implemented method of claim 1 further comprising performing a cleaning operation on one or more data values of each source object of a group of source objects.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 23, 2020
From: GARNETT, TIMOTHY GEORGE
To: PANJIVA, INC.
Reel/Frame 054443/0464 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 23, 2020
From: PSOTA, JAMES RYAN
To: PANJIVA, INC.
Reel/Frame 054499/0684 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 23, 2020
From: PRENTICE, JASON SETH
To: PANJIVA, INC.
Reel/Frame 055003/0781 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2019
From: PSOTA, JAMES RYAN; PRENTICE, JASON SETH
To: PANJIVA, INC.
Reel/Frame 050111/0990 →
Continuity (3)
Provisional Application 62594480 · Dec 4, 2017
Provisional Application 62596898 · Dec 10, 2017
Related Publication 20190171655A1 · Jun 6, 2019