IP Library Granted Patent US 12,463,947
Granted Patent B1
US 12,463,947 · App. 18/333,482 · Granted Nov 4, 2025

Privacy preserving protocol for serving user-specific supplemental content

Inventors: Eric Crockett (Redmond, WA); Gang Wang (Frederick, MD); Joan Feigenbaum (New York, NY)
Assignee: Amazon Technologies, Inc.
H04L63/0428G06F21/6254G06F21/6263
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,463,947
App. No.
18/333,482
Granted
Nov 4, 2025
Kind
B1
Abstract

Embodiments of a privacy preserving supplemental content server (PPSCS) implements a privacy preserving protocol with a content server that requests the PPSCS to serve supplemental content for users. In embodiments, a user-to-segment map (USM) containing user-private information is split into secret shares and stored separately at the PPSCS and the content server. When servicing a request, the USM data is used to identify a key segment of a user, which is in turn used to select a supplemental content for the user. Advantageously, the selection process is performed according to the privacy preserving protocol, which guarantees that (a) the content server does not learn any user-private information about the user in the USM, (b) the PPSCS learns at most one user segment of the user (e.g. the key segment), and (c) the PPSCS cannot track the user over time using any user-private information about the user learned during the execution.

Claims (68)

1 . A system, comprising:

one or more processors with associated memory that implement a privacy preserving supplemental content server (PPSCS), configured to:

serve supplemental content to a plurality of users when the users consume content published by a content server, wherein the supplemental content are selected based at least in part on user-private information about the users;

store a first secret share of a user-to-segment map (USM), wherein the USM contains the user-private information about the users, wherein the first secret share does not reveal the user-private information, and wherein a second secret share of the USM is stored at the content server;

receive a request from the content server to serve supplemental content to a user, wherein the request indicates a request context determined by the content server;

execute one side of a privacy preserving protocol with the content server to perform a lookup of user segment data of the user in the USM based at least in part on the request context, wherein the privacy preserving protocol guarantees that:

(a) the content server does not learn any user-private information about the user in the USM,

(b) the PPSCS learns at most one user segment of the user, and

(c) the PPSCS cannot track the user over multiple requests from the content server using any user-private information about the user in the USM learned during the execution;

select the supplemental content for the request based at least in part on results of the lookup; and

send the supplemental content in a response according to the request, wherein the response does not reveal the supplemental content to the content server.

2 . The system of claim 1 , wherein the PPSCS is configured to:

cluster user segments of the users into multiple segment clusters;

determine cluster utility values for individual ones of the segment clusters based at least in part on the request context;

during the privacy preserving protocol, perform part of a two-party computation (2PC) with the content server to (a) select a key segment of the user from an optimal segment cluster determined using the cluster utility values, or (b) determine that no satisfactory key segment is found for the user in the segment clusters; and

select (a) a supplemental content specific to the user using the key segment of the user when the key segment is found, or (b) a supplemental content not specific to the user when no satisfactory key segment is found.

3 . The system of claim 2 , wherein to perform the 2PC, the PPSCS evaluates a garbled circuit generated by the content server.

4 . The system of claim 1 , wherein to execute the privacy preserving protocol, the PPSCS is configured to:

execute a part of a randomized oblivious secret share extraction (ROSSE) protocol with the content server, wherein the execution of the ROSSE protocol (a) generates fresh secret shares for one or more entries in the USM associated with the user in the USM, and (b) causes the content server and the PPSCS to learn the fresh secret shares but nothing else in the USM.

5 . The system of claim 1 , wherein the first secret share of the USM is implemented as a Cuckoo hash table.

6 . The system of claim 1 , wherein the PPSCS is implemented using compute resources provisioned in a multitenant infrastructure service provider network.

7 . A method, comprising:

performing, by a privacy preserving supplemental content server (PPSCS) implemented by one or more processors with associated memory:

storing a first secret share of a user-to-segment map (USM), wherein the USM contains user-private information used to select supplemental content for users consuming content at a content server, wherein the first secret share does not reveal the user-private information, and wherein a second secret share of the USM is stored at the content server;

receiving a request from the content server to serve supplemental content to a user, wherein the request indicates a request context determined by the content server;

executing one side of a privacy preserving protocol with the content server to perform a lookup of user segment data of the user in the USM based at least in part on the request context, wherein the privacy preserving protocol guarantees that:

(a) the content server does not learn any user-private information about the user in the USM,

(b) the PPSCS learns at most one user segment of the user, and

(c) the PPSCS cannot track the user over multiple requests from the content server using any user-private information about the user in the USM learned during the execution;

selecting the supplemental content for the request based at least in part on results of the lookup; and

sending the supplemental context in a response according to the request, wherein the response does not reveal the supplemental content to the content server.

8 . The method of claim 7 , further comprising the PPSCS:

clustering user segments of the users into multiple segment clusters;

determining cluster utility values for individual ones of the segment clusters based at least in part on the request context;

during the privacy preserving protocol, performing part of a two-party computation (2PC) with the content server to (a) select a key segment of the user from an optimal segment cluster determined using the cluster utility values, or (b) determine that no satisfactory key segment is found for the user in the segment clusters; and

selecting (a) a supplemental contest specific to the user using the key segment of the user when the key segment is found, or (b) a supplemental content not specific to the user when no satisfactory key segment is found.

9 . The method of claim 8 , further comprising the PPSCS:

encoding respective centroids of the segment clusters as cluster feature vectors;

encoding the request context is as a context feature vector; and

wherein a cluster utility value is determined as a dot product of the context feature vector and a cluster feature vector.

10 . The method of claim 8 , wherein performing the 2PC comprises evaluating a garbled circuit generated by the content server.

11 . The method of claim 8 , wherein executing the privacy preserving protocol comprises the PPSCS performing parts of two or more 2PCs with the content server.

12 . The method of claim 7 , wherein executing the privacy preserving protocol comprises the PPSCS:

executing a part of a randomized oblivious secret share extraction (ROSSE) protocol with the content server, wherein the execution of the ROSSE protocol (a) generates fresh secret shares for one or more entries in the USM associated with the user in the USM, and (b) causes the content server and the PPSCS to learn respective ones of the fresh secret shares but nothing else in the USM.

13 . The method of claim 12 , wherein execution of the ROSSE protocol comprises the PPSCS executing part of an oblivious transfer protocol with the content server.

14 . The method of claim 7 , wherein executing the privacy preserving protocol comprises the PPSCS executing a part of a Beaver Triples protocol with the content server to compute one or more dot products of vectors or matrices.

15 . The method of claim 7 , wherein the first secret share of the USM is implemented as a Cuckoo hash table.

16 . The method of claim 8 , wherein an entry in the first secret share of the USM corresponds to an individual user, and the entry includes a cluster membership bit vector of the individual user whose bits indicate whether the individual segment clusters contain a user segment associated with the individual user.

17 . The method of claim 16 , wherein:

the PPSCS receives a random bit vector generated by the content server, wherein the random bit vector is of a same length as the cluster membership bit vector and contains random bit values; and

the optimal segment cluster is determined based at least in part on an AND operation performed on the cluster membership bit vector and the random bit vector.

18 . The method of claim 7 , wherein:

the USM is constructed by an advertiser distinct from a publisher that operates the content server; and

the PPSCS is part of an ad delivery service operated by a service operator distinct from the advertiser and the publisher.

19 . One or more non-transitory computer-accessible storage media storing program instructions that when executed on one or more processors of a privacy preserving supplemental content server (PPSCS), cause the PPSCS to:

store a first secret share of a user-to-segment map (USM), wherein the USM contains user-private information used to select supplemental content for users consuming content at a content server, wherein the first secret share does not reveal the user-private information, and wherein a second secret share of the USM is stored at the content server;

receive a request from the content server to serve supplemental content to a user, wherein the request indicates a request context determined by the content server;

execute one side of a privacy preserving protocol with the content server to perform a lookup of user segment data of the user in the USM based at least in part on the request context, wherein the privacy preserving protocol guarantees that:

(a) the content server does not learn any user-private information about the user in the USM,

(b) the PPSCS learns at most one user segment of the user, and

(c) the PPSCS cannot track the user over multiple requests from the content server using any user-private information about the user in the USM learned during the execution;

select the supplemental content for the request based at least in part on results of the lookup; and

send the supplemental content in a response according to the request, wherein the response does not reveal the supplemental content to the content server.

20 . The non-transitory computer-accessible storage media of claim 19 , wherein the program instructions when executed on the one or more processors cause the PPSCS to:

cluster user segments of the users into multiple segment clusters;

determine cluster utility values for individual ones of the segment clusters based at least in part on the request context;

during the privacy preserving protocol, perform part of a two-party computation (2PC) with the content server to (a) select a key segment of the user from an optimal segment cluster determined using the cluster utility values, or (b) determine that no satisfactory key segment is found for the user in the segment clusters; and

select (a) a supplemental content specific to the user using the key segment of the user when the key segment is found, or (b) a supplemental content not specific to the user when no satisfactory key segment is found.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2023
From: CROCKETT, ERIC; WANG, GANG; FEIGENBAUM, JOAN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 064263/0790 →
References Cited (17)
US 9077539B2 · Kamara · 2015 [cited by applicant]
US 10237246B1 · Mulayin · 2019 [cited by examiner]
US 10423806B2 · Cerezo Sanchez · 2019 [cited by applicant]
US 20120215793A1 · Arsenault · 2012 [cited by examiner]
US 20180254893A1 · Saxena · 2018 [cited by examiner]
US 20210133291A1 · Shapiro · 2021 [cited by examiner]
US 20210173854A1 · Wilshinsky · 2021 [cited by examiner]
US 20230214410A1 · Wilshinsky · 2023 [cited by examiner]
US 20230318809A1 · Fox-Epstein · 2023 [cited by examiner]
Giovanni Di Crescenzo, Tal Malkin, and Rafail Ostrovsky. “Single Database Private Information Retrieval Implies Oblivious Transfer”. In: International Conference on the Theory and Application of Cryptographic Techniques… [cited by applicant]
Vladimir Kolesnikov et al. Efficient Batched Oblivious PRF with Applications to Private Set Intersection. Cryptology ePrint Archive, Paper 2016/799. https://eprint.iacr.org/2016/799. 2016. doi: 10.1145/2976749. 2978381.… [cited by applicant]
Samir Jordan Menon and David J. Wu. Spiral: Fast, High-Rate Single-Server PIR via FHE Composition. Cryptology ePrint Archive, Paper 2022/368. https://eprint.iacr.org/2022/368. 2022. url: https://eprint. iacr.org/2022/36… [cited by applicant]
Payman Mohassel and Yupeng Zhang. SecureML: A System for Scalable Privacy-Preserving Machine Learning. Cryptology ePrint Archive, Paper 2017/396. https://eprint.iacr.org/2017/396. 2017. url: https ://eprint.iacr.org/201… [cited by applicant]
Deevashwer Rathee, Thomas Schneider, and K. K. Shukla. Improved Multiplication Triple Generation over Rings via RLWE-based AHE. Cryptology ePrint Archive, Paper 2019/577. https://eprint.iacr.org/2019/577. 2019. doi: 10.… [cited by applicant]
[HbT'23] Headerbidding Team, “What Is A SafeFrame and How Does It Help Publishers?,” https://headerbidding.co/safeframe-for-publishers/. [cited by applicant]
[HK'23] Florian Hartmann and Peter Kairouz, “Distributed differential privacy for federated learning,” Google Research blog, https://ai.googleblog.com/2023/03/distributed-differential-privacy-for.html. [cited by applicant]
[PSSW'09] Benny Pinkas, Thomas Schneider, Nigel P. Smart, and Stephen C. Williams, “Secure Two-Party Computation is Practical,” https://eprint.iacr.org/2009/314.pdf. [cited by applicant]