US 11,968,236 B2
Event-level data privacy for streaming post analytics data
Ryan M. Rogers, Los Gatos, CA (US); Subbu Subramaniam, Sunnyvale, CA (US); Mark B. Cesar, Oakland, CA (US); Adrian Rivera Cardoso, San Francisco, CA (US); Yu Chen, San Jose, CA (US); Jefferson Lai, Seattle, WA (US); Vinyas Maddi, San Jose, CA (US); Lin Xu, Fremont, CA (US); Gavin Castro Uathavikul, Sausalito, CA (US); Neha Jain, San Jose, CA (US); Shraddha Sahay, Newark, CA (US); Parvez Ahammad, San Jose, CA (US); and Rahul Tandra, Santa Clara, CA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Mar. 30, 2022, as Appl. No. 17/709,318.
Prior Publication US 2023/0319110 A1, Oct. 5, 2023
Int. Cl. H04L 9/40 (2022.01)
CPC H04L 63/20 (2013.01) 15 Claims
OG exemplary drawing
 
1. A method comprising:
receiving a data stream comprising instances of count data collected over a time interval;
an instance of the count data represents an occurrence of a user interface interaction with a post;
the post is associated with an account in an online system;
using the count data, computing a true count breakdown comprising a set of sub-counts of non-public user interface interactions on the post;
wherein at least one of the sub-counts is a count associated with a particular value of an attribute that has a plurality of different possible values and the attribute is associated with the non-public user interface interactions on the post;
creating a noisy count breakdown by applying at least one differential privacy mechanism to the set of sub-counts;
wherein applying the at least one differential privacy mechanism to the set of sub-counts comprises:
creating a simulation of a binary table for each value of the plurality of different possible values of the attribute;
using the simulations of the binary tables, determining amounts of noise to be added to the set of sub-counts;
selecting, from the set of sub-counts, a set of top k true sub-counts;
k is a positive integer less than a total number of possible values of the attribute;
determining a set of noisy top k sub-counts by adding the amounts of noise to each true sub-count of the set of top k true sub-counts;
selecting, from the set of noisy top k sub-counts, at least one noisy sub-count that is greater than a threshold; and
including the selected at least one noisy sub-count in the noisy count breakdown; and
streaming the noisy count breakdown instead of the true count breakdown to a computing device associated with the account.