Privacy preserving group-based content distribution
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium for displaying digital components on client devices based on predicted user attributes of users are described. In one aspect, a method includes updating, at a client device of a user, a list of user group identifiers for the user to include a particular user group identifier that identifies a particular user group. A determination is made, for each user attribute of multiple user attributes, a score based on a quantity of user groups identified in the list of group identifiers for the user that include, as a membership attribute, the user attribute. A digital component request including data representing the list of user-group identifiers is sent to a content distribution system. Digital component data identifying a set of digital components selected based on the data of the digital component request is received.
1 . A computer-implemented method, comprising:
accessing, at a client device of a user, a list of user group identifiers that identify user groups that include the user as a member, wherein each user group has corresponding membership attributes that have to be matched by user attributes of users for the users to be included as members in the user group, wherein each user group includes a plurality of members, and wherein the membership attributes of each user group include at least one of (i) user characteristics or (ii) a topic of interest, and wherein the membership attributes of at least one user group includes both a user characteristic and a topic of interest;
assigning the user to a particular user group based on a prediction of user attributes of the user, wherein the predicted user attributes of the user are predicted based on content being accessed by the user or interaction by the user with the accessed content, and wherein the user is assigned to the particular user group based on the predicted user attributes of the user matching the membership attributes of the particular user group;
updating, at the client device of the user, the list of user group identifiers for the user to include a particular user group identifier that identifies the particular user group, wherein the list of user group identifiers includes at least one user group identifier for a user group to which the user was assigned by two or more content providers;
for each user attribute of a plurality of user attributes, determining, by the client device, a number of user groups identified in the list of group identifiers for the user that include the respective user attribute as a membership attribute;
determining, by the client device and for each user attribute of the plurality of user attributes, a respective score for the user attribute based on the determined number for the user attribute;
sending, by the client device and to a content distribution system, a digital component request comprising data representing the list of user-group identifiers;
receiving, by the client device and from the content distribution system, digital component data identifying a set of digital components selected based on the data of the digital component request;
selecting, by the client device based on the data identifying the set of digital components and the score for each user attribute, one or more of the digital components; and
displaying, by the client device, the one or more digital components.
2 . The computer-implemented method of claim 1 , wherein the membership attributes of each user group comprises a combination of (i) a hash value computed based on a selected portion of the set of one or more user attributes of the user group and the one or more topics of the user group, and (ii) remaining user attributes and topics in the set of one or more user attributes of the user group and the one or more topics of the user group that were not used to compute the hash value.
3 . The computer-implemented method of claim 1 , wherein determining the score for each user attribute comprises determining the score for each user attribute based on respective weights assigned to the user attributes, wherein the respective weight of a user attribute indicates a priority of the user attribute with respect to other user attributes.
4 . The computer-implemented method of claim 1 , wherein selecting one or more of the digital components based on the data identifying the set of digital components comprises:
adjusting a selection value for each digital component in the set of digital components based on the score for each user attribute of the set of one or more user attributes for the user group, wherein the selection value for each digital component is an amount that a provider of the digital component is willing to provide to a resource publisher in response to the digital component being presented with a resource of the resource publisher; and
selecting the one or more digital components based on the adjusted selection value for each digital component in the set of digital components.
5 . The computer-implemented method of claim 4 , wherein adjusting the selection value for each digital component in the set of digital components comprises increasing the selection value of a given digital component based on the set of one or more user attributes including a particular user attribute having a score that exceeds the scores of other user attributes.
6 . The computer-implemented method of claim 4 , wherein adjusting the selection value for each digital component in the set of digital components comprises decreasing the selection value of a particular digital component based on the set of one or more user attributes including a particular user attribute having a score is less than the scores of other user attributes.
7 . The computer-implemented method of claim 1 , wherein selecting, based on the data identifying the set of digital components and the score for each user attribute, one or more of the digital components comprises selecting the one or more digital components from a combination of the set of digital components and an additional set of digital components selected based on contextual signals related to an electronic resource with which the one or more digital components are displayed.
8 . The computer-implemented method of claim 7 , wherein the data of the digital component request comprises the contextual signals.
9 . The computer-implemented method of claim 1 , wherein:
the content distribution system comprises a multi-party computation (MPC) server;
the data representing the list of user-group identifiers comprises a secret share of the list; and
selecting, based on the data identifying the set of digital components and the score for each user attribute, one or more of the digital components comprises the MPC server collaborating with one or more other MPC servers to select the one or more digital components based on the secret share of the list.
10 . The computer-implemented method of claim 1 , wherein selecting one or more of the digital components based on the data identifying the set of digital components comprises:
adjusting a selection value for each digital component in the set of digital components based on the score for each user attribute of the set of one or more user attributes for the user group, wherein the selection value for each digital component is an amount that a provider of the digital component is willing to provide to a resource publisher in response to the digital component being presented with a resource of the publisher, wherein adjusting the value of a particular digital component comprises:
determining that the particular digital component comprises distribution criteria that the digital component is eligible for distribution to users having a particular attribute; and
adjusting the selection value for the particular digital component based on a magnitude of the score for the particular attribute; and
selecting the one or more digital components based on the adjusted selection value for each digital component in the set of digital components.
11 . The computer-implemented method of claim 1 , wherein assigning the user to a particular user group based on a prediction of user attributes of the user comprises receiving, from a content provider, a request to add the user to the particular user group.
12 . A client device comprising:
a memory device; and
one or more processors configured to interact with the memory device and configured to perform operations, including:
accessing, at the client device of a user, a list of user group identifiers that identify user groups that include the user as a member, wherein each user group has corresponding membership attributes that have to be matched by user attributes of users for the users to be included as members in the user group, wherein each user group includes a plurality of members, and wherein the membership attributes of each user group include at least one of (i) user characteristics or (ii) a topic of interest, and wherein the membership attributes of at least one user group includes both a user characteristic and a topic of interest;
assigning the user to a particular user group based on a prediction of user attributes of the user, wherein the predicted user attributes of the user are predicted based on content being accessed by the user or interaction by the user with the accessed content, and wherein the user is assigned to the particular user group based on the predicted user attributes of the user matching the membership attributes of the particular user group;
updating, at the client device of the user, the list of user group identifiers for the user to include a particular user group identifier that identifies the particular user group, wherein the list of user group identifiers includes at least one user group identifier for a user group to which the user was assigned by two or more content providers;
for each user attribute of a plurality of user attributes, determining, by the client device, a number of user groups identified in the list of group identifiers for the user that include the respective user attribute as a membership attribute;
determining, by the client device and for each user attribute of the plurality of user attributes, a respective score for the user attribute based on the determined number for the user attribute;
sending, by the client device and to a content distribution system, a digital component request comprising data representing the list of user-group identifiers;
receiving, by the client device and from the content distribution system, digital component data identifying a set of digital components selected based on the data of the digital component request;
selecting, by the client device based on the data identifying the set of digital components and the score for each user attribute, one or more of the digital components; and
displaying, by the client device, the one or more digital components.
13 . A system of claim 12 , wherein the membership attributes of each user group comprises a combination of (i) a hash value computed based on a selected portion of the set of one or more user attributes of the user group and the one or more topics of the user group, and (ii) remaining user attributes and topics in the set of one or more user attributes of the user group and the one or more topics of the user group that were not used to compute the hash value.
14 . The system of claim 12 , wherein determining the score for each user attribute comprises determining the score for each user attribute based on respective weights assigned to the user attributes, wherein the respective weight of a user attribute indicates a priority of the user attribute with respect to other user attributes.
15 . The system of claim 12 , wherein selecting one or more of the digital components based on the data identifying the set of digital components comprises adjusting a selection value for each digital component in the set of digital components based on the score for each user attribute of the set of one or more user attributes for the user group.
16 . The system of claim 15 , wherein adjusting the selection value for each digital component in the set of digital components comprises increasing the selection value of a given digital component based on the set of one or more user attributes including a particular user attribute having a score that exceeds the scores of other user attributes.
17 . The system of claim 15 , wherein adjusting the selection value for each digital component in the set of digital components comprises decreasing the selection value of a particular digital component based on the set of one or more user attributes including a particular user attribute having a score is less than the scores of other user attributes.
18 . The system of claim 12 , wherein selecting, based on the data identifying the set of digital components and the score for each user attribute, one or more of the digital components comprises selecting the one or more digital components from a combination of the set of digital components and an additional set of digital components selected based on contextual signals related to an electronic resource with which the one or more digital components are displayed.
19 . The system of claim 18 , wherein the data of the digital component request comprises the contextual signals.
20 . A computer readable medium storing instructions that, when executed by one or more data processing apparatus of a client device, cause the one or more data processing apparatus to perform operations comprising:
accessing, at the client device of a user, a list of user group identifiers that identify user groups that include the user as a member, wherein each user group has corresponding membership attributes that have to be matched by user attributes of users for the users to be included as members in the user group, wherein each user group includes a plurality of members, and wherein the membership attributes of each user group include at least one of (i) user characteristics or (ii) a topic of interest, and wherein the membership attributes of at least one user group includes both a user characteristic and a topic of interest;
assigning the user to a particular user group based on a prediction of user attributes of the user, wherein the predicted user attributes of the user are predicted based on content being accessed by the user or interaction by the user with the accessed content, and wherein the user is assigned to the particular user group based on the predicted user attributes of the user matching the membership attributes of the particular user group;
updating, at the client device of the user, the list of user group identifiers for the user to include a particular user group identifier that identifies the particular user group, wherein the list of user group identifiers includes at least one user group identifier for a user group to which the user was assigned by two or more content providers;
for each user attribute of a plurality of user attributes, determining, by the client device, a number of user groups identified in the list of group identifiers for the user that include the respective user attribute as a membership attribute;
determining, by the client device and for each user attribute of the plurality of user attributes, a respective score for the user attribute based on the determined number for the user attribute;
sending, by the client device and to a content distribution system, a digital component request comprising data representing the list of user-group identifiers;
receiving, by the client device and from the content distribution system, digital component data identifying a set of digital components selected based on the data of the digital component request;
selecting, by the client device based on the data identifying the set of digital components and the score for each user attribute, one or more of the digital components; and
displaying, by the client device, the one or more digital components.
21 . The computer readable medium of claim 20 , wherein the membership attributes of each user group comprises a combination of (i) a hash value computed based on a selected portion of the set of one or more user attributes of the user group and the one or more topics of the user group, and (ii) remaining user attributes and topics in the set of one or more user attributes of the user group and the one or more topics of the user group that were not used to compute the hash value.