IP Library › Granted Patent US 11,790,116
Granted Patent B2
US 11,790,116 · App. 16/592,190 · Granted Oct 17, 2023

Systems and methods for privacy preserving determination of intersections of sets of user identifiers

Inventors: Michael Daub (Mountain View, CA); Scott Schneider (Mountain View, CA); Joseph Sean Cahill Goodknight Knightbrook (Mountain View, CA); Sheng Ma (Mountain View, CA); Laura Book (Mountain View, CA)
Assignee: GOOGLE LLC
G06F21/6254G06F16/212G06F16/2255G06F21/6245G06Q30/0246H04L9/0643H04L63/0407H04L63/0428
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,790,116
App. No.
16/592,190
Granted
Oct 17, 2023
Kind
B2
Abstract

At least one aspect is directed to determining an estimate of an intersection of user identifiers in a first set of user identifiers and a second set of user identifiers. The first and second sets of user identifiers can be populated with user identifiers that have interacted with the same content item or content item campaign. Estimates of intersections of the first and the second sets can be determined based on a binomial vector approach, a vector of counts approach, or a hybrid approach. The binomial vector approach generates vectors based on k hashes of each user identifier in the first set and summing the vectors to generate a first vector. The intersection can be determined based on a dot product of the first vector and a second vector similarly generated from the second set of user identifiers.

Claims (50)

1. A method for providing anonymous data about user interactions with a set of content items, the method comprising:

receiving, based on a request from a requesting party, a set of hash functions;

retrieving a plurality of user identifiers, each of the user identifiers identifying one or more interactions with the set of content items by a respective user identifier of the plurality of user identifiers;

generating a user vector for each respective user identifier of the plurality of user identifiers by:

generating a first hash value of a respective user identifier using a first hash function of the set of k hash functions included in the request from the requesting party;

generating a second hash value of the respective user identifier using a second hash function of the set of k hash functions included in the request from the requesting party;

generating a user vector, comprising k coordinates, wherein a first coordinate of the user vector comprises a subset of bits of the first hash value and a second coordinate of the user vector comprises a subset of bits of the second hash value, wherein each coordinate of the user vector contains no specific information about individual user identifiers or specific interactions of the user identifier with a content item of the set of content items;

generating an interaction vector by summing the plurality of generated user vectors generated for each respective user identifier; and

transmitting, the generated interaction vector to the requesting party, wherein the generated interaction vector provides anonymous data about a plurality of user interactions with the set of content items from a plurality of content delivery platform without revealing the user identifier to the requesting party, wherein the generated interaction vector is used to estimate a number of unique user interactions with the set of content items based on the generated interaction vector and a second interaction vector associated with a third-party.

2. The method of claim 1 , wherein receiving, via a network, data to identify the set of hash functions includes receiving data to identify the set of content items.

3. The method of claim 2 , wherein retrieving a plurality of user identifiers, each of the user identifiers identifying interactions with the set of content items by a respective user of the plurality includes only retrieving the plurality of user identifiers that identify interaction with the set of content items identified by the received data.

4. The method of claim 1 , comprising:

generating p hash values for each of the plurality of the user identifiers, wherein the p hash values correspond to a respective hash function in the set of hash functions,

determining a value of m-bits for each of the p hash values, and

incrementing a count of a register corresponding to the hash value, the register being one of k registers, where k=2{circumflex over ( )}m, where each of the p hash values corresponds to a set of k registers.

5. The method of claim 4 , wherein generating the interaction vector comprises generating p interaction vectors, wherein each coordinate of the p interaction vectors corresponds to a kth register in a pth set of registers.

6. The method of claim 1 , wherein determining a value of m-bits of the hash value comprises determining the least significant bits of the hash value.

7. The method of claim 1 , wherein the interaction vector comprises a plurality of coordinates, each coordinate of the interaction vector being equal to a count of the corresponding kth register, and wherein generating the interaction vector includes subtracting, from each coordinate of the interaction vector, a value equal to a number of user identifiers divided by k.

8. The method of claim 1 , wherein the interaction vector comprises a plurality of coordinates, each coordinate of the interaction vector being equal to a count of a corresponding kth register includes adding, and wherein generating the interaction vector, to each coordinate of the interaction vector, a noise function based on one or more parameters.

9. The method of claim 1 , wherein transmitting, via a network, the generated interaction vector includes transmitting a number of user identifiers identifying interaction with the set of content items.

10. The method of claim 5 , wherein transmitting, via a network, the generated interaction vector includes transmitting p interaction vectors.

11. A system comprising one or more processors, the processors configured to:

receive, based on a request from a requesting party, a set of hash functions;

retrieve a plurality of user identifiers, each of the user identifiers identifying one or more interactions with the set of content items by a respective user identifier of the plurality of user identifiers;

generate a user vector for each respective user identifier of the plurality of user identifiers by:

generating a first hash value of a respective user identifier using a first hash function of the set of k hash functions included in a request from the requesting party;

generating a second hash value of the respective user identifier using a second hash function of the set of k hash functions included in the request from the requesting party;

generating a user vector, comprising k coordinates, wherein a first coordinate of the user vector comprises a subset of bits of the first hash value and a second coordinate of the user vector comprises a subset of bits of the second hash value, wherein each coordinate of the user vector contains no specific information about individual user identifiers or specific interactions of the user identifier with a content item of the set of content items;

generate an interaction vector by summing the plurality of generated user vectors generated for each respective user identifier; and

transmit the generated interaction vector to the requesting party, wherein the generated interaction vector provides anonymous data about a plurality of user interactions with the set of content items from a plurality of content delivery platform without revealing the user identifier to the requesting party, wherein the generated interaction vector is used to estimate a number of unique user interactions with the set of content items based on the generated interaction vector and a second interaction vector associated with a third-party.

12. The system of claim 11 , wherein the one or more processors are configured to:

receive, via a network, data to identify the set of hash functions, and receive data to identify the set of content items.

13. The system of claim 12 , wherein the one or more processors are configured to:

retrieve only a plurality of user identifiers that identify interactions with the set of content items identified by the received data.

14. The system of claim 11 , wherein the one or more processors are configured to:

generate p hash values for each of the plurality of the user identifiers, wherein the p hash values correspond to a respective hash function in the set of hash functions,

determine a value of m-bits for each of the p hash values, and

increment a count of a register corresponding to the value, the register being one of k registers, where k=2∧m, where each of the p hash values corresponds to a set of k registers.

15. The system of claim 14 , wherein the one or more processors are configured to:

generate p interaction vectors, wherein each coordinate of the p interaction vectors corresponds to a kth register in a pth set of registers.

16. The system of claim 11 , wherein the one or more processors are configured to:

determine a value of m-bits of the hash value by determining the least significant bits of the hash value.

17. The system of claim 11 , wherein the one or more processors are configured to:

generate an interaction vector, each coordinate of the interaction vector being equal to a count of the corresponding kth register, and subtract, from each coordinate of the interaction vector, a value equal to a number of user identifiers divided by k.

18. The system of claim 11 , wherein the one or more processors are configured to:

generate the interaction vector, each coordinate of the interaction vector being equal to a count of the corresponding kth register, and add, to each coordinate of the interaction vector, a noise function based on one or more parameters.

19. The system of claim 11 , wherein the one or more processors are configured to:

transmit, via a network, the generated interaction vector and a number of user identifiers identifying interaction with the set of content items.

20. The system of claim 15 , wherein the one or more processors are configured to:

transmit, via a network, the generated p interaction vectors.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2022
From: DAUB, MICHAEL; SCHNEIDER, SCOTT; KNIGHTBROOK, JOEY; MA, SHENG; BOOK, LAURA
To: GOOGLE LLC
Reel/Frame 059112/0314 →
Continuity (4)
Continuation 16564116 · Sep 9, 2019
Provisional Application 62877251 · Jul 22, 2019
Provisional Application 62870970 · Jul 5, 2019
Related Publication 20210004487A1 · Jan 7, 2021
Cited By (2)
US 12,189,810 US 12,737,497