-
Notifications
You must be signed in to change notification settings - Fork 49
[RFC] Safety limits #309
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
[RFC] Safety limits #309
Conversation
This adds the checks that need to happen on user action context, following Alg 2 of BigBird; not that it follows the latest version which has conversion check moved within the for loop over epochs.
in Algo 2 in Big Bird, safety limit deductions occur if and only if privacy budget also happens. Thus going to put the safety limits into the deduct privacy budget function (renamed as deduct privacy and safety budgets).
|
|
||
| 1. If |singleEpoch| is true: | ||
| 1. Let |l1Norm| be the sum of the [=list/items=] in |histogram|. | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
need to add quota checks to the singleEpoch case still
|
User actions quota counts -- for the spec I think we should stick closely to the paper on the safety limit quotas themselves, but for the user action quota counts I think we could do a simplification. The paper partitions the quota counts for a single user action by impression and conversion quotas with conversion quotas further partitioned by epoch. I think it would be simpler to just have one single quota count per user action. If we think that is okay for now I can simplify this PR a bit. Let me know if you have any thoughts on this @apasel422 @mt @csharrison @andyleiserson. |
This comment was marked as spam.
This comment was marked as spam.
| <p class=note>Typical values might be: | ||
| TODO |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In #174, I've added a section for implementation-defined limits. I think you could add to that section for these. In particular, you want to set these as multiples of the per-site epsilon budget, so you could set minimum values for them.
| <p class=issue>TODO: Define how to clear [=safety limits=] stores: | ||
| [=global privacy budget store=], [=impression site quota store=], | ||
| [=conversion site quota store=], and [=user action context store=]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Open an issue to track this one, I think.
| limiting its ability to rapidly deplete the [=global privacy budget=]. | ||
|
|
||
|
|
||
| ### User Action Context Store ### {#s-user-action-context-store} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's drop this store and switch to a global boolean flag attached to the window. That is set when the API is successfully invoked. And the API can be invoked if either a) the flag is set or b) transient activation is consumed.
|
Notes from meeting:
Follow ups:
|
Creating a PR to add safety limits to the Attribution spec. This is based primarily on the BigBird algorithm from Section 4 of this paper https://arxiv.org/pdf/2506.05290. Algorithm 2 is the main algorithm that encompass both budget deduction and safety limit deduction.
This PR is still WIP but ready for some initial review.
Intended to address this open issue #237
Preview | Diff