IP Library Granted Patent US 9,703,823
Granted Patent B2
US 9,703,823 · App. 15/161,495 · Granted Jul 11, 2017

Automated dynamic data quality assessment

Inventors: Mark Thomas Daly (San Francisco, CA); Shawn Ryan Jeffery (Burlingame, CA); Matthew DeLand (San Francisco, CA); Nick Pendar (San Ramon, CA); Andrew James (Los Altos, CA); David Johnston (Portola Valley, CA)
Assignee: Groupon, Inc.
G06F17/30371G06F17/30303G06F17/30368
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 9,703,823
App. No.
15/161,495
Granted
Jul 11, 2017
Kind
B2
Abstract

In general, embodiments of the present invention provide systems, methods and computer readable media for automated dynamic data quality assessment. One aspect of the subject matter described in this specification includes the actions of receiving a data quality job including a new data sample; and, if the new data sample is determined to be added to a reservoir of data samples, sending a quality verification request to an oracle; receiving a new data sample quality estimate from the oracle; and adding the new data sample and estimate to the reservoir. A second aspect of the subject matter includes the actions of receiving, from a predictive model, a judgment associated with a new data sample; analyzing the new data sample based in part on the judgment to determine whether to send a new data sample quality verification request to an oracle; and, if a new data sample quality estimate is received from the oracle, determining whether to add the new data sample and the judgment to the reservoir.

Claims (54)

1. A computer-implemented method, comprising:

receiving a data quality job, the data quality job including configuration data and a new data sample having a particular data type, wherein the configuration data comprises an oracle identifier, the oracle identifier indicating a particular oracle to provide a verified quality measure for the new data sample, the particular oracle associated with an attribute of the new data sample;

determining, by a processor, whether to add the new data sample to a reservoir of data samples, the reservoir of data samples identified based at least in part on the particular data type, the determining based at least in part on whether the new data sample statistically belongs in the reservoir of data samples; and

in an instance in which the new data sample is to be added to the reservoir of data samples,

sending, to the particular oracle selected based on the oracle identifier, a quality verification request including the new data sample;

receiving a data quality estimate associated with the new data sample from the oracle in response to the quality verification request, wherein the data quality estimate comprises a quality score calculated based on one or more of a percentage of correctness of the data sample and a percentage of completeness of the data sample; and

adding the new data sample and the associated data quality estimate to the reservoir of data samples in response to receiving the data quality estimate.

2. The method of claim 1 , further comprising:

updating reservoir summary statistics.

3. The method of claim 1 , wherein updating the reservoir summary statistics comprises:

calculating an overall data quality estimate for the reservoir using data quality estimates respectively associated with each of the data samples; and

calculating a statistical variance for the data samples.

4. The method of claim 1 , wherein updating the reservoir summary statistics further comprises:

logging the updated reservoir summary statistics in persistent storage.

5. The method of claim 1 , further comprising:

receiving corpus summary statistics calculated for a corpus of previously collected data samples, wherein each of the previously collected data samples are respectively associated with the particular data type; and

generating an analysis comparing the updated reservoir summary statistics with the corpus summary statistics.

6. The method of claim 1 , wherein determining whether to add the new data sample to the reservoir is further based on a value of at least one attribute of the new data sample.

7. The method of claim 1 , wherein determining whether to add the new data sample to the reservoir is further based on a probabilistic sampling approach.

8. The method of claim 1 , wherein the oracle is a crowd, a flat file of previously received crowd data verification results, or a software system.

9. The method of claim 1 , wherein the new data sample is collected from a data stream.

10. The method of claim 1 , wherein the new data sample is a single data instance or a set of data instances collected from the data stream within a pre-defined time window.

11. The method of claim 1 , wherein the new data sample has been pre-processed by a data cleaning process.

12. A computer program product, stored on a non-transitory computer readable medium, comprising instructions that when executed on one or more computers cause the one or more computers to perform operations comprising:

receiving a data quality job, the data quality job including configuration data and a new data sample having a particular data type, wherein the configuration data comprises an oracle identifier, the oracle identifier indicating a particular oracle to provide a verified quality measure for the new data sample, the particular oracle associated with an attribute of the new data sample;

determining, by a processor, whether to add the new data sample to a reservoir of data samples, the reservoir of data samples identified based at least in part on the particular data type the determining based at least in part on whether the new data sample statistically belongs in the reservoir of data samples; and

in an instance in which the new data sample is to be added to the reservoir of data samples,

sending, to the particular oracle selected based on the oracle identifier, a quality verification request including the new data sample;

receiving a data quality estimate associated with the new data sample from the oracle in response to the quality verification request, wherein the data quality estimate comprises a quality score calculated based on one or more of a percentage of correctness of the data sample and a percentage of completeness of the data sample; and

adding the new data sample and the associated data quality estimate to the reservoir of data samples in response to receiving the data quality estimate.

13. A system, comprising:

one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

receiving a data quality job, the data quality job including configuration data and a new data sample having a particular data type, wherein the configuration data comprises an oracle identifier, the oracle identifier indicating a particular oracle to provide a verified quality measure for the new data sample, the particular oracle associated with an attribute of the new data sample;

determining, by a processor, whether to add the new data sample to a reservoir of data samples, the reservoir of data samples identified based at least in part on the particular data type, the determining based at least in part on whether the new data sample statistically belongs in the reservoir of data samples; and

in an instance in which the new data sample is to be added to the reservoir of data samples,

sending, to the particular oracle selected based on the oracle identifier, a quality verification request including the new data sample;

receiving a data quality estimate associated with the new data sample from the oracle in response to the quality verification request, wherein the data quality estimate comprises a quality score calculated based on one or more of a percentage of correctness of the data sample and a percentage of completeness of the data sample; and

adding the new data sample and the associated data quality estimate to the reservoir of data samples in response to receiving the data quality estimate.

14. The system of claim 13 , further comprising:

updating reservoir summary statistics.

15. The system of claim 14 , wherein updating the reservoir summary statistics comprises:

calculating an overall data quality estimate for the reservoir using data quality estimates respectively associated with each of the data samples; and

calculating a statistical variance for the data samples.

16. The system of claim 14 , wherein updating the reservoir summary statistics further comprises:

logging the updated reservoir summary statistics in persistent storage.

17. The system of claim 14 , further comprising:

receiving corpus summary statistics calculated for a corpus of previously collected data samples, wherein each of the previously collected data samples are respectively associated with the particular data type; and

generating an analysis comparing the updated reservoir summary statistics with the corpus summary statistics.

18. The system of claim 13 , wherein determining whether to add the new data sample to the reservoir is further based on a value of at least one attribute of the new data sample.

19. The system of claim 13 , wherein determining whether to add the new data sample to the reservoir is further based on a probabilistic sampling approach.

20. The system of claim 13 , wherein the oracle is a crowd, a flat file of previously received crowd data verification results, or a software system.

21. The system of claim 13 , wherein the new data sample is collected from a data stream.

22. The system of claim 21 , wherein the new data sample is a single data instance or a set of data instances collected from the data stream within a pre-defined time window.

23. The system of claim 13 , wherein the new data sample has been pre-processed by a data cleaning process.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2024
From: GROUPON, INC.
To: BYTEDANCE INC.
Reel/Frame 068833/0811 →
RELEASE OF SECURITY INTEREST Recorded Feb 26, 2024
From: JPMORGAN CHASE BANK, N.A.
To: GROUPON, INC.; LIVINGSOCIAL, LLC (F/K/A LIVINGSOCIAL, INC.)
Reel/Frame 066676/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY RIGHTS Recorded Feb 26, 2024
From: JPMORGAN CHASE BANK, N.A.
To: GROUPON, INC.; LIVINGSOCIAL, LLC (F/K/A LIVINGSOCIAL, INC.)
Reel/Frame 066676/0251 →
SECURITY INTEREST Recorded Jul 23, 2020
From: GROUPON, INC.; LIVINGSOCIAL, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 053294/0495 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2016
From: DALY, MARK THOMAS; JEFFERY, SHAWN RYAN; DELAND, MATTHEW; PENDAR, NICK; JAMES, ANDREW; JOHNSTON, DAVID
To: GROUPON, INC.
Reel/Frame 038682/0464 →
Continuity (2)
Continuation 14088248 · Nov 22, 2013
Related Publication 20170024427A1 · Jan 26, 2017