IP Library Granted Patent US 11,816,169
Granted Patent B2
US 11,816,169 · App. 17/364,616 · Granted Nov 14, 2023

Efficient uniques querying

Inventor: Ioannis Mantzouratos (San Francisco, CA)
Assignee: Tubular Labs, Inc.
G06F16/951G06F16/2255G06F16/248G06F16/2455G06F16/93G06F16/9535
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 11,816,169
App. No.
17/364,616
Granted
Nov 14, 2023
Kind
B2
Abstract

Efficient uniques querying is disclosed, including: receiving a search query for a number of unique audience members across a plurality of groups of audience members; obtaining a plurality of sets of representations corresponding to respective ones of the plurality of groups of audience members; selecting at least a subset from each of the plurality of sets of representations; merging the selected at least subsets of the plurality of sets of representations into a merged set of representations; determining the number of unique audience members across the plurality of groups of audience members based at least in part on the merged set of representations; and outputting the number of unique audience members across the plurality of groups of audience members.

Claims (86)

1. A system, comprising:

a processor configured to:

obtain user identifiers (IDs) of audience members associated with a first group of audience members from a platform server;

generate hash values based at least in part on the user IDs;

sort the hash values;

include a subset of the sorted hash values up to a predetermined number as a first set of representations associated with the first group of audience members, wherein the first set of representations is usable to estimate a first number of unique audience members within the first group of audience members;

receive a search query for a second number of unique audience members across at least the first group of audience members and a second group of audience members;

obtain, from storage, the first set of representations corresponding to the first group of audience members and a second set of representations corresponding to the second group of audience members, wherein both the first set of representations and the second set of representations were determined and stored prior to the receipt of the search query;

obtain a merged set of representations based at least in part on merging a first subset of the first set of representations corresponding to the first group of audience members and a second subset of the second set of representations corresponding to the second group of audience members; and

determine the second number of unique audience members across the at least the first group of audience members and the second group of audience members based at least in part on the merged set of representations; and

a memory coupled to the processor and configured to provide instructions to the processor.

2. The system of claim 1 , wherein the processor is further configured to:

determine that a new user ID of a new audience member has been added to the first group of audience members;

generate a new hash value based on the new user ID;

compare the new hash value against the sorted hash values in the first set of representations associated with the first group of audience members;

determine that the new hash value is not smaller than a largest of the sorted hash values; and

in response to the determination that the new hash value is not smaller than the largest of the sorted hash values, discard the new hash value without updating the first set of representations.

3. The system of claim 1 , wherein the processor is further configured to:

determine that a new user ID of a new audience member has been added to the first group of audience members;

generate a new hash value based on the new user ID;

compare the new hash value against the sorted hash values in the first set of representations associated with the first group of audience members;

determine that the new hash value is smaller than a largest of the sorted hash values; and

in response to the determination that the new hash value is smaller than the largest of the sorted hash values:

insert the new hash value into the first set of representations; and

discard the largest of the sorted hash values from the first set of representations.

4. The system of claim 1 , wherein to obtain the merged set of representations based at least in part on merging the first subset of the first set of representations corresponding to the first group of audience members and the second subset of the second set of representations corresponding to the second group of audience members comprises to:

determine a respective maximum value from each of at least the first set of representations and the second set of representations;

determine a minimum value from the respective maximum values as a selected value;

select the first subset from the first set of representations as representations that are smaller than or equal to the selected value; and

select the second subset from the second set of representations as representations that are smaller than or equal to the selected value.

5. The system of claim 1 , wherein the processor is further configured to:

determine a duplicate value within the merged set of representations; and

discard the duplicate value from the merged set of representations.

6. The system of claim 1 , wherein to determine the second number of unique audience members across the at least the first group of audience members and the second group of audience members based at least in part on the merged set of representations comprises to:

determine a respective distance between each pair of adjacent representations within the merged set of representations;

determine an average distance based on the respective distances; and

determine the second number of unique audience members across the first group of audience members and the second group of audience members as a function of the average distance.

7. The system of claim 6 , wherein the second number of unique audience members across the first group of audience members and the second group of audience members is determined as a quotient of one divided by the average distance.

8. The system of claim 1 , wherein to determine the second number of unique audience members across the first group of audience members and the second group of audience members based at least in part on the merged set of representations is determined based at least in part on a maximum representation from the merged set of representations and a number of representations in the merged set of representations.

9. The system of claim 1 , wherein the processor is further configured to determine a plurality of matching documents based at least in part on the search query, wherein the plurality of matching documents corresponds to respective ones of the first group of audience members and the second group of audience members, wherein the first set of representations and the second set of representations are stored in respective ones of the plurality of matching documents.

10. A method, comprising:

obtaining user identifiers (IDs) of audience members associated with a first group of audience members from a platform server;

generating hash values based at least in part on the user IDs;

sorting the hash values;

including a subset of the sorted hash values up to a predetermined number as a first set of representations associated with the first group of audience members, wherein the first set of representations is usable to estimate a first number of unique audience members within the first group of audience members;

receiving a search query for a second number of unique audience members across at least the first group of audience members and a second group of audience members;

obtaining, from storage, the first set of representations corresponding to the first group of audience members and a second set of representations corresponding to the second group of audience members, wherein both the first set of representations and the second set of representations were determined and stored prior to the receipt of the search query;

obtaining a merged set of representations based at least in part on merging a first subset of the first set of representations corresponding to the first group of audience members and a second subset of the second set of representations corresponding to the second group of audience members; and

determining the second number of unique audience members across the at least the first group of audience members and the second group of audience members based at least in part on the merged set of representations.

11. The method of claim 10 , further comprising:

determining that a new user ID of a new audience member has been added to the first group of audience members;

generating a new hash value based on the new user ID;

comparing the new hash value against the sorted hash values in the first set of representations associated with the first group of audience members;

determining that the new hash value is not smaller than a largest of the sorted hash values; and

in response to the determination that the new hash value is not smaller than the largest of the sorted hash values, discarding the new hash value without updating the first set of representations.

12. The method of claim 10 , further comprising:

determining that a new user ID of a new audience member has been added to the first group of audience members;

generating a new hash value based on the new user ID;

comparing the new hash value against the sorted hash values in the first set of representations associated with the first group of audience members;

determining that the new hash value is smaller than a largest of the sorted hash values; and

in response to the determination that the new hash value is smaller than the largest of the sorted hash values:

inserting the new hash value into the first set of representations; and

discarding the largest of the sorted hash values from the first set of representations.

13. The method of claim 10 , wherein obtaining the merged set of representations based at least in part on merging the first subset of the first set of representations corresponding to the first group of audience members and the second subset of the second set of representations corresponding to the second group of audience members comprises:

determining a respective maximum value from each of at least the first set of representations and the second set of representations;

determining a minimum value from the respective maximum values as a selected value;

selecting the first subset from the first set of representations as representations that are smaller than or equal to the selected value; and

selecting the second subset from the second set of representations as representations that are smaller than or equal to the selected value.

14. The method of claim 10 , further comprising:

determining a duplicate value within the merged set of representations; and

discarding the duplicate value from the merged set of representations.

15. The method of claim 10 , wherein determining the second number of unique audience members across the at least the first group of audience members and the second group of audience members based at least in part on the merged set of representations comprises:

determining a respective distance between each pair of adjacent representations within the merged set of representations;

determining an average distance based on the respective distances; and

determining the second number of unique audience members across the first group of audience members and the second group of audience members as a function of the average distance.

16. The method of claim 15 , wherein the second number of unique audience members across the first group of audience members and the second group of audience members is determined as a quotient of one divided by the average distance.

17. The method of claim 10 , wherein determining the second number of unique audience members across the first group of audience members and the second group of audience members based at least in part on the merged set of representations is determined based at least in part on a maximum representation from the merged set of representations and a number of representations in the merged set of representations.

18. A computer program product embodied in a non-transitory computer readable medium and comprising computer instructions for:

obtaining user identifiers (IDs) of audience members associated with a first group of audience members from a platform server;

generating hash values based at least in part on the user IDs;

sorting the hash values;

including a subset of the sorted hash values up to a predetermined number as a first set of representations associated with the first group of audience members, wherein the first set of representations is usable to estimate a first number of unique audience members within the first group of audience members;

receiving a search query for a second number of unique audience members across at least the first group of audience members and a second group of audience members;

obtaining, from storage, the first set of representations corresponding to the first group of audience members and a second set of representations corresponding to the second group of audience members, wherein both the first set of representations and the second set of representations were determined and stored prior to the receipt of the search query;

obtaining a merged set of representations based at least in part on merging a first subset of the first set of representations corresponding to the first group of audience members and a second subset of the second set of representations corresponding to the second group of audience members; and

determining the second number of unique audience members across the at least the first group of audience members and the second group of audience members based at least in part on the merged set of representations.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Mar 3, 2023
From: ORIX GROWTH CAPITAL, LLC
To: TUBULAR LABS, INC.
Reel/Frame 062880/0362 →
SECURITY INTEREST Recorded Mar 1, 2023
From: TUBULAR LABS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 062848/0298 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2023
From: MANTZOURATOS, IOANNIS
To: TUBULAR LABS, INC.
Reel/Frame 062560/0328 →
REAFFIRMATION OF AND SUPPLEMENT TO INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 3, 2021
From: TUBULAR LABS, INC.
To: ORIX GROWTH CAPITAL, LLC
Reel/Frame 057064/0043 →
Continuity (2)
Continuation 16600156 · Oct 11, 2019
Related Publication 20210326395A1 · Oct 21, 2021
Cited By (1)
US 12,277,577