KR20220107035A - 개인정보 보호를 위한 가산 및 차감 노이즈 - Google Patents

개인정보 보호를 위한 가산 및 차감 노이즈 Download PDF

Info

Publication number
KR20220107035A
KR20220107035A KR1020227022122A KR20227022122A KR20220107035A KR 20220107035 A KR20220107035 A KR 20220107035A KR 1020227022122 A KR1020227022122 A KR 1020227022122A KR 20227022122 A KR20227022122 A KR 20227022122A KR 20220107035 A KR20220107035 A KR 20220107035A
Authority
KR
South Korea
Prior art keywords
user group
user
group identifiers
digital
digital components
Prior art date
Application number
KR1020227022122A
Other languages
English (en)
Inventor
강 왕
안드레스 무노즈 메디나
마르셀 엠. 모티 영
이젠 베이
아르디안 푸에르노모
징징 왕
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20220107035A publication Critical patent/KR20220107035A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/104Grouping of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 개시는 사용자의 개인정보(프라이버시)를 보호하기 위해 가산 및 감산 노이즈를 사용하는 것에 관한 것이다. 일 양태들에서, 방법은 사용자를 구성원으로 포함하는 사용자 그룹들을 식별하는 진짜 사용자 그룹 식별자들의 제1 세트를 획득하는 단계를 포함한다. 상기 제2 세트를 생성하기 위해 제1 세트에서 0개 이상의 진짜 사용자 그룹 식별자를 제거하고, 제2 세트에 사용자를 구성원으로 포함하지 않는 사용자 그룹에 대한 하나 이상의 가짜 사용자 그룹 식별자를 추가함으로써 사용자에 대한 사용자 그룹 식별자들의 제2 세트가 생성된다. 사용자 그룹 식별자들의 제2 세트를 기반으로 확률적 데이터 구조가 생성된다. 확률적 데이터 구조는 수신자 컴퓨팅 시스템으로 전송된다. 확률적 데이터 구조에 기초하여 선택된 적어도 하나의 디지털 컴포넌트를 포함하는 디지털 컴포넌트 세트를 나타내는 데이터가 수신된다. 소정의 디지털 컴포넌트가 제공된다.

Description

개인정보 보호를 위한 가산 및 차감 노이즈
본 명세서는 개인정보 보호를 위한 가산 및 차감 노이즈에 관한 것이다.
본 명세서는 일반적으로 사용자 경험을 개선하기 위해 사용자 데이터를 분석할 때 사용자의 개인정보를 보호하기 위해 데이터 처리 및 가산 및 감산 노이즈 사용에 관한 것이다.
차등 개인정보는 많은 개인정보 보호 노력을 뒷받침하며 많은 이론적 보장을 제공하기 때문에 최근 몇 년 동안 인기를 얻었다. 일반적으로 차등 개인정보는 데이터 세트 내에서 개인의 개인정보를 보호하면서 데이터 세트에 대한 유용한 정보를 공유하는 기술을 포함한다.
본 명세서는 사용자 경험을 개선하기 위해 사용자 데이터를 분석할 때 사용자 개인정보 보호와 관련된 기술을 설명한다. 일반적으로, 본 명세서에 기술된 주제의 하나의 혁신적인 양태는 사용자를 구성원으로 포함하는 사용자 그룹을 식별하는 진짜 사용자 그룹 식별자의 제1 세트를 획득하는 것을 포함하는 방법으로 구현될 수 있다. 진짜 사용자 그룹 식별자의 제1 세트에 기초하여, 사용자에 대한 사용자 그룹 식별자의 제2 세트가 생성된다. 생성하는 단계는 사용자 그룹 식별자의 제2 세트를 생성하기 위해 사용자 그룹 식별자의 제1 세트로부터 0개 이상의 진짜 사용자 그룹 식별자를 제거하는 단계를 포함한다. 사용자를 구성원으로 포함하지 않는 사용자 그룹에 대한 하나 이상의 가짜 사용자 그룹 식별자가 사용자 그룹 식별자들의 제2 세트에 추가된다. 사용자 그룹 식별자들의 제2 세트를 기반으로 확률적 데이터 구조가 생성된다. 확률적 데이터 구조는 수신자 컴퓨팅 시스템으로 전송된다. 확률적 데이터 구조에 기초하여 선택된 적어도 하나의 디지털 컴포넌트를 포함하는 디지털 컴포넌트 세트를 나타내는 데이터가 수신된다. 소정의 디지털 컴포넌트는 디지털 컴포넌트 세트에서 선택된다. 소정의 디지털 컴포넌트가 표시된다. 이 양태의 다른 구현은 컴퓨터 저장 장치에 인코딩된 방법의 양태를 수행하도록 구성된 대응하는 장치, 시스템 및 컴퓨터 프로그램을 포함한다.
이러한 구현 및 기타 구현은 각각 다음 기능 중 하나 이상을 선택적으로 포함할 수 있다. 일부 양태들에서, 사용자 그룹 식별자들의 제 1 세트로부터 0개 이상의 진짜 사용자 그룹 식별자들을 제거하는 것은 사용자 그룹 식별자들의 제 1 세트로부터 복수의 진짜 사용자 그룹 식별자들을 제거하는 것을 포함한다. 일부 양태들에서, 디지털 컴포넌트 세트는 확률적 데이터 구조에 기초하여 선택되지 않은 하나 이상의 추가 디지털 컴포넌트들을 포함한다.
일부 양태에서, 디지털 컴포넌트 세트로부터 소정의 디지털 컴포넌트를 선택하는 것은 상기 진짜 사용자 식별자 중 하나와 매칭하는 해당 사용자 그룹 식별자를 갖지 않는 하나 이상의 디지털 컴포넌트를 상기 디지털 컴포넌트 세트로부터 필터링함으로써 디지털 컴포넌트의 필터링된 서브세트를 생성하는 단계; 상기 디지털 컴포넌트의 필터링된 서브세트에서 상기 소정의 디지털 컴포넌트를 선택하는 단계를 포함할 수 있다.
일부 양태들에서, 상기 디지털 컴포넌트 세트로부터, 상기 진짜 사용자 그룹 식별자 중 하나와 매칭하는 해당 사용자 그룹 식별자를 갖지 않는 하나 이상의 디지털 컴포넌트를 필터링하는 단계는, 상기 디지털 컴포넌트 세트의 각 디지털 컴포넌트에 대해: 상기 디지털 컴포넌트 세트를 나타내는 데이터에서, 상기 디지털 컴포넌트에 대한 하나 이상의 해당 사용자 그룹 식별자를 식별하는 단계를 포함할 수 있고, 각각의 해당 사용자 식별자는 상기 디지털 컴포넌트 세트에 포함하기 위해 상기 디지털 컴포넌트를 선택하는 데 사용되는 사용자 그룹 식별자이다. 일부 양태들은 각각의 해당 사용자 식별자를 상기 사용자 그룹 식별자의 제1 세트 내의 진짜 사용자 그룹 식별자와 비교하는 단계; 상기 사용자 그룹 식별자의 제1 세트의 진짜 사용자 그룹 식별자 중 하나와 매칭하는 해당 사용자 그룹 식별자를 갖지 않는 각각의 디지털 컴포넌트를 상기 디지털 컴포넌트 세트로부터 제거하는 단계를 포함할 수 있다.
일부 양태들에서, 상기 디지털 컴포넌트 세트를 나타내는 데이터는 각각이 하나 이상의 해당 사용자 그룹 식별자를 갖는 제1 디지털 컴포넌트를 식별하는 데이터 및 임의의 해당 사용자 그룹 식별자를 갖지 않는 하나 이상의 제2 디지털 컴포넌트를 식별하는 데이터를 포함할 수 있다. 상기 디지털 컴포넌트 세트로부터 소정의 디지털 컴포넌트를 선택하는 단계는 상기 디지털 컴포넌트 세트로부터, 상기 제1 디지털 컴포넌트에 대한 해당 사용자 그룹 식별자 중 어느 것도 진짜 사용자 그룹 식별자와 매칭하지 않는 각각의 제1 디지털 컴포넌트를 제거하는 단계를 포함할 수 있다.
일부 양태들에서, 상기 디지털 컴포넌트 세트로부터 소정의 디지털 컴포넌트를 선택하는 단계는 상기 제1 디지털 컴포넌트 모두가 상기 디지털 컴포넌트 세트로부터 제거될 때 제2 디지털 컴포넌트를 선택하는 단계를 포함할 수 있다.
일부 양태들에서, 상기 수신자 컴퓨팅 시스템은 상기 확률적 데이터 구조에 기초하여 복수의 사용자 그룹으로부터 사용자 그룹의 서브세트를 선택하고 그리고 상기 사용자 그룹의 서브세트에 대응하는 디지털 컴포넌트 세트를 선택한다. 일부 양태들에서, 상기 확률적 데이터 구조는 블룸 필터(Bloom filter) 또는 쿠쿠 필터(cuckoo filter)를 포함할 수 있다.
일부 양태들에서, 상기 사용자 그룹 식별자의 제1 세트로부터 하나 이상의 진짜 사용자 그룹 식별자를 제거하는 단계는 상기 하나 이상의 진짜 사용자 그룹 식별자를 무작위로 또는 의사-무작위로 선택하는 단계를 포함하고; 그리고 상기 그룹 식별자의 제2 세트에 하나 이상의 가짜 사용자 그룹 식별자를 추가하는 단계는 하나 이상의 가짜 사용자 그룹 식별자를 무작위로 또는 의사 무작위로 선택하는 단계를 포함할 수 있다.
일부 양태들에서, 각각의 진짜 사용자 식별자는 (i) 상기 진짜 사용자 그룹 식별자에 의해 식별된 사용자 그룹을 생성한 엔티티의 도메인 및 (ii) 상기 진짜 사용자 그룹 식별자에 의해 식별되는 사용자 그룹에 대한 고유 식별자의 조합에 기초한다.
일부 양태들에서, 각각의 진짜 사용자 그룹 식별자는 상기 도메인과 상기 고유 식별자의 조합에 기초하여 생성된 메시지 인증 코드이다.
일부 양태들에서, 그룹 식별자의 제2 세트에 기초하여 확률적 데이터 구조를 생성하는 단계는, 모든 사용자 그룹 식별자에 걸쳐 균일한 분포로 각 사용자 그룹 식별자에 대한 해시된 출력을 생성하는 단계; 그리고 상기 그룹 식별자의 제2 세트에 있는 각 사용자 그룹 식별자의 해시된 출력을 포함하는 상기 확률적 데이터 구조를 생성하는 단계를 포함할 수 있다.
일반적으로 콘텐츠 플랫폼이 사용자의 그룹 구성원(멤버십) 데이터를 기반으로 디지털 컴포넌트 또는 기타 콘텐츠를 제공할 때 사용자 경험이 향상된다. 예를 들어, 사용자가 카테고리와 관련된 전자 리소스(자원)와 상호작용하는 것에 응답하여 특정 카테고리에 대한 사용자 그룹에 추가되어 해당 카테고리와 관련된 디지털 컴포넌트가 사용자에게 제공될 수 있다. 이 정보는 그룹 구성원과 관련하여 사용자의 개인정보를 보호하기 위해 사용자의 장치에 저장할 수 있다. 이 정보의 가용성이 없으면 콘텐츠 플랫폼은 사용자를 구성원으로 포함하지 않는 사용자 그룹에 대한 디지털 컴포넌트를 평가해야 한다. 예를 들어, 콘텐츠 플랫폼은 모든 사용자 그룹에 대한 디지털 컴포넌트를 평가하고 사용자가 실제로 어떤 그룹의 구성원인지 여부를 모른 채 이러한 그룹 중 적어도 일부에 대해 디지털 컴포넌트를 제공할 수 있다. 사용자 장치의 애플리케이션은 수신된 각 디지털 컴포넌트를 평가하여 사용자가 구성원인 사용자 그룹과 연결되어 있는지 여부를 결정하고 이러한 연결이 없는 디지털 컴포넌트는 무시할 수 있다. 사용자의 그룹 구성원과 관련이 없는 디지털 컴포넌트를 평가하는 낭비되는 계산 부담을 줄이기 위해 사용자의 그룹 구성원이 콘텐츠 플랫폼에 제공될 수 있다. 그러나 이 구성원 데이터는 일반적으로 사용자에게만 제공되며 콘텐츠 플랫폼에서 각 요청에서 전송된 구성원 데이터를 사용자의 핑거프린트(지문)로 사용하여 사용자를 추적할 수 있다.
본 명세서에 기술된 주제는 다음 이점 중 하나 이상을 실현하기 위해 특정 실시예에서 구현될 수 있다. 사용자의 클라이언트 장치에서 보낸 여러 요청의 경우 애플리케이션은 사용자 그룹 구성원 목록을 수정하여 사용자 그룹 식별자를 추가 및 제거하여 콘텐츠 플랫폼에 제공되는 수정된 목록이 여러 요청에 대해 다르게 되도록 할 수 있다. 따라서 콘텐츠 플랫폼이 사용자의 지문과 동일한 목록을 사용하여 사용자를 추적하는 것을 방지하는 차등 개인정보를 제공한다. 사용자를 구성원으로 포함하는 사용자 그룹을 식별하는 데이터를 제공함으로써, 사용자의 그룹 구성원 자격을 기반으로 사용자를 위한 디지털 컴포넌트를 선택하는 콘텐츠 플랫폼은 사용자를 구성원으로 포함하지 않는 사용자 그룹에 대한 디지털 컴포넌트를 평가하는 데 낭비되는 계산 리소스를 절약할 수 있다. 클라이언트 장치의 계산 자원은 또한 사용자를 구성원으로 포함하지 않는 사용자 그룹에 대한 디지털 컴포넌트를 평가할 필요가 없기 때문에 보존된다. 실제 사용자 그룹 구성원 정보를 사용할 수 있도록 하고 차등 개인정보 보호를 위해 사용자 그룹 식별자를 일부 추가 및 제거함으로써, 매칭하는 사용자 그룹 식별자를 위한 검색 공간이 훨씬 작아서 콘텐츠 플랫폼에서 계산이 절약되고 네트워크를 통해 전송되고 클라이언트 장치에 저장되는 디지털 컴포넌트가 줄어든다.
사용자에 대한 사용자 그룹 식별자를 식별하는 데이터는 확률적 데이터 구조로 인코딩될 수 있으며, 이는 사용자에 대한 모든 사용자 그룹 식별자의 플레인텍스트(plaintext) 값을 공유하지 않고 결과적으로 더 작은 데이터 크기를 가져옴으로써 사용자 개인정보를 보호한다. 이 작은 데이터 크기는 네트워크 대역폭의 소비를 줄이고 전송 속도를 높이며 데이터를 수신 및 처리하는 데 필요한 계산 리소스를 줄이고 사용자 그룹 구성원 데이터를 저장하기 위한 데이터 저장 요구 사항을 줄인다. 확률적 데이터 구조의 파라미터를 1%와 같이 작은 FPR(false positive rate)을 갖도록 구성함으로써, 사용자를 구성원으로 포함하지 않고 그리고 콘텐츠 플랫폼이 평가하는 사용자 그룹의 수도 적기 때문에 콘텐츠 플랫폼, 클라이언트 장치에서 계산이 절약되고 사용자를 구성원으로 포함하지 않는 사용자 그룹에 대한 디지털 컴포넌트를 전송하여 소비되는 대역폭의 양이 줄어든다. 이 문서에 설명된 시스템 및 기술을 사용하면 요청자를 식별하지 않고도 디지털 컴포넌트를 요청하고 배포할 수 있으므로 시스템을 더욱 안전하게 보호할 수 있다. 예를 들어, 이는 요청자의 신원을 알 수 없기 때문에 요청자가 표적이 되는 것을 방지한다.
전술한 주제의 다양한 특징 및 이점은 도면과 관련하여 아래에 설명되어 있다. 추가 특징 및 이점은 본 명세서 및 청구범위에 기재된 주제로부터 명백하다.
도 1은 콘텐츠가 클라이언트 장치에 배포되는 환경의 블록도이다.
도 2는 사용자를 사용자 그룹에 연관시키기 위한 예시적인 프로세스의 스윔 레인(swim lane) 다이어그램이다.
도 3은 사용자 그룹에 기초하여 디지털 컴포넌트를 요청하고 수신하기 위한 예시적인 프로세스의 스윔 레인 다이어그램이다.
도 4는 확률적 데이터 구조를 생성하는 예시적인 프로세스를 나타내는 흐름도이다.
도 5는 예시적인 컴퓨터 시스템의 블록도이다.
다양한 도면에서 유사한 참조 번호 및 명칭은 유사한 요소를 나타낸다.
일반적으로 이 문서는 사용자 경험을 개선하기 위해 사용자 데이터를 분석할 때 사용자 개인정보를 보호하는 것과 관련이 있다. 이를 통해 사용자의 익명성을 유지하는 차등 개인정보 보호 기술을 사용하여 콘텐츠 플랫폼에 기밀 정보를 공유할 수 있으며, 사용자를 구성원으로 포함하지 않는 사용자 그룹의 디지털 컴포넌트를 평가하기 위해 플랫폼에 부과되는 계산 부담을 줄일 수 있다.
도 1은 콘텐츠가 클라이언트 장치(110)에 배포되는 환경(100)의 블록도이다. 예시적인 환경(100)은 LAN(Local Area Network), WAN(Wide Area Network), 인터넷, 모바일 네트워크, 또는 이들의 조합과 같은 데이터 통신 네트워크(105)를 포함한다. 네트워크(105)는 클라이언트 장치(110), 수요측 플랫폼(DSP: demand-side platforms)(150), 공급측 플랫폼(SSP: supply-side platforms)(170), 퍼블리셔(publishers)(140), 및 웹사이트(142)를 연결한다. 예시적인 환경(100)은 많은 상이한 클라이언트 장치(110), DSP(150), SSP(170), 퍼블리셔(140), 및 웹사이트(142)를 포함할 수 있다.
클라이언트 장치(110)는 네트워크(105)를 통해 통신할 수 있는 전자 장치이다. 예시적인 클라이언트 장치(110)는 개인용 컴퓨터, 모바일 통신 장치, 예를 들어 스마트폰, 및 네트워크(105)를 통해 데이터를 송수신할 수 있는 기타 장치를 포함한다. 클라이언트 장치는 또한 마이크(마이크로폰)를 통해 오디오 입력을 받아들이고 스피커를 통해 오디오 출력을 출력하는 디지털 보조(어시스턴트) 장치를 포함할 수 있다. 디지털 어시스턴트가 오디오 입력을 수락하도록 마이크를 활성화하는 "핫워드" 또는 "핫프레이즈(hotphrase)"를 검출하면 디지털 어시스턴트를 청취 모드(예: 오디오 입력을 수락할 준비가 됨)로 전환할 수 있다. 디지털 어시스턴트 장치는 또한 이미지를 캡처하고 정보를 시각적으로 제시하기 위한 카메라 및/또는 디스플레이를 포함할 수 있다. 디지털 어시스턴트는 웨어러블 장치(예: 시계 또는 안경), 스마트 폰, 스피커 장치, 태블릿 장치 또는 다른 하드웨어 장치를 포함하는 다양한 형태의 하드웨어 장치로 구현될 수 있다. 클라이언트 장치는 또한 디지털 미디어 장치, 예를 들어 텔레비전에 비디오를 스트리밍하기 위해 텔레비전 또는 다른 디스플레이에 연결하는 스트리밍 장치를 포함할 수 있다.
클라이언트 장치(110)는 일반적으로 웹 브라우저 및/또는 네이티브 애플리케이션과 같은 애플리케이션(112)을 포함하여 네트워크(105)를 통한 데이터의 송수신을 용이하게 한다. 네이티브 애플리케이션은 특정 플랫폼 또는 특정 장치(예: 특정 운영 체제가 있는 모바일 장치)용으로 개발된 애플리케이션이다. 퍼블리셔(140)는 클라이언트 장치(110)에 대한 네이티브 애플리케이션을 개발 및 제공할 수 있고, 예를 들어 다운로드가 가능하도록 할 수 있다. 웹 브라우저는 예를 들어 클라이언트 장치(110)의 사용자가 웹 브라우저의 주소 표시줄(address bar)에 리소스(145)에 대한 리소스 주소를 입력하는 것에 응답하거나 리소스 주소를 참조하는 링크를 선택하는 것에 응답하여, 퍼블리셔(140)의 웹사이트(142)를 호스팅하는 웹 서버로부터 리소스(145)를 요청할 수 있다. 마찬가지로 네이티브 애플리케이션은 퍼블리셔(publisher)의 원격 서버에서 애플리케이션 콘텐츠를 요청할 수 있다.
일부 리소스, 애플리케이션 페이지, 또는 다른 애플리케이션 콘텐츠는 리소스(145) 또는 애플리케이션 페이지와 함께 디지털 컴포넌트를 제시하기 위한 디지털 컴포넌트 슬롯을 포함할 수 있다. 디지털 컴포넌트 슬롯은 리소스에 임베딩된 디지털 컴포넌트 태그일 수 있으며, 디지털 컴포넌트를 요청하기 위한 컴퓨터 판독 가능 코드를 포함한다. 이 문서 전체에서 사용된 "디지털 컴포넌트"라는 문구는 디지털 콘텐츠 또는 디지털 정보의 개별 단위(예: 비디오 클립, 오디오 클립, 멀티미디어 클립, 이미지, 텍스트 또는 기타 콘텐츠 단위)를 나타낸다. 디지털 컴포넌트는 물리적 메모리 장치에 단일 파일 또는 파일 모음으로 전자적으로 저장될 수 있으며, 디지털 컴포넌트는 비디오 파일, 오디오 파일, 멀티미디어 파일, 이미지 파일 또는 텍스트 파일의 형태를 취하고 광고 정보를 포함할 수 있으므로 광고는 일종의 디지털 컴포넌트이다. 예를 들어, 디지털 컴포넌트는 웹 페이지의 콘텐츠 또는 애플리케이션(112)에 의해 제공되는 다른 리소스를 보완하기 위한 콘텐츠일 수 있다. 보다 구체적으로, 디지털 컴포넌트는 리소스 콘텐츠와 관련된 디지털 콘텐츠를 포함할 수 있다(예를 들어, 디지털 컴포넌트는 웹 페이지 콘텐츠와 동일한 주제 또는 관련 주제(토픽)와 관련될 수 있음). 따라서 디지털 컴포넌트의 제공은 웹 페이지 또는 애플리케이션 콘텐츠를 보완하고 일반적으로 향상시킬 수 있다.
애플리케이션(112)이 하나 이상의 디지털 컴포넌트 슬롯을 포함하는 리소스(또는 애플리케이션 콘텐츠)를 로드할 때, 애플리케이션(112)은 각 슬롯에 대한 디지털 컴포넌트를 요청할 수 있다. 일부 구현에서, 디지털 컴포넌트 슬롯은 애플리케이션(112)이 클라이언트 장치(110)의 사용자에게 제시하기 위해 디지털 컴포넌트를 요청하게 하는 코드(예를 들어, 스크립트)를 포함할 수 있다.
일부 퍼블리셔(140)는 SSP(170)를 사용하여 리소스 및/또는 애플리케이션의 디지털 컴포넌트 슬롯에 대한 디지털 컴포넌트를 획득하는 프로세스를 관리한다. SSP(170)는 리소스 및/또는 애플리케이션에 대한 디지털 컴포넌트를 얻는 프로세스를 자동화하는 하드웨어 및/또는 소프트웨어로 구현된 기술 플랫폼이다. SSP(170)는 하나 이상의 DSP(150)와 상호작용하여 디지털 컴포넌트 슬롯에 대한 디지털 컴포넌트를 선택하는 데 사용될 수 있는 정보를 얻을 수 있다. 아래에서 더 상세히 설명되는 바와 같이, 이 정보는 디지털 컴포넌트 제공자(160)의 디지털 컴포넌트의 표시를 위해 디지털 컴포넌트 제공자(160)가 퍼블리셔(140)에 제공하고자 하는 양을 나타내는 선택 파라미터를 포함할 수 있다. 각각의 퍼블리셔(140)는 대응하는 SSP(170) 또는 복수의 SSP(170)를 가질 수 있다. 복수의 퍼블리셔(140)는 동일한 SSP(170)를 사용할 수 있다.
디지털 컴포넌트 제공자(160)는 퍼블리셔(publisher)의 리소스 및 애플리케이션의 디지털 컴포넌트 슬롯에 제공되는 디지털 컴포넌트를 생성(또는 달리 발행)할 수 있다. 디지털 컴포넌트 제공자(160)는 DSP(150)를 사용하여 디지털 컴포넌트 슬롯에서의 프리젠테이션을 위한 디지털 컴포넌트의 프로비저닝(provisioning)을 관리할 수 있다. DSP(150)는 리소스 및/또는 애플리케이션과 함께 프리젠테이션을 위해 디지털 컴포넌트를 배포하는 프로세스를 자동화하는 하드웨어 및/또는 소프트웨어로 구현된 기술 플랫폼이다. DSP(150)는 디지털 컴포넌트 제공자(160)를 대신하여 복수의 SSP(170)와 상호작용하여 복수의 상이한 퍼블리셔(140)의 리소스 및/또는 애플리케이션과 함께 프리젠테이션을 위한 디지털 컴포넌트를 제공할 수 있다. 일반적으로, DSP(150)는 (예를 들어, SSP(170)로부터 직접 또는 교환을 통해) 디지털 컴포넌트에 대한 요청을 수신할 수 있고, 요청에 기초하여 하나 이상의 디지털 컴포넌트 제공자에 의해 생성된 하나 이상의 디지털 컴포넌트에 대한 선택 파라미터를 생성(또는 선택)하고, 그리고 디지털 컴포넌트(예: 디지털 컴포넌트 자체) 및 선택 파라미터와 관련된 데이터를 SSP(170)에 제공한다.
일부 경우에, 사용자가 이전에 방문 및/또는 상호작용한 웹 페이지, 애플리케이션 페이지 또는 기타 전자 리소스와 관련된 디지털 컴포넌트를 수신하는 것이 사용자에게 유리하다. 이러한 디지털 컴포넌트를 사용자에게 배포하기 위해, 사용자가 특정 리소스를 방문하거나 리소스에서 특정 작업을 수행(예: 웹 페이지에 표시된 특정 아이템과 상호 작용하거나 아이템을 가상 장바구니에 추가)할 때 사용자를 사용자 그룹에 할당할 수 있다. 예를 들어 장치 사용자가 신발을 검색하고 여러 신발 제조업체의 여러 웹페이지를 방문하는 경우, 브라우저는 사용자를 "신발"과 같은 사용자 그룹에 추가하고 사용자 그룹 "신발"의 해당 사용자 그룹 식별자를 클라이언트 장치에 저장할 수 있다. 따라서 사용자 그룹은 사용자의 관심(interests)을 나타낼 수 있다. 사용자 그룹은 디지털 컴포넌트 제공자(160)에 의해 생성될 수 있고 사용자 그룹 식별자에 의해 식별된다. 즉, 각 디지털 컴포넌트 제공자(160)는 사용자가 디지털 컴포넌트 제공자(160)의 전자 자원을 방문할 때 사용자를 자신의 사용자 그룹에 할당할 수 있다. 예를 들어, 사용자가 온라인 소매업체의 장바구니에 신발을 추가하면 소매업체는 사용자를 신발 사용자 그룹에 추가할 수 있다. 사용자는 여러 다른 디지털 컴포넌트 공급자(제공자)에 대한 여러 사용자 그룹에 할당될 수 있다.
사용자의 개인정보를 보호하기 위해, 사용자의 그룹 구성원은 사용자의 클라이언트 장치(110)에서, 예를 들어, 디지털 컴포넌트 제공자(160), 콘텐츠 플랫폼 또는 다른 파티(party)가 아닌, 애플리케이션(112) 중 하나 또는 클라이언트 장치(110)의 운영 체제에 의해 유지될 수 있다. 특정 예에서, 애플리케이션(112)은 사용자에 대한 사용자 그룹 식별자의 목록("사용자 그룹 목록")(114)을 유지할 수 있다. 사용자 그룹 목록(리스트)(114)은 사용자가 추가된 각 사용자 그룹에 대한 그룹 식별자를 포함할 수 있다. 사용자 그룹을 생성하는 디지털 컴포넌트 제공자(160)는 그들의 사용자 그룹에 대한 사용자 그룹 식별자를 지정할 수 있다. 사용자 그룹에 대한 사용자 그룹 식별자는 그룹을 설명하거나(예: gardening group) 그룹을 나타내는 코드(예: 설명이 아닌 영숫자 시퀀스)일 수 있다. 사용자에 대한 사용자 그룹 목록(114)은 클라이언트 장치(110)의 보안 저장소에 저장될 수 있고/있거나 저장될 때 암호화될 수 있다.
사용자가 실제로 할당된 사용자 그룹 식별자를 진짜(genuine) 그룹 식별자라고 한다. 일부 구현에서, 각 사용자 그룹 식별자는 (i) 사용자 그룹 식별자에 의해 식별되는 사용자 그룹을 생성 및/또는 관리하는 엔티티(예를 들어, 디지털 컴포넌트 제공자(160) 또는 DSP(150))의 리소스 로케이터(예: 도메인, URL 또는 eTLD+1) 및 (ii) 사용자 그룹 식별자에 의해 식별되는 사용자 그룹에 대한 고유 식별자의 조합에 기초한다. 예를 들어, 디지털 컴포넌트 제공자는 "example.com"에 웹사이트를 갖고 식별자가 "신발"인 신발에 대한 사용자 그룹을 가질 수 있다. 이 예에서, 환경(100)에서, 예를 들어 애플리케이션(112), SSP(170), 및 DSP(150)에 의해 사용되는 사용자 그룹 식별자는 "example.com"과 "신발"의 조합이거나 이 조합에 기초할 수 있다.
위에서 언급한 바와 같이 엔터티에 대한 리소스 로케이터는 사용자 그룹을 생성하거나 관리하는 엔터티의 도메인에 대한 eTLD+1일 수 있다. eTLD+1은 유효 최상위 도메인(eTLD)에 공용 접미사보다 한 레벨 더 플러스한 것이다. eTLD+1의 예는 "example.com"이며, 여기서 ".com"은 최상위 도메인이다.
복수의 디지털 컴포넌트 제공자(160)가 있는 환경에서, 각각의 디지털 컴포넌트 제공자(160)는 복수의 사용자 그룹에 액세스하거나 복수의 사용자 그룹을 유지할 수 있으며 각 사용자는 복수의 사용자 그룹의 구성원일 수 있다. 예를 들어, 의류 유통업자는 각 유형의 의류에 대한 사용자 그룹을 가질 수 있고, 사용자는 의류 유통업자의 하나 이상의 의류 그룹 및 HIO(home improvement organization)의 "gardening group"의 멤버(구성원)일 수 있다. 일부 구현에서, 해시 함수는 (i) 사용자 그룹을 생성한 엔티티(예: 디지털 컴포넌트 제공자)의 리소스 로케이터 및 (ii) 엔티티에 의해 식별된 사용자 그룹에 대한 고유 식별자에 대한 해시된 출력을 생성하는 데 사용될 수 있다. 이 해시 함수의 결과는 환경(100)에서 사용되는 그룹에 대한 사용자 그룹 식별자일 수 있다. 다른 예에서, 사용자 그룹을 생성한 엔터티에 특정한 다른 정보가 리소스 로케이터 대신에 사용될 수 있다.
예를 들어, "example.com"이 디지털 컴포넌트 제공자의 도메인이고 그리고 UG_ID가 디지털 컴포넌트 제공자(160)에 의해 식별된 특정 사용자 그룹에 대한 고유 그룹 식별자라고 가정한다. 애플리케이션(112)은 리소스 로케이터 및 고유 그룹 식별자에 기초하여 사용자 그룹 식별자를 생성하기 위해 암호화 함수를 사용할 수 있다. 이 함수는
해시된 256비트(32바이트) 출력을 생성하기 위해 다이제스트 길이가 256비트인 암호화 해시 함수인 보안 해시 알고리즘(SHA256)을 사용하여 구현된 키 해시(keyed-hash) 메시지 인증 코드(HMAC)와 같은 의사 난수(pseudorandom) 함수일 수 있다. 이러한 예에서 HMAC(UG_ID, example.com)는 사용자 그룹 식별자로서 사용자 그룹의 256비트 고유 식별자를 생성한다.
추가 정보 없이 해시 함수를 사용하여 사용자 그룹 식별자를 결정함으로써, 사용자 그룹 식별자의 수신자가 사용자 그룹을 생성/관리하는 엔티티의 ID 또는 사용자 그룹의 고유 식별자를 찾는 것은 계산상 불가능하다. 따라서 해시 함수 접근 방식은 다른 엔터티가 사용자의 사용자 그룹 식별자를 수신하는 경우 엔터티의 기밀 정보(예: 시작, 중지, 진행 중인 디지털 컴포넌트 캠페인의 수 등)를 보호한다. 해시 함수는 또한 이러한 엔터티가 사용자의 전체 그룹 구성원 자격을 결정하지 못하도록 방지하여 사용자 개인정보를 보호한다.
애플리케이션(112)이 디지털 컴포넌트 제공자(160) 또는 웹사이트(142) 상의 웹 페이지와 관련된 리소스 또는 애플리케이션 콘텐츠를 제시할 때, 리소스는 애플리케이션(112)이 사용자의 사용자 그룹 목록에 하나 이상의 사용자 그룹 식별자를 추가하도록 요청할 수 있다. 이에 응답하여, 애플리케이션(112)은 사용자 그룹 목록(114)에 하나 이상의 사용자 그룹 식별자를 추가하고 사용자 그룹 목록을 안전하게 저장할 수 있다. 이는 도 2를 참조하여 더 설명된다.
퍼블리셔(140)의 전자 리소스(자원)로 프리젠테이션을 위한 디지털 컴포넌트를 얻기 위해(예를 들어 디지털 컴포넌트 슬롯에서), 애플리케이션(112)은 퍼블리셔(140)를 위해 SSP(170)에 요청을 제출할 수 있다. 이 요청은 사용자에 대한 사용자 그룹 식별자, 예를 들어 사용자 그룹 목록(114)에 포함된 사용자 그룹 식별자를 포함할 수 있다. 일부 구현에서, 애플리케이션(112)은 사용자 그룹 식별자의 플레인텍스트 값(plaintext values)을 전송할 수 있다. 그러나 이렇게 하면 목록 수신자에게 사용자의 전체 사용자 그룹 구성원이 제공되고 수신자가 사용자에 대한 여러 요청을 기반으로 사용자를 추적할 수 있다.
사용자 개인정보를 보존하기 위해, 애플리케이션(112)은 SSP(170)에 사용자 그룹 식별자를 제공하기 전에 사용자에 대한 사용자 그룹 식별자에 노이즈, 예를 들어 차등 개인정보 노이즈를 적용할 수 있다. 아래에 설명된 바와 같이, 이는 사용자가 실제로 구성원인 사용자 그룹에 대한 하나 이상의 진짜 사용자 그룹 식별자를 제거하는 것을 포함할 수 있다. 여기에는 실제 사용자 그룹을 나타낼 수 없거나(예: 임의의 식별자) 사용자가 구성원이 아닌 실제 사용자 그룹에 대한 식별자가 될 수 있는 하나 이상의 가짜(fake) 사용자 그룹 식별자를 추가하는 것도 포함될 수 있다. 이렇게 하면 수신자가 사용자의 전체 그룹 구성원 데이터를 알 수 없도록 하여 사용자 개인정보를 보호하고, SSP(170)에 제공된 목록에 추가 및 제거되는 사용자 그룹 식별자가 요청마다 다른 경우, 받는 목록이 다르기 때문에 수신자가 사용자의 그룹 구성원 자격을 기반으로 사용자를 추적하는 것을 방지할 수 있다.
또한, 애플리케이션(112)은 사용자 그룹 목록(114)의 사용자 그룹 식별자에 기초하여 확률적 데이터 구조, 예를 들어 블룸 필터(Bloom filter) 또는 쿠쿠 필터(cuckoo filter)를 생성할 수 있다. 예를 들어, 애플리케이션(112)은 차등 개인정보 기술이 사용자 그룹 목록(114)에 적용된 후에 사용자 식별자의 목록에 기초하여 확률적 데이터 구조를 생성할 수 있다. 이렇게 하면 수신자가 사용자의 전체 그룹 구성원 데이터를 얻지 못하게 하여 사용자 개인정보를 보호하고, 사용자 그룹 데이터의 데이터 크기를 줄여 위에서 설명한 대로 성능 이점을 제공한다.
SSP(170)는 요청을 수신하고 하나 이상의 DSP(150)에 요청을 제출할 수 있다. DSP(150)에 전송된 이러한 요청은 또한 사용자에 대한 사용자 그룹 식별자를 포함할 수 있다. DSP(150)는 사용자에 대한 하나 이상의 사용자 그룹에 기초하여 사용자에 대한 하나 이상의 디지털 컴포넌트를 선택할 수 있고, 디지털 컴포넌트(들)에 대한 선택 파라미터를 SSP(170)에 제공할 수 있다. 선택 파라미터는 디지털 컴포넌트 제공자(160)가 디지털 컴포넌트 제공자(160)의 디지털 컴포넌트의 표시를 위해 퍼블리셔(140)에 기꺼이 제공할 수 있는 양(amount)을 나타낸다. SSP(170)는 퍼블리셔(140)를 대신하여 일부 제외를 적용할 수 있고 선택 파라미터에 기초하여 애플리케이션(112)에 디지털 컴포넌트의 목록을 제공할 수 있다. 애플리케이션(112)은 목록에서 디지털 컴포넌트를 선택하고 퍼블리셔(140)의 전자 리소스와 함께 디지털 컴포넌트를 제시할 수 있다. 디지털 컴포넌트를 획득하기 위한 예시적인 프로세스가 도 3에 도시되어 있다.
일부 구현들에서, 애플리케이션(112)은 사용자가 할당된 사용자 그룹들을 사용자가 관리할 수 있게 하는 사용자 인터페이스를 제공할 수 있다. 예를 들어, 사용자 인터페이스는 사용자가 사용자 그룹 식별자를 제거할 수 있게 하고, 모든 또는 특정 리소스(145), 퍼블리셔(140), 디지털 컴포넌트 제공자(160), 디지털 컴포넌트 교환, 및/또는 DSP(150)가 사용자를 사용자 그룹에 추가하는 것을 방지할 수 있다(예를 들어, 엔티티가 애플리케이션(112)에 의해 유지되는 사용자 그룹 식별자 목록에 사용자 그룹 식별자를 추가하는 것을 방지). 이는 사용자에게 더 나은 투명성과 제어를 제공한다.
이 문서 전체의 설명에 더하여, 사용자는 여기에 설명된 시스템, 프로그램 또는 기능이 사용자 정보(예: 사용자의 소셜 네트워크, 소셜 활동 또는 활동, 직업, 사용자의 선호도 또는 사용자의 현재 위치에 대한 정보)의 수집을 가능하게 할 수 있는지 여부와 사용자에게 서버로부터 콘텐츠 또는 통신이 전송되는지 여부에 대해 사용자가 선택할 수 있도록 하는 제어를 제공받을 수 있다. 또한 특정 데이터는 저장 또는 사용되기 전에 하나 이상의 방식으로 처리되어 개인 식별 정보가 제거될 수 있다. 예를 들어, 사용자의 신원을 처리하여 사용자에 대한 개인 식별 정보를 확인할 수 없거나 위치 정보를 얻은 사용자의 지리적 위치를 일반화(예: 도시, 우편번호 또는 주 수준)하여 사용자의 특정 위치를 확인할 수 없다. 따라서 사용자는 사용자에 대해 수집되는 정보, 해당 정보가 사용되는 방법 및 사용자에게 제공되는 정보를 제어할 수 있다.
도 2는 사용자에 대한 사용자 그룹 목록(114)에 하나 이상의 사용자 그룹 식별자를 추가하기 위한 예시적인 프로세스(200)를 예시하는 스윔 레인 다이어그램이다. 프로세스(200)의 동작은 예를 들어 클라이언트 장치(110)에 의해 구현될 수 있다. 프로세스(200)의 동작은 또한 비일시적일 수 있는 하나 이상의 컴퓨터 판독 가능 매체에 저장된 명령어로서 구현될 수 있으며, 하나 이상의 데이터 처리 장치에 의한 명령어의 실행은 하나 이상의 데이터 처리 장치가 프로세스(200)의 동작을 수행하게 할 수 있다. 이 프로세스(200)는 웹 페이지를 다운로드하는 웹 브라우저의 관점에서 설명되지만, 유사한 프로세스에서 네이티브 애플리케이션이 사용될 수 있다.
이 예에서, 클라이언트 장치(110)의 사용자는 웹 브라우저와 같은 애플리케이션(112)을 사용하여 웹 서버에서 호스팅되는 디지털 컴포넌트 제공자(160)의 웹사이트(142)에 액세스한다. 웹사이트(142)에 액세스하려면, 클라이언트 장치(110)는 웹사이트(142)에 대한 요청을 개시할 수 있고, 웹사이트(142)를 호스팅하는 웹 서버는 클라이언트 장치(110)에서 웹 페이지(또는 기타 전자 자원)의 제시를 개시하는 컴퓨터 실행가능 명령어 및/또는 데이터를 전송함으로써 요청에 응답할 수 있다.
웹 페이지는 클라이언트 장치(110)의 웹 브라우저에 소정의 사용자 그룹(예를 들어, 웹 페이지의 콘텐츠, 또는 웹페이지 또는 웹사이트(142)와 사용자의 상호작용과 관련된 사용자 그룹)에 가입하라는 요청을 프롬프트하는 컴퓨터 실행 가능 코드, 예를 들어 스크립트를 포함할 수 있다. 예를 들어, 웹사이트(142)가 신발에 대한 전자상거래 웹사이트라고 가정한다. 웹사이트(142)로 네비게이팅한 후, 웹사이트(142)로부터 다운로드된 웹 페이지는 "신발" 사용자 그룹에 가입하라는 요청을 클라이언트 장치(110)의 사용자에게 프롬프트할 수 있다. 웹 브라우저의 사용자 인터페이스는 사용자가 프롬프트에 응답할 수 있게 하고 사용자가 "신발" 사용자 그룹에 가입하라는 요청을 수락하거나 거부할 수 있도록 한다. 클라이언트 장치(110)의 사용자가 사용자 그룹에 가입하기 위한 요청을 수락하는 시나리오에서, 웹 브라우저는 클라이언트 장치(110)에 대응하는 사용자 그룹 식별자를 저장한다. 다른 예에서, 웹 브라우저는 사용자를 프로모션(promoting)시키지 않고 사용자 그룹에 사용자를 추가할 수 있다(예: 사용자가 그러한 기능을 활성화하는 경우). 예시적인 프로세스(200)는 아래에서 더 설명된다.
이 예에서, 사용자 그룹 구성원에 기초하여 다른 퍼블리셔의 리소스와 함께 프리젠테이션을 위한 디지털 컴포넌트를 제공하는 디지털 컴포넌트 제공자(160)는 또한 웹사이트의 퍼블리셔이다. 예를 들어, 디지털 컴포넌트 제공자(160)는 자신의 제품 또는 서비스와 관련된 콘텐츠를 포함하는 웹사이트를 가질 수 있고 또한 뉴스 웹사이트와 같은 다른 콘텐츠가 있는 웹사이트에서 자신의 제품 또는 서비스와 관련된 디지털 컴포넌트를 제공하기를 원할 수 있다.
클라이언트 장치(110)의 사용자는 디지털 컴포넌트 제공자(160)의 웹사이트(142)로 이동(네비게이팅)한다(202). 예를 들어, 클라이언트 장치(110)의 사용자는 참조(예를 들어, URL)를 지정함으로써 웹사이트(142)를 방문하기 위해 브라우저를 사용할 수 있다. 다른 예에서, 클라이언트 장치(110)의 사용자는 웹사이트를 크롤링하고 인덱싱(예: 웹사이트의 크롤링된 콘텐츠를 기반으로 인덱싱됨)함으로써 웹사이트를 식별하는 검색 쿼리를 검색 시스템에 제출하기 위해 웹 브라우저를 사용한다. 이에 응답하여, 검색 시스템은 검색 결과의 형태로 웹사이트를 식별하고 검색 결과 페이지에서 검색 결과를 클라이언트 장치(110)에 리턴한다. 검색 결과는 특정 검색어에 응답하는(예: 관련성 있는) 웹사이트를 식별하는 검색 시스템에 의해 생성된 데이터이고, 그리고 검색 결과와 사용자 상호 작용에 대한 응답으로 클라이언트 장치(110)가 웹 서버와 같은 특정 위치로부터 데이터를 요청하게 하는 활성 링크(예를 들어, 하이퍼텍스트 링크)를 포함한다. 검색 결과의 예에는 웹사이트 제목, 웹사이트에서 추출한 텍스트 또는 이미지의 일부, 웹사이트의 URL이 포함될 수 있다. 검색 결과를 본 후, 클라이언트 장치(110)의 사용자는 웹사이트(142)에 대응하는 검색 결과를 선택 및/또는 클릭할 수 있다.
클라이언트 장치(110)는 웹사이트(142)에 대한 콘텐츠에 대한 요청을 생성하고 네트워크(105)를 통해 요청을 웹 서버로 전송한다(204). 예를 들어, 클라이언트 장치(110)의 사용자가 웹사이트(142)에 대응하는 검색 결과를 클릭 및/또는 선택하거나 참조(예를 들어, URL)를 사용하여 웹사이트(142)를 직접 지정한 후, 클라이언트 장치(110)에서 실행되는 웹 브라우저는 디지털 콘텐츠(예를 들어, 웹사이트(142)의 웹 페이지)에 대한 요청을 생성하고 이를 네트워크(105)를 통해 웹 서버로 전송한다.
디지털 콘텐츠에 대한 요청은 예를 들어 패킷화된 네트워크를 통해 전송될 수 있으며, 콘텐츠 요청 자체는 헤더 및 페이로드 데이터를 갖는 패킷화된 데이터로 포맷될 수 있다. 헤더는 패킷의 목적지를 지정할 수 있고, 페이로드 데이터는 위에서 설명된 정보를 포함할 수 있다.
웹 서버는 웹사이트(142)의 콘텐츠(예를 들어, 웹 페이지)로 응답한다(206). 예를 들어, 클라이언트 장치(110)로부터 디지털 콘텐츠(즉, 웹사이트(142))에 대한 요청을 수신한 후, 웹사이트(142)를 호스팅하는 웹 서버는 기계 실행 가능 명령어를 전송함으로써 응답하고 클라이언트 장치(110)에서 웹 페이지의 표시를 개시한다. 응답은 예를 들어 패킷화된 네트워크를 통해 전송되는 웹 페이지와 관련된 데이터를 포함할 수 있으며, 콘텐츠 자체는 패킷화된 데이터로 형식화될 수 있다.
클라이언트 장치(110)는 사용자에게 제시하기 위해 콘텐츠를 렌더링한다(208). 웹 서버로부터 디지털 콘텐츠(예: 웹 페이지)를 수신한 후 웹 브라우저는 사용자에게 표시하기 위해 콘텐츠를 렌더링한다. 예를 들어, 웹 브라우저는 웹 페이지를 사용자에게 제시하기 위해 클라이언트 장치(110)의 디스플레이를 사용할 수 있다.
디지털 컴포넌트 제공자(160)는 클라이언트 장치(110)의 웹 브라우저에 사용자를 사용자 그룹에 추가(조인)하도록 요청한다(210). 예를 들어, 디지털 컴포넌트 제공자(160)(예를 들어, 디지털 컴포넌트 제공자(160)의 웹 서버)는 웹사이트(142)와 관련된 데이터의 표시를 개시하는 컴퓨터 실행가능 명령어를 전송한 후, 클라이언트 장치(110)의 사용자에게 사용자 그룹에 가입하도록 프롬프트(촉구)할 수 있다. 다른 예에서, 웹 페이지는 웹 브라우저가 사용자를 사용자 그룹에 추가하도록 요청하기 위해 웹 브라우저의 API(응용 프로그래밍 인터페이스)를 호출하는 스크립트와 같은 컴퓨터 실행 가능 코드를 포함할 수 있다.
일부 구현들에서, 사용자 그룹은 디지털 컴포넌트 제공자(160)에 의해 알려져 있고/있거나 관리되는 복수의 이용가능한 사용자 그룹들 중에서 디지털 컴포넌트 제공자(160)에 의해 선택된다. 현재 예에서, 웹사이트(142)는 신발을 구매하기 위한 전자상거래 웹사이트이다. 웹사이트(142)를 호스팅하는 웹 서버는 클라이언트 장치(110)의 사용자에게 사용자 그룹 "신발"에 가입하라는 요청을 프롬프트할 수 있다. 웹 브라우저의 사용자 인터페이스는 사용자가 프롬프트에 응답할 수 있게 하고 사용자가 "신발" 사용자 그룹에 가입하라는 요청을 수락하거나 거부할 수 있도록 한다.
일부 구현에서, 애플리케이션(112)(예를 들어, 웹 브라우저)은 구성 가능한 옵션을 클라이언트 장치(110)의 사용자에게 제공할 수 있어, 사용자 그룹의 수락 및 거부가 사용자의 개입 없이 자율적으로 처리될 수 있다. 예를 들어, 클라이언트 장치(110)의 사용자는 애플리케이션(112)이 퍼블리셔(140)에 의해 프롬프트될 때 자동으로 사용자 그룹을 수락할 수 있도록 애플리케이션(112)의 특정 옵션을 구성할 수 있다.
사용자 그룹 식별자는 클라이언트 장치(110)에 저장된다(212). 앞서 언급한 바와 같이, 각 사용자 그룹은 퍼블리셔(140)에 의해 결정되는 사용자 그룹 식별자에 의해 식별된다. 특정 사용자 그룹에 가입하라는 요청을 수락한 후, 웹 브라우저는 특정 사용자 그룹에 대응하는 사용자 그룹 식별자를 클라이언트 장치(110)에 저장한다. 예를 들어, 클라이언트 장치(110)의 사용자가 "신발" 사용자 그룹에 대한 가입 요청을 수락한 경우, 콘텐츠 제공자의 프롬프트가 표시된 후, 웹 브라우저는 클라이언트 장치(110)에 사용자 그룹 "신발"의 사용자 그룹 식별자를 저장한다. 위에서 설명된 바와 같이, 사용자 그룹 식별자는 클라이언트 장치(110)의 보안 저장소에 저장될 수 있다.
이런 상황에서, 애플리케이션(112)이 하나 이상의 디지털 컴포넌트 슬롯을 포함하는 리소스(또는 애플리케이션 콘텐츠)를 로드할 때, 애플리케이션(112)은 각 슬롯에 대한 디지털 컴포넌트를 요청할 수 있다. 일부 구현에서, 디지털 컴포넌트 슬롯은 애플리케이션(112)이 디지털 컴포넌트를 선택하고 그리고 클라이언트 장치(110)의 사용자에게 제시하기 위해 애플리케이션(112)에 디지털 컴포넌트를 제공하는 디지털 컴포넌트 분배 시스템으로부터 디지털 컴포넌트를 요청하게 하는 코드(예를 들어, 스크립트)를 포함할 수 있다.
도 3은 디지털 컴포넌트를 요청하고 수신하기 위한 예시적인 프로세스(300)를 예시하는 스윔 레인 다이어그램이다. 프로세스(300)의 동작은 예를 들어 클라이언트 장치(110), SSP(170), 하나 이상의 DSP(150), 및 퍼블리셔(140)에 의해 구현될 수 있다. 프로세스(300)의 동작은 또한 비일시적일 수 있는 하나 이상의 컴퓨터 판독 가능 매체에 저장된 명령어로서 구현될 수 있으며, 하나 이상의 데이터 처리 장치에 의한 명령어의 실행은 하나 이상의 데이터 처리 장치가 프로세스(300)의 동작을 수행하게 할 수 있다.
이 예에서, 클라이언트 장치(110)의 사용자는 웹 브라우저 또는 네이티브 애플리케이션과 같은 애플리케이션(112)을 사용하여 디지털 컴포넌트 슬롯을 포함하는 전자 리소스(예를 들어, 웹 페이지 또는 애플리케이션 페이지)에 액세스한다.
애플리케이션(112)은 디지털 컴포넌트 슬롯을 포함하는 웹 페이지를 로드한 후 클라이언트 장치(110)의 사용자가 할당된 하나 이상의 사용자 그룹에 기초하여 디지털 컴포넌트에 대한 요청을 디지털 컴포넌트 제공자에게 전송한다. 일부 구현에서, 디지털 컴포넌트에 대한 요청은 애플리케이션을 위한 디지털 컴포넌트를 획득하는 프로세스를 자동화하는 하드웨어 및/또는 소프트웨어인 공급측 플랫폼(SSP)(170)으로 전송된다.
디지털 컴포넌트에 대한 요청은 클라이언트 장치(110)에 저장된 사용자 그룹 식별자의 제1 세트를 사용하여, 애플리케이션(112) 또는 클라이언트 장치의 운영 체제에 의해 생성된 블룸 필터 또는 쿠쿠 필터와 같은 확률적 데이터 구조를 포함한다. 예를 들어, 사용자 그룹 식별자의 제1 세트는 클라이언트 장치(110)에 저장된 사용자 그룹 목록(114)의 사용자 그룹 식별자일 수 있다. 일부 구현에서, 확률적 데이터 구조는
사용자 그룹 식별자의 제1 세트로부터 하나 이상의 진짜 그룹 식별자를 제거하고 그리고 그룹 식별자의 제1 세트에 속하지 않는 하나 이상의 가짜 그룹 식별자를 추가함으로써 그룹 식별자의 제1 세트로부터 생성된 그룹 식별자의 제2 세트에 기초한다. 확률적 데이터 구조는 해시된 출력이 모든 사용자 그룹 식별자에 걸쳐 균일한 분포를 갖도록 각 사용자 그룹 식별자의 해시된 출력을 생성하는 랜덤 해시 함수를 기반으로 할 수 있다.
디지털 컴포넌트에 대한 요청을 수신하면, SSP(170)는 애플리케이션과 함께 프리젠테이션을 위해 디지털 컴포넌트를 배포하는 프로세스를 자동화하는 하드웨어 및/또는 소프트웨어로 구현된 기술 플랫폼 유형인 하나 이상의 디지털 컴포넌트 제공자 및/또는 하나 이상의 DSP(150)와 상호작용할 수 있다. 일부 구현들에서, SSP(170)는 확률적 데이터 구조를 DSP(150)에 전송할 수 있다.
DSP(150)는 확률적 데이터 구조에 의해 표현되는 사용자 그룹 식별자 중 하나와 매칭하는 해당 사용자 그룹 식별자를 갖지 않는 디지털 컴포넌트를 필터링함으로써 이용가능한 디지털 컴포넌트 세트로부터 하나 이상의 디지털 컴포넌트를 선택한다. 일부 구현에서, DSP(150)는 각각의 이용가능한 디지털 컴포넌트와 관련된 각각의 사용자 그룹 식별자에 대해 애플리케이션(112)과 동일한 해시 함수를 사용하여 해시된 출력을 생성할 수 있다. 그러한 구현에서, 해시된 출력은 확률적 데이터 구조 내에서 검색되고, 사용자 그룹 식별자의 해당 해시 값이 없는 디지털 컴포넌트는 선택 프로세스에서 필터링된다.
DSP(150)는 하나 이상의 선택된 디지털 컴포넌트 각각을 분석하고 스코어링(scoring)함으로써 디지털 컴포넌트(예를 들어, 상위 N개의 디지털 컴포넌트)를 더 선택할 수 있다. DSP(150)는 선택된 디지털 컴포넌트를 SSP로 전송한다. DSP(150)로부터 선택된 디지털 컴포넌트를 수신한 후, SSP(170)는 퍼블리셔(140)에 의해 설정된 기준 및/또는 조건에 기초하여 클라이언트 장치 상의 프리젠테이션을 위해 디지털 컴포넌트가 제공될 수 있게 하기 전에 디지털 컴포넌트 세트(예: top-K 디지털 컴포넌트)를 검토하고 선택할 수 있다. 예를 들어, SSP(170)는 디지털 컴포넌트의 콘텐츠 및 형식(포맷)을 검토하여, 다양한 기준을 충족하는지, 예를 들어 특정 유형의 콘텐츠를 포함하지 않는지, 데이터 및/또는 디스플레이 크기 요구사항을 충족하는지 등을 확인할 수 있다. 디지털 컴포넌트 세트는 클라이언트 장치(110)에서 실행되는 애플리케이션(112)으로 전송된다.
디지털 컴포넌트 세트를 수신한 후 클라이언트 장치(110)에서 실행하는 애플리케이션(112)은 디지털 컴포넌트 세트로부터, 사용자 그룹 식별자의 제1 세트, 예를 들어 사용자 그룹이 사용자 그룹 목록(114)에서 식별하는 진짜 사용자 식별자 중 하나와 매칭하는 해당 사용자 그룹 식별자를 갖지 않는 하나 이상의 디지털 컴포넌트를 필터링함으로써 디지털 컴포넌트의 필터링된 서브세트를 선택할 수 있다. 디지털 컴포넌트 세트로부터 하나 이상의 디지털 컴포넌트를 필터링하기 위해, 애플리케이션(112)은 디지털 컴포넌트 세트, 예를 들어, 디지털 컴포넌트에 대한 메타데이터에서 각각의 디지털 컴포넌트에 대한 하나 이상의 대응하는 사용자 그룹 식별자를 식별한다. 식별 후, 애플리케이션(112)은 각각의 디지털 컴포넌트에 대한 각각의 사용자 그룹 식별자를 사용자 그룹 식별자의 제1 세트의 진짜 사용자 그룹 식별자와 비교하여, 사용자 그룹 식별자의 제1 세트의 진짜 사용자 그룹 식별자 중 하나와 매칭하는 해당 사용자 그룹 식별자를 갖지 않는 디지털 컴포넌트를 제거한다.
마지막으로 필터링된 디지털 컴포넌트 서브세트의 디지털 컴포넌트를 분석하여 소정의 디지털 컴포넌트를 선택한다. 선택 후, 소정의 디지털 컴포넌트는 클라이언트 장치에 제공된다(예를 들어, 디지털 컴포넌트 슬롯에서 렌더링됨).
애플리케이션(112)을 사용하는 클라이언트 장치(110)의 사용자는 전자 리소스로 이동한다(302). 예를 들어, 클라이언트 장치(110)의 사용자는 참조(예를 들어, URL)를 지정함으로써 웹사이트(142)를 방문하기 위해 브라우저를 사용할 수 있다. 다른 예에서, 클라이언트 장치(110)의 사용자는 웹사이트를 크롤링(crawling)하고 인덱싱함으로써(예를 들어, 웹사이트의 크롤링된 콘텐츠에 기초하여 인덱싱됨) 웹사이트를 식별하는 검색 쿼리를 검색 시스템에 제출하기 위해 웹 브라우저를 사용할 수 있다. 이에 응답하여, 검색 시스템은 검색 결과의 형태로 웹사이트를 식별하고 검색 결과 페이지에서 검색 결과를 클라이언트 장치(110)에 리턴한다. 검색 결과를 본 후, 클라이언트 장치(110)의 사용자는 웹사이트(142)에 대응하는 검색 결과를 선택 및/또는 클릭할 수 있다. 또 다른 예에서, 사용자는 애플리케이션의 퍼블리셔(140)로부터 콘텐츠를 요청하는 네이티브 애플리케이션을 시작할 수 있다.
클라이언트 장치(110)는 콘텐츠에 대한 요청을 생성하고 네트워크(105)를 통해 웹 서버(304)로 요청을 전송한다. 예를 들어, 클라이언트 장치(110)의 사용자가 웹사이트(142)에 대응하는 검색 결과를 클릭 및/또는 선택하거나 참조(예를 들어, URL)를 사용하여 웹사이트(142)를 직접 지정한 후, 애플리케이션(112), 즉 클라이언트 장치(110)에서 실행되는 웹 브라우저는 디지털 콘텐츠(즉, 웹사이트(142))에 대한 요청을 생성하고 이를 네트워크(105)를 통해 웹 서버로 전송한다.
디지털 콘텐츠에 대한 요청은 예를 들어 패킷화된 네트워크(105)를 통해 전송될 수 있고, 콘텐츠 요청 자체는 헤더 및 페이로드 데이터를 갖는 패킷화된 데이터로서 포맷될 수 있다. 헤더는 패킷의 목적지를 지정할 수 있고, 페이로드 데이터는 위에서 설명된 정보를 포함할 수 있다.
퍼블리셔(140), 예를 들어 웹 서버 또는 퍼블리셔(140)의 콘텐츠 서버는 콘텐츠로 응답한다(306). 예를 들어, 클라이언트 장치(110)로부터 콘텐츠에 대한 요청(즉, 웹사이트(142)에 대한 요청)을 수신한 후, 서버는 클라이언트 장치(110)에서 웹 페이지의 표시를 개시하는 컴퓨터 실행 가능 명령어 및 데이터를 전송함으로써 응답할 수 있다. 응답은 예를 들어 패킷화된 네트워크(105)를 통해 전송되는 웹 페이지와 관련된 데이터를 포함할 수 있고, 콘텐츠 자체는 패킷화된 데이터로 포맷될 수 있다.
클라이언트 장치(110)는 전자 리소스에서 디지털 컴포넌트에 대한 태그를 식별한다(308). 퍼블리셔(140)로부터 전자 자원(리소스) 또는 전자 자원에 대한 콘텐츠를 수신한 후, 애플리케이션(112)은 하나 이상의 태그, 예를 들어 전자 자원의 디지털 컴포넌트 슬롯에 대한 하나 이상의 태그를 식별할 수 있다. 예를 들어, 웹 브라우저는 웹 페이지에서 하나 이상의 디지털 컴포넌트 슬롯을 식별할 수 있다.
클라이언트 장치(110)는 확률적 데이터 구조를 생성한다(310). 이전에 언급했듯이, 확률적 데이터 구조는 사용자 그룹 식별자의 제1 세트로부터 진짜 그룹 식별자를 무작위로(또는 의사랜덤하게) 제거하고 그리고 사용자 그룹 식별자의 제1 세트의 진짜 사용자 그룹 식별자에 속하지 않는 가짜 그룹 식별자를 무작위로(또는 의사 무작위로) 추가함으로써 그룹 식별자의 제1 세트로부터 생성된 그룹 식별자의 제2 세트에 기초할 수 있다. 확률적 데이터 구조는 해시된 출력이 모든 사용자 그룹 식별자에 걸쳐 균일하게 분포되도록 각 사용자 그룹 식별자의 해시된 출력을 생성하는 랜덤 해시 함수를 기반으로 한다. 확률적 데이터 구조의 예로는 블룸 필터와 쿠쿠 필터가 있다. 확률적 데이터 구조를 생성하기 위한 예시적인 프로세스가 도 4를 참조하여 아래에서 설명된다.
클라이언트 장치(110)는 디지털 컴포넌트에 대한 요청을 SSP(170)로 전송한다(312). 클라이언트 장치(110)는 SSP(170)의 컴퓨팅 시스템으로 요청을 전송할 수 있으며, 이는 또한 수신자 컴퓨팅 시스템으로도 지칭될 수 있다. 예를 들어, 애플리케이션(112)은 하나 이상의 디지털 컴포넌트 슬롯에 기초하여 디지털 컴포넌트에 대한 하나 이상의 요청을 생성할 수 있다. 특정 예에서, 웹 브라우저는 태그에 기초하여 디지털 컴포넌트에 대한 요청을 생성하고 네트워크(105)를 통해 SSP(170)에 요청을 전송할 수 있다.
일부 구현들에서, 디지털 컴포넌트들에 대한 요청은 클라이언트 장치(110)(도 4를 참조하여 설명됨)에 의해 생성된 확률적 데이터 구조를 포함할 수 있다. 예를 들어, 웹 브라우저 애플리케이션(112)은 확률적 데이터 구조를 포함하는 디지털 컴포넌트에 대한 요청을 생성한다. 확률적 데이터 구조는 클라이언트 장치(110)의 사용자가 연관되어 있는 사용자 그룹 목록(114)의 사용자 그룹 식별자를 기반으로 하는 사용자 그룹 식별자의 제2 세트를 나타내고, 디지털 컴포넌트에 대한 요청을 SSP(170)에 전송한다.
일부 구현에서, 디지털 컴포넌트에 대한 요청은 컨텍스트 데이터와 같은 추가 데이터를 포함할 수도 있다. 컨텍스트 데이터는 예를 들어 리소스에 대한 리소스 로케이터, 예를 들어 웹 페이지에 대한 URL(Universal Resource Locator) 또는 애플리케이션 콘텐츠에 대한 URI(Universal Resource Identifier), 언어(예: 콘텐츠를 렌더링하는 애플리케이션에서 콘텐츠를 표시하는 언어) 및/또는 클라이언트의 대략적인(coarse) 위치를 나타내는 대략적인 지리적 위치 정보를 포함할 수 있다.
디지털 컴포넌트에 대한 요청은 예를 들어 패킷화된 네트워크(105)를 통해 전송될 수 있고, 컴포넌트 요청 자체는 헤더 및 페이로드 데이터를 갖는 패킷화된 데이터로서 포맷될 수 있다. 헤더는 패킷의 목적지를 지정할 수 있고, 페이로드 데이터는 위에서 설명된 정보를 포함할 수 있다.
SSP(170)는 디지털 컴포넌트에 대한 요청을 하나 이상의 DSP(150)로 전송한다(314). 앞서 언급한 바와 같이, 디지털 컴포넌트 제공자(160)는 애플리케이션과 함께 표시하기 위해 디지털 컴포넌트를 배포하는 프로세스를 자동화하도록 하나 이상의 DSP(150)를 사용할 수 있다. 요청을 수신한 후, SSP(170)는 하나 이상의 DSP와 상호작용할 수 있고, 확률적 데이터 구조 및 선택적으로 컨텍스트 데이터를 포함하는 디지털 컴포넌트에 대한 해당 요청을 전송할 수 있다.
DSP(150)는 확률적 데이터 구조에 기초하여 디지털 컴포넌트를 필터링한다(316). 일부 구현들에서, DSP(150)는 확률적 데이터 구조에서 사용자 그룹 식별자들 중 하나와 매칭하는 해당 사용자 그룹 식별자를 갖지 않는 디지털 컴포넌트들을 필터링함으로써 디지털 컴포넌트 세트로부터 하나 이상의 디지털 컴포넌트들을 선택한다. 그러한 구현들에서, DSP(150)는 DSP(150)에 대해 알려진 각각의 사용자 그룹 식별자에 대해 클라이언트 장치(110)와 동일한 해시 함수를 사용하여 해시된 출력을 생성할 수 있다. 그러한 구현에서, DSP(150)는 DSP(150)에 의해 알려지거나 관리되는 각각의 사용자 그룹 식별자에 대한 확률적 데이터 구조 내에서 해시된 출력을 검색할 수 있다. DSP(150)는 해시된 출력이 확률적 데이터 구조에서 발견되지 않는 해당 사용자 그룹 식별자를 갖지 않는 각각의 디지털 컴포넌트를, 요청에 응답하여 제공하기 위한 후보 디지털 컴포넌트 세트로부터, 필터링할 수 있다. 예를 들어, DSP(150)에 의해 배포된 디지털 컴포넌트의 적어도 일부는 디지털 컴포넌트와 관련된 사용자 그룹에 대한 하나 이상의 사용자 그룹 식별자를 가질 수 있다. 특정 예에서, 특정 신발 한 켤레에 대한 콘텐츠를 포함하는 디지털 컴포넌트는 대응하는 사용자 그룹 식별자로서 "신발" 그룹, "의류" 그룹 및 "풋웨어(Footwear)" 그룹에 대한 식별자를 가질 수 있다.
이러한 구현은 확률적 데이터 구조의 FPR(false positive rate)을 활용할 수 있다. 이 문서 전체에서 사용된 "FPR(false positive rate)"이라는 문구는 확률 데이터 구조와 관련된 예상 비율 또는 거짓 포지티브 수(number of false positives)를 식별하는 값을 나타낸다. FPR(false positive rate)은 예를 들어 확률적 데이터 구조 및 확률적 데이터 구조의 크기에 대해 선택된 알고리즘 및 파라미터의 함수일 수 있다. 따라서 이러한 파라미터를 조정하여 FPR(false positive rate)을 조정할 수 있다.
예를 들어, 확률 데이터 구조가 1%의 FPR(false positive rate)을 갖는 블룸 필터라고 가정한다. 또한 DSP(150)가 백만 사용자 그룹을 위한 디지털 컴포넌트의 프로비저닝을 인식하고 관리한다고 가정한다. 또한 사용자가 이러한 사용자 그룹 중 10개의 구성원이라고 가정한다. 그러한 FPR(false positive rate)은 DSP(150)에 알려진 모든 사용자 그룹 식별자의 풀(pool)을 사용자 그룹 식별자의 약 1%로 축소할 수 있으며, 결과적으로 필터링 후 선택 프로세스에 남아 있는 후보 디지털 컴포넌트의 수가 감소한다. 예를 들어, 10,000개의 거짓 포지티브 사용자 그룹 식별자와 10개의 참 포지티브 사용자 그룹 식별자가 있을 수 있다. 이는 DSP(150)가 백만 사용자 그룹에 대한 디지털 컴포넌트를 평가하는 시간과 계산 자원을 낭비할 필요가 없기 때문에 DSP(150)에 대한 더 나은 계산 성능 및 사용자 경험을 개선하는 더 빠른 응답 시간을 초래할 수 있다.
DSP(150)는 확률적 데이터 구조에 기초하여 디지털 컴포넌트를 필터링한 후 하나 이상의 디지털 컴포넌트를 선택한다(318). 일부 구현들에서, DSP(150)는 하나 이상의 선택된 디지털 컴포넌트들 각각을 분석하고 스코어링함으로써 디지털 컴포넌트들(예를 들어, 상위 N개의 디지털 컴포넌트들)을 더 선택할 수 있다. 이 스코어링은 예를 들어 컨텍스트 데이터, 디지털 컴포넌트의 예상 성능 및/또는 추가 정보를 기반으로 할 수 있다.
DSP(150)는 선택된 하나 이상의 디지털 컴포넌트에 대한 데이터를 SSP(170)로 전송한다(320). 예를 들어, DSP(150)는 하나 이상의 선택된 디지털 컴포넌트 또는 디지털 컴포넌트를 식별하는 데이터(예: 디지털 컴포넌트를 표시하기 위한 명령어가 포함된 크리에이티브 요소)를 전송함으로써 SSP(170)의 디지털 컴포넌트에 대한 요청에 응답할 수 있다. 각 디지털 컴포넌트에 대해, DSP(150)는 또한 디지털 컴포넌트에 대한 선택 파라미터를 생성하거나 선택할 수 있다. 그런 다음 DSP(150)는 디지털 컴포넌트에 대한 선택 파라미터 및 데이터를 SSP(170)에 전송할 수 있다. 각 디지털 컴포넌트(또는 그 데이터)는 추가 데이터, 예를 들어 디지털 컴포넌트에 대응하는 사용자 그룹 식별자를 나타내는 메타데이터를 포함할 수 있다.
일부 구현에서, DSP(150)는 또한 확률적 데이터 구조와 독립적이고 따라서 사용자의 그룹 구성원과 무관한 컨텍스트 데이터에 기초하여 하나 이상의 디지털 컴포넌트를 선택할 수 있다. 이러한 디지털 컴포넌트는 컨텍스트 디지털 컴포넌트라고도 할 수 있다.
SSP(170)는 디지털 컴포넌트 세트(322)를 선택한다. 예를 들어, DSP(150)로부터 하나 이상의 선택된 디지털 컴포넌트에 대한 데이터를 수신한 후, SSP(170)는 디지털 컴포넌트 세트(예를 들어, top-K 디지털 컴포넌트)를 검토하고 선택할 수 있다. 예를 들어, SSP(170)는 디지털 컴포넌트의 콘텐츠 및 형식(포맷)을 검토하여 다양한 기준을 충족하는지, 예를 들어 특정 유형의 콘텐츠를 포함하지 않는지, 데이터 및/또는 디스플레이 크기 요구사항을 충족하는지 등을 확인할 수 있다.
일부 구현들에서, SSP(170)는 DSP들(150)로부터 수신된 선택 파라미터들에 적어도 부분적으로 기초하여 디지털 컴포넌트들을 선택한다. 그러한 구현들에서, SSP(170)는 DSP(150)로부터 수신된 선택 파라미터들 중에서 가장 높은 선택 파라미터들을 갖는 디지털 컴포넌트들을 선택할 수 있다.
SSP(170)는 디지털 컴포넌트 세트를 클라이언트 장치(110)에 전송한다(324). 예를 들어, SSP(170)는 디지털 컴포넌트 세트(예: top-K 디지털 컴포넌트)를 선택한 후, 디지털 컴포넌트 세트(또는 디지털 컴포넌트에 대한 데이터)를 네트워크(105)를 통해 클라이언트 장치(110)에서 실행하는 애플리케이션(112)으로 전송한다. 일부 구현들에서, SSP(170)는 디지털 컴포넌트 세트와 함께 선택 파라미터들의 세트를 전송할 수 있다.
일부 구현들에서, SSP(170)에 의해 전송된 디지털 컴포넌트들의 목록은 선택 파라미터들에 기초하여 정렬될 수 있다. 이는 애플리케이션(112)이 실제 선택 파라미터를 알지 않고도 디지털 컴포넌트를 선택할 수 있게 한다. 디지털 컴포넌트의 목록은 또한 각 디지털 컴포넌트에 대해 디지털 컴포넌트에 대응하는 사용자 그룹 식별자를 나타내는 데이터를 포함할 수 있다. 이는 애플리케이션(112)이 사용자가 구성원이 아닌 사용자 그룹에 대한 디지털 컴포넌트를 필터링(filter out)할 수 있게 한다.
일부 구현에서, 이 목록은 확률적 데이터 구조에 기초하여 선택된 디지털 컴포넌트 및 적어도 하나의 컨텍스트 디지털 컴포넌트를 포함한다. 특정 구현에서, 목록은 예를 들어 가장 높은 것부터 가장 낮은 것까지와 같이 선택 파라미터에 기초한 순서대로 확률적 데이터 구조에 기초하여 선택된 디지털 컴포넌트와 목록의 끝에 있는 하나의 컨텍스트 디지털 컴포넌트(예를 들어, DSP(150)로부터 수신된 모든 컨텍스트 디지털 컴포넌트 중에서 가장 높은 선택 파라미터를 갖는 것)를 포함할 수 있다. 이러한 방식으로, 확률적 데이터 구조에 기초하여 선택된 디지털 컴포넌트 중 어느 것도 사용자의 진짜 사용자 그룹 식별자와 매칭하는 사용자 그룹 식별자를 갖지 않는 경우, 컨텍스트 디지털 컴포넌트는 애플리케이션(112)에 의해 선택되고 제시될 수 있다.
클라이언트 장치(110) 상에서 실행되는 애플리케이션(112)은 디지털 컴포넌트의 필터링된 서브세트를 선택한다(326). SSP(170)로부터 디지털 컴포넌트 세트를 수신한 후 클라이언트 장치에서 실행되는 애플리케이션(112)은, 사용자 그룹 식별자의 제1 세트의 진짜 사용자 식별자 중 하나와 매칭하는 해당 사용자 그룹 식별자를 갖지 않는 하나 이상의 디지털 컴포넌트인, 디지털 컴포넌트 세트로부터 필터링함으로써 필터링된 디지털 컴포넌트의 서브세트를 선택할 수 있다. 예를 들어, 디지털 컴포넌트 세트에서 하나 이상의 디지털 컴포넌트를 필터링하려면, 애플리케이션(112)은 디지털 컴포넌트에 대한 사용자 그룹 식별자 각각을 예를 들어 클라이언트 장치(110)에 저장된 사용자 그룹 목록(114)에 있는 사용자의 진짜 사용자 그룹 식별자와 비교한다.
각각의 디지털 컴포넌트에 대해, 애플리케이션(112)은 디지털 컴포넌트에 대한 하나 이상의 사용자 그룹 식별자를 사용자에 대한 진짜 사용자 그룹 식별자와 비교할 수 있다. 사용자 그룹 식별자 중 어느 것도 매칭하지 않는 경우, 애플리케이션(112)은 디지털 컴포넌트 세트로부터 디지털 컴포넌트를 필터링할 수 있다. 적어도 하나의 사용자 그룹 식별자가 매칭한다면, 애플리케이션(112)은 디지털 컴포넌트 세트에서 디지털 컴포넌트를 유지할 수 있다. 이 필터링은 진짜 사용자 그룹 식별자 중 하나와 매칭하는 해당 사용자 그룹 식별자를 갖지 않는 디지털 컴포넌트 세트에서 하나 이상의 디지털 컴포넌트의 식별로 이어질 수 있다. 디지털 컴포넌트의 필터링된 서브세트는 그 다음 디지털 컴포넌트 세트로부터 식별된 하나 이상의 디지털 컴포넌트를 제거함으로써 애플리케이션(112)에 의해 생성된다.
클라이언트 장치(110)는 디지털 컴포넌트의 필터링된 서브세트로부터 소정의 디지털 컴포넌트를 선택한다(328). 일부 구현들에서, 애플리케이션(112)은 선택 파라미터들에 기초하여, 디지털 컴포넌트 슬롯들에서의 프리젠테이션(표시)을 위한 소정의 디지털 컴포넌트를 선택할 수 있다. 예를 들어, 웹사이트(142)는 하나의 디지털 컴포넌트 슬롯을 갖는다. 선택 프로세스는 가장 높은 선택 파라미터를 갖는 디지털 컴포넌트를 선택하는 것을 포함할 수 있다. 일부 구현들에서, 애플리케이션(112)은 공유되지 않은 사용자 선호도에 기초하여 소정의 디지털 컴포넌트를 선택할 수 있다. 예를 들어, 웹 브라우저 애플리케이션(112)의 사용자는 사용자가 선별한 토픽 목록을 애플리케이션(112)에 제공할 수 있다. 그러한 상황에서, 애플리케이션(112)은 선별된 목록의 토픽(주제) 및 선택 파라미터의 조합에 기초하여 소정의 디지털 컴포넌트를 선택한다. 일부 구현에서, 정렬된 목록이 사용될 때, 애플리케이션(112)은 목록에서 필터링에서 살아남은 상위 나머지 디지털 컴포넌트를 선택한다.
애플리케이션(112)은 소정의 디지털 컴포넌트를 제시한다(330). 예를 들어, 애플리케이션(112)은 퍼블리셔(140)의 전자 자원과 함께 소정의 디지털 컴포넌트를 제시할 수 있다.
도 4는 클라이언트 장치의 사용자가 연관되어 있는 하나 이상의 사용자 그룹에 기초하여 확률적 데이터 구조를 생성하는 프로세스(400)를 예시하는 흐름도이다. 프로세스(400)의 동작은 예를 들어 클라이언트 장치(110)에 의해 구현될 수 있다. 프로세스(400)의 동작은 또한 비일시적일 수 있는 하나 이상의 컴퓨터 판독 가능 매체에 저장된 명령어로서 구현될 수 있으며, 하나 이상의 데이터 처리 장치에 의한 명령어의 실행은 하나 이상의 데이터 처리 장치가 프로세스(400)의 동작을 수행하게 할 수 있다.
사용자가 구성원인 사용자 그룹을 식별하는 진짜 사용자 그룹 식별자의 제1 세트가 획득된다(410). 앞서 도 2를 참조하여 언급한 바와 같이, 클라이언트 장치(110)의 사용자는 하나 이상의 사용자 그룹과 연관될 수 있다. 다시 말해서, 클라이언트 장치(110)의 사용자는 하나 이상의 사용자 그룹의 구성원일 수 있다. 각각의 사용자 그룹은 사용자의 개인정보를 유지하기 위해 클라이언트 장치(110)에 저장된 사용자 그룹 식별자에 의해 식별된다. 예를 들어, 웹 브라우저와 같은 애플리케이션(112)은 하나 이상의 사용자 그룹 식별자를 포함하는 사용자 그룹 목록(114)을 유지하고 이를 클라이언트 장치에 저장할 수 있다. 이러한 하나 이상의 사용자 그룹 식별자는 사용자가 실제로 구성원인 진짜 사용자 그룹 식별자의 제1 세트를 형성한다.
사용자 그룹 식별자의 제2 세트를 생성하기 위해 사용자 그룹 식별자의 제1 세트로부터 0개 이상의 진짜 사용자 그룹 식별자가 제거된다(420). 일부 구현들에서, 애플리케이션은 사용자 그룹 식별자의 제1 세트로부터 제거될 하나 이상의 진짜 사용자 그룹 식별자들을 무작위로 또는 의사-무작위로 선택한다. 예를 들어, 애플리케이션(112)에 의해 유지되는 사용자 그룹 목록(114)이 5개의 사용자 그룹 식별자 S1, S2, S3, S4 및 S5를 포함한다고 가정한다. 또한 S2와 S5가 무작위로 선택되어 제거된다고 가정한다. 이러한 시나리오에서 사용자 그룹 식별자의 제2 세트는 S1, S3 및 S4를 포함한다. 일부 구현에서, 애플리케이션(112)은 예를 들어 타겟 개인정보(privacy) 레벨에 따라 임의의 진짜 사용자 그룹 식별자를 제거하지 않을 수 있다.
사용자가 구성원이 아닌 사용자 그룹에 대한 하나 이상의 가짜 사용자 그룹 식별자가 사용자 그룹 식별자의 제2 세트에 추가된다(430). 일부 구현에서, 애플리케이션(112)은 사용자 그룹 식별자의 제2 세트에 추가하기 위해 무작위로 또는 의사 무작위로 하나 이상의 가짜 사용자 그룹을 선택한다. 가짜 사용자 그룹 식별자는 사용자가 구성원이 아닌 사용자 그룹을 위한 것이다. 예를 들어, 선택된 둘 이상의 가짜 사용자 그룹 식별자가 S23 및 S27을 포함하고 그리고 사용자가 이러한 사용자 그룹 식별자에 해당하는 그룹의 구성원이 아니라고 가정한다. 이러한 시나리오에서, 사용자 그룹 식별자의 제2 세트는 S1, S3, S4, S23 및 S27을 포함한다.
일부 구현에서 가짜 사용자 그룹 식별자는 실제로 사용자 그룹을 전혀 나타내지 않는다. 예를 들어, 애플리케이션(112)은 DSP(150)에 의해 관리되는 모든 사용자 그룹을 인식하지 못할 가능성이 높다. 사용자가 구성원이 아닌 사용자 그룹에서 선택하는 대신, 애플리케이션(112)은 임의의 영숫자 시퀀스일 수 있는 가짜 사용자 그룹 식별자를 생성할 수 있다. 이러한 방식으로 사용자 그룹 식별자를 추가 및 제거함으로써, 애플리케이션(112)은 각 사용자에 대한 차등 개인정보를 달성할 수 있다.
사용자 그룹 식별자의 제2 세트의 각 사용자 그룹 식별자에 대해 해시된 출력이 생성된다(440). 해시된 출력이 모든 사용자 그룹 식별자에 균일하게 분포되도록 해시가 생성될 수 있다. 앞서 언급했듯이, 해시 함수를 사용하여 사용자 그룹 식별자의 제2 세트의 각 사용자 그룹 식별자에 대한 해시된 출력을 생성할 수 있다. 예를 들어, 애플리케이션(112)은 보안 해시 알고리즘(SHA256)을 사용하여 구현된 키 해시 메시지 인증 코드(HMAC)를 사용하며, 이는 사용자 그룹 식별자의 제2 세트에서 각 사용자 그룹 식별자의 해시된 256비트(32바이트) 출력을 생성하기 위한 다이제스트 길이가 256비트인 암호화 해시 함수이다.
그룹 식별자의 제2 세트의 각 사용자 그룹 식별자의 해시된 출력을 포함하는 확률적 데이터 구조가 생성된다(450). 일부 구현에서, 블룸 필터 또는 쿠쿠 필터와 같은 확률적 데이터 구조는 사용자 그룹 식별자에 관한 정보를 클라이언트 장치(110)로부터 SSP(170)로 전송하는 데 사용될 수 있는 공간 효율적인 데이터 구조를 생성하는 데 사용된다. 예를 들어, 애플리케이션(112)에 의해 유지되는 사용자 그룹 목록(114)이 200개의 사용자 그룹 식별자를 포함한다고 가정한다. HMAC-SHA256을 사용하는 단일 사용자 그룹 식별자의 해시된 출력 크기는 256비트이다. 이러한 경우에 사용자 그룹 목록(114)에 있는 모든 200개의 사용자 그룹 식별자의 해시된 출력의 총 크기는 51,200비트(즉, 6.4kB)가 될 것이다. 1% 거짓 포지티브 확률로 블룸 필터를 사용할 때 각 사용자 그룹 식별자는 10비트 미만으로 나타낼 수 있다. 이러한 경우, 사용자 그룹 목록(114)의 200개의 사용자 그룹 식별자는 2000비트(즉, 250바이트)를 사용하여 표현될 수 있다.
일부 구현에서, 애플리케이션(112)은 애플리케이션(112)에 의해 전송된 디지털 컴포넌트에 대한 각각의 요청에 대한 새로운 확률적 데이터 구조를 생성한다. 이러한 방식으로 데이터 구조는 무작위 또는 의사 무작위로 추가 및 제거된 사용자 그룹 식별자를 기반으로 각 요청에 대해 다르다. 이는 DSP(150)가 사용자 그룹 구성원에 기초하여 사용자를 추적하는 것을 방지한다. DSP의 150개 사용자 그룹 식별자는 경우에 따라 확률적 데이터 구조를 변경하여 제거될 수 있으므로, DSP의 150명의 사용자 그룹 식별자는 적어도 하나의 확률적 데이터 구조로 표현될 가능성이 높다. 일부 구현에서, 애플리케이션(112)은, 애플리케이션(112)이 방문한 각 도메인에 대해 새로운 확률 데이터 구조를 생성하지만 동일한 도메인으로부터의 다중 요청에 대해 동일한 확률 데이터 구조를 사용한다.
도 5는 위에서 설명된 동작을 수행하는 데 사용될 수 있는 예시적인 컴퓨터 시스템(500)의 블록도이다. 시스템(500)은 프로세서(510), 메모리(520), 저장 장치(530), 및 입/출력 장치(540)를 포함한다. 컴포넌트(510, 520, 530, 540) 각각은 예를 들어 시스템 버스(550)를 사용하여 상호연결될 수 있다. 프로세서(510)는 시스템(500) 내에서 실행하기 위한 명령어을 처리할 수 있다. 일부 구현에서, 프로세서(510)는 단일 스레드 프로세서이다. 다른 구현에서, 프로세서(510)는 다중 스레드 프로세서이다. 프로세서(510)는 메모리(520) 또는 저장 장치(530)에 저장된 명령어를 처리할 수 있다.
메모리(520)는 시스템(500) 내의 정보를 저장한다. 일 구현에서, 메모리(520)는 컴퓨터 판독가능 매체이다. 일부 구현에서, 메모리(520)는 휘발성 메모리 유닛이다. 다른 구현에서, 메모리(520)는 비휘발성 메모리 유닛이다.
저장 장치(530)는 시스템(500)에 대용량 저장 장치를 제공할 수 있다. 일부 구현에서, 저장 장치(530)는 컴퓨터 판독 가능 매체이다. 다양한 다양한 구현에서, 저장 장치(530)는 예를 들어 하드 디스크 장치, 광 디스크 장치, 네트워크를 통해 여러 컴퓨팅 장치(예: 클라우드 저장 장치)에 의해 공유되는 저장 장치, 또는 일부 다른 대용량 저장 장치를 포함할 수 있다.
입/출력 장치(540)는 시스템(500)에 대한 입/출력 동작을 제공한다. 일부 구현에서, 입/출력 장치(540)는 네트워크 인터페이스 장치(예: 이더넷 카드), 직렬 통신 장치(예: RS-232 포트), 및/또는 무선 인터페이스 장치(예: 802.11 카드) 중 하나 이상을 포함할 수 있다. 다른 구현에서, 입/출력 장치는 입력 데이터를 수신하고 출력 데이터를 외부 장치(560), 예를 들어, 키보드, 프린터 및 디스플레이 장치로 보내도록 구성된 드라이버 장치를 포함할 수 있다. 그러나, 모바일 컴퓨팅 장치, 모바일 통신 장치, 셋톱 박스 텔레비전 클라이언트 장치 등과 같은 다른 구현도 사용될 수 있다.
예시적인 처리 시스템이 도 5에 설명되어 있지만, 본 명세서에 기술된 주제 및 기능적 동작의 구현은 다른 유형의 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어(본 명세서에 개시된 구조 및 그 구조적 등가물 포함), 또는 이들 중 하나 이상의 조합으로 구현될 수 있다.
본 명세서에 기술된 요지 및 동작의 실시예는 디지털 전자 회로, 또는 본 명세서에 개시된 구조 및 그 구조적 등가물을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 기술된 요지의 실시예는 하나 이상의 컴퓨터 프로그램, 즉, 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 저장 매체(미디어)에 인코딩된 컴퓨터 프로그램 명령어의 하나 이상의 모듈로서 구현될 수 있다. 대안으로 또는 추가적으로, 프로그램 명령어는 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위해 생성된 인공적으로 생성된 전파 신호, 예를 들어 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 장치, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 장치, 또는 이들 중 하나 이상의 조합일 수 있거나 이에 포함될 수 있다. 더욱이, 컴퓨터 저장 매체는 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령어의 소스 또는 목적지가 될 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 물리적 컴포넌트 또는 매체(예: 다중 CD, 디스크 또는 기타 저장 장치)일 수 있거나 이에 포함될 수 있다.
본 명세서에서 설명되는 동작들은 하나 이상의 컴퓨터 판독 가능 저장 장치에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치가 수행하는 동작으로 구현될 수 있다.
"데이터 처리 장치"라는 용어는 데이터를 처리하기 위한 모든 종류의 장치, 장치 및 기계를 포함하며, 예를 들어 프로그래밍 가능한 프로세서, 컴퓨터, 칩 시스템 상의 시스템, 또는 전술한 것들의 다중 또는 조합을 포함한다. 장치는 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)와 같은 특수 목적 논리 회로를 포함할 수 있다. 장치는 하드웨어 외에도 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드(예: 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 플랫폼 간 런타임 환경을 구성하는 코드), 가상 머신, 또는 이들 중 하나 이상의 조합을 포함할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은 컴파일 또는 해석된 언어, 선언적 또는 절차적 언어를 포함한 모든 형태의 프로그래밍 언어로 작성할 수 있다. 독립 실행형 프로그램 또는 모듈, 컴포넌트, 서브루틴, 객체 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하여 모든 형태로 분배될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있지만 반드시 그런 것은 아니다. 프로그램은 다른 프로그램이나 데이터를 포함하는 파일의 일부(예: 마크업 언어 문서에 저장된 하나 이상의 스크립트), 해당 프로그램 전용 단일 파일 또는 여러 조정 파일(예: 하나 이상의 모듈, 하위 프로그램 또는 코드 부분을 저장하는 파일)에 저장할 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트에 분산되어 있고 통신 네트워크로 상호 연결된 여러 컴퓨터에서 실행되도록 분배될 수 있다.
본 명세서에 설명된 프로세스 및 논리 흐름은 입력 데이터에 대해 작동하고 출력을 생성함으로써 동작을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능한 프로세서에 의해 수행될 수 있다. 프로세스 및 논리 흐름 그리고 장치는 또한 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)와 같은 특수 목적 논리 회로에 의해 수행될 수 있고, 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어 범용 및 특수 목적 마이크로프로세서, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로 프로세서는 읽기 전용 메모리나 랜덤 액세스 메모리 또는 둘 다에서 명령어과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령어에 따라 동작을 수행하기 위한 프로세서와 명령어 및 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어 자기, 광자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 이들로 데이터를 전송하거나 둘 다 포함하거나 작동 가능하게 연결된다. 그러나 컴퓨터에는 그러한 장치가 필요하지 않는다. 또한 컴퓨터는, 휴대폰, PDA(personal digital assistant), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS(Global Positioning System) 수신기, 또는 휴대용 저장 장치(예: USB(Universal Serial Bus) 플래시 드라이브) 등과 같은 다른 장치에 임베딩될 수 있다. 컴퓨터 프로그램 명령어(명령어) 및 데이터를 저장하기에 적합한 장치는 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함하며, 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치와 같은 반도체 메모리 장치; 자기 디스크, 예를 들어 내부 하드 디스크 또는 이동식 디스크; 자기 광 디스크; 그리고 CD ROM 및 DVD-ROM 디스크를 포함할 수 있다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에 기술된 요지의 실시예는 사용자에게 정보를 표시하기 위한 디스플레이 장치, 예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터 및 키보드 및 포인팅 장치, 예를 들어, 마우스 또는 트랙볼을 갖는 컴퓨터에서 구현될 수 있으며, 이를 통해 사용자는 컴퓨터에 입력을 제공할 수 있다. 다른 종류의 장치도 사용자와의 상호 작용을 제공하는 데 사용할 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 임의의 형태의 감각적 피드백일 수 있고, 그리고 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함한 모든 형태로 수신될 수 있다. 또한 컴퓨터는 사용자가 사용하는 장치로 문서를 보내고 문서를 수신하여 사용자와 상호 작용할 수 있다. 예를 들어 웹 브라우저에서 수신된 요청에 대한 응답으로 사용자 클라이언트 장치의 웹 브라우저에 웹 페이지를 전송한다.
본 명세서에 기술된 요지의 실시예는 백엔드 컴포넌트(예를 들어 데이터 서버)를 포함하는, 미들웨어 컴포넌트(예: 애플리케이션 서버)를 포함하는, 프론트 엔드 컴포넌트(예를 들어 그래픽 사용자 인터페이스가 있는 클라이언트 컴퓨터 또는 사용자가 본 명세서에 설명된 요지의 구현과 상호작용할 수 있는 웹 브라우저)를 포함하는, 또는 하나 이상의 백엔드, 미들웨어 또는 프론트엔드 컴포넌트의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 통신 네트워크와 같은 디지털 데이터 통신의 모든 형태 또는 매체에 의해 상호 연결될 수 있다. 통신 네트워크의 예는, 근거리 통신망("LAN") 및 광역 네트워크("WAN"), 인터-네트워크(예: 인터넷) 및 P2P 네트워크(예: Ad Hoc peer-to-peer 네트워크)를 포함할 수 있다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램 덕분에 발생한다. 일부 실시예에서, 서버는 데이터(예를 들어, HTML 페이지)를 클라이언트 장치로 전송한다(예를 들어, 클라이언트 장치에 데이터를 표시하고 클라이언트 장치와 상호작용하는 사용자로부터 사용자 입력을 수신하기 위해). 클라이언트 장치에서 생성된 데이터(예: 사용자 상호 작용의 결과)는 서버에서 클라이언트 장치로부터 수신될 수 있다.
본 명세서는 많은 특정 구현 세부사항을 포함하지만, 이는 임의의 발명의 범위 또는 청구될 수 있는 것에 대한 제한으로 해석되어서는 안 되며, 오히려 특정 발명의 특정 실시예에 특정한 특징의 설명으로 해석되어서는 안 된다. 별도의 실시예와 관련하여 본 명세서에 설명된 특정 특징은 단일 실시예에서 조합하여 구현될 수도 있다. 역으로, 단일 실시예의 컨텍스트에서 설명된 다양한 특징은 또한 개별적으로 또는 임의의 적절한 하위 조합으로 다중 실시예에서 구현될 수 있다. 더욱이, 특징들이 특정 조합으로 작용하는 것으로 위에서 설명될 수 있고 심지어 초기에 그렇게 청구될 수도 있지만, 청구된 조합의 하나 이상의 특징이 어떤 경우에는 조합에서 제거될 수 있으며, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 동작이 특정 순서로 도면에 도시되어 있지만, 이는 바람직한 결과를 달성하기 위해 그러한 동작이 도시된 특정 순서 또는 순차적인 순서로 수행되거나 도시된 모든 동작이 수행될 것을 요구하는 것으로 이해되어서는 안 된다. 특정 상황에서는 멀티태스킹과 병렬 처리가 유리할 수 있다. 더욱이, 상술한 실시예에서 다양한 시스템 컴포넌트의 분리가 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 설명된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 여러 소프트웨어 제품에 패키징될 수 있음을 이해해야 한다.
따라서, 요지의 특정 실시예가 설명되었다. 다른 실시예는 다음 청구항의 범위 내에 있다. 어떤 경우에는 청구범위에 인용된 액션이 다른 순서로 수행될 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 또한, 첨부된 도면에 도시된 프로세스는 바람직한 결과를 달성하기 위해 도시된 특정 순서 또는 순차적인 순서를 반드시 필요로 하는 것은 아니다. 특정 구현에서, 멀티태스킹 및 병렬 처리가 유리할 수 있다.

Claims (16)

  1. 컴퓨터로 구현되는 방법으로서,
    사용자를 구성원으로 포함하는 사용자 그룹을 식별하는 진짜(genuine) 사용자 그룹 식별자의 제1 세트를 획득하는 단계;
    상기 진짜 사용자 그룹 식별자의 제1 세트에 기초하여, 상기 사용자에 대한 사용자 그룹 식별자의 제2 세트를 생성하는 단계 -상기 생성하는 단계는,
    상기 사용자 그룹 식별자의 제2 세트를 생성하기 위해 상기 사용자 그룹 식별자의 제1 세트로부터 0개 이상의 진짜 사용자 그룹 식별자를 제거하는 단계; 그리고
    상기 사용자 그룹 식별자의 제2 세트에, 상기 사용자를 구성원으로 포함하지 않는 사용자 그룹에 대한 하나 이상의 가짜(fake) 사용자 그룹 식별자를 추가하는 단계;
    상기 사용자 그룹 식별자의 제2 세트에 기초하여 확률적 데이터 구조를 생성하는 단계;
    상기 확률적 데이터 구조를 수신자 컴퓨팅 시스템에 전송하는 단계;
    상기 확률적 데이터 구조에 기초하여 선택된 적어도 하나의 디지털 컴포넌트를 포함하는 디지털 컴포넌트 세트를 나타내는 데이터를 수신하는 단계;
    상기 디지털 컴포넌트 세트로부터 소정의 디지털 컴포넌트를 선택하는 단계; 그리고
    상기 소정의 디지털 컴포넌트를 제공하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  2. 제1항에 있어서, 상기 사용자 그룹 식별자의 제1 세트로부터 0개 이상의 진짜 사용자 그룹 식별자를 제거하는 단계는 상기 사용자 그룹 식별자의 제1 세트로부터 복수의 진짜 사용자 그룹 식별자를 제거하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  3. 제2항에 있어서, 상기 디지털 컴포넌트 세트는 상기 확률적 데이터 구조에 기초하여 선택되지 않은 하나 이상의 추가 디지털 컴포넌트를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  4. 제2항 또는 제3항에 있어서, 상기 디지털 컴포넌트 세트로부터 소정의 디지털 컴포넌트를 선택하는 단계는,
    상기 진짜 사용자 식별자 중 하나와 매칭하는 해당 사용자 그룹 식별자를 갖지 않는 하나 이상의 디지털 컴포넌트를 상기 디지털 컴포넌트 세트로부터 필터링함으로써 디지털 컴포넌트의 필터링된 서브세트를 생성하는 단계;
    상기 디지털 컴포넌트의 필터링된 서브세트에서 상기 소정의 디지털 컴포넌트를 선택하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  5. 제4항에 있어서, 상기 디지털 컴포넌트 세트로부터, 상기 진짜 사용자 그룹 식별자 중 하나와 매칭하는 해당 사용자 그룹 식별자를 갖지 않는 하나 이상의 디지털 컴포넌트를 필터링하는 단계는,
    상기 디지털 컴포넌트 세트의 각 디지털 컴포넌트에 대해:
    상기 디지털 컴포넌트 세트를 나타내는 데이터에서, 상기 디지털 컴포넌트에 대한 하나 이상의 해당 사용자 그룹 식별자를 식별하는 단계 -각각의 해당 사용자 식별자는 상기 디지털 컴포넌트 세트에 포함하기 위해 상기 디지털 컴포넌트를 선택하는 데 사용되는 사용자 그룹 식별자임-; 그리고
    각각의 해당 사용자 식별자를 상기 사용자 그룹 식별자의 제1 세트 내의 진짜 사용자 그룹 식별자와 비교하는 단계;
    상기 사용자 그룹 식별자의 제1 세트의 진짜 사용자 그룹 식별자 중 하나와 매칭하는 해당 사용자 그룹 식별자를 갖지 않는 각각의 디지털 컴포넌트를 상기 디지털 컴포넌트 세트로부터 제거하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  6. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 디지털 컴포넌트 세트를 나타내는 데이터는 각각이 하나 이상의 해당 사용자 그룹 식별자를 갖는 제1 디지털 컴포넌트를 식별하는 데이터 및 임의의 해당 사용자 그룹 식별자를 갖지 않는 하나 이상의 제2 디지털 컴포넌트를 식별하는 데이터를 포함하고;
    상기 디지털 컴포넌트 세트로부터 소정의 디지털 컴포넌트를 선택하는 단계는 상기 디지털 컴포넌트 세트로부터, 상기 제1 디지털 컴포넌트에 대한 해당 사용자 그룹 식별자 중 어느 것도 진짜 사용자 그룹 식별자와 매칭하지 않는 각각의 제1 디지털 컴포넌트를 제거하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  7. 제6항에 있어서, 상기 디지털 컴포넌트 세트로부터 소정의 디지털 컴포넌트를 선택하는 단계는 상기 제1 디지털 컴포넌트 모두가 상기 디지털 컴포넌트 세트로부터 제거될 때 제2 디지털 컴포넌트를 선택하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  8. 선행하는 청구항 중 어느 한 항에 있어서, 상기 수신자 컴퓨팅 시스템은 상기 확률적 데이터 구조에 기초하여 복수의 사용자 그룹으로부터 사용자 그룹의 서브세트를 선택하고 그리고 상기 사용자 그룹의 서브세트에 대응하는 디지털 컴포넌트 세트를 선택하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  9. 선행하는 청구항 중 어느 한 항에 있어서, 상기 확률적 데이터 구조는 블룸 필터(Bloom filter) 또는 쿠쿠 필터(cuckoo filter)를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  10. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 사용자 그룹 식별자의 제1 세트로부터 하나 이상의 진짜 사용자 그룹 식별자를 제거하는 단계는 상기 하나 이상의 진짜 사용자 그룹 식별자를 무작위로 또는 의사-무작위로 선택하는 단계를 포함하고; 그리고
    상기 그룹 식별자의 제2 세트에 하나 이상의 가짜 사용자 그룹 식별자를 추가하는 단계는 하나 이상의 가짜 사용자 그룹 식별자를 무작위로 또는 의사 무작위로 선택하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  11. 선행하는 청구항 중 어느 한 항에 있어서, 각각의 진짜 사용자 식별자는 (i) 상기 진짜 사용자 그룹 식별자에 의해 식별된 사용자 그룹을 생성한 엔티티의 도메인 및 (ii) 상기 진짜 사용자 그룹 식별자에 의해 식별되는 사용자 그룹에 대한 고유 식별자의 조합에 기초하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  12. 제10항에 있어서, 각각의 진짜 사용자 그룹 식별자는 상기 도메인과 상기 고유 식별자의 조합에 기초하여 생성된 메시지 인증 코드인 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  13. 선행하는 청구항 중 어느 한 항에 있어서, 그룹 식별자의 제2 세트에 기초하여 확률적 데이터 구조를 생성하는 단계는,
    모든 사용자 그룹 식별자에 걸쳐 균일한 분포로 각 사용자 그룹 식별자에 대한 해시된 출력을 생성하는 단계; 그리고
    상기 그룹 식별자의 제2 세트에 있는 각 사용자 그룹 식별자의 해시된 출력을 포함하는 상기 확률적 데이터 구조를 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  14. 시스템으로서:
    하나 이상의 프로세서; 그리고
    상기 하나 이상의 프로세서에 의해 실행될 때 상기 하나 이상의 프로세서로 하여금 선행하는 청구항 중 어느 한 항의 방법을 수행하게 하는 명령어를 저장하는 하나 이상의 저장 장치를 포함하는 것을 특징으로 하는 시스템.
  15. 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금 제1항 내지 제13항 중 어느 한 항의 방법을 수행하게 하는 명령어를 포함하는 컴퓨터 판독 가능 매체.
  16. 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금 제1항 내지 제13항 중 어느 한 항의 방법의 단계를 수행하게 하는 명령어를 포함하는 컴퓨터 프로그램 제품.
KR1020227022122A 2020-09-29 2021-04-20 개인정보 보호를 위한 가산 및 차감 노이즈 KR20220107035A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IL277642A IL277642A (en) 2020-09-29 2020-09-29 Noise protection is added and reduced to protect privacy
IL277642 2020-09-29
PCT/US2021/028170 WO2022071994A1 (en) 2020-09-29 2021-04-20 Additive and subtractive noise for privacy protection

Publications (1)

Publication Number Publication Date
KR20220107035A true KR20220107035A (ko) 2022-08-01

Family

ID=80951582

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227022122A KR20220107035A (ko) 2020-09-29 2021-04-20 개인정보 보호를 위한 가산 및 차감 노이즈

Country Status (7)

Country Link
US (1) US20230052628A1 (ko)
EP (1) EP4066440A1 (ko)
JP (1) JP7448663B2 (ko)
KR (1) KR20220107035A (ko)
CN (1) CN114930334A (ko)
IL (1) IL277642A (ko)
WO (1) WO2022071994A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102669482B1 (ko) * 2023-06-21 2024-05-27 인스피언 주식회사 데이터 관리 장치, 데이터 관리 방법 및 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2702747A1 (en) * 2011-04-25 2014-03-05 Alcatel-Lucent Privacy protection in recommendation services
EP2688264B1 (en) * 2012-07-16 2016-08-24 Alcatel Lucent Method and apparatus for privacy protected clustering of user interest profiles
US10430830B2 (en) * 2015-06-16 2019-10-01 Samsung Electronics Co., Ltd. Advertisement selection using uncertain user data
US20170017973A1 (en) * 2015-07-13 2017-01-19 Iperceptions Inc. Method and survey server for generating predictive survey participation patterns using online profile data
US20170091824A1 (en) * 2015-09-25 2017-03-30 The Provost, Fellows, Foundation Scholars, And The Other Members Of The Board Method and system for providing item recommendations in a privacy-enhanced manner
WO2018034192A1 (ja) * 2016-08-19 2018-02-22 日本電気株式会社 情報処理装置、情報処理方法、及び、記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102669482B1 (ko) * 2023-06-21 2024-05-27 인스피언 주식회사 데이터 관리 장치, 데이터 관리 방법 및 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체

Also Published As

Publication number Publication date
CN114930334A (zh) 2022-08-19
US20230052628A1 (en) 2023-02-16
EP4066440A1 (en) 2022-10-05
JP7448663B2 (ja) 2024-03-12
IL277642A (en) 2022-04-01
JP2023516541A (ja) 2023-04-20
WO2022071994A1 (en) 2022-04-07

Similar Documents

Publication Publication Date Title
US20220405407A1 (en) Privacy preserving cross-domain machine learning
EP4081971B1 (en) Using secure mpc and vector computations to protect access to information in content distribution
US11968297B2 (en) Online privacy preserving techniques
JP7515623B2 (ja) 情報に対するアクセスを保護するためのセキュアなマルチパーティ計算および確率的データ構造の使用
JP2023067928A (ja) コンテンツ選択プロセスの完全性を改善するためのセキュアマルチパーティ計算の使用
JP2023089216A (ja) データ配布制限のセキュアな管理
US20230171091A1 (en) Flexible content selection processes using secure multi-party computation
JP7448663B2 (ja) プライバシー保護のための加法性雑音および減法性雑音
US8954523B2 (en) Method and apparatus for identifying virtual content candidates to ensure delivery of virtual content
JP7471450B2 (ja) セキュアマルチパーティ計算の性能の向上
US20240202360A1 (en) Privacy preserving custom embeddings
US20240163259A1 (en) Privacy preserving group-based content distribution
US20240214385A1 (en) Digital content delivery with privacy-preserving membership check
US11841978B2 (en) Protecting access to information in online interactions
US20240022392A1 (en) Privacy preserving measurements using secure multi-party computation
US20240184925A1 (en) Secure workflows for generating and applying digital component distribution directives
WO2024096894A1 (en) Secure workflows that enhance data security
WO2024030200A1 (en) Single request architecture for increasing efficiency of secure multi-party computations
CN118575185A (zh) 隐私保护内容传递
WO2024196342A1 (en) Factorized digital component selection

Legal Events

Date Code Title Description
E902 Notification of reason for refusal