IP Library Granted Patent US 12,189,660
Granted Patent B2
US 12,189,660 · App. 17/883,516 · Granted Jan 7, 2025

Methods and apparatus to determine a frequency distribution for data in a database

Inventors: Michael R. Sheppard (Holland, MI); Jonathan Sullivan (Hurricane, UT)
Assignee: The Nielsen Company (US), LLC
G06F16/285G06F16/24554
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,189,660
App. No.
17/883,516
Granted
Jan 7, 2025
Kind
B2
Abstract

Disclosed examples access data from a database, the data stored across multiple registers of the database; determine (a) a maximum rank for each of the multiple registers and (b) a maximum rank count for each of the multiple registers; determine a frequency distribution based on the maximum ranks and the maximum rank counts; and generate a report including at least one of the frequency distribution, the maximum ranks, or the maximum rank counts.

Claims (64)

1. A apparatus comprising:

at least one memory;

instructions in the apparatus; and

one or more processors configured to execute the instructions to at least:

hash data entries corresponding to impressions logged by a server;

split the hashed data entries into groups corresponding to multiple registers;

determine (a) a maximum rank for each of the multiple registers based on the hashed data entries and (b) a maximum rank count for each of the multiple registers;

determine a frequency distribution based on the maximum ranks and the maximum rank counts; and

generate a report including at least one of the frequency distribution, the maximum ranks, or the maximum rank counts.

2. The apparatus of claim 1 , wherein the maximum rank count corresponds to a number of times the maximum rank occurred for a particular register.

3. The apparatus of claim 1 , wherein the maximum rank corresponds to a position of a leftmost one during a hyperloglog protocol.

4. The apparatus of claim 1 , wherein the one or more processors are configured to determine the maximum rank for the data per register using a hyperloglog protocol.

5. The apparatus of claim 4 , wherein the one or more processors are configured to determine the maximum rank count for a register of the registers by, during the hyperloglog protocol:

initializing the maximum rank count;

setting the maximum rank count to one when a first rank determined during a first iteration of the hyperloglog protocol is greater than a current maximum rank of the register; and

incrementing the maximum rank count when a second rank determined a second iteration of the hyperloglog protocol is equal to the current maximum rank of the register.

6. The apparatus of claim 1 , wherein the one or more processors are configured to determine the frequency distribution by:

determining a number of unique entries per register;

determining an average frequency of the data entries;

determine gaussian hypergeometric values for the registers based on number of unique entries and the average frequency of the data entries;

determine posterior weights for the registers based on the gaussian hypergeometric values;

sum weights corresponding to same maximum rank counts to generate frequency values; and

generate the frequency distribution by normalizing the frequency values.

7. The apparatus of claim 6 , wherein the one or more processors are configured to determine the number of unique entries per register based on a total number of unique entries in a database and a total number of the registers of the database.

8. The apparatus of claim 6 , wherein the one or more processors are configured to determine the average frequency of the data entries in a database based on a number of entries in the database and a number of unique entries in the database.

9. The apparatus of claim 1 , wherein the one or more processors are configured to log the impressions based on impressions request obtained via network communications, the data including the impressions, the frequency distribution corresponding to a frequency that the impressions occurred.

10. The apparatus of claim 1 , wherein the one or more processors are configured to split the hashed data entries into groups corresponds to multiple registers by:

accessing a hash of an entry of the hashed data entries; and

splitting the entry into a first group and a second group, the first group corresponding to a first number of bits of the entry, the second group corresponding to a second number of bits of the entry, a first value of the first group corresponding to a register number for the entry, a second value of the second group corresponding to a rank of the entry.

11. A non-transitory computer readable medium comprising instructions which, when executed, cause one or more processors to at least:

hash data entries corresponding to impressions logged by a server;

group the hashed data entries into groups corresponding to multiple registers;

determine (a) a maximum rank for each of the multiple registers based on the hashed data entries and (b) a maximum rank count for each of the multiple registers;

determine a frequency distribution based on the maximum ranks and the maximum rank counts; and

generate a report including at least one of the frequency distribution, the maximum ranks, or the maximum rank counts.

12. The non-transitory computer readable medium of claim 11 , wherein the maximum rank count corresponds to a number of times the maximum rank occurred for a particular register.

13. The non-transitory computer readable medium of claim 11 , wherein the maximum rank corresponds to a position of a leftmost one during a hyperloglog protocol.

14. The non-transitory computer readable medium of claim 11 , wherein the instructions cause the one or more processors to determine the maximum rank for the data per register using a hyperloglog protocol.

15. The non-transitory computer readable medium of claim 14 , wherein the instructions cause the one or more processors to determine the maximum rank count for a register of the registers by, during the hyperloglog protocol:

initializing the maximum rank count;

setting the maximum rank count to one when a first rank determined during a first iteration of the hyperloglog protocol is greater than a current maximum rank of the register; and

incrementing the maximum rank count when a second rank determined a second iteration of the hyperloglog protocol is equal to the current maximum rank of the register.

16. The non-transitory computer readable medium of claim 11 , wherein the instructions cause the one or more processors to determine the frequency distribution by:

determining a number of unique entries per register;

determining an average frequency of the data entries;

determine gaussian hypergeometric values for the registers based on number of unique entries and the average frequency of the data entries;

determine posterior weights for the registers based on the gaussian hypergeometric values;

sum weights corresponding to same maximum rank counts to generate frequency values; and

generate the frequency distribution by normalizing the frequency values.

17. The non-transitory computer readable medium of claim 16 , wherein the instructions cause the one or more processors to determine the number of unique entries per register based on a total number of unique entries in a database and a total number of the registers of the database.

18. The non-transitory computer readable medium of claim 16 , wherein the instructions cause the one or more processors to determine the average frequency of the data entries in a database based on a number of entries in the database and a number of unique entries in the database.

19. The non-transitory computer readable medium of claim 11 , wherein the instructions cause the one or more processors to log impressions based on impressions request obtained via network communications, the data including the impressions, the frequency distribution corresponding to a frequency that the impressions occurred.

20. An apparatus comprising:

interface circuitry to access data from a database, the data stored across multiple registers of the database; and

processor circuitry including one or more of:

at least one of a central processor unit, a graphics processor unit, or a digital signal processor, the at least one of the central processor unit, the graphics processor unit, or the digital signal processor having control circuitry to control data movement within the processor circuitry, arithmetic and logic circuitry to perform one or more first operations corresponding to instructions, and one or more registers to store a result of the one or more first operations, the instructions in the apparatus;

a Field Programmable Gate Array (FPGA), the FPGA including logic gate circuitry, a plurality of configurable interconnections, and storage circuitry, the logic gate circuitry and the plurality of the configurable interconnections to perform one or more second operations, the storage circuitry to store a result of the one or more second operations; or

Application Specific Integrated Circuitry (ASIC) including logic gate circuitry to perform one or more third operations;

the processor circuitry to perform at least one of the first operations, the second operations, or the third operations to instantiate:

hashing circuitry to hash data entries corresponding to impressions logged by a server;

splitting circuitry to split the hashed data entries into groups corresponding to multiple registers;

augmented hyperloglog circuitry to determine (a) a maximum rank for each of the multiple registers and (b) a maximum rank count for each of the multiple registers;

frequency distribution circuitry to determine a frequency distribution based on the maximum ranks and the maximum rank counts; and

reporting circuitry to generate a report including at least one of the frequency distribution, the maximum ranks, or the maximum rank counts.

Assignments (5)
SECURITY INTEREST Recorded May 8, 2023
From: GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; GRACENOTE, INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC
To: ARES CAPITAL CORPORATION
Reel/Frame 063574/0632 →
SECURITY INTEREST Recorded Apr 28, 2023
From: GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; GRACENOTE, INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC
To: CITIBANK, N.A.
Reel/Frame 063561/0381 →
SECURITY AGREEMENT Recorded Jan 31, 2023
From: GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; GRACENOTE, INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC
To: BANK OF AMERICA, N.A.
Reel/Frame 063560/0547 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2022
From: SHEPPARD, MICHAEL R
To: THE NIELSEN COMPANY (US), LLC
Reel/Frame 062142/0613 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2022
From: SULLIVAN, JONATHAN
To: THE NIELSEN COMPANY (US), LLC
Reel/Frame 061355/0743 →
Continuity (2)
Provisional Application 63256379 · Oct 15, 2021
Related Publication 20230117942A1 · Apr 20, 2023
References Cited (6)
US 6108637A · Blumenau · 2000 [cited by applicant]
US 8370489B2 · Mazumdar et al. · 2013 [cited by applicant]
US 20140172560A1 · Satyavolu et al. · 2014 [cited by applicant]
US 20150170175A1 · Zhang et al. · 2015 [cited by applicant]
US 20210359846A1 · Wright · 2021 [cited by examiner]
Ohayon, “ExtendedHyperLogLog: Analysis of a new Cardinality Estimator,” arXiv, Jun. 17, 2021, 16 pages. [cited by applicant]