IP Library Granted Patent US 10,831,725
Granted Patent B2
US 10,831,725 · App. 14/214,231 · Granted Nov 10, 2020

Apparatus, systems, and methods for grouping data records

Inventors: Boris Shimanovsky (Los Angeles, CA); Manuel Lagang (Pasadena, CA); Leonid Polovets (Menlo Park, CA)
Assignee: FACTUAL, INC.
G06F16/21G05B13/0265G06F16/23G06F16/235G06F16/2379G06F16/2386G06F16/2477G06F16/24564G06F16/282G06F16/285G06F16/29G06F16/313G06F16/35G06F16/951G06N5/022G06N20/00G06Q10/101G06Q30/0261G06Q30/0282G06Q50/01H04L41/14H04W4/02H04W4/021H04W4/025H04W4/029H04W4/50H04W8/08H04W8/16H04W8/18H04W16/24H04W64/00H04W64/003H04W76/38H04W88/02G06F16/337H04W16/00H04W16/30H04W16/32H04W88/00
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,831,725
App. No.
14/214,231
Granted
Nov 10, 2020
Kind
B2
Abstract

The present application relates to apparatus, systems, and methods for grouping data records based on entities referenced by the data records. The disclosed grouping mechanism can include determining a pair-wise similarity between a large number of data records, and clustering a subset of the data records based on their pair-wise similarity.

Claims (66)

1. An apparatus comprising:

a processor configured to acquire instructions stored in one or more memories and execute the instructions to:

receive a plurality of data records from a plurality of data sources, wherein each of the data records includes a plurality of attributes describing an entity;

identify a pair of data records from the received data records and determine whether the pair of data records is eligible or ineligible for a similarity value determination based on a predetermined set of attributes shared by the plurality of attributes of the pair of data records;

exclude the pair of data records from the similarity value determination when the step of determining eligibility determines that the pair of data records is ineligible;

process the pair of data records through the similarity value determination when the step of determining eligibility determines that the pair of data records is eligible, wherein the similarity value determination includes determining a similarity value for the pair of data records based on similarity between the plurality of attributes in one data record in the pair and the plurality of attributes in another data record in the pair;

provide one or more clusters, wherein each of the clusters is configured to store data records of an unique entity, and associate the pair of data records with one of the clusters based on the similarity value for the pair of data records, wherein the cluster to which the pair of data records is associated is configured to store data records of the entity described by the plurality of attributes;

compare, after the step of associating the pair of data records with the cluster, the plurality of attributes in the pair of data records with attributes of other data records in the cluster, and determine one or more attribute differences;

determine at least one importance score for one or more first attributes in the plurality of attributes based on the determined attribute differences, wherein the determined importance score is used by the similarity value determination as a factor in modifying weights of the first attributes for determining the similarity value; and

identify another pair of data records and process the other pair of data records through the similarity value determination;

wherein each of the other pair of data records includes a second plurality of attributes; and

wherein the similarity value determination includes determining that the second plurality of attributes includes the first attributes, and determining the similarity value for the other pair of data records using the modified weights.

2. The apparatus of claim 1 , wherein the processor is configured to adjust the predetermined set of attributes based on association of pairs of data records to the clusters from a previous iteration.

3. The apparatus of claim 1 , wherein the processor is configured to determine the similarity value based on a similarity function learned from training data records.

4. The apparatus of claim 3 , wherein the similarity function is to determine the importance score of a component associated with the first attribute, wherein the similarity function is to be learned by:

determining differences between components associated with the first attribute of the training data records, wherein the training data records are known belong to the same cluster; and

determining the importance score of the component based on a number of times the component appears in the differences.

5. The apparatus of claim 4 , wherein the similarity function is to infer a likelihood of interchanging a first component in a particular attribute of a data record with a second component, wherein the similarity function is to be learned by:

determining differences between components associated with the particular attribute of the training data records, wherein the training data records are known belong to the same cluster; and

determining the likelihood of interchanging the first component with the second component based on a number of times the first component and the second component appears in the differences at the same time.

6. The apparatus of claim 4 , wherein the similarity function is to determine a conditional likelihood that a missing attribute of a data record has a particular component, wherein the conditional likelihood is to be determined by:

determining a combination of known attributes corresponding to a particular entity; determining all variations of a missing attribute amongst data records of the particular entity having the combination of known attributes; and

determining a conditional probability, based on the variations of the missing attribute, that the missing attribute has a particular component given that the data record has the particular combination of known attributes.

7. The apparatus of claim 1 , wherein the processor is configured to:

represent the plurality of data records as a plurality of nodes in a graph;

represent the similarity value for the pair of data records as at least one edge between nodes, in the graph, corresponding to the pair of data records; and

determine the provided one or more clusters from the graph.

8. The apparatus of claim 7 , wherein the processor is configured to determine the provided one or more clusters based on the graph using a graph clustering technique.

9. The apparatus of claim 1 , wherein the processor is configured to receive a clustering directive instructing the processor to associate the pair of data records with the cluster configured to store data records of the entity described by the plurality of attributes of the pair of data records.

10. The apparatus of claim 1 , wherein the processor is configured to:

associate at least one of the plurality of data records to the cluster configured to store data records of the entity described by the plurality of attributes of the pair of data records using a clustering technique; and

adjust a parameter for the clustering technique based on data records in the cluster configured to store data records of the entity described by the plurality of attributes of the pair of data records.

11. The apparatus of claim 1 , wherein the processor is configured to determine the similarity value for the pair of data records by receiving the similarity value for the pair of data records from another computing device.

12. The apparatus of claim 1 , wherein the processor is configured to:

process a plurality of sub-clusters received from a plurality of computing devices that are independently identified at the plurality of computing devices; and

perform a union-find operation on the plurality of sub-clusters to identify the cluster configured to store data records of the entity described by the plurality of attributes of the pair of data records.

13. A method comprising:

receiving, by a processor, a plurality of data records from a plurality of data sources, wherein each of the data records includes a plurality of attributes describing an entity;

identifying, by the processor, a pair of data records from the received data records and determining, by the processor, whether the pair of data records is eligible or ineligible for a similarity value determination based on a predetermined set of attributes shared by the plurality of attributes of the pair of data records;

excluding, by the processor, the pair of data records from the similarity value determination when the step of determining eligibility determines that the pair of data records is ineligible;

processing, by the processor, the pair of data records through the similarity value determination when the step of determining eligibility determines that the pair of data records is eligible, wherein the similarity value determination includes determining a similarity value for the pair of data records based on similarity between the plurality of attributes in one data record in the pair and the plurality of attributes in another data record in the pair;

providing, by the processor, one or more clusters, wherein each of the clusters is configured to store data records of an unique entity, and associating, by the processor, the pair of data records with one of the clusters based on the similarity value for the pair of data records, wherein the cluster to which the pair of data records is associated is configured to store data records of the entity described by the plurality of attributes;

comparing, after the step of associating the pair of data records with the cluster, by the processor, the plurality of attributes in the pair of data records with attributes of other data records in the cluster, and determining, by the processor, one or more attribute differences;

determining, by the processor, at least one importance score for one or more first attributes in the plurality of attributes based on the determined attribute differences, wherein the determined importance score is used by the similarity value determination as a factor in modifying weights of the first attributes for determining the similarity value; and

identifying, by the processor, another pair of data records and processing, by the processor, the other pair of data records through the similarity value determination;

wherein each of the other pair of data records includes a second plurality of attributes; and

wherein the similarity value determination includes determining that the second plurality of attributes includes the first attributes, and determining the similarity value for the other pair of data records using the modified weights.

14. The method of claim 13 , further comprising adjusting, by the processor, the predetermined set of attributes based on association of data records to clusters from a previous iteration.

15. The method of claim 13 , further comprising determining, by the processor, the similarity value based on a similarity function learned from training data records.

16. The method of claim 15 , wherein the similarity function is to determine the importance score of a component associated with the first attribute.

17. The method of claim 15 , wherein the similarity function is to infer a likelihood of interchanging a first component in a particular attribute of a data record with a second component.

18. A computer program product, tangibly embodied in a non-transitory computer-readable storage medium, the computer program product including instructions executable by a processor to:

receive a plurality of data records from a plurality of data sources, wherein each of the data records includes a plurality of attributes describing an entity;

identify a pair of data records from the received data records and determine whether the pair of data records is eligible or ineligible for a similarity value determination based on a predetermined set of attributes shared by the plurality of attributes of the pair of data records;

exclude the pair of data records from the similarity value determination when the step of determining eligibility determines that the pair of data records is ineligible;

process the pair of data records through the similarity value determination when the step of determining eligibility determines that the pair of data records is eligible, wherein the similarity value determination includes determining a similarity value for the pair of data records based on similarity between the plurality of attributes in one data record in the pair and the plurality of attributes in another data record in the pair;

provide one or more clusters, wherein each of the clusters is configured to store data records of an unique entity, and associate the pair of data records with one of the clusters based on the similarity value for the pair of data records, wherein the cluster to which the pair of data records is associated is configured to store data records of the entity described by the plurality of attributes;

compare, after the step of associating the pair of data records with the cluster, the plurality of attributes in the pair of data records with attributes of other data records in the cluster, and determine one or more attribute differences;

determine at least one importance score for one or more first attributes in the plurality of attributes based on the determined attribute differences, wherein the determined importance score is used by the similarity value determination as a factor in modifying weights of the first attributes for determining the similarity value; and

identify another pair of data records and process the other pair of data records through the similarity value determination;

wherein each of the other pair of data records includes a second plurality of attributes; and

wherein the similarity value determination includes determining that the second plurality of attributes includes the first attributes, and determining the similarity value for the other pair of data records using the modified weights.

19. The computer program product of claim 18 , wherein the instructions are executable by the processor to adjust the predetermined set of attributes based on association of pairs of data records to the clusters from a previous iteration.

20. The computer program product of claim 18 , wherein the instructions are executable by the processor to determine the similarity value based on a similarity function learned from training data records.

21. The computer program product of claim 20 , wherein the similarity function is to determine the importance score of a component associated with the first attribute.

22. The computer program product of claim 20 , wherein the similarity function is to infer a likelihood of interchanging a first component in a particular attribute of a data record with a second component.

Assignments (5)
RELEASE OF SECURITY INTEREST AT REEL/FRAME 52575/0270 Recorded Jul 15, 2022
From: OBSIDIAN AGENCY SERVICES, INC.
To: FOURSQUARE LABS, INC.
Reel/Frame 060669/0462 →
SECURITY INTEREST Recorded Jul 13, 2022
From: FOURSQUARE LABS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 060649/0366 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2022
From: FACTUAL, INC.
To: FOURSQUARE LABS, INC.
Reel/Frame 059977/0688 →
SECURITY INTEREST Recorded May 5, 2020
From: FACTUAL INC.
To: OBSIDIAN AGENCY SERVICES, INC.
Reel/Frame 052575/0270 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2017
From: SHIMANOVSKY, BORIS; LAGANG, MANUEL; POLOVETS, LEONID
To: FACTUAL INC.
Reel/Frame 042743/0684 →