Differential privacy for hll-derived estimates
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- GOOGLE LLC
- Filing Date
- 2024-09-26
- Publication Date
- 2026-05-20
AI Technical Summary
Analyzing large datasets using HyperLogLog (HLL) sketches can be computationally intensive and result in significant system latency, and existing methods lack differential privacy, allowing malicious entities to manipulate input data to reveal sensitive information about individual items.
Injecting bounded noise during the computation of HLL-derived estimates using differential privacy parameters, such as epsilon (ε) and delta (δ), to protect individual privacy while reducing data storage and computational requirements.
The proposed method ensures accurate and differentially private estimates by minimizing the impact of noise on the output, preventing malicious data manipulation, and reducing data storage and computational costs.
Smart Images

Figure US2024048602_02042026_PF_FP_ABST
Abstract
Description
Attorney Docket No. 56113-0770WO1 DIFFERENTIAL PRIVACY FOR HLL-DERIVED ESTIMATES BACKGROUND
[0001] This specification relates to data processing and generating HyperLogLog (HLL) estimates that are differentially private.
[0002] Analyzing large datasets can be computationally-intensive and obtaining accurate results can cause significant system latency. Sketching techniques, such as HLL, can reduce both the computational cost and the latency in obtaining results from analyzing large datasets. Sketching techniques generally involve transforming a large dataset into a mini dataset, or sample set, which is representative of particular aspects (or attributes) of the larger dataset. The sample set may be used to obtain a particular data analysis result estimation, such as unique entry counts, within the larger dataset. A sample set can be referred to herein as a sketch data structure or “sketch”. In general, sketches can be useful for estimating the cardinality of unique values for the large dataset.
[0003] HLL is a technique for estimating cardinality, i.e., the number of unique items in a set, using sketches and therefore limited memory. Differential privacy is a mathematical framework for protecting the privacy of individuals when their data is included in datasets. For example, differential privacy can prove limits on how much information an outputted result that is based on the data set may reveal about an individual item in the dataset. SUMMARY
[0004] In general, one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving a set of sketches from a set of data owners, each sketch representing a sampling of items in a dataset and including a set of registers that store values representing a number of leading zeros; determining a minimum register value for the sketches based on differential privacy parameters; merging the sketches to generate a merged sketch, the merging including storing the minimum register value in each register of the merged sketch that has a value that is less than the minimum register value; estimating a number of unique items represented by the merged sketch, the estimating including adding noise to the estimated number of unique entities; and providing data indicating the estimated number of unique entities to a recipient. Other implementations of this aspectAttorney Docket No. 56113-0770WO1 include corresponding apparatus, systems, and computer programs, configured to perform the aspects of the methods, encoded on computer storage devices.
[0005] These and other embodiments can each optionally include one or more of the following features. In some aspects, each sketch is a HyperLogLog sketch.
[0006] In some aspects, the differential privacy parameters include epsilon (ε) and delta (δ).
[0007] In some aspects, merging the sketches includes merging the sketches with an additional sketch having a set of registers set to the minimum register value.
[0008] Some aspects include determining, based on the differential privacy parameters, sketch size including a number of registers for each sketch in the set of sketches and sending, to each data owner, data indicating the sketch size. Each sketch in the set of sketches has the number of registers.
[0009] Some aspects include determining a salt and sending the salt to each data owner. Each sketch is populated with values by applying a first hash function to each of a plurality of identifiers to generate a plurality of hash values and applying a second hash function of a HyperLogLog algorithm to the plurality of hash values.
[0010] In some aspects, determining the salt includes determining the salt randomly or pseudorandomly. Sending the salt to each data owner can include sending the salt to each data owner after each data owner has obtained a dataset from which the sketch of the data owner is generated.
[0011] In some aspects, receiving the set of sketches from the set of data owners includes received the set of sketches from one or more third party devices that generate the set of sketches for the data owners. Some aspects can include determining a salt and sending the salt to each third party device. Each sketch is populated with values by applying a first hash function to each of a plurality of identifiers to generate a plurality of hash values and applying a second hash function of a HyperLogLog algorithm to the plurality of hash values.
[0012] In some aspects, adding noise to the estimated number of unique entities includes determining a harmonic mean (Z) of the register values of the merged sketch; determining a reciprocal of the harmonic mean (Z); and adding noise to the reciprocal of the harmonic mean (Z).
[0013] In some aspects, adding noise to the estimated number of unique entities includes adding noise using differential privacy parameter epsilon (ε) and a Laplace mechanism or aAttorney Docket No. 56113-0770WO1 Gaussian mechanism. Adding noise using differential privacy parameter epsilon (ε) and a Laplace mechanism or a Gaussian mechanism includes adding noise based further on differential privacy parameter detla (δ).
[0014] In general, another innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of providing, to a third party device of a third party, a salt; receiving, from the third party device, a plurality of sketches, each sketch representing a sampling of items in a dataset and including a set of registers that store values representing a number of leading zeros, wherein each sketch is populated with values by applying a first hash function to each of a plurality of identifiers to generate a plurality of hash values and applying a second hash function of a HyperLogLog algorithm to the plurality of hash values; merging the sketches to generate a merged sketch; estimating a number of unique items represented by the merged sketch, the estimating including adding noise to the estimated number of unique entities; and providing data indicating the estimated number of unique entities to a recipient. Other implementations of this aspect include corresponding apparatus, systems, and computer programs, configured to perform the aspects of the methods, encoded on computer storage devices.
[0015] Some aspects can include receiving, from the third party device, an indication that datasets of a plurality of data owners have been received by the third party, wherein the salt is provided in response to receiving the indication.
[0016] In general, another innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving a set of sketches from a set of data owners, each sketch representing a sampling of items in a dataset and including a set of registers that store values representing a number of leading zeros; merging the sketches to generate a merged sketch including a set of registers that store register values; estimating a number of unique items represented by the merged sketch, the estimating including: determining a harmonic mean (Z) of the register values of the merged sketch; determining a reciprocal of the harmonic mean (Z); determining a noised harmonic mean by adding noise to the reciprocal of the harmonic mean (Z) to generate a noised result and determining the reciprocal of the noised result; and determining the estimated number of unique items based on the noised harmonic mean; and providing data indicating the estimated number of unique entities to a recipient. Other implementations of this aspect include corresponding apparatus,Attorney Docket No. 56113-0770WO1 systems, and computer programs, configured to perform the aspects of the methods, encoded on computer storage devices.
[0017] Particular embodiments of the subject matter described in this specification can be implemented so as to realize one or more of the following advantages. The techniques described in this document protect HLL-derived estimates by injecting bounded noise into the computations such that the estimates are differentially private. In this way, a malicious data consumer is prevented from learning anything about any item, e.g., any user, in the dataset by manipulating the input data. Injecting the noise at a point in the computation of the estimate where the noise is bounded as described herein reduces the impact of noise on the output, makes it unlikely that any single item can have a large impact on the output, and / or reduces the amount of noise that has to be added to achieve differential privacy. This results in more accurate estimates than techniques that require larger amounts of noise to achieve differential privacy. Injecting the noise at a point in the computation of the estimate where the noise is bounded also better prevents malicious entities from identifying unique items in the dataset by attempting to manipulating input data to drive unbounded resulting estimates. As HLL sketches are compact representations of data and greatly reduce the amount of data that is stored and processed to estimate cardinality, the described techniques that combine HLL with differential privacy protect individual privacy while also reducing data storage requirements, data transmission requirements (e.g., to obtain HLL sketches from multiple data owners), and computational requirements of the computer(s) that generate the HLL-derived estimates.
[0018] The details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0019] FIG. 1 is a block diagram of an example environment in which an estimate system generates HLL-derived estimates that are differentially private.
[0020] FIG. 2 is a flow chart of an example process of generating an HLL-derived estimate that is differentially private.
[0021] FIG. 3 is a flow chart of an example process of generating an HLL-derived estimate that is differentially private.Attorney Docket No. 56113-0770WO1
[0022] FIG. 4 is a flow chart of an example process of generating an HLL-derived estimate that is differentially private.
[0023] FIG. 5 is a flow chart of an example process of generating an HLL-derived estimate that is differentially private.
[0024] FIG. 6 is a block diagram of an example computer.
[0025] Like reference numbers and designations in the various drawings indicate like elements. DETAILED DESCRIPTION
[0026] This document describes techniques for protecting HLL-derived results with differential privacy, including in situations in which the HLL hash functions are public. In general, HLL sketches are not differentially private. Protecting HLL-derived estimates is challenging because a single item can, in some cases, change the estimate by an unbounded amount. The techniques described in this document can use objective perturbation by injecting noise during the computation, e.g., in the middle of the computation, at a point where the noise is bounded, rather than on the output. In differential privacy, the parameter epsilon (ε) represents the maximum distance between a query on two datasets and the parameter delta (δ) represents the probability of data accidentally being released.
[0027] FIG. 1 is a block diagram of an example environment 100 in which an estimate system 130 generates HLL-derived estimates that are differentially private. The example environment 100 includes a network 105, such as a local area network (LAN), a wide area network (WAN), the Internet, or a combination thereof. The network 105 connects the estimate system 130 with data owners 110 (e.g., data owners 110-1 to 110-N).
[0028] Each data owner 110 is an entity that collects or generates datasets 111 for which estimates of cardinality can be generated by the estimate system 130. The estimates of cardinality can be based on one data owner’s dataset 111 or a combination of the datasets 111 of multiple data owners. In one example, each data owner 110 is a publisher that maintains data regarding individual users to which digital components are presented with the publisher’s resources (e.g., with their web pages or mobile application pages / content). In this example, the dataset 111 of a publisher can include, for a digital component, a user identifier for each user to which the digital component was presented with the publisher’s resources.
[0029] As used throughout this document, the phrase “digital component” refers to a discrete unit of digital content or digital information (e.g., a video clip, audio clip, multimedia clip,Attorney Docket No. 56113-0770WO1 gaming content, image, text, bullet point, artificial intelligence output, language model output, or another unit of content). A digital component can electronically be stored in a physical memory device as a single file or in a collection of files, and digital components can take the form of video files, audio files, multimedia files, image files, or text files and include advertising information, such that an advertisement is a type of digital component.
[0030] For example, the estimate system 130 can be configured to generate differentially private estimates of the number of unique users to which a given digital component has been presented across multiple publishers’ resources, which can be referred to as the reach of the digital component. As such cross-site activity of users is sensitive data that should be protected, the estimate system 130 is configured to ensure that the estimates are differentially private to protect the privacy of each individual user’s data. As the size of the datasets typically involved in such applications can often present significant technical challenges in efficiently processing, querying, and storing the data, HLL can be used to estimate the number of unique users.
[0031] In some implementations, each data owner 110 is configured to generate an HLL sketch 120 of its dataset and provide the HLL sketch 120 to the estimate system 130 over the network 105. In some implementations, each (or some) data owners 110 can have a third party generate the HLL sketch 120 of its dataset and provide the HLL dataset 120 to the estimate system 130. In such implementations, the third party can generate each HLL sketch 120 in a clean room computing environment, e.g., in a trusted execution environment (TEE).
[0032] A clean room computing environment typically use specialized hardware and / or software to protect the security and privacy of data and to ensure only approved (e.g., attested to) software is ran within the clean room computing environment. For example, a TEE provides a secure environment for computation and is sometimes implemented as a secure area of a main processor. A TEE can guarantee that code and data loaded inside the TEE are protected with respect to integrity and confidentiality. Integrity indicates that unauthorized entities cannot alter code and / or data within the TEE, and confidentiality indicates that unauthorized entities cannot read code and / or data within the TEE.
[0033] As used in this document, a “sketch” is a data array that describes a set of users or a set of things. For example, a sketch 120 can describe a set of users to which a given digital component was presented or to which a digital component of a digital component campaignAttorney Docket No. 56113-0770WO1 was presented. In another example, a sketch 120 can describe a set of users that performed a particular action with respect to a given digital component, e.g., interacted with the digital component or performed another action (e.g., purchasing an item that is the subject of the digital component) after the digital component was presented to the user. In other examples, a sketch can describe any item, such as search terms, dates, locations, user attributes (e.g., demographic information), attributes of digital components, tuples describing users, cybersecurity events, other types of events, etc.
[0034] Each sketch 120 can include a number of registers 125 that store a value. Initially, each register can store a value of zero or negative infinity. To generate a sketch 120, the data owner 110 can populate values of the registers 125 using a hash function and input data. The input data can be user identifiers of users that viewed a digital component. The user identifier can be a unique identifier for the user, contact information for the user (e.g., phone number or e-mail address), a device identifier of the user’s device (e.g., an IP address), or a combination of data for the user (e.g., combination of phone number and e-mail address or combination of physical address and demographic information).
[0035] For ease of subsequent description, the input data will be described as user identifiers for users that viewed a given digital component. However, the same or similar techniques can be used for other types of input data.
[0036] The hash function can be a public hash function that is provided to each data owner 110. Each data owner 110 can generate their sketches 120 using the same hash function and the same type of user identifier so that the sketches 120 can be merged by the estimate system 130.
[0037] Each data owner 110 can generate its sketch 110 for a set of users using the add operation of the HLL algorithm. In particular, the data owner 110 can compute a hash value (x) by applying a hash function (h) to the value (v) of a user identifier of a user. After computing the hash value (x), the data owner 110 can obtain the first (b) bits and add a value of one to these bits to obtain the address (j) of the register 125 that may be updated based on the user.The address (j) can be represented as ^ = 1 + (^^^^ … ^^)^, which is a binary address for theregister 125 in which each x is a bit between the first bit x1and the bthbit xbof the hash value (x). With the remaining bits (w), the data owner 110 can compute the position of the leftmost one (in the remaining bits, which represents the number of leading zeros plus one, which can berepresented as ^(^). The remaining bits (w) can be represented as ^^^^^^^^ … ^^, where xl isAttorney Docket No. 56113-0770WO1 the last bit of the hash value (x). The data owner 110 can then set the value of the register 125 as address (j) to either the highest value out of the current value stored in the register or ^(^).
[0038] The data owner 110 can perform this add operation for each user identifier to generate the sketch 120. Each data owner 110 can generate its sketch 120 in this way and provide the sketch 120 to the estimate system 130.
[0039] The estimate system 130 includes a clean room computing environment 132, e.g., a TEE, for merging sketches 120 received from data owners 110 and for generating estimates based on the sketches 120. The estimate system 130 includes a sketch merger 134 and an estimate generator 136 that run within the clean room computing environment 132.
[0040] The sketch merger 134 is configured to merge the sketches 120 received from the data owners 110 into a merged sketch 128 that includes registers 129 that are populated with values based on the values held by the sketches 120. For example, the sketch merger 134 can populate each register of the merged sketch 128 with the highest value among the corresponding values stored in that same register of each input sketch 120. That is, for the first register of the merged sketch 128, the sketch merger 134 can identify the value stored in the first register of each input sketch 120 and find from these values the highest value. The sketch merger 134 can then populate the first register of the merged sketch 128 with that highest value. The sketch merger 134 can repeat this process for each register of the merged sketch 128.
[0041] The estimate generator 136 is configured to generate a differentially private estimate of the number of unique users represented by the merged sketch 128. In general, the estimate generator 136 can make the estimate differentially private by adding noise to the data during the computation of the estimate. The amount of noise can differ based on the size of the overall dataset represented by the merged sketch 128 and / or the technique(s) used to generate the sketches 120 and add the noise. For example, the estimate system 110 and data owners 110 can be configured to use one or more of multiple techniques to generate the sketches 120 and differentially private estimates, as described in more detail below.
[0042] In general, the estimate generator 136 can estimate the number of users that viewed a digital component using the HLL count algorithm with noise applied. For example, the estimate generator 136 can generate an estimate (E) using Equations 1-3 below. Equation 1:Attorney Docket No. 56113-0770WO1 ^ ^^ ^= ^^ 2^^^^^ ^Equation 2: )2 + % ^^^ ^^ = ^^ ^!"#^ $ &' (% 'Equation 3:+ = ^^^^^
[0043] In Equations 1-3, M represents the merged sketch 128, each value of m represents a register 129 of the merged sketch 128, m represents the number of registers in M, M[j] is thevalue stored in the jth register, Z is the indicator which is the harmonic mean of the m registers,^^ is a constant that is based on m, and E is the estimate the cardinality represented by thesketch M (e.g., the number of unique users that viewed a digital component).
[0044] To make the estimate (E) differentially private, noise can be added to this computation of the estimate (E). In some implementations, the estimate generator 136 adds noise to the indicator Z, e.g., to the reciprocal of Z, i.e., 1 / Z. The global sensitivity of 1 / Z is a value of one. The estimate generator 136 can add noise, scaled to one, to Z or to 1 / Z. Adding noise to 1 / Z will naturally have a small impact on E when 1 / Z is large and vice versa.
[0045] In some implementations, the estimate generator 136 can add the noise by using Equation 3 to compute E for the HLL, convert that to 1 / Z, add noise to 1 / Z, and turn it back into E. For example, the estimate system 130 can compute E, compute the reciprocal of E, add noise to the reciprocal of E, and turn the reciprocal of E back in to E (e.g., by computing the reciprocal of the reciprocal of E with the added noise). When 1 / Z is small, noised 1 / Z can vary a lot and even be negative. However, it is valid differential privacy to post-process the noised 1 / Z, e.g., by taking the absolute value or setting a floor (which would be a small, but not too small of fraction of the upper bound). In other words, the value of 1 / Z would be a very small value computed from some maximum capped value for E. The maximum value for E could be a reasonable prediction of the maximum number of unique items represented by E. ForAttorney Docket No. 56113-0770WO1 example, if E represents the number of unique users in a dataset that covers a particular region, the maximum value of E could be set at the total population of people in that particular region.
[0046] In some implementations, the noise can be added using smooth sensitivity. Smooth sensitivity is calculated by finding the maximum of the local sensitivity exponentially-decayed with user set distance, e.g., using Equation 4 below.Equation 4:,- = ^.^ / , 12,(^′)exp 7−9((^, ^′):;
[0047] In Equation 4, ,- represents the smooth sensitivity, Z is the indicator, β is a differential privacy parameter that is computed from ε and δ, LS represents the location sensitivity, and d(Z,Z’) represents the distance between datasets Z and Z’ (e.g., the number of users that are only in Z or Z’). Some datasets produce HLL sketches where adding / removing one user changes the estimate E a lot. These datasets have high LS. Other datasets, where adding / removing one user changes results only a little, have lower LS.
[0048] The estimate (E) and the indicator (Z) can change in two directions. They can both get smaller or they can both get larger. If a change reduces E and Z, it will also reduce ∆+ and ∆^ in subsequent changes. Therefore, looking at only this down sensitivity, the smooth sensitivity equals the local sensitivity, i.e., β=0.
[0049] Increasing Z can be more important for computing smooth sensitivity, because ∆+ and∆^ can grow in each step, and E and Z have no upper bound. The fastest route to thisunbounded case is where some registers have a value bi=0 and others have very large value bi. By the definition of Z, the maximum number of registers with bi=0 is ⌊1 / Z⌋. Thus, getting to this unbounded case takes at least 1 / Z steps. If Equation 5 below is true, in a typical case, few registers have a value of bi=0, so it can take close to m steps.Equation 5:+ = O(^@ / ^)
[0050] In Equation 5, m represents the size of the sketch in bytes, which is 2pwhere p is the HLL algorithm’s precision and O is big-O notation. However, regardless of how many steps itAttorney Docket No. 56113-0770WO1 takes to get to an unbounded value, if that number of steps is finite, then the smooth sensitivity is infinite. If smooth sensitivity is defined for E, noise can be added to E and it will be differentially private. A maximum value can be placed on Z (or on E), which is equivalent to a floor on 1 / Z. Then, smooth sensitivity can be defined and noise can be added to E that is proportional to this smooth sensitivity.
[0051] The estimate generator 136 can determine the noised estimate (E), which satisfies differential privacy, and provide a reporting output 138 that includes the noised estimate (E) to a recipient. In the example where the noised estimate is a number of unique viewers that viewed a digital component, the recipient can be a provider of the digital component. For example, if the digital component includes content for an item, the recipient may be the producer of the item or a third party that distributes digital components on behalf of the producer.
[0052] The following flow charts illustrate example processes that can be performed by the components of the environment 100 to generate sketches, merge the sketches to generate merged sketches, and generate differentially private estimates using the merged sketches.
[0053] FIG. 2 is a flow chart of an example process 200 of generating an HLL-derived estimate that is differentially private. Operations of the process 200 can be performed, for example, by the estimate system 130 of FIG. 1. The operations of the process 200 can also be implemented as instructions stored on a computer readable medium, which can be non-transitory. Execution of the instructions, by one or more data processing apparatus, causes the one or more data processing apparatus to perform operations of the process 200. For ease of subsequent description, the process 200 is described in terms of the estimate system 130.
[0054] In the process 200 of FIG. 2, the estimate system 130 can increase a size of the sketches. By increasing the size of the sketches, the amount of noise that is added to reach differential privacy is reduced, resulting in more accurate estimates of cardinality. This solution is B-DP.
[0055] The estimate system 130 identifies, e.g., determines, a size of sketches (210). The size of a sketch can be a number of registers in the sketch. The size of the sketch can be based on a prediction of the number of unique items (e.g., number of unique users that view a digital component), a target level of accuracy, a data size requirement or constraint (e.g., increasing the size of the sketches can increase their data size), and / or the desired level of differential privacy. The size of a sketch can be represented by its memory size, e.g., in terms of bytes. ForAttorney Docket No. 56113-0770WO1 example, some sketches are one byte per register. In some implementations, the number of registers in each sketch can be set by a system designer and the size can be the number of registers in each sketch or the number of bytes per sketch which can be based on the number registers specified for each sketch.
[0056] The estimate system 130 can determine the size of the sketches such that the noise that is added to make the estimate of cardinality differentially private is similar to (e.g., within a threshold) or less than the HLL algorithm’s inherent inaccuracy. For example, the noise is on the same scale as the HLL algorithm’s inherent inaccuracy when Equation 5 is true.
[0057] In some implementations, each data owner 110 provides sketches for different data dimensions. For example, each data owner 110 may provide many sketches that are computed across various dimensions. In such examples, the estimate system 130 can determine a sketch size for each dimension and provide, to each data owner 110, data indicating the sketch size for each dimension.
[0058] The estimate system 130 sends data indicating the sketch size, e.g., in terms of the number of registers, to each data owner 110 that will be providing sketches (220). To enable merging, the size of the sketches should be the same. Thus, the estimate system 130 can coordinate with the data owners 110 to ensure that they provide sketches of the same size.
[0059] The estimate system 130 receives sketches from the data owners (230). For example, each data owner 110 can collect data in datasets and generate sketches using the HLL algorithm (e.g., the HLL add operation described above). Each data owner 110 can generate a sketch of the sketch size provided by the estimate system 130.
[0060] The estimate system 130 merges the sketches received from the data owners (240). As described above, the estimate system 130 can merge the sketches by populating each register of a merged sketch with the highest value of that register in the sketches being merged.
[0061] The estimate system 130 adds noise to the computation (250). The estimate system 130 can add noise to 1 / Z or add noise according to smooth sensitivity, as described above. In some implementations, the amount of noise added to 1 / Z can be a fixed amount of noise. If the size of the sketches are increased, the impact of the noise on the final estimate (E) will be lower. In implementations that add noise according to smooth sensitivity, the amount of noise added to E can be smaller for larger sketches.Attorney Docket No. 56113-0770WO1
[0062] The estimate system 130 determines the estimate of cardinality (260). The estimate system 130 can determine the estimate (E) of cardinality using Equation 3 above.
[0063] The estimate system 130 sends the estimate (E) to a recipient (270). For example, if the estimate is a number of unique users that viewed a digital component, the estimate system 130 can send the estimate to the digital component provider that publishes and / or distributes the digital component.
[0064] FIG. 3 is a flow chart of an example process 300 of generating an HLL-derived estimate that is differentially private. Operations of the process 300 can be performed, for example, by the estimate system 130 of FIG. 1. The operations of the process 300 can also be implemented as instructions stored on a computer readable medium, which can be non-transitory. Execution of the instructions, by one or more data processing apparatus, causes the one or more data processing apparatus to perform operations of the process 300. For ease of subsequent description, the process 300 is described in terms of the estimate system 130.
[0065] In the process 300, the estimate system 130 provides a salt to each data owner 110 (or the third party that generates the sketches for the data owner 110) for use in generating their sketches. Each data owner 110 or third party can generate a hash value of the identifier for the item (e.g., the user identifier) using a hash function and the salt before using the hash function (h) of the HLL algorithm to add the item to the sketch. To prevent data owners 110 or third parties from adjusting data in an attempt to learn something about individuals represented by the sketches, the estimate system 130 can provide the salt after the datasets have been generated by the data owners 110, e.g., right before the sketches are generated and sent to the estimate system 100. Using a salt in this way makes it unlikely that any single individual can have a large impact on the output. Using this salt in combination with a form of differential privacy that allows a small chance of failure (e.g., a delta δ probability of failure) can reduce the required noise and therefore increase the accuracy of the differentially private estimate. Inparticular, the process 300 results in HLL-derived estimates that are (B, C)-DP and, in mostcircumstances, requires far less noise than the inherent inaccuracy of the HLL algorithm.
[0066] The salt can be referred to as a public salt because there is no requirement to take steps to keep the salt secret. If data owners 110 (e.g., publishers), digital component providers, or the public obtain the salt, there is no significant harm.Attorney Docket No. 56113-0770WO1
[0067] The estimate system 130 sends the salt to the data owners (310). The estimate system 130 can generate the salt and send it to each data owner 110 or a third party that generates the sketches for the data owner 110. In some implementations, the estimate system 130 generates the salt randomly or pseudo-randomly. For example, a salt can be random data that is added to data before a hash value is generated using the data.
[0068] The estimate system 130 may generate estimates for digital components periodically or at defined points, e.g., at the end of a campaign. For each estimate, the estimate system 130 can generate a salt and provide the salt to the data owners and / or third parties after the data has been collected, but prior to the sketches being generated.
[0069] To ensure that data owners 110 cannot modify the data after receiving the salt but before generating the sketch, each data owner 110 may be required to use a third party trusted service or the estimate system 130 to generate the sketches. In this example, the estimate system 110 would only provide the salt to the third party trusted service. This prevents the data owners from manipulating the hash values generated using the salt and therefore the sketches generated using the salt. Instead, only the trusted third party and / or the estimate system 130 would have access to the salt and the hash values generated using the salt.
[0070] The estimate system 130 receives sketches from data owners (320). Each data owner 110 can collect data in datasets and generate sketches using the HLL algorithm (e.g., the HLL add operation described above) and the received salt. For example, if each item is a user identifier, the data owner 110 can apply a hash function to the user identifier using the salt to generate a hash value. The data owner 110 can then apply the HLL algorithm’s hash function (h) to this hash value to update the sketch using the HLL add operation described above. Each data owner 110 can perform this process for each user identifier to generate its sketch.
[0071] The estimate system 130 merges the sketches received from the data owners (330). As described above, the estimate system 130 can merge the sketches by populating each register of a merged sketch with the highest value of that register in the sketches being merged.
[0072] The estimate system 130 adds noise to the computation (340). The estimate system 130 can add noise to 1 / Z or add noise according to smooth sensitivity.
[0073] The following analysis assumes that the recipient of the estimate knows virtually everything about which users (or other items) are in an HLL sketch. They may have targeted a digital component to a specified user list. Regardless of how they get this information, they canAttorney Docket No. 56113-0770WO1 combine it with the public salt to find each user’s HLL register number of leading zeros. This analysis shows limited differential privacy sensitivity even in view of this knowledge.
[0074] Suppose the recipient of the estimate wants to learn about a particular user with many leading zeros. On average, there are N / m - 1 other users in this register. Other than the targeted user, the largest number of leading zeros is likely to be around log2 (N / m). Here, m refers to the number of registers in the merged sketch 128 and N is the number of users represented by the merged sketch 128.
[0075] Consider the odds that a particular register has at least x leading zeros, for large m and N > m. The odds that a single item is in a particular register is 1 / m. The odds that it has x leading zeros is 2-x. The odds that a single item meets both conditions is (1 / m)2-x. The overall E probability that, of N users, none meet this condition is D1^1 GF;^ H;. M
[0076] Set x = log 1L^ ^; − N with a minimum register value of zero, so that x is k less than theaverage number of zeros per register. N’ can be obtained by taking a DP measurementof N, the number of users, and subtracting several times the standard deviation of the noise, so that it is very likely that N’ ≥ N. If N’ ≤ 0, this optimization can be aborted to leave the sensitivity of 1 / Z at 1. If N is measured by exact counting, the sensitivity of that computation is 1. A very small amount of ε and δ can be spent to satisfy this condition, because unless N = Ω(m), this optimization will not do anything to the resulting estimate. Also, once the condition is satisfied, x is still fairly insensitive, increasing by one only when N’ doubles.
[0077] The overall probability can be simplified as follows: LG^OPQR1SM^^1F GT;'^ ^Attorney Docket No. 56113-0770WO1 LVOPQ SMR^11^F ;WRT'XU^ ^;Y
[0078] This double exponential probability equation shrinks very rapidly. The overall probability can be very low with k=O(1). The differential privacy parameter δ is provided below: $G$ S TZ&×R &V^^ ×\ S X− C′T;≪ 1≅^ × D^^T+ C^ when N^is close to N
[0079] In these equations, C^is the small amount of privacy budget that was spent to measure N’. The factor of m is included because the probability above is the probability that a particular register in the merged sketch 128 has at least x leading zeros. Assuming N’ is close to N (e.g., within a threshold amount), and m is a default of 215, k=4 gives a probability of 0.3%; k=5 gives a probability of 4e-10, and k=6 gives a probability of 5e-24.
[0080] With probability 1 - δ, the global sensitivity of 1 / Z shrinks roughly to 2^h = 1^i; 2j.The estimate system 130 can apply noise to 1 / Z (objective perturbation), asabove, based on ε and this sensitivity to get an (ε, δ)-DP result. This provides a very large noise reduction. When 1 / Z >> 2-x, the impact of noise on the estimate (E) reduces from O(E2 / m2) toAttorney Docket No. 56113-0770WO1O(E / m). This is much smaller than the inherent inaccuracy of the HLL algorithm, which isk( l√^).
[0081] In the above, N’ can be computed based on an exact count of N, we well as building an HLL sketch. This is possible, but may be wasteful of resources in some cases. It may be preferable to use E, but the global / smooth sensitivity of E is unbounded. This can be resolved by doing a differential privacy computation of E from the HLL, e.g., by adding noise to 1 / Z with sensitivity. This computation will have a much larger standard deviation than exactly counting N. However, x is not very sensitive to the exact value of N’. So long as^^N ≤ N’ ≤ N, x is within a value of one of what it would be if N’ = N. In other words, E can be used instead of N’ using a small amount of ε and δ.
[0082] In general, x can be computed from each pre-merged sketch, then the minimum x from the sketches can be used. Each data owner 110 knows that its sketch was generated faithfully each sketch constructed in this way is very unlikely to have less than x leading zeros in any register. However, a malicious data owner may examine the public salt, find a user that they want to target, then construct a sketch that has zero leading zeros in that user’s register and many leading zeros in each other register. The merged sketch 128 would have many leading zeros in all registers except the targeted one. The number of leading zeros in that register would comes from the malicious data owner’s sketch. If xmergedis computed from the merged Msketch 128 using the process above (e.g., using x = !"#^ 1i^ ; − N), it is unlikely that theregister would have less than xmergedleading zeros.
[0083] The estimate system 130 determines the estimate of cardinality (350). The estimate system 130 can determine the estimate (E) of cardinality using Equation 3 above.
[0084] The estimate system 130 sends the estimate (E) to a recipient (360). For example, if the estimate is a number of unique users that viewed a digital component, the estimate system 130 can send the estimate to the digital component provider that publishes and / or distributes the digital component.
[0085] FIG. 4 is a flow chart of an example process 400 of generating an HLL-derived estimate that is differentially private. Operations of the process 400 can be performed, for example, by the estimate system 130 of FIG. 1. The operations of the process 400 can also be implemented as instructions stored on a computer readable medium, which can be non-transitory. ExecutionAttorney Docket No. 56113-0770WO1 of the instructions, by one or more data processing apparatus, causes the one or more data processing apparatus to perform operations of the process 400. For ease of subsequent description, the process 400 is described in terms of the estimate system 130.
[0086] In the process 400, the estimate system 130 can set minimum register values to reduce sensitivity. That is, the estimate system 130 can set a minimum number of leading zeros represented by each register. If the value of a register in the merged sketch 128 is less than the minimum, the estimate system 130 can replace that value with the minimum value. This solution is B-DP and adds a small amount of noise to large results (i.e., calculated estimates of cardinality), though higher relative noise may be added to smaller results. Relative to the process 300 of FIG. 3, this process 300 may have a positive bias on the results but there is no longer a δ probability of failure. In the process 300 of FIG. 3, the minimum values of the registers is inferred whereas the minimum values are set to a specific value that can be determined by the estimate system 130 or set by a system operator in the process 400.
[0087] The estimate system 130 sets the minimum value for each register (410). The minimum value can also be referred to as a floor. The floor exponentially reduces the sensitivity of 1 / Z and, therefore, the amount of noise added. Without a floor, the value that a bucket (a register) can add to 1 / Z can be exponentially small (for a high register value) or up to one (for a register value of one). With a floor f, the maximum value a register contributes to 1 / Z is 2-f. Thus, on the one hand, increasing the floor f exponentially decreases noise; but on the other hand, increasing the floor f decreases the accuracy of HLL sketches and increases their (positive) bias.
[0088] The estimate system 130 receives sketches from data owners (420). Each data owner 110 can collect data in datasets and generate sketches using the HLL algorithm (e.g., the HLL add operation described above).
[0089] The estimate system 130 merges the sketches received from the data owners (430). As described above, the estimate system 130 can merge the sketches by populating each register of a merged sketch with the highest value of that register in the sketches being merged. To set the minimum value of each register, the estimate system 130 can merge the sketches with an additional sketch that include the minimum value in each register. That is, each register of the additional sketch can include a fixed number of leading zeros. This reduces, e.g.,Attorney Docket No. 56113-0770WO1 exponentially, the differential privacy sensitivity of the estimates and, therefore, the amount of noise that has to be added in operation (440) for the estimate to be differentially private.
[0090] The estimate system 130 adds noise to the computation (440). The estimate system 130 can add noise to 1 / Z or add noise according to smooth sensitivity, as described above. The sensitivity of 1 / Z is one. The estimate system 130 can add noise using various differential privacy mechanisms, e.g., a Laplace mechanism or a Gaussian mechanism. For example, the estimate system 130 can add noise based on the differential privacy parameter ε and optionally the differential privacy parameter δ using a differential privacy mechanism.
[0091] The estimate system 130 determines the estimate of cardinality (450). The estimate system 130 can determine the estimate (E) of cardinality using Equation 3 above.
[0092] The estimate system 130 sends the estimate (E) to a recipient (460). For example, if the estimate is a number of unique users that viewed a digital component, the estimate system 130 can send the estimate to the digital component provider that publishes and / or distributes the digital component.
[0093] FIG. 5 is a flow chart of an example process 500 of generating an HLL-derived estimate that is differentially private. Operations of the process 500 can be performed, for example, by the estimate system 130 of FIG. 1. The operations of the process 500 can also be implemented as instructions stored on a computer readable medium, which can be non-transitory. Execution of the instructions, by one or more data processing apparatus, causes the one or more data processing apparatus to perform operations of the process 500. For ease of subsequent description, the process 500 is described in terms of the estimate system 130.
[0094] The estimate system 130 receives sketches from data owners (510). Each data owner 110 can collect data in datasets and generate sketches using the HLL algorithm (e.g., the HLL add operation described above). As described above with reference to FIG. 2, the size of the sketches can be increased. In addition or in the alternative, the sketches can be generated using a salt provided by the estimate system 130 to the data owners, as describe above with reference to FIG. 3.
[0095] The estimate system 130 merges the sketches received from the data owners (520). As described above, the estimate system 130 can merge the sketches by populating each register of a merged sketch with the highest value of that register in the sketches being merged. In implementations in which the minimum value of each register of the merged sketch 128 is set,Attorney Docket No. 56113-0770WO1 the estimate system 130 can merge the sketches with an additional sketch that include the minimum value in each register. That is, each register of the additional sketch can include a fixed number of leading zeros.
[0096] The estimate system 130 adds noise to the computation (530). The estimate system 130 can add noise to 1 / Z or add noise according to smooth sensitivity, as described above. For example, the estimate system 130 can add noise as described above with reference to any one of FIGS. 2-4.
[0097] The estimate system 130 determines the estimate of cardinality (540). The estimate system 130 can determine the estimate (E) of cardinality using Equation 3 above.
[0098] The estimate system 130 sends the estimate (E) to a recipient (550). For example, if the estimate is a number of unique users that viewed a digital component, the estimate system 130 can send the estimate to the digital component provider that publishes and / or distributes the digital component.
[0099] FIG. 6 is a block diagram of an example computer system 600 that can be used to perform operations described above. The system 600 includes a processor 610, a memory 620, a storage device 630, and an input / output device 640. Each of the components 610, 620, 630, and 640 can be interconnected, for example, using a system bus 650. The processor 610 is capable of processing instructions for execution within the system 600. In one implementation, the processor 610 is a single-threaded processor. In another implementation, the processor 610 is a multi-threaded processor. The processor 610 is capable of processing instructions stored in the memory 620 or on the storage device 630.
[0100] The memory 620 stores information within the system 600. In one implementation, the memory 620 is a computer-readable medium. In one implementation, the memory 620 is a volatile memory unit. In another implementation, the memory 620 is a non- volatile memory unit.
[0101] The storage device 630 is capable of providing mass storage for the system 600. In one implementation, the storage device 630 is a computer-readable medium. In various different implementations, the storage device 630 can include, for example, a hard disk device, an optical disk device, a storage device that is shared over a network by multiple computing devices (e.g., a cloud storage device), or some other large capacity storage device.Attorney Docket No. 56113-0770WO1
[0102] The input / output device 640 provides input / output operations for the system 600. In one implementation, the input / output device 640 can include one or more of a network interface devices, e.g., an Ethernet card, a serial communication device, e.g., and RS-232 port, and / or a wireless interface device, e.g., and 802.11 card. In another implementation, the input / output device can include driver devices configured to receive input data and send output data to other devices, e.g., keyboard, printer, display, and other peripheral devices 660. Other implementations, however, can also be used, such as mobile computing devices, mobile communication devices, set-top box television client devices, etc.
[0103] Although an example processing system has been described in FIG. 6, implementations of the subject matter and the functional operations described in this specification can be implemented in other types of digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
[0104] An electronic document (which for brevity will simply be referred to as a document) does not necessarily correspond to a file. A document may be stored in a portion of a file that holds other documents, in a single file dedicated to the document in question, or in multiple coordinated files.
[0105] For situations in which the systems discussed here collect and / or use personal information about users, the users may be provided with an opportunity to enable / disable or control programs or features that may collect and / or use personal information (e.g., information about a user’s social network, social actions or activities, a user’s preferences, or a user’s current location). In addition, certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information associated with the user is removed. For example, a user’s identity may be anonymized so that the no personally identifiable information can be determined for the user, or a user’s geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined.
[0106] Embodiments of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subjectAttorney Docket No. 56113-0770WO1 matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on computer storage medium for execution by, or to control the operation of, data processing apparatus. Alternatively, or in addition, the program instructions can be encoded on an artificially- generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. A computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Moreover, while a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially-generated propagated signal. The computer storage medium can also be, or be included in, one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices).
[0107] The operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.
[0108] The term “data processing apparatus” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations, of the foregoing. The apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
[0109] This document refers to a service apparatus. As used herein, a service apparatus is one or more data processing apparatus that perform operations to facilitate the distribution of content over a network. The service apparatus is depicted as a single block in block diagrams.Attorney Docket No. 56113-0770WO1 However, while the service apparatus could be a single device or single set of devices, this disclosure contemplates that the service apparatus could also be a group of devices, or even multiple different systems that communicate in order to provide various content to client devices. For example, the service apparatus could encompass one or more of a search system, a video streaming service, an audio streaming service, an email service, a navigation service, an advertising service, a gaming service, or any other service.
[0110] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
[0111] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
[0112] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, aAttorney Docket No. 56113-0770WO1 computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
[0113] To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user’s client device in response to requests received from the web browser.
[0114] Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front- end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter- network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).Attorney Docket No. 56113-0770WO1
[0115] The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, a server transmits data (e.g., an HTML page) to a client device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the client device). Data generated at the client device (e.g., a result of the user interaction) can be received from the client device at the server.
[0116] While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
[0117] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
[0118] Thus, particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particularAttorney Docket No. 56113-0770WO1 order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.
[0119] What is claimed is:
Claims
Attorney Docket No. 56113-0770WO1 CLAIMS 1. A method, comprising: receiving a set of sketches from a set of data owners, each sketch representing a sampling of items in a dataset and comprising a set of registers that store values representing a number of leading zeros; determining a minimum register value for the sketches based on differential privacy parameters; merging the sketches to generate a merged sketch, the merging comprising storing the minimum register value in each register of the merged sketch that has a value that is less than the minimum register value; estimating a number of unique items represented by the merged sketch, the estimating comprising adding noise to the estimated number of unique entities; and providing data indicating the estimated number of unique entities to a recipient.
2. The method of claim 1, wherein each sketch is a HyperLogLog sketch.
3. The method of claim 1 or 2, wherein the differential privacy parameters comprise epsilon (ε) and delta (δ).
4. The method of any preceding claim, wherein merging the sketches comprises merging the sketches with an additional sketch having a set of registers set to the minimum register value.
5. The method of any preceding claim, comprising: determining, based on the differential privacy parameters, sketch size comprising a number of registers for each sketch in the set of sketches; and sending, to each data owner, data indicating the sketch size, wherein each sketch in the set of sketches has the number of registers.
6. The method of any preceding claim, comprising: determining a salt; andAttorney Docket No. 56113-0770WO1 sending the salt to each data owner, wherein each sketch is populated with values by applying a first hash function to each of a plurality of identifiers to generate a plurality of hash values and applying a second hash function of a HyperLogLog algorithm to the plurality of hash values.
7. The method of claim 6, wherein determining the salt comprises determining the salt randomly or pseudorandomly.
8. The method of claim 6 or 7, wherein sending the salt to each data owner comprises sending the salt to each data owner after each data owner has obtained a dataset from which the sketch of the data owner is generated.
9. The method of any one of claims 1 to 5, wherein receiving the set of sketches from the set of data owners comprises received the set of sketches from one or more third party devices that generate the set of sketches for the data owners.
10. The method of claim 9, comprising: determining a salt; and sending the salt to each third party device, wherein each sketch is populated with values by applying a first hash function to each of a plurality of identifiers to generate a plurality of hash values and applying a second hash function of a HyperLogLog algorithm to the plurality of hash values.
11. The method of any preceding claim, wherein adding noise to the estimated number of unique entities comprises: determining a harmonic mean (Z) of the register values of the merged sketch; determining a reciprocal of the harmonic mean (Z); and adding noise to the reciprocal of the harmonic mean (Z).Attorney Docket No. 56113-0770WO1 12. The method of any preceding claim, wherein adding noise to the estimated number of unique entities comprises adding noise using differential privacy parameter epsilon (ε) and a Laplace mechanism or a Gaussian mechanism.
13. The method of claim 12, wherein adding noise using differential privacy parameter epsilon (ε) and a Laplace mechanism or a Gaussian mechanism comprises adding noise based further on differential privacy parameter delta (δ).
14. A method, comprising: providing, to a third party device of a third party, a salt; receiving, from the third party device, a plurality of sketches, each sketch representing a sampling of items in a dataset and comprising a set of registers that store values representing a number of leading zeros, wherein each sketch is populated with values by applying a first hash function to each of a plurality of identifiers to generate a plurality of hash values and applying a second hash function of a HyperLogLog algorithm to the plurality of hash values; merging the sketches to generate a merged sketch; estimating a number of unique items represented by the merged sketch, the estimating comprising adding noise to the estimated number of unique entities; and providing data indicating the estimated number of unique entities to a recipient.
15. The method of claim 14, further comprising receiving, from the third party device, an indication that datasets of a plurality of data owners have been received by the third party, wherein the salt is provided in response to receiving the indication.
16. A method, comprising: receiving a set of sketches from a set of data owners, each sketch representing a sampling of items in a dataset and comprising a set of registers that store values representing a number of leading zeros; merging the sketches to generate a merged sketch comprising a set of registers that store register values;Attorney Docket No. 56113-0770WO1 estimating a number of unique items represented by the merged sketch, the estimating comprising: determining a harmonic mean (Z) of the register values of the merged sketch; determining a reciprocal of the harmonic mean (Z); determining a noised harmonic mean by adding noise to the reciprocal of the harmonic mean (Z) to generate a noised result and determining the reciprocal of the noised result; and determining the estimated number of unique items based on the noised harmonic mean; and providing data indicating the estimated number of unique entities to a recipient.
17. A system comprising: one or more processors; and one or more storage devices storing instructions that, when executed by the one or more processors, cause the one or more processors to carry out the method of any preceding claim.
18. A computer readable storage medium carrying instructions that, when executed by one or more processors, cause the one or more processors to carry out the method of any one of claims 1 to 16.
19. A computer program product comprising instructions which, when executed by one or more computers, cause the one or more computers to carry out the steps of the method of any of claims 1 to 16.