IP Library Granted Patent US 12,038,898
Granted Patent B2
US 12,038,898 · App. 18/364,535 · Granted Jul 16, 2024

Methods and apparatus to estimate cardinality of users represented across multiple bloom filter arrays

Inventors: Michael Sheppard (Holland, MI); Jonathan Sullivan (Hurricane, UT); DongBo Cui (New York, NY); Jake Ryan Dailey (San Francisco, CA); Christie Nicole Summers (Baltimore, MD); Diane Morovati Lopez (West Hills, CA); Molly Poppie (Arlington Heights, IL)
Assignee: The Nielsen Company (US), LLC
G06F16/2255G06F15/80G06F16/2246G06F16/2456G06F2015/763
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,038,898
App. No.
18/364,535
Granted
Jul 16, 2024
Kind
B2
Abstract

Methods and apparatus to estimate cardinality of users represented across multiple bloom filter arrays are disclosed. Examples includes processor circuitry to execute and/or instantiate instructions to generate a first composite Bloom filter array based on first and second Bloom filter arrays. The processor circuitry is to generate a final composite Bloom filter array based on the first composite Bloom filter array and a third Bloom filter array. Different ones of the first, second, and third Bloom filter arrays representative of different sets of users who accessed media. The first, second, and third Bloom filter arrays including differential privacy noise. The processor circuitry to estimate a cardinality of a union of the first, second, and third Bloom filter arrays based on the final composite Bloom filter array.

Claims (59)

1. A computing system comprising a processor and a memory, the computing system configured to perform a set of acts comprising:

obtaining a first Bloom filter array via a first network communication from a first party, the first Bloom filter array generated using first noise arrays;

obtaining a second Bloom filter array, the second Bloom filter array generated using second noise arrays;

generating an initial composite Bloom filter array based on the first Bloom filter array and the second Bloom filter array;

estimating effective noise arrays for the initial composite Bloom filter array based on the first noise arrays and the second noise arrays;

obtaining a third Bloom filter array, the third Bloom filter array generated using third noise arrays;

generating a final composite Bloom filter array based on the initial composite Bloom filter array and the third Bloom filter array;

estimating a cardinality of the final composite Bloom filter array based on the effective noise arrays and the third noise arrays; and

transmitting, to another computing system, a report conveying audience measurement information that is derived from the cardinality.

2. The computing system of claim 1 , wherein generating the initial composite Bloom filter array comprises determining a bit-wise union of the first Bloom filter array and the second Bloom filter array.

3. The computing system of claim 2 , wherein generating the final composite Bloom filter array comprises determining a bit-wise union of the initial composite Bloom filter array and the third Bloom filter array.

4. The computing system of claim 1 , wherein:

the first Bloom filter array is representative of unique media impressions logged by the first party,

the second Bloom filter array is representative of unique media impressions logged by a second party,

the unique media impressions logged by the first party and the unique media impressions logged by the second party correspond to a same media item.

5. The computing system of claim 1 , wherein:

the first noise arrays define probabilities for bit-flipping values in individual elements of the first Bloom filter array, and

the second noise arrays define probabilities for bit-flipping values in individual elements of the second Bloom filter array.

6. The computing system of claim 1 , wherein the effective noise arrays define probabilities for bit-flipping values in individual elements of a latent Bloom filter array that would result in the initial composite Bloom filter array, the latent Bloom filter array corresponding to a bit-wise union of a first private array from which the first Bloom filter array is generated and a second private array from which the second Bloom filter array is generated.

7. The computing system of claim 1 , wherein the set of acts further comprises obtaining the first noise arrays from the first party.

8. A method comprising:

obtaining, by a computing system, a first Bloom filter array via a first network communication from a first party, the first Bloom filter array generated using first noise arrays;

obtaining, by the computing system, a second Bloom filter array, the second Bloom filter array generated using second noise arrays;

generating, by the computing system, an initial composite Bloom filter array based on the first Bloom filter array and the second Bloom filter array;

estimating, by the computing system, effective noise arrays for the initial composite Bloom filter array based on the first noise arrays and the second noise arrays;

obtaining, by the computing system, a third Bloom filter array, the third Bloom filter array generated using third noise arrays;

generating, by the computing system, a final composite Bloom filter array based on the initial composite Bloom filter array and the third Bloom filter array;

estimating, by the computing system, a cardinality of the final composite Bloom filter array based on the effective noise arrays and the third noise arrays; and

transmitting, by the computing system to another computing system, a report conveying audience measurement information that is derived from the cardinality.

9. The method of claim 8 , wherein generating the initial composite Bloom filter array comprises determining a bit-wise union of the first Bloom filter array and the second Bloom filter array.

10. The method of claim 9 , wherein generating the final composite Bloom filter array comprises determining a bit-wise union of the initial composite Bloom filter array and the third Bloom filter array.

11. The method of claim 8 , wherein:

the first Bloom filter array is representative of unique media impressions logged by the first party,

the second Bloom filter array is representative of unique media impressions logged by a second party,

the unique media impressions logged by the first party and the unique media impressions logged by the second party correspond to a same media item.

12. The method of claim 8 , wherein:

the first noise arrays define probabilities for bit-flipping values in individual elements of the first Bloom filter array, and

the second noise arrays define probabilities for bit-flipping values in individual elements of the second Bloom filter array.

13. The method of claim 8 , wherein the effective noise arrays define probabilities for bit-flipping values in individual elements of a latent Bloom filter array that would result in the initial composite Bloom filter array, the latent Bloom filter array corresponding to a bit-wise union of a first private array from which the first Bloom filter array is generated and a second private array from which the second Bloom filter array is generated.

14. The method of claim 8 , further comprising obtaining the first noise arrays from the first party.

15. A non-transitory computer-readable medium having stored therein instructions that when executed by a computing system cause the computing system to perform a set of acts comprising:

obtaining a first Bloom filter array via a first network communication from a first party, the first Bloom filter array generated using first noise arrays;

obtaining a second Bloom filter array, the second Bloom filter array generated using second noise arrays;

generating an initial composite Bloom filter array based on the first Bloom filter array and the second Bloom filter array;

estimating effective noise arrays for the initial composite Bloom filter array based on the first noise arrays and the second noise arrays;

obtaining a third Bloom filter array, the third Bloom filter array generated using third noise arrays;

generating a final composite Bloom filter array based on the initial composite Bloom filter array and the third Bloom filter array;

estimating a cardinality of the final composite Bloom filter array based on the effective noise arrays and the third noise arrays; and

transmitting, to another computing system, a report conveying audience measurement information that is derived from the cardinality.

16. The non-transitory computer-readable medium of claim 15 , wherein generating the initial composite Bloom filter array comprises determining a bit-wise union of the first Bloom filter array and the second Bloom filter array.

17. The non-transitory computer-readable medium of claim 16 , wherein generating the final composite Bloom filter array comprises determining a bit-wise union of the initial composite Bloom filter array and the third Bloom filter array.

18. The non-transitory computer-readable medium of claim 15 , wherein:

the first Bloom filter array is representative of unique media impressions logged by the first party,

the second Bloom filter array is representative of unique media impressions logged by a second party,

the unique media impressions logged by the first party and the unique media impressions logged by the second party correspond to a same media item.

19. The non-transitory computer-readable medium of claim 15 , wherein:

the first noise arrays define probabilities for bit-flipping values in individual elements of the first Bloom filter array, and

the second noise arrays define probabilities for bit-flipping values in individual elements of the second Bloom filter array.

20. The non-transitory computer-readable medium of claim 15 , wherein the effective noise arrays define probabilities for bit-flipping values in individual elements of a latent Bloom filter array that would result in the initial composite Bloom filter array, the latent Bloom filter array corresponding to a bit-wise union of a first private array from which the first Bloom filter array is generated and a second private array from which the second Bloom filter array is generated.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2023
From: SHEPPARD, MICHAEL; SUMMERS, CHRISTIE NICOLE; MOROVATI LOPEZ, DIANE; DAILEY, JAKE RYAN; POPPIE, MOLLY; CUI, DONGBO; SULLIVAN, JONATHAN
To: THE NIELSEN COMPANY (US), LLC
Reel/Frame 064478/0542 →
Continuity (3)
Continuation 17362419 · Jun 29, 2021
Provisional Application 63046342 · Jun 30, 2020
Related Publication 20240078223A1 · Mar 7, 2024