Skip to content
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

Reach value is not multiple of the reciprocal of vidSamplingRate #808

Closed
riemanli opened this issue Jan 11, 2023 · 0 comments · Fixed by #814
Closed

Reach value is not multiple of the reciprocal of vidSamplingRate #808

riemanli opened this issue Jan 11, 2023 · 0 comments · Fixed by #814
Assignees
Labels
bug Something isn't working triaged Has been triaged by Halo eng

Comments

@riemanli
Copy link
Member

riemanli commented Jan 11, 2023

Describe the bug
A differential private reach value is calculated by

reach_dp = (reach + noise) / sampling_rate

Since the noise used in the system is discrete Laplace and so is integer, the differential private reach values outputted from the measurement system should always be multiple of the reciprocal of the sampling rate. However, based on the reach values gotten from the measurement system, it's not for both direct measurements and multi-publisher measurements.

Steps to reproduce

  1. Use the MeasurementSystem tool to submit create measurement request for reach with either single publisher or multi-publisher and argument --vid-sampling-width == 0.01. Ex:
bazel-bin/src/main/kotlin/org/wfanet/measurement/api/v2alpha/tools/MeasurementSystem \
--tls-cert-file=src/main/k8s/testing/secretfiles/mc_tls.pem \
--tls-key-file=src/main/k8s/testing/secretfiles/mc_tls.key \
--cert-collection-file=src/main/k8s/testing/secretfiles/kingdom_root.pem \
--kingdom-public-api-target=v2alpha.kingdom.dev.halo-cmm.org:8443 \
measurements \
--api-key=<API_KEY> \
create \
--measurement-consumer=measurementConsumers/VCTqwV_vFXw \
--reach-and-frequency \
--reach-privacy-epsilon=0.0041 \
--reach-privacy-delta=0.000000000001 \
--frequency-privacy-epsilon=0.0001 \
--frequency-privacy-delta=0.000000000001 \
--reach-max-frequency=1 \
--vid-sampling-start=0.0 \
--vid-sampling-width=0.01 \
--private-key-der-file=src/main/k8s/testing/secretfiles/mc_cs_private.der \
--measurement-ref-id=502 \
--data-provider=dataProviders/FeQ5FqAQ5_0 \
--event-group=dataProviders/FeQ5FqAQ5_0/eventGroups/YSMZ7X_D5Iw \
--event-start-time=2021-03-05T00:00:00.01Z \
--event-end-time=2021-03-05T23:59:59.99Z
  1. Check if the reach value is multiple of 100.

Component(s) affected
Kingdom, testing simulators

Version
6184fb9

Environment
QA env

Additional context
We can confirm the direct measurement is not computed correctly as shown in EdpSimulator.kt#L835. Further investigation is needed for the multi-publisher case.

@riemanli riemanli added the bug Something isn't working label Jan 11, 2023
@iverson52000 iverson52000 self-assigned this Jan 12, 2023
@duliomatos1 duliomatos1 added the triaged Has been triaged by Halo eng label Jan 18, 2023
iverson52000 added a commit that referenced this issue Jan 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working triaged Has been triaged by Halo eng
Projects
None yet
3 participants