KR20220101671A - 그래디언트 부스팅을 통한 프라이버시 보호 기계 학습 - Google Patents

그래디언트 부스팅을 통한 프라이버시 보호 기계 학습 Download PDF

Info

Publication number
KR20220101671A
KR20220101671A KR1020227019999A KR20227019999A KR20220101671A KR 20220101671 A KR20220101671 A KR 20220101671A KR 1020227019999 A KR1020227019999 A KR 1020227019999A KR 20227019999 A KR20227019999 A KR 20227019999A KR 20220101671 A KR20220101671 A KR 20220101671A
Authority
KR
South Korea
Prior art keywords
computing system
user profile
mpc
piece
label
Prior art date
Application number
KR1020227019999A
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 KR20220101671A publication Critical patent/KR20220101671A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/321Cryptographic 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 involving a third party or a trusted authority
    • H04L9/3213Cryptographic 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 involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/3247Cryptographic 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 involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Image Analysis (AREA)

Abstract

이것은 프라이버시를 보호하는 기계 학습 플랫폼을 기술한다. 일 양태에서, 방법은 다중 다자간 연산(MPC) 시스템의 제1 컴퓨팅 시스템에 의해, 주어진 사용자 프로파일의 제1 조각(share)을 포함하는 추론 요청을 수신하는 단계를 포함한다. 주어진 사용자 프로파일에 대한 예측 레이블은 제1 기계 학습 모델에 적어도 부분적으로 기초하여 결정된다. 예측 레이블의 예측 오차를 나타내는 주어진 사용자 프로파일에 대한 예측 잔차 값이 결정된다. 제1 컴퓨팅 시스템은 주어진 사용자 프로파일의 제1 조각 및 제2 기계 학습 모델에 적어도 부분적으로 기초하여 상기 주어진 사용자 프로파일에 대한 예측 잔차 값의 제1 조각을 결정한다. 제1 컴퓨팅 시스템은 MPC 컴퓨팅 시스템의 제2 컴퓨팅 시스템으로부터, 주어진 사용자 프로파일에 대한 예측 잔차 값의 제2 조각을 나타내는 데이터를 수신한다.

Description

그래디언트 부스팅을 통한 프라이버시 보호 기계 학습
본 출원은 2020년 10월 9일에 출원된 IL 출원 번호 277910에 대한 우선권을 주장한다. 이 출원의 개시 내용은 그 전체가 참고로 본 명세서에 포함된다.
본 명세서는 보안 다자간 연산(secure multi-party computation)을 사용하여 기계 학습 모델을 트레이닝하고 사용하는 프라이버시 보호 기계 학습 플랫폼에 관한 것이다.
일부 기계 학습 모델은 예를 들어, 다수의 웹사이트 및/또는 네이티브 애플리케이션에 걸쳐 다수의 소스로부터 수집된 데이터에 기초하여 트레이닝된다. 그러나, 이 데이터에는 공유되서는 안 되거나 다른 당사자에게 누출되지 않아야 하는 개인 데이터 또는 민감 데이터가 포함될 수 있다.
일반적으로, 본 명세서에 설명된 주제의 하나의 혁신적인 양태는 다자간 연산(MPC) 컴퓨팅 시스템의 제1 컴퓨팅 시스템에 의해, 주어진 사용자 프로파일의 제1 조각(share)을 포함하는 추론 요청을 수신하는 단계와; 다수의 사용자 프로파일을 사용하여 트레이닝된 제1 기계 학습 모델에 적어도 부분적으로 기초하여 주어진 사용자 프로파일에 대한 예측 레이블을 결정하는 단계와; 예측 레이블의 예측 오차를 나타내는 주어진 사용자 프로파일에 대한 예측 잔차 값을 결정하는 단계와; 제1 컴퓨팅 시스템에 의해, 주어진 사용자 프로파일 및 예측 잔차 값에 대해 결정된 예측 레이블에 적어도 부분적으로 기초하여 추론 결과의 제1 조각을 생성하는 단계와; 그리고 제1 컴퓨팅 시스템에 의해 클라이언트 디바이스로, 추론 결과의 제1 조각 및 제2 컴퓨팅 시스템으로부터 수신된 추론 결과의 제2 조각을 제공하는 단계를 포함하는 방법으로 구현될 수 있다. 주어진 사용자 프로파일에 대한 예측 잔차 값을 결정하는 단계는 제1 컴퓨팅 시스템에 의해, 주어진 사용자 프로파일의 제1 조각 및 사용자 프로파일을 사용하여 트레이닝된 제2 기계 학습 모델 및 사용자 프로파일에 대한 true(참) 레이블과 제1 기계 학습 모델을 사용하여 다수의 사용자 프로파일에 대해 결정된 예측 레이블 간의 차이를 나타내는 데이터에 적어도 부분적으로 기초하여 주어진 사용자 프로파필에 대한 예측 잔차 값의 제1 조각을 결정하는 단계와; 제1 컴퓨팅 시스템에 의해 제2 컴퓨팅 시스템으로부터, 주어진 사용자 프로파일의 제2 조각 및 하나 이상의 기계 학습 모델의 제2 세트에 적어도 부분적으로 기초하여 제2 컴퓨팅 시스템에 의해 결정된 주어진 사용자 프로파일에 대한 예측 잔차 값의 제2 조각을 나타내는 데이터를 수신하는 단계와; 그리고 예측 잔차 값의 제1 및 제2 조각에 적어도 부분적으로 기초하여 주어진 사용자 프로파일에 대한 예측 잔차 값을 결정하는 단계를 포함한다. 이 양태의 다른 구현은 컴퓨터 저장 디바이스에 인코딩된 방법의 양태를 수행하도록 구성된 대응하는 장치, 시스템 및 컴퓨터 프로그램을 포함한다.
이들 및 다른 구현은 각각 다음의 특징 중 하나 이상을 선택적으로 포함할 수 있습니다. 일부 양태에서, 주어진 사용자 프로파일에 대한 예측 레이블을 결정하는 단계는 제1 컴퓨팅 시스템에 의해, (i) 주어진 사용자 프로파일의 제1 조각, (ii) 다수의 사용자 프로파일을 사용하여 트레이닝된 제1 기계 학습 모델, 및 (iii) 사용자 프로파일들에 대한 다수의 true 레이블 중 하나 이상에 적어도 부분적으로 기초하여 예측 레이블의 제1 조각을 결정하는 단계와, 상기 true 레이블들은 다수의 사용자 프로파일에 있는 각 사용자 프로파일에 대한 하나 이상의 true 레이블을 포함하고; 제1 컴퓨팅 시스템에 의해 제2 컴퓨팅 시스템으로부터, 주어진 사용자 프로파일의 제2 조각 및 하나 이상의 기계 학습 모델의 제1 세트에 적어도 부분적으로 기초하여 제2 컴퓨팅 시스템에 의해 결정된 예측 레이블의 제2 조각을 나타내는 데이터를 수신하는 단계와; 그리고 예측 레이블의 제1 및 제2 조각에 적어도 부분적으로 기초하여 예측 레이블을 결정하는 단계를 포함한다.
일부 구현에서, 방법은 제1 컴퓨팅 시스템에 의해, 주어진 사용자 프로파일의 제1 변환 조각을 획득하기 위해 주어진 사용자 프로파일의 제1 조각에 변환을 적용하는 단계를 더 포함한다. 이러한 구현에서, 제1 컴퓨팅 시스템에 의해, 예측 레이블의 제1 조각을 결정하는 단계는 제1 컴퓨팅 시스템에 의해, 주어진 사용자 프로파일의 제1 변환 조각에 적어도 부분적으로 기초하여 예측 레이블의 제1 조각을 결정하는 단계를 포함한다. 이러한 일부 구현에서, 변환은 존슨-린덴스트라우스(Johnson-Lindenstrauss)(J-L) 변환과 같은 랜덤 투영이다. 전술한 구현들 중 일부에서, 제1 컴퓨팅 시스템에 의해, 예측 레이블의 제1 조각을 결정하는 단계는 제1 컴퓨팅 시스템에 의해, 주어진 사용자 프로파일에 대한 예측 레이블의 제1 조각을 출력으로 획득하기 위해 제1 기계 학습 모델에 대한 입력으로서 상기 주어진 사용자 프로파일의 제1 변환 조각을 제공하는 단계를 포함한다.
일부 예에서, 방법은 제1 기계 학습 모델의 성능을 평가하는 단계와, 제1 기계 학습 모델의 성능을 평가할 때 결정된 잔차 값을 나타내는 데이터를 사용하여 제2 기계 학습 모델을 트레이닝하는 단계를 더 포함한다. 이러한 예에서, 제1 기계 학습 모델의 성능을 평가하는 단계는 다수의 사용자 프로파일 각각에 대해, 사용자 프로파일에 대한 예측 레이블을 결정하는 단계와, 예측 레이블의 오차를 나타내는 사용자 프로파일에 대한 잔차 값을 결정하는 단계를 포함한다. 또한, 이들 예에서, 사용자 프로파일에 대한 예측 레이블을 결정하는 단계는 제1 컴퓨팅 시스템에 의해, (i) 사용자 프로파일의 제1 조각, (ii) 제1 기계 학습 모델, 및 (iii) 사용자 프로파일에 대한 하나 이상의 true 레이블에 적어도 부분적으로 기초하여 사용자 프로파일에 대한 예측 레이블의 제1 조각을 결정하는 단계와; 제1 컴퓨팅 시스템에 의해 제2 컴퓨팅 시스템으로부터, 사용자 프로파일의 제2 조각 및 제2 컴퓨팅 시스템에 의해 유지되는 하나 이상의 기계 학습 모델의 제1 세트에 적어도 부분적으로 기초하여 제2 컴퓨팅 시스템에 의해 결정된 사용자 프로파일에 대한 예측 레이블의 제2 조각을 나타내는 데이터를 수신하는 단계와; 그리고 예측 레이블의 제1 및 제2 조각에 적어도 부분적으로 기초하여 사용자 프로파일에 대한 예측 레이블을 결정하는 단계를 포함한다. 또한, 이러한 예에서, 사용자 프로파일에 대한 잔차 값을 결정하는 단계는 제1 컴퓨팅 시스템에 의해, 사용자 프로파일에 대해 결정된 예측 레이블 및 true 레이블에 포함된 사용자 프로파일에 대한 true 레이블의 제1 조각에 적어도 부분적으로 기초하여 사용자 프로파일에 대한 잔차 값의 제1 조각을 결정하는 단계와; 제1 컴퓨팅 시스템에 의해 제2 컴퓨팅 시스템으로부터, 사용자 프로파일에 대해 결정된 예측 레이블 및 사용자 프로파일에 대한 true 레이블의 제2 조각에 적어도 부분적으로 기초하여 제2 컴퓨팅 시스템에 의해 결정된 사용자 프로파일에 대한 잔차 값의 제2 조각을 나타내는 데이터 수신하는 단계와; 그리고 잔차 값의 제1 및 제2 조각에 적어도 부분적으로 기초하여 사용자 프로파일에 대한 잔차 값을 결정하는 단계를 포함한다. 전술한 예에서, 제1 기계 학습 모델의 성능을 평가할 때 결정된 데이터를 사용하여 제2 기계 학습 모델을 트레이닝하는 단계는 제1 기계 학습 모델의 성능을 평가할 때 사용자 프로파일에 대해 결정된 잔차 값을 나타내는 데이터를 사용하여 제2 기계 학습 모델을 트레이닝하는 단계를 포함한다.
전술한 예들 중 일부에서, 제1 기계 학습 모델의 성능을 평가하기 전에, 방법은 함수의 파라미터 세트를 도출하는 단계와, 사용자 프로파일이 입력으로 주어지면 사용자 프로파일에 대한 초기 예측 레이블을 생성하고 상기 도출된 파라미터 세트에 기초하여 정의된 함수를 사용자 프로파일에 대한 초기 예측 레이블에 적용하여 출력으로 사용자 프로파일에 대한 예측 레이블의 제1 조각을 생성하도록 제1 기계 학습 모델을 구성하는 단계를 더 포함한다. 이들 예들 중 적어도 일부에서, 함수의 파라미터 세트를 도출하는 단계는 (i) 제1 컴퓨팅 시스템에 의해, 다수의 true 레이블 각각의 제1 조각에 적어도 부분적으로 기초하여 함수의 파라미터 세트의 제1 조각을 도출하는 단계와; (ii) 제1 컴퓨팅 시스템에 의해 제2 컴퓨팅 시스템으로부터, 다수의 true 레이블 각각의 제2 조각에 적어도 부분적으로 기초하여 제2 컴퓨팅 시스템에 의해 도출된 함수의 파라미터 세트의 제2 조각을 나타내는 데이터를 수신하는 단계와; 그리고 (iii) 함수의 파라미터 세트의 제1 및 제2 조각에 적어도 부분적으로 기초하여 함수의 파라미터 세트를 도출하는 단계를 포함한다. 전술한 예들 중 적어도 일부에서, 함수는 2차 다항식 함수이다.
이러한 일부 예에서, 방법은 제1 컴퓨팅 시스템에 의해, 다수의 true 레이블 각각의 제1 조각에 적어도 부분적으로 기초하여 분포 파라미터 세트의 제1 조각을 추정하는 단계를 더 포함한다. 이들 예에서, 제1 컴퓨팅 시스템에 의해, 다수의 true 레이블 각각의 제1 조각에 적어도 부분적으로 기초하여 함수의 파라미터 세트의 제1 조각을 도출하는 단계는 제1 컴퓨팅 시스템에 의해, 분포 파라미터 세트의 제1 조각에 적어도 부분적으로 기초하여 함수의 파라미터 세트의 제1 조각을 도출하는 단계를 포함한다. 술한 예들 중 적어도 일부에서, 분포 파라미터 세트는 다수의 true 레이블에서 제1 값의 true 레이블에 대한 예측 오차 확률 분포의 하나 이상의 파라미터, 및 다수의 true 레이블에서 제2 값의 true 레이블에 대한 예측 오차 확률 분포의 하나 이상의 파라미터를 포함하며, 제2 값은 제1 값과 상이하다. 또한, 전술한 예들 중 적어도 일부에서, 사용자 프로파일에 대한 잔차 값의 제1 조각은 사용자 프로파일에 대해 결정된 예측 레이블과 사용자 프로파일에 대한 true 레이블의 제1 조각 사이의 값 차이를 나타내고, 사용자 프로파일에 대한 잔차 값의 제2 조각은 사용자 프로파일에 대해 결정된 예측 레이블과 사용자 프로파일에 대한 true 레이블의 제2 조각 사이의 값 차이를 나타낸다.
일부 구현에서, (i) 제1 기계 학습 모델은 제1 컴퓨팅 시스템에 의해 유지되는 k-최근접 이웃 모델을 포함하고, (ii) 하나 이상의 기계 학습 모델의 제1 세트는 제2 컴퓨팅 시스템에 의해 유지되는 k-최근접 이웃 모델을 포함하고, (iii) 제2 기계 학습 모델은 제1 컴퓨팅 시스템에 의해 유지되는 심층 신경망(deep neural network : DNN) 및 제1 컴퓨팅 시스템에 의해 유지되는 그래디언트 부스팅 결정 트리(GBDT) 중 적어도 하나를 포함하고, 및/또는 (iv) 하나 이상의 기계 학습 모델의 제2 세트는 제2 컴퓨팅 시스템에 의해 유지되는 DNN 및 제2 컴퓨팅 시스템에 의해 유지되는 GBDT 중 적어도 하나를 포함한다.
이들 구현들 중 적어도 일부에서, 제1 컴퓨팅 시스템에 의해, 예측 레이블의 제1 조각을 결정하는 단계는 (i) 제1 컴퓨팅 시스템에 의해, 주어진 사용자 프로파일의 제1 조각 및 제1 컴퓨팅 시스템에 의해 유지되는 k-최근접 이웃 모델에 적어도 부분적으로 기초하여 최근접 이웃 사용자 프로파일의 제1 세트를 식별하는 단계와; (ii) 제1 컴퓨팅 시스템에 의해 제2 컴퓨팅 시스템으로부터, 주어진 사용자 프로파일의 제2 조각 및 제2 컴퓨팅 시스템에 의해 유지되는 k-최근접 이웃 모델에 적어도 부분적으로 기초하여 제2 컴퓨팅 시스템에 의해 식별된 최근접 이웃 프로파일의 제2 세트를 나타내는 데이터를 수신하는 단계와; (iii) 최근접 이웃 프로파일의 제1 및 제2 세트에 적어도 부분적으로 기초하여 사용자 프로파일 중에서 주어진 사용자 프로파일과 가장 유사한 것으로 간주되는 k개의 최근접 이웃 사용자 프로파일을 식별하는 단계와; 그리고 제1 컴퓨팅 시스템에 의해, k개의 최근접 이웃 사용자 프로파일 각각에 대한 true 레이블에 적어도 부분적으로 기초하여 예측 레이블의 제1 조각을 결정하는 단계를 포함한다.
전술한 구현들 중 적어도 일부에서, 제1 컴퓨팅 시스템에 의해, 예측 레이블의 제1 조각을 결정하는 단계는 (i) 제1 컴퓨팅 시스템에 의해, k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합의 제1 조각을 결정하는 단계와; (ii) 제1 컴퓨팅 시스템에 의해 제2 컴퓨팅 시스템으로부터, k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합의 제2 조각을 수신하는 단계와; 그리고 (iii) k개의 최근접 사용자 프로파일에 대한 true 레이블의 합의 제1 및 제2 조각에 적어도 부분적으로 기초하여 k개의 최근접 사용자 프로파일에 대한 true 레이블의 합을 결정하는 단계를 더 포함한다. 또한, 일부 이러한 구현에서, 제1 컴퓨팅 시스템에 의해, 예측 레이블의 제1 조각을 결정하는 단계는 주어진 사용자 프로파일에 대한 예측 레이블의 제1 조각을 생성하기 위해 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합에 함수를 적용하는 단계를 더 포함한다. 앞서 언급한 구현들 중 일부에서, 주어진 사용자 프로파일에 대한 예측 레이블의 제1 조각은 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합을 포함한다.
전술한 구현들 중 일부에서, 제1 컴퓨팅 시스템에 의해, k개의 최근접 이웃 사용자 프로파일 각각에 대한 true 레이블에 적어도 부분적으로 기초하여 예측 레이블의 제1 조각을 결정하는 단계는 제1 컴퓨팅 시스템에 의해, 카테고리 세트에 각각 대응하는 k개의 최근접 이웃 사용자 프로파일 각각에 대한 true 레이블 세트에 적어도 부분적으로 기초하여 예측 레이블 세트의 제1 조각을 결정하는 단계를 포함한다. 이들 구현에서, 제1 컴퓨팅 시스템에 의해, 예측 에리블 세트의 제1 조각을 결정하는 단계는 세트의 각 카테고리에 대해, (i) k개의 최근접 이웃 사용자 프로파일의 사용자 프로파일에 대한 true 레이블 세트의 카테고리에 해당하는 true 레이블이 제1 값의 true 레이블인 빈도의 제1 조각을 결정하는 단계와; (ii) 제1 컴퓨팅 시스템에 의해 제2 컴퓨팅 시스템으로부터, k개의 최근접 이웃 사용자 프로파일의 사용자 프로파일에 대한 true 레이블 세트의 카테고리에 해당하는 true 레이블들이 제1 값의 true 레이블인 빈도의 제2 조각을 수신하는 단계와; 그리고 k개의 최근접 이웃 사용자 프로파일의 사용자 프로파일에 대한 true 레이블 세트의 카테고리에 해당하는 true 레이블들이 제1 값의 true 레이블인 빈도의 제1 및 제2 조각에 적어도 부분적으로 기초하여 k개의 최근접 이웃 사용자 프로파일의 사용자 프로파일에 대한 true 레이블 세트의 카테고리에 해당하는 true 레이블이 제1 값의 true 레이블인 빈도를 결정하는 단계를 포함한다. 이들 구현 중 일부에서, 제1 컴퓨팅 시스템에 의해, 예측 레이블 세트의 제1 조각을 결정하는 단계는 세트의 각 카테고리에 대해, 주어진 사용자 프로파일에 대한 카테고리에 해당하는 예측 레이블의 제1 조각을 생성하기 위해 카테고리에 해당하는 함수를, k개의 최근접 이웃 사용자 프로파일의 사용자 프로파일에 대한 참 레이블 세트의 카테고리에 해당하는 참 레이블들이 제1 값의 참 레이블인 빈도에 적용하는 단계를 포함한다.
본 명세서에 기술된 주제의 또 다른 혁신적인 양태는 컴퓨팅 시스템의 보안 MPC 클러스터에 의해, 주어진 사용자 프로파일과 관련된 추론 요청을 수신하는 단계와, MPC 클러스터에 의해, 다수의 사용자 프로파일을 사용하여 트레이닝된 제1 기계 학습 모델에 적어도 부분적으로 기초하여 주어진 사용자 프로파일에 대한 예측 레이블을 결정하는 단계와, MPC 클러스터에 의해, 주어진 사용자 프로파일 및 사용자 프로파일을 사용하여 트레이닝된 제2 기계 학습 모델 및 사용자 프로파일들에 대한 true 레이블과 제1 기계 학습 모델을 사용하여 사용자 프로파일들에 대해 결정된 예측 레이블 간의 차이를 나타내는 데이터에 적어도 부분적으로 기초하여 예측 레이블의 예측 오차를 나타내는 주어진 사용자 프로파일에 대한 예측 잔차 값을 결정하는 단계와, MPC 클러스터에 의해, 주어진 사용자 프로파일 및 예측 잔차 값에 대해 결정된 예측 레이블에 적어도 부분적으로 기초하여 추론 결과를 나타내는 데이터를 생성하는 단계와, 그리고 MPC 클러스터에 의해, 추론 결과를 나타내는 데이터를 클라이언트 디바이스에 제공하는 단계를 포함한다. 이 양태의 다른 구현은 컴퓨터 저장 디바이스에 인코딩된 방법의 양태를 수행하도록 구성된 대응하는 장치, 시스템 및 컴퓨터 프로그램을 포함한다.
이들 및 다른 구현은 각각 다음의 특징 중 하나 이상을 선택적으로 포함할 수 있다. 일부 양태에서, 추론 요청은 제2 컴퓨팅 시스템의 암호화 키를 사용하여 암호화된 주어진 사용자 프로파일의 암호화된 제2 조각을 포함한다. 일부 양태는 주어진 사용자 프로파일의 암호화된 제2 조각을 제2 컴퓨팅 시스템으로 전송하는 단계를 포함할 수 있다.
일부 양상에서, 주어진 사용자 프로파일에 대한 예측된 레이블을 결정하는 단계는 MPC 클러스터에 의해, (i) 주어진 사용자 프로파일, (ii) 사용자 프로파일을 사용하여 트레이닝된 제1 기계 학습 모델, 및 (iii) 사용자 프로파일에 대한 하나 이상의 true 레이블에 적어도 부분적으로 기초하여 주어진 사용자 프로파일에 대한 예측 레이블을 결정하는 단계를 포함하고, true 레이블들은 다수의 사용자 프로파일의 각 사용자 프로파일에 대한 하나 이상의 true 레이블을 포함한다.
일부 구현들에서, 방법은 MPC 클러스터에 의해, 주어진 사용자 프로파일의 변환된 버전을 획득하기 위해 주어진 사용자 프로파일에 변환을 적용하는 단계를 더 포함한다. 이러한 구현에서, MPC 클러스터에 의해, 예측 레이블을 결정하는 단계는 MPC 클러스터에 의해, 주어진 사용자 프로파일의 변환된 버전에 적어도 부분적으로 기초하여 예측 레이블을 결정하는 단계를 포함한다. 이러한 일부 구현에서, 변환은 J-L(Johnson-Lindenstrauss) 변환과 같은 랜덤 투영이다. 전술한 구현들 중 적어도 일부에서, MPC 클러스터에 의해, 예측 레이블을 결정하는 단계는 MPC 클러스터에 의해, 주어진 사용자 프로파일에 대한 예측 레이블을 출력으로 얻기 위해 제1 기계 학습 모델에 대한 입력으로서 주어진 사용자 프로파일의 변환된 버전을 제공하는 단계를 포함한다.
일부 예에서, 방법은 제1 기계 학습 모델의 성능을 평가하는 단계 및 제1 기계 학습 모델의 성능을 평가할 때 결정된 데이터를 사용하여 제2 기계 학습 모델을 트레이닝하는 단계를 더 포함한다. 이러한 예에서, 방법은 (1) MPC 클러스터에 의해, (i) 사용자 프로파일, (ii) 제1 기계 학습 모델, 및 (iii) 사용자 프로파일에 대한 하나 이상의 true 레이블에 적어도 부분적으로 기초하여 사용자 프로파일에 대한 예측 레이블을 결정하는 단계와, 그리고 (2) MPC 클러스터에 의해, 사용자 프로파일에 대해 결정된 예측 레이블 및 true 레이블에 포함된 사용자 프로파일에 대한 true 레이블에 적어도 부분적으로 기초하여 예측 레이블의 예측 오차를 나타내는 사용자 프로파일에 대한 잔차 값을 결정하는 단계를 포함한다. 전술한 예에서, 제1 기계 학습 모델의 성능을 평가할 때 결정된 데이터를 사용하여 제2 기계 학습 모델을 트레이닝하는 단계는 제1 기계 학습 모델의 성능을 평가할 때 사용자 프로파일에 대해 결정된 잔차 값을 나타내는 데이터를 사용하여 제2 기계 학습 모델을 트레이닝하는 단계를 포함한다.
전술한 예 중 적어도 일부에서, 제1 기계 학습 모델의 성능을 평가하기 전에, 방법은 MPC 클러스터에 의해, true 레이블에 적어도 부분적으로 기초하여 함수의 파라미터 세트를 도출하는 단계와, 그리고 사용자 프로파일이 입력으로 주어지면 사용자 프로파일에 대한 초기 예측 레이블을 생성하고 도출된 파라미터 세트에 기초하여 정의된 함수를 사용자 프로파일에 대한 초기 예측 레이블에 적용하여 출력으로서 사용자 프로파일에 대한 예측 레이블을 생성하도록 제1 기계 학습 모델을 구성하는 단계를 포함한다. 이러한 일부 예에서, 방법은 MPC 클러스터에 의해, true 레이블에 적어도 부분적으로 기초하여 정규 분포 파라미터 세트를 추정하는 단계를 더 포함한다. 이들 예에서, MPC 클러스터에 의해, true 레이블에 적어도 부분적으로 기초하여 함수의 파라미터 세트를 도출하는 단계는 MPC 클러스터에 의해, 정규 분포 파라미터의 추정된 세트에 적어도 부분적으로 기초하여 함수의 파라미터 세트를 도출하는 단계를 포함한다. 전술한 예들 중 일부에서, 분포 파라미터 세트는 true 레이블에서 제1 값의 true 레이블에 대한 예측 오차 확률 분포의 하나 이상의 파라미터, 및 true 레이블에서 제2 값의 true 레이블에 대한 예측 오차 확률 분포의 하나 이상의 파라미터를 포함하며, 제2 값은 제1 값과 상이하다. 또한, 앞서 언급한 일부 예에서, 함수는 2차 다항식 함수이다. 전술한 예들 중 적어도 일부에서, 사용자 프로파일에 대한 잔차 값은 사용자 프로파일에 대해 결정된 예측 레이블과 사용자 프로파일에 대한 true 레이블 간의 값의 차이를 나타낸다.
일부 구현들에서, 제1 기계 학습 모델은 k-최근접 이웃 모델을 포함한다. 이들 구현 중 일부에서, MPC 클러스터에 의해, 예측 라벨을 결정하는 단계는 (i) MPC 클러스터에 의해, 주어진 사용자 프로파일과 k-최근접 이웃 모델에 적어도 부분적으로 기초하여 사용자 프로파일 중에서 주어진 사용자 프로파일과 가장 유사한 것으로 간주되는 k개의 최근접 이웃 사용자 프로파일을 식별하는 단계와, 그리고 (ii) MPC 클러스터에 의해, k개의 최근접 이웃 사용자 프로파일 각각에 대한 true 레이블에 적어도 부분적으로 기초하여 예측 레이블을 결정하는 단계를 포함한다.
전술한 구현들 중 적어도 일부에서, MPC 클러스터에 의해, k개의 최근접 이웃 사용자 프로파일 각각에 대한 true 레이블에 적어도 부분적으로 기초하여 예측 레이블을 결정하는 단계는 MPC 클러스터에 의해, k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합을 결정하는 단계를 포함한다. 일부 이러한 구현에서, MPC 클러스터에 의해, 예측 레이블을 결정하는 단계는 주어진 사용자 프로파일에 대한 예측 레이블을 생성하기 위해 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합에 함수를 적용하는 단계를 더 포함한다. 게다가, 앞서 언급된 구현들 중 일부에서, 주어진 사용자 프로파일에 대한 예측 레이블은 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합을 포함한다.
전술한 구현들 중 적어도 일부에서, MPC 클러스터에 의해, k개의 최근접 이웃 사용자 프로파일 각각에 대한 true 레이블에 적어도 부분적으로 기초하여 예측 레이블을 결정하는 단계는 MPC 클러스터에 의해, 카테고리 세트에 각각 대응하는 k개의 최근접 이웃 사용자 프로파일 각각에 대한 true 레이블 세트에 적어도 부분적으로 기초하여 예측 레이블 세트를 결정하는 단계를 포함한다. 이러한 구현에서, MPC 클러스터에 의해, 예측 레이블 세트를 결정하는 단계는 세트의 각 카테고리에 대해, k개의 최근접 이웃 사용자 프로파일의 사용자 프로파일에 대한 true 레이블 세트의 카테고리에 대응하는 true 레이블이 제1 값의 true 레이블인 빈도를 결정하는 단계를 포함한다. 이들 구현 중 일부에서, MPC 클러스터에 의해, 예측 라벨 세트를 결정하는 단계는 세트의 각 카테고리에 대해, 주어진 사용자 프로파일에 대한 카테고리에 해당하는 예측 레이블을 생성하기 위해 카테고리에 대응하는 함수를 상기 결정된 빈도에 적용하는 단계를 포함한다.
일부 예에서, 각각의 true 레이블은 암호화된다. 일부 구현에서, 추론 결과는 예측 레이블과 예측 잔차 값의 합을 포함한다. 일부 예에서, 제2 기계 학습 모델은 심층 신경망, 그래디언트 부스팅 결정 트리 및 랜덤 포레스트 모델 중 적어도 하나를 포함한다.
일부 예에서, 클라이언트 디바이스는 클라이언트 디바이스의 사용자의 이벤트와 관련된 특징값 및 각각의 특징 벡터에 대한 감쇠율을 각각 포함하는 복수의 특징 벡터를 사용하여 상기 주어진 사용자 프로파일을 계산한다.
일부 예에서, 클라이언트 디바이스는 클라이언트 디바이스의 사용자 이벤트와 관련된 특징값을 각각 포함하는 복수의 특징 벡터를 사용하여 상기 주어진 사용자 프로파일을 계산한다. 주어진 사용자 프로파일을 계산하는 것은 복수의 특징 벡터 중 하나 이상을 희소(sparse) 특징 벡터로 분류하는 것 및 복수의 특징 벡터 중 하나 이상을 밀집(dense) 특징 벡터로 분류하는 것을 포함할 수 있다. 일부 양태는 희소 특징 벡터 및 밀집 특징 벡터를 사용하여 주어진 사용자 프로파일의 제1 조각 및 하나 이상의 제2 컴퓨팅 시스템에 대한 주어진 사용자 프로파일의 각각의 제2 조각을 생성하는 단계를 더 포함한다. 주어진 사용자 프로파일의 제1 조각 및 각각의 하나 이상의 제2 조각을 생성하는 단계는 FSS(Function Secret Sharing) 기술을 사용하여 희소 특징 벡터를 분할하는 단계를 포함할 수 있다.
본 명세서에 기술된 주제의 또 다른 혁신적인 양태는 다중 MPC 시스템의 제1 컴퓨팅 시스템에 의해, 주어진 사용자 프로파일의 제1 조각을 포함하는 추론 요청을 수신하는 단계와; 다수의 사용자 프로파일 중에서 주어진 사용자 프로파일과 가장 유사한 것으로 간주되는 k개의 최근접 이웃 사용자 프로파일을 식별하는 단계로서: 제1 컴퓨팅 시스템에 의해 주어진 사용자 프로파일의 제1 조각과 사용자 프로파일을 사용하여 트레이닝된 제1 k-최근접 이웃 모델에 기초하여, 최근접 이웃 사용자 프로파일의 제1 세트를 식별하는 단계와; 제1 컴퓨팅 시스템에 의해 다중 MPC 시스템의 하나 이상의 제2 컴퓨팅 시스템 각각으로부터, 주어진 사용자 프로파일의 각각의 제2 조각 및 제2 컴퓨팅 시스템에 의해 트레이닝된 각각의 제2 k-최근접 이웃 모델에 기초하여 제2 컴퓨팅 시스템에 의해 식별된 각각의 최근접 이웃 프로파일의 각각의 제2 세트를 나타내는 데이터를 수신하는 단계와; 제1 컴퓨팅 시스템에 의해 최근접 이웃 사용자 프로파일의 제1 세트 및 최근접 이웃 사용자 프로파일의 각각의 제2 세트에 기초하여, k개의 최근접 이웃 사용자 프로파일을 식별하는 단계와; 제1 컴퓨팅 시스템에 의해, k개의 최근접 이웃 사용자 프로파일 각각에 대한 각각의 레이블에 기초하여 추론 결과의 제1 조각을 생성하는 단계와, 상기 각 사용자 프로파일에 대한 레이블은 사용자 프로파일에 해당하는 사용자가 추가될 하나 이상의 사용자 그룹을 예측하고, 추론 결과는 주어진 사용자 프로파일에 해당하는 주어진 사용자가 주어진 사용자 그룹에 추가되어야 하는지 여부를 나타내고; 그리고 제1 컴퓨팅 시스템에 의해 클라이언트 디바이스로, 추론 결과의 제1 조각 및 하나 이상의 제2 컴퓨팅 시스템들 각각으로부터 수신된 추론 결과의 각각의 제2 조각을 제공하는 단계를 포함하는 방법으로 구현될 수 있다. 이 양태의 다른 구현은 컴퓨터 저장 디바이스에 인코딩된 방법의 양태를 수행하도록 구성된 대응하는 장치, 시스템 및 컴퓨터 프로그램을 포함한다.
이들 및 다른 구현은 각각 다음의 특징 중 하나 이상을 선택적으로 포함할 수 있다. 일부 양태에서, 추론 요청은 제2 컴퓨팅 시스템의 암호화 키를 사용하여 암호화된 주어진 사용자 프로파일의 암호화된 제2 조각을 포함한다. 일부 양태는 주어진 사용자 프로파일의 암호화된 제2 조각을 제2 컴퓨팅 시스템으로 전송하는 단게를 포함할 수 있다.
일부 양태에서, 추론 결과의 제2 조각은 클라이언트 디바이스의 애플리케이션의 암호화 키를 사용하여 암호화된다. 일부 양태에서, 각 사용자 프로파일의 레이블은 이진 분류를 위한 부울 유형(Boolean type)을 갖는다. 추론 결과의 제1 조각을 생성하는 단계는 k개의 최근접 이웃 사용자 프로파일에 대한 레이블의 합의 제1 조각을 결정하는 단계와, 제2 컴퓨팅 시스템으로부터, k개의 최근접 이웃 사용자 프로파일에 대한 레이블의 합의 제2 조각을 수신하는 단계와, 레이블의 합의 제1 조각 및 레이블의 합의 제2 조각에 기초하여, 레이블의 합을 결정하는 단계와, 레이블의 합이 임계값을 초과하는지 결정하고, 레이블의 합이 임계값을 초과한다고 결정하는 것에 응답하여, 추론 결과로서, 주어진 사용자를 주어진 사용자 그룹에 추가하기로 결정하는 단계와, 그리고 추론 결과에 기초하여 추론 결과의 제1 조각을 생성하는 단계를 포함할 수 있다.
일부 양태에서, 각각의 사용자 프로파일에 대한 레이블은 수치 값을 갖는다. 추론 결과의 제1 조각을 생성하는 단계는 k개의 최근접 이웃 사용자 프로파일에 대한 레이블 합의 제1 조각을 결정하는 단계와, 제2 컴퓨팅 시스템으로부터, k개의 최근접 이웃 사용자 프로파일에 대한 레이블 합의 제2 조각을 수신하는 단계와, 레이블 합의 제1 조각과 레이블 합의 제2 조각에 기초하여, 레이블의 합을 결정하는 단계와, 레이블의 합에 기초하여 추론 결과로서, 주어진 사용자가 주어진 사용자 그룹에 가입하여 한다고 결정하는 단계와, 그리고 추론 결과에 기초하여 추론 결과의 제1 조각을 생성하는 단계를 포함할 수 있다.
일부 양태에서, 각각의 사용자 프로파일에 대한 레이블은 카테고리(범주)형 값을 갖는다. 추론 결과의 제1 조각을 생성하는 단계는 레이블 세트의 각 레이블에 대해, k개의 최근접 이웃 프로파일의 사용자 프로파일이 레이블을 갖는 빈도의 제1 조각을 결정하는 단계와, 제2 컴퓨팅 시스템으로부터, k개의 최근접 이웃 프로파일의 사용자 프로파일이 레이블을 갖는 빈도의 제2 조각을 수신하는 단계와, 그리고 k개의 최근접 이웃 프로파일의 사용자 프로파일이 레이블을 갖는 빈도의 제1 조각 및 제2 조각에 기초하여, k개의 최근접 이웃 프로파일의 사용자 프로파일들이 레이블을 갖는 빈도를 결정하는 단계를 포함할 수 있다. 일부 양태는 가장 높은 빈도를 갖는 레이블을 식별하는 단계와, 추론 결과로서, 주어진 사용자가 가장 높은 빈도를 갖는 레이블에 해당하는 주어진 사용자 그룹에 가입하도록 주어진 사용자를 할당하는 단계와, 그리고 추론 결과에 기초하여 추론 결과의 제1 조각을 생성하는 단계를 포함할 수 있다.
일부 양태는 제1 k-최근접 이웃 모델을 트레이닝하는 단계를 포함할 수 있다.
트레이닝하는 단계는 제2 컴퓨팅 시스템과 협력하여, 랜덤 비트 플리핑 패턴의 제1 조각을 생성하는 단계와, 사용자 프로파일의 각 사용자 프로파일의 제1 조각을 랜덤 투영 평면에 투영함으로써 비트 행렬의 제1 조각을 생성하는 단계와, 비트 플리핑 패턴의 제1 조각을 사용하여 비트 행렬의 제1 조각의 하나 이상의 비트를 수정함으로써 비트 행렬의 제1 조각을 수정하는 단계와, 비트 행렬의 수정된 제1 조각의 제1 조각을 제2 컴퓨팅 시스템에 제공하는 단계와, 제2 컴퓨팅 시스템으로부터, 다수의 사용자 프로파일의 사용자 프로파일의 제2 조각 및 랜덤 비트 플리핑 패턴의 제2 조각을 사용하여 제2 컴퓨팅 시스템에 의해 생성된 비트 행렬의 수정된 제2 조각의 제2 절반을 수신하는 단계와, 그리고 제1 컴퓨팅 시스템에 의해, 비트 행렬의 수정된 제1 조각의 제2 절반 및 비트 행렬의 수정된 제2 조각의 제2 절반을 사용하여 제1 비트 행렬의 제2 절반에 대한 비트 벡터를 제구성하는 단계를 포함한다. 제2 컴퓨팅 시스템과 협력하여, 랜덤 비트 플리핑 패턴의 제1 조각을 생성하는 단계는 각각이 0 또는 1의 값을 갖는 다수의 제1 요소를 포함하는 m차원 제1 벡터를 생성하는 단계와, m차원 제1 벡터를 2개의 조각으로 분할하는 단계와, m차원 제1 벡터의 제1 조각을 제2 컴퓨팅 시스템에 제공하는 단계와, m차원 제2 벡터의 제1 조각을 제2 컴퓨팅 시스템으로부터 수신하는 단계와, 그리고 제2 컴퓨팅 시스템과 협력하여, m차원 제1 및 제2 벡터의 조각을 사용하여 랜덤 비트 플리핑 패턴의 제1 조각을 생성하는 단계를 포함한다. 일부 양태에서, 다중 MPC 컴퓨팅 시스템은 2개보다 많은 MPC 컴퓨팅 시스템을 포함한다.
본 명세서에 기술된 주제는 다음 이점 중 하나 이상을 실현하기 위해 특정 실시예에서 구현될 수 있다. 본 문서에 설명된 기계 학습 기술은 유사한 관심사를 가진 사용자들을 식별하고 사용자의 온라인 활동을 임의의 컴퓨팅 시스템에 누출하지 않고 사용자의 프라이버시를 보호하면서 사용자 그룹 구성원을 확장할 수 있다. 이는 이러한 플랫폼과 관련하여 사용자 프라이버시를 보호하고 전송 중 또는 플랫폼에서 발생한 위반으로부터 데이터의 보안을 유지한다. 보안 다자간 연산(MPC)과 같은 암호화 기술을 사용하면 제3자 쿠키를 사용하지 않고도 사용자 프로파일의 유사성에 기초하여 사용자 그룹을 확장할 수 있으며, 이는 사용자 그룹 확장 기능에 부정적인 영향을 미치지 않으면서 사용자 프라이버시를 보호하고 경우에 따라 제3자 쿠키를 사용하여 달성할 수 있는 것보다 더 완전한 프로파일에 기초하여 더 나은 사용자 그룹 확장을 제공한다. MPC 기술은 MPC 클러스터의 컴퓨팅 시스템 중 하나가 정직한 한 컴퓨팅 시스템이나 다른 당사자가 일반 텍스트로 사용자 데이터를 획득할 수 없도록 보장할 수 있다. 이와 같이, 청구된 방법은 사용자 데이터 간의 관계를 결정하기 위해 제3자 쿠키를 사용할 필요 없이 안전한 방식으로 사용자 데이터의 식별, 그룹화 및 전송을 허용한다. 이것은 일반적으로 데이터 간의 관계를 결정하기 위해 제3자 쿠키가 필요한 이전의 알려진 방법과 차별되는 접근 방식이다. 이러한 방식으로 사용자 데이터를 그룹화함으로써, 특정 사용자와 관련이 없는 데이터 컨텐츠를 전송할 필요가 없기 때문에 데이터 컨텐츠를 사용자 디바이스로 전송하는 효율성이 향상된다. 특히, 제3자 쿠키가 필요하지 않아 제3자 쿠키의 저장을 방지하여 메모리 사용이 개선된다. 지수 감쇠 기술이 사용자 프로파일을 구축하는데 필요한 원시 데이터의 데이터 크기를 줄이도록 클라이언트 디바이스에서 사용자 프로파일을 구축하는데 사용되고 따라서 종종 데이터 저장이 매우 제한된 클라이언트 디바이스의 데이터 저장 요구 사항을 줄일 수 있다. 예를 들어, 사용자 그룹 확장을 위한 분류의 정확도는 다른 모델(예를 들어, k 최근접 이웃 모델)에 기초하여 더 강력한 모델(예를 들어, 심층 신경망 모델)을 트레이닝함으로써 향상될 수 있다. 즉, 본 문서에서 설명하는 기술은 약한 분류기(learner)에 기초하여 강한 분류기를 트레이닝함으로써 정확도를 향상시킬 수 있다.
전술한 주제의 다양한 특징 및 이점이 도면과 관련하여 아래에서 설명된다. 추가 특징 및 이점은 본 명세서 및 청구범위에 기재된 주제로부터 명백하다.
도 1은 보안 MPC 클러스터가 기계 학습 모델을 트레이닝시키고 사용자 그룹을 확장하는데 기계 학습 모델이 사용되는 환경의 블록도이다.
도 2는 기계 학습 모델을 트레이닝하고 기계 학습 모델을 사용하여 사용자 그룹에 사용자를 추가하기 위한 예시적인 프로세스의 스윔 레인 다이어그램이다.
도 3은 사용자 프로파일을 생성하고 사용자 프로파일의 조각들을 MPC 클러스터로 전송하기 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 4는 기계 학습 모델을 생성하기 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 5는 기계 학습 모델을 사용하여 사용자 그룹에 사용자를 추가하기 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 6은 사용자 프로파일에 대한 추론 결과를 생성하기 위한 예시적인 프레임워크의 개념도이다.
도 7은 부스트된 성능을 갖는 사용자 프로파일에 대한 추론 결과를 생성하기 위한 예시적인 프레임워크의 개념도이다.
도 8은 MPC 클러스터에서 부스트된 성능을 갖는 사용자 프로파일에 대한 추론 결과를 생성하기 위한 예시적인 프로세스를 예시하는 흐름도이다.
도 9는 MPC 클러스터에서 추론 성능을 부스팅하기 위한 제2 기계 학습 모델의 트레이닝을 준비하고 수행하기 위한 예시적인 프로세스를 예시하는 흐름도이다.
도 10은 제1 기계 학습 모델의 성능을 평가하기 위한 예시적인 프레임워크의 개념도이다.
도 11은 MPC 클러스터에서 제1 기계 학습 모델의 성능을 평가하기 위한 예시적인 프로세스를 예시하는 흐름도이다.
도 12는 MPC 클러스터의 컴퓨팅 시스템에서 향상된 성능을 갖는 사용자 프로파일에 대한 추론 결과를 생성하기 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 13은 예시적인 컴퓨터 시스템의 블록도이다.
다양한 도면에서 유사한 참조 번호 및 명칭은 유사한 요소를 나타낸다.
일반적으로, 본 문서는 사용자 프라이버시를 보호하고 데이터 보안을 보장하면서 사용자 그룹 구성원(membership)을 확장하기 위해 기계 학습 모델을 트레이닝하고 사용하기 위한 시스템 및 기술을 설명한다. 일반적으로 컨텐츠 플랫폼과 같은 다른 엔티티의 컴퓨팅 시스템에서 사용자 프로파일(프로필)을 생성 및 유지 관리하는 대신, 사용자 프로파일은 사용자들의 클라이언트 디바이스에서 유지 관리된다. 기계 학습 모델을 학습시키기 위해, 사용자들의 클라이언트 디바이스는 다른 데이터와 함께 그들의 암호화된 사용자 프로파일(예를 들어, 사용자 프로파일의 비밀 조각으로서)을 선택적으로 컨텐츠 플랫폼을 통해 보안 다자간 연산(MPC) 클러스터의 다중 컴퓨팅 시스템으로 전송할 수 있다. 예를 들어, 각 클라이언트 디바이스는 사용자 프로파일의 둘 이상의 비밀 조각(share, 부분)을 생성하고 각각의 비밀 조각을 각 컴퓨팅 시스템으로 전송할 수 있다. MPC 클러스터의 컴퓨팅 시스템은 MPC 기술을 사용하여 MPC 클러스터의 임의의 컴퓨팅 시스템(또는 사용자 자신이 아닌 다른 당사자)이 일반 텍스트로 임의의 사용자 프로파일을 획득하지 못하도록 하여 사용자 프라이버시를 보호하는 방식으로 프로파일에 기초하여 사용자들에게 사용자 그룹을 제안하는 기계 학습 모델을 트레이닝할 수 있다. 예를 들어, 본 문서에 설명된 비밀 세어 및 MPC 기술의 사용은 데이터가 사용자 디바이스 외부에 있을 때 각 사용자의 사용자 프로파일 데이터가 항상 암호화되는 동안 기계 학습 모델이 트레이닝되고 사용될 수 있다. 기계 학습 모델은 k-최근접 이웃(k-nearest neighbor) (k-NN) 모델일 수 있다.
기계 학습 모델이 트레이닝된 후, 기계 학습 모델은 프로파일에 기초하여 각 사용자에 대한 하나 이상의 사용자 그룹을 제안하는데 사용될 수 있다. 예를 들어, 사용자의 클라이언트 디바이스는 해당 사용자에 대한 제안된 사용자 그룹에 대해 MPC 클러스터에 질의하거나 사용자가 특정 사용자 그룹에 추가되어야 하는지 여부를 결정할 수 있다. 사용자 그룹을 식별하기 위해 이진 분류, 회귀(예를 들어, 산술 평균 또는 제곱 평균 제곱근 사용) 및/또는 다중 클래스 분류와 같은 다양한 추론 기술이 사용될 수 있다. 사용자의 사용자 그룹 구성원은 프라이버시를 보호하고 사용자에게 컨텐츠를 제공하는 안전한 방법으로 사용될 수 있다.
기계 학습 모델을 생성 및 사용하기 위한 예시적인 시스템
도 1은 보안 MPC(130) 클러스터가 기계 학습 모델을 트레이닝하고 기계 학습 모델을 사용하여 사용자 그룹을 확장하는 환경(100)의 블록도이다. 예시적인 환경(100)은 LAN(Local Area Network), WAN(Wide Area Network), 인터넷, 모바일 네트워크, 또는 이들의 조합과 같은 데이터 통신 네트워크(105)를 포함한다. 네트워크(105)는 클라이언트 디바이스들(110), 보안 MPC 클러스터(130), 게시자들(140), 웹사이트(142) 및 컨텐츠 플랫폼들(150)을 연결한다. 예시적인 환경(100)은 많은 상이한 클라이언트 디바이스(110), 보안 MPC 클러스터(130), 게시자(140), 웹사이트(142) 및 컨텐츠 플랫폼(150)을 포함할 수 있다.
클라이언트 디바이스(110)는 네트워크(105)를 통해 통신할 수 있는 전자 디바이스이다. 예시적인 클라이언트 디바이스(110)는 개인용 컴퓨터, 모바일 통신 디바이스(예를 들어, 스마트폰), 및 네트워크(105)를 통해 데이터를 송수신할 수 있는 기타 디바이스를 포함한다. 클라이언트 디바이스에는 마이크로폰을 통해 오디오 입력을 수신하고 스피커들을 통해 오디오 출력을 출력하는 디지털 어시스턴트 디바이스도 포함될 수 있다. 디지털 어시스턴트가 오디오 입력을 받아들이도록 마이크로폰을 활성화하는 "핫워드" 또는 "핫문구"를 검출할 때 디지털 어시스턴트를 청취 모드(예를 들어, 오디오 입력을 받아들일 준비가 됨)로 전환할 수 있다. 디지털 어시스턴트 디바이스는 또한 이미지를 캡처하고 정보를 시각적으로 제시하기 위한 카메라 및/또는 디스플레이를 포함할 수 있다. 디지털 어시스턴트는 웨어러블 디바이스(예를 들어, 워치 또는 글래스), 스마트 폰, 스피커 디바이스, 태블릿 디바이스 또는 기타 하드웨어 디바이스를 포함하는 다양한 형태의 하드웨어 디바이스로 구현될 수 있다. 클라이언트 디바이스는 또한 디지털 미디어 디바이스, 예를 들어 텔레비전 또는 다른 디스플레이에 연결하여 비디오를 텔레비전으로 스트리밍하는 스트리밍 디바이스, 또는 게임 디바이스 또는 콘솔을 포함할 수 있다.
클라이언트 디바이스(110)는 일반적으로 네트워크(105)를 통한 데이터의 송수신을 용이하게 하기 위해 웹 브라우저 및/또는 네이티브 애플리케이션과 같은 애플리케이션(112)을 포함한다. 네이티브 애플리케이션은 특정 플랫폼 또는 특정 디바이스(예를 들어, 특정 운영 체제가 있는 모바일 디바이스)용으로 개발된 애플리케이션이다. 게시자들(140)은 클라이언트 디바이스들(110)에 대한 네이티브 애플리케이션을 개발 및 제공할 수 있고, 예를 들어 다운로드가 가능하도록 할 수 있다. 웹 브라우저는 예를 들어 클라이언트 디바이스(110)의 사용자가 웹 브라우저의 주소 표시줄에 리소스(145)에 대한 리소스 주소를 입력하거나 리소스 주소를 참조하는 링크를 선택하는 것에 응답하여 게시자(140)의 웹사이트(142)를 호스팅하는 웹 서버에 리소스(145)를 요청할 수 있다. 마찬가지로, 네이티브 애플리케이션은 게시자의 원격 서버에 애플리케이션 컨텐츠를 요청할 수 있다.
일부 리소스, 애플리케이션 페이지 또는 다른 애플리케이션 컨텐츠는 디지털 컴포넌트를 리소스(145) 또는 애플리케이션 페이지에 제시하기 위한 디지털 컴포넌트 슬롯을 포함할 수 있다. 본 문서 전체에서 사용되는 바와같이 "디지털 컴포넌트"라는 문구는 디지털 컨텐츠 또는 디지털 정보의 개별 단위(예를 들어, 비디오 클립, 오디오 클립, 멀티미디어 클립, 이미지, 텍스트 또는 기타 컨텐츠 단위)를 지칭한다. 디지털 컴포넌트는 물리적 메모리 디바이스에 단일 파일 또는 파일의 모음으로 전자적으로 저장될 수 있으며, 디지털 컴포넌트는 비디오 파일, 오디오 파일, 멀티미디어 파일, 이미지 파일 또는 텍스트 파일의 형태를 취할 수 있으며 광고 정보를 포함할 수 있으므로 광고는 일종의 디지털 컴포넌트이다. 예를 들어, 디지털 컴포넌트는 웹 페이지의 컨텐츠 또는 애플리케이션(112)에 의해 제시되는 다른 리소스를 보완하기 위한 컨텐츠일 수 있다. 보다 구체적으로, 디지털 컴포넌트는 리소스 컨텐츠와 관련된 디지털 컨텐츠를 포함할 수 있다(예를 들어, 디지털 컴포넌트는 웹 페이지 컨텐츠와 동일한 토픽 또는 관련 토픽과 관련될 수 있음). 따라서 디지털 컴포넌트의 제공은 웹 페이지 또는 애플리케이션 컨텐츠를 보완하고 일반적으로 향상시킬 수 있다.
애플리케이션(112)이 하나 이상의 디지털 컴포넌트 슬롯을 포함하는 리소스(또는 애플리케이션 컨텐츠)를 로드할 때, 애플리케이션(112)은 각 슬롯에 대한 디지털 컴포넌트를 요청할 수 있다. 일부 구현에서, 디지털 컴포넌트 슬롯은 애플리케이션(112)이 디지털 컴포넌트를 선택하고 클라이언트 디바이스(110)의 사용자에게 제시하기 위해 애플리케이션(112)에 디지털 컴포넌트를 제공하는 디지털 컴포넌트 배포 시스템으로부터 디지털 컴포넌트를 요청하게 하는 코드(예를 들어, 스크립트)를 포함할 수 있다.
컨텐츠 플랫폼(150)은 공급측 플랫폼(SSP) 및 수요측 플랫폼(SSP)을 포함할 수 있다. 일반적으로, 컨텐츠 플랫폼(150)은 게시자(140) 및 디지털 컴포넌트 제공자(160)를 대신하여 디지털 컴포넌트의 선택 및 배포를 관리한다.
일부 게시자(140)는 SSP를 사용하여 리소스 및/또는 애플리케이션의 디지털 컴포넌트 슬롯를 위한 디지털 컴포넌트를 획득하는 프로세스를 관리한다. SSP는 리소스 및/또는 애플리케이션에 대한 디지털 컴포넌트를 획득하는 프로세스를 자동화하는 하드웨어 및/또는 소프트웨어에서 구현되는 기술 플랫폼이다. 각각의 게시자(140)는 대응하는 SSP 또는 다수의 SSP를 가질 수 있다. 일부 게시자(140)는 동일한 SSP를 사용할 수 있다.
디지털 컴포넌트 제공자들(160)은 게시자의 리소스 및 애플리케이션의 디지털 컴포넌트 슬롯에 제시되는 디지털 컴포넌트를 생성(또는 게시)할 수 있다. 디지털 컴포넌트 제공자들(160)은 DSP를 사용하여 디지털 컴포넌트 슬롯에서의 프리젠테이션을 위한 자신의 디지털 컴포넌트의 프로비저닝을 관리할 수 있다. DSP는 리소스 및/또는 애플리케이션과 함께 프레젠테이션하기 위한 디지털 컴포넌트를 배포하는 프로세스를 자동화하는 하드웨어 및/또는 소프트웨어로 구현된 기술 플랫폼이다. DSP는 디지털 컴포넌트 제공자들(160)을 대신하여 다수의 공급측 플랫폼 SSP와 상호 작용하여 다수의 상이한 게시자(140)의 리소스 및/또는 애플리케이션과 함께 프리젠테이션을 위한 디지털 컴포넌트를 제공할 수 있다. 일반적으로, DSP는 (예를 들어, SSP로부터) 디지털 컴포넌트에 대한 요청을 수신하고, 요청에 기초하여 하나 이상의 디지털 컴포넌트 제공자에 의해 생성된 하나 이상의 디지털 컴포넌트를 위한 선택 파라미터를 생성(또는 선택)하고, 디지털 컴포넌트(예를 들어, 디지털 컴포넌트 자체) 및 선택 파라미터와 관련된 데이터를 SSP에 제공할 수 있다. 그런 다음, SSP는 클라이언트 디바이스(110)에서의 프리젠테이션을 위한 디지털 컴포넌트를 선택하고 클라이언트 디바이스(110)로 하여금 디지털 컴포넌트를 제시하게 하는 데이터를 클라이언트 디바이스(110)에 제공할 수 있다.
일부 경우에, 웹 페이지, 애플리케이션 페이지, 또는 사용자가 이전에 방문 및/또는 상호 작용한 기타 전자 리소스과 관련된 디지털 컴포넌트들을 수신하는 것이 사용자에게 유리하다. 이러한 디지털 컴포넌트를 사용자에게 배포하기 위해, 사용자들은 사용자 그룹, 예를 들어 사용자 관심 그룹, 유사한 사용자 집단, 또는 유사한 사용자 데이터를 포함하는 다른 그룹 유형에 할당될 수 있다. 예를 들어, 사용자들이 특정 리소스를 방문하거나 리소스에서 특정 액션(예를 들어, 웹 페이지 상에 제시된 특정 아티템과 상호 작용하거나 라이템을 가상 장바구니에 추가)을 수행할 때 사용자 관심 그룹에 할당될 수 있다. 다른 예에서, 사용자는 활동 이력, 예를 들어, 방문한 리소스들의 이력 및/또는 리소스들에서 수행된 액션에 기초하여 사용자 그룹에 할당될 수 있다. 일부 구현에서, 사용자 그룹은 디지털 컴포넌트 제공자들(160)에 의해 생성될 수 있다. 즉, 각 디지털 컴포넌트 제공자(160)는 사용자들이 디지털 컴포넌트 제공자들(160)의 전자 리소스을 방문할 때 사용자를 자신의 사용자 그룹에 할당할 수 있다.
사용자의 프라이버시를 보호하기 위해, 사용자의 그룹 구성원은 사용자의 클라이언트 디바이스(110)에서, 예를 들어, 디지털 컴포넌트 제공자, 컨텐츠 플랫폼 또는 다른 당사자가 아닌, 애플리케이션들(112) 중 하나 또는 클라이언트 디바이스(110)의 운영 체제에 의해 유지될 수 있다. 특정 예에서, 신뢰할 수 있는(신뢰) 프로그램(예를 들어, 웹 브라우저) 또는 운영 체제는 웹 브라우저 또는 다른 애플리케이션을 사용하는 사용자에 대한 사용자 그룹 식별자 리스트("사용자 그룹 리스트")을 유지할 수 있다. 사용자 그룹 리스트는 사용자가 추가되었던 각 사용자 그룹에 대한 그룹 식별자를 포함할 수 있다. 사용자 그룹을 생성하는 디지털 컴포넌트 제공자들(160)은 그들의 사용자 그룹에 대한 사용자 그룹 식별자를 지정할 수 있다. 사용자 그룹에 대한 사용자 그룹 식별자는 그룹을 설명(예를 들어, 정원 가꾸기 그룹)하거나 그룹을 나타내는 코드(예를 들어, 설명이 아닌 영숫자 시퀀스)일 수 있다. 사용자에 대한 사용자 그룹 리스트는 클라이언트 디바이스(110)의 보안 저장소에 저장될 수 있고 및/또는 저장될 때 다른 사람들이 리스트에 액세스하는 것을 방지하기 위해 암호화될 수 있다.
애플리케이션(112)이 디지털 컴포넌트 제공자(160) 또는 웹사이트(142) 상의 웹 페이지와 관련된 리소스 또는 애플리케이션 컨텐츠를 제시할 때, 리소스는 애플리케이션(112)이 사용자 그룹 리스트에 하나 이상의 사용자 그룹 식별자를 추가하도록 요청할 수 있다. 이에 응답하여, 애플리케이션(112)은 하나 이상의 사용자 그룹 식별자를 사용자 그룹 리스트에 추가하고 사용자 그룹 리스트을 안전하게 저장할 수 있다.
컨텐츠 플랫폼들(150)은 사용자의 사용자 그룹 구성원을 사용하여 사용자가 관심을 기질 수 있거나 다른 방식으로 사용자/사용자 디바이스에 유익할 수 있는 디지털 컴포넌트 또는 기타 컨텐츠를 선택할 수 있다. 예를 들어, 이러한 디지털 컴포넌트 또는 기타 컨텐츠는 사용자 경험을 개선하거나, 사용자 디바이스의 실행을 개선하거나, 다른 방식으로 사용자 또는 사용자 디바이스에 이점을 주는 데이터를 포함할 수 있다. 그러나, 사용자의 사용자 그룹 리스트의 사용자 그룹 식별자는 컨텐츠 플랫폼(150)이 사용자 그룹 식별자를 특정 사용자와 상관시키는 것을 방지하는 방식으로 제공될 수 있고, 이에 의해 사용자 그룹 구성원 데이터를 사용하여 디지털 컴포넌트를 선택할 때 사용자 프라이버시를 보존할 수 있다.
애플리케이션(112)은 사용자 그룹 리스트로부터 컨텐츠 플랫폼들(150)과 상호 작용하는 신뢰할 수 있는 컴퓨팅 시스템으로 사용자 그룹 식별자들을 제공하여, 컨텐츠 플랫폼(150) 또는 사용자 자신이 아닌 임의의 다른 엔티티가 사용자의 완전한 사용자 그룹 구성원을 알지 못하도록 방지하는 방식으로 사용자 그룹 구성원에 기초하여 클라이언트 디바이스(110)에서 프리젠테이션하기 위한 디지털 컴포넌트들을 선택한다.
일부 경우에, 이미 사용자 그룹의 구성원인 사용자들과 유사한 관심사 또는 다른 유사한 데이터를 갖는 사용자를 포함하도록 사용자 그룹을 확장하는 것이 사용자 및 디지털 컴포넌트 제공자들에게 유익하다.
유리하게는, 사용자들은 제3자 쿠키를 사용하지 않고 사용자 그룹에 추가될 수 있다. 전술한 바와 같이, 사용자 프로파일은 클라이언트 디바이스(110)에서 유지 관리될 수 있다. 이것은 사용자의 도메인 간 브라우징 이력이 외부 당사자들과 공유되지 않도록 함으로써 사용자 프라이버시를 보호하고, 네트워크(105)를 통해 쿠키를 전송함으로써 소비되는 대역폭을 줄이고(수백만 사용자에 대해 집계하면 상당함), 일반적으로 이러한 정보를 저장하는 컨텐츠 플랫폼(150)의 저장 요구사항을 감소시키고, 쿠키를 유지하고 전송하기 위해 클라이언트 디바이스(110)에 의해 사용되는 배터리 소모를 감소시킨다.
예를 들어, 제1 사용자는 스노우 스키에 관심이 있을 수 있고 특정 스키 리조트에 대한 사용자 그룹의 구성원일 수 있다. 제2 사용자도 스키에 관심이 있을 수 있지만 이 스키 리조트를 모르며 스키 리조트 회원이 아니다. 두 사용자가 유사한 관심사 또는 데이터(예를 들어, 유사한 사용자 프로파일)를 가지고 있는 경우, 제2 사용자는 스키 리조트에 대한 사용자 그룹에 추가되어 제2 사용자가 스키 리조트와 관련된 컨텐츠(예를 들어, 디지털 컴포넌트)를 수신할 수 있도록 하며, 이는 제2 사용자 또는 그의 사용자 디바이스에 관심이 있거나 유익할 수 있다. 즉, 사용자 그룹은 유사한 사용자 데이터를 가진 다른 사용자를 포함하도록 확장될 수 있다.
보안 MPC 클러스터(130)는 사용자의 프로파일에 기초하여 사용자들(또는 그들의 애플리케이션(112))에게 사용자 그룹을 제안하거나 사용자 그룹의 제안을 생성하는데 사용될 수 있는 기계 학습 모델을 트레이닝할 수 있다. 보안 MPC 클러스터(130)는 기계 학습 모델을 트레이닝하기 위해 보안 MPC 기술을 수행하는 2개의 컴퓨팅 시스템(MPC 및 MPC2)을 포함한다. 예시적인 MPC 클러스터(130)는 2개의 컴퓨팅 시스템을 포함하지만, MPC 클러스터(130)가 하나 이상의 컴퓨팅 시스템을 포함하는 한 더 많은 컴퓨팅 시스템이 또한 사용될 수 있다. 예를 들어, MPC 클러스터(130)는 3개의 컴퓨팅 시스템, 4개의 컴퓨팅 시스템 또는 다른 적절한 수의 컴퓨팅 시스템을 포함할 수 있다. MPC 클러스터(130)에서 더 많은 컴퓨팅 시스템을 사용하는 것은 더 많은 보안 및 내결함성을 제공할 수 있지만 MPC 프로세스의 복잡성을 증가시킬 수도 있다.
컴퓨팅 시스템(MPC1 및 MPC2)은 상이한 엔티티에 의해 동작될 수 있다. 이러한 방식으로, 각 엔터티는 일반 텍스트의 전체 사용자 프로파일에 액세스할 수 없다. 일반 텍스트는 키 또는 기타 복호화(해독) 디바이스 또는 기타 복호화 프로세스 없이 보거나 사용할 수 있는 형식으로, 이진 파일을 포함하는 코드 또는 데이터로 작성되거나 계산적으로 태그가 지정되지 않거나 특별히 포멧되지 않은 텍스트이다. 예를 들어, 컴퓨팅 시스템들(MPC1 또는 MPC2) 중 하나는 사용자, 게시자(140), 컨텐츠 플랫폼(150) 및 디지털 컴포넌트 제공자(160)와 다른 신뢰할 수 있는 당사자에 의해 운영될 수 있다. 예를 들어, 기업 그룹, 정부 그룹 또는 브라우저 개발자는 컴퓨팅 시스템들(MPC1 및 MPC2) 중 하나를 유지 관리하고 운영할 수 있다. 다른 컴퓨팅 시스템은 상이한 신뢰할 수 있는 당사자들이 각 컴퓨팅 시스템(MPC1 및 MPC2)을 운영하도록 이러한 그룹들 중 다른 하나에 의해 운영될 수 있다. 바람직하게는, 상이한 컴퓨팅 시스템(MPC1 및 MPC2)을 운영하는 상이한 당사자는 사용자 프라이버시를 위험에 빠뜨리기 위해 공모할 동기가 없다. 일부 구현에서, 컴퓨팅 시스템(MPC1 및 MPC2)은 구조적으로 분리되고 본 문서에 설명된 보안 MPC 프로세스를 수행하는 것 외에는 서로 통신하지 않도록 모니터링된다.
일부 구현에서, MPC 클러스터(130)는 각각의 컨텐츠 플랫폼(150) 및/또는 각각의 디지털 컴포넌트 제공자(160)에 대해 하나 이상의 k-NN 모델을 트레이닝한다. 예를 들어, 각각의 컨텐츠 플랫폼(150)은 하나 이상의 디지털 컴포넌트 제공자(160)에 대한 디지털 컴포넌트의 배포를 관리할 수 있다. 컨텐츠 플랫폼(150)은 컨텐츠 플랫폼(150)이 디지털 컴포넌트의 배포를 관리하는 디지털 컴포넌트 제공자ㄷ들60) 중 하나 이상에 대해 MPC 클러스터(130)가 k-NN 모델을 트레이닝하도록 요청할 수 있다. 일반적으로, k-NN 모델은 사용자 세트의 사용자 프로파일(선택적으로 추가 정보) 간의 거리를 나타낸다. 컨텐츠 플랫폼의 각 k-NN 모델은 고유한 모델 식별자를 가질 수 있다. k-NN 모델을 트레이닝하기 위한 예시적인 프로세스가 도 4에 도시되고 아래에서 설명된다.
컨텐츠 플랫폼(150)에 대한 k-NN 모델을 트레이닝한 후, 컨텐츠 플랫폼(150)은 클라이언트 디바이스(110)의 사용자에 대한 하나 이상의 사용자 그룹을 식별하기 위해 클라이언트 디바이스(110)의 애플리케이션(112)에 질의(query)하거나 k-NN 모델에 질의하게 할 수 있다. 예를 들어, 컨텐츠 플랫폼(150)은 k-NN 모델에 질의하여 사용자에게 가장 가까운(최근접) "k" 사용자 프로파일의 임계 갯수가 특정 사용자 그룹의 구성원인지 여부를 결정할 수 있다. 그런 경우, 컨텐츠 플랫폼(150)은 사용자를 해당 사용자 그룹에 추가할 수 있다. 사용자에 대한 사용자 그룹이 식별되면, 컨텐츠 플랫폼(150) 또는 MPC 클러스터(130)는 애플리케이션(112)이 사용자를 사용자 그룹에 추가하도록 요청할 수 있다. 사용자 및/또는 애플리케이션(112)에 의해 승인되는 경우, 애플리케이션(112)은 사용자 그룹에 대한 사용자 그룹 식별자를 클라이언트 디바이스(110)에 저장된 사용자 그룹 리스트에 추가할 수 있다.
일부 구현에서, 애플리케이션(112)은 사용자가 할당된 사용자 그룹을 사용자가 관리할 수 있게 하는 사용자 인터페이스를 제공할 수 있다. 예를 들어, 사용자 인터페이스는 사용자가 사용자 그룹 식별자들을 제거하고, 모든 또는 특정 리소스(145), 게시자(140), 컨텐츠 플랫폼(150), 디지털 컴포넌트 제공자(160) 및/또는 MPC 클러스터(130)가 사용자를 사용자 그룹에 추가하는 것을 방지(예를 들어, 엔티티가 애플리케이션(112)에 의해 유지되는 사용자 그룹 식별자 리스트에 사용자 그룹 식별자를 추가하는 것을 방지)할 수 있다. 이것은 사용자에게 더 나은 투명성, 선택/동의 및 제어를 제공한다.
본 문서 전체에 걸친 설명에 더하여, 사용자는 본 명세서에 설명된 시스템, 프로그램 또는 기능이 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션 또는 활동, 직업, 사용자의 선호도 또는 사용자의 현재 위치에 관한 정보)의 수집을 가능하게 할 수 있는지 여부와 사용자에게 서버로부터 컨텐츠 또는 통신이 전송되는지 여부에 대해 사용자가 선택할 수 있도록 하는 컨트롤(예를 들어, 사용자가 상호 작용할 수 있는 사용자 인터페이스 요소)을 제공받을 수 있다. 또한, 특정 데이터는 개인 식별 정보가 제거될 수 있도록 저장 또는 사용되기 전에 하나 이상의 방식으로 처리될 수 있다. 예를 들어, 사용자의 신원은 개인 식별 정보가 사용자에 대해 확인될 수 없도록 처리되거나, 사용자의 지리적 위치는 사용자의 측정 위치가 확인될 수 없도록 위치 정보가 획득된 곳에서 일반화(예를 들어, 도시, 우편 번호 또는 주 수준)될 수 있다. 따라서 사용자는 사용자에 대해 수집되는 정보, 해당 정보가 사용되는 방법 및 사용자에게 제공되는 정보를 제어할 수 있다.
기계 학습 모델 생성 및 사용하기 위한 예시적인 프로세스
도 2는 기계 학습 모델을 트레이닝하고 기계 학습 모델을 사용하여 사용자 그룹에 사용자를 추가하기 위한 예시적인 프로세스(200)의 스윔(swim) 레인 다이어그램이다. 프로세스(200)의 동작들은 예를 들어 클라이언트 디바이스(110), MPC 클러스터(130)의 컴퓨팅 시스템(MPC1 및 MPC2) 및 컨텐츠 플랫폼(150)에 의해 구현될 수 있다. 프로세스(200)의 동작들(200)은 또한 비-일시적일 수 있는 하나 이상의 컴퓨터 판독 가능 매체에 저장된 명령들로서 구현될 수 있고, 하나 이상의 데이터 처리 장치에 의한 명령들의 실행은 하나 이상의 데이터 처리 장치로 하여금 프로세스(200)의 동작들을 수행하게 할 수 있다. 프로세스(200) 및 아래의 다른 프로세스가 2개의 컴퓨팅 시스템 MPC 클러스터(130)의 관점에서 설명되지만, 2개 이상의 컴퓨팅 시스템을 갖는 MPC 클러스터도 유사한 프로세스를 수행하는데 사용될 수 있다.
컨텐츠 플랫폼(150)은 클라이언트 디바이스들(110)에서 실행되는 애플리케이션(112)이 개별 사용자에 대한 사용자 프로파일을 생성하고 사용자 프로파일의 비밀-공유된 및/또는 암호화된 버전을 MPC 클러스터(130)에 업로드하도록 요청함으로써 그들의 기계 학습 모델들 중 하나의 트레이닝 및/또는 업데이트를 개시할 수 있다. 본 문서의 목적을 위해, 사용자 프로파일의 비밀 조각들은 그 비밀 조각이 일반 텍스트가 아니기 때문에 사용자 프로파일의 암호화된 버전으로 간주될 수 있다. 생성 시에, 각각의 애플리케이션(112)은 사용자 프로파일에 대한 데이터를 저장하고 컨텐츠 플랫폼(150)으로부터의 요청을 수신하는 것에 응답하여 업데이트된 사용자 프로파일을 생성할 수 있다. 사용자 프로파일의 컨텐츠와 기계 학습 모델은 컨텐츠 플랫폼(150)마다 다르기 때문에, 사용자의 클라이언트 디바이스(110)에서 실행되는 애플리케이션(112)은 다수의 사용자 프로파일에 대한 데이터를 유지하고 특정 컨텐츠 플랫폼 또는 특정 컨텐츠 플랫폼에 의해 소유된 특정 모델에 각각 특정된(고유한) 다수의 사용자 프로파일을 생성할 수 있다.
클라이언트 디바이스(110) 상에서 실행되는 애플리케이션(112)은 클라이언트 디바이스(110)의 사용자에 대한 사용자 프로파일을 구축한다(202). 사용자에 대한 사용자 프로파일은 사용자에 의해 개시된 이벤트 및/또는 전자 리소스, 예를 들어 웹 페이지 또는 애플리케이션 컨텐츠와 관련하여 사용자에 의해 개시되었을 수 있는 이벤트와 관련된 데이터를 포함할 수 있다. 이벤트에는 전자 리소스의 보기(view), 디지털 컴포넌트의 보기, 사용자 상호 작용, 또는 전자 리소스나 디지털 컴포넌트와의 사용자 상호 작용(예를 들어, 선택)의 부족(lack), 전자 리소스와의 상호 작용 및/또는 사용자 및 전자 리소스와 관련된 기타 적절한 이벤트 후에 발생하는 전환이 포함될 수 있다.
사용자에 대한 사용자 프로파일은 컨텐츠 플랫폼(150) 또는 컨텐츠 플랫폼(150)에 의해 소유된 선택된 기계 학습 모델에 특정적일 수 있다. 예를 들어, 도 3을 참조하여 아래에서 더 상세히 설명되는 바와 같이, 각각의 컨텐츠 플랫폼(150)은 애플리케이션(112)이 해당 컨텐츠 플랫폼(150)에 특정된 사용자 프로파일을 생성하거나 업데이트하도록 요청할 수 있다.
사용자에 대한 사용자 프로파일은 특징 벡터의 형태일 수 있다. 예를 들어, 사용자 프로파일은 n 차원 특징 벡터일 수 있다. n 차원 각각은 특정 특징에 대응할 수 있고 각 차원의 값은 사용자에 대한 특징의 값일 수 있다. 예를 들어, 하나의 차원은 특정 디지털 컴포넌트가 사용자에게 제시되었는지(또는 사용자와 상호 작용했는지) 여부에 대한 것일 수 있다. 이 예에서, 해당 특징의 값은 디지털 컴포넌트가 사용자에게 제시된 경우(또는 사용자와 상호 작용한 경우) "1"일 수 있고 디지털 컴포넌트가 사용자에게 제시되지 않은 경우(또는 사용자와 상호 작용하지 않은 경우) "0"일 수 있다. 사용자에 대한 사용자 프로파일을 생성하기 위한 예시적인 프로세스가 도 3에 도시되고 아래에 설명된다.
일부 구현에서, 컨텐츠 플랫폼(150)은 컨텍스트 신호, 특정 디지털 컴포넌트와 관련된 신호, 또는 사용자 위치에서의 현재 날씨와 같이 애플리케이션(112)이 인식하지 못하거나 애플리케이션(112)이 액세스할 수 없는 사용자와 관련된 신호와 같은 추가 신호에 기초하여 기계 학습 모델을 트레이닝하기를 원할 수 있다. 예를 들어, 컨텐츠 플랫폼(150)은 디지털 컴포넌트가 특정 컨텍스트에서 사용자에게 제시되는 경우 사용자가 특정 디지털 컴포넌트와 상호 작용할지 여부를 예측하기 위해 기계 학습 모델을 트레이닝하기를 원할 수 있다. 이 예에서, 컨텍스트 신호는 사용자에게 디지털 컴포넌트를 프리젠테이션할 때 마다, (사용자에 의해 허가가 인정되는 경우) 당시의 클라이언트 디바이스(110)의 지리적 위치, 디지털 컴포넌트가 제공되는 전자 리소스의 컨텐츠를 설명하는 신호, 및 디지털 컴포넌트를 설명하는 신호(예를 들어, 디지털 컴포넌트의 컨텐츠, 디지털 컴포넌트의 유형, 전자 리소스에서 디지털 컴포넌트가 제시되는 위치 등)를 포함할 수 있다. 다른 예에서, 하나의 차원은 사용자에게 제시된 디지털 컴포넌트가 특정 유형인지 여부에 대한 것일 수 있다. 이 예에서, 값은 여행의 경우 1, 요리의 경우 2, 영화의 경우 3 등일 수 있다. 후속 설명의 편의를 위해, Pi는 사용자 프로파일 및 i번째 사용자 프로파일과 관련된 추가 신호(예를 들어, 컨텍스트 신호 및/또는 디지털 컴포넌트 수준 신호)를 나타낼 것이다.
애플리케이션(112)은 사용자에 대한 사용자 프로파일(Pi)의 조각들(shares)을 생성한다(204). 이 예에서, 애플리케이션(112)은 MPC 클러스터(130)의 각 컴퓨팅 시스템에 대해 하나씩, 사용자 프로파일(Pi)의 2개의 조각을 생성한다. 각 조각 자체는 사용자 프로파일에 관해 아무 것도 노출(reveal)하지 않는 램덤 변수일 수 있다. 사용자 프로파일을 얻으려면 두 조각이 결합되어야 한다. MPC 클러스터(130)가 기계 학습 모델의 트레이닝에 참여하는 더 많은 컴퓨팅 시스템을 포함하는 경우, 애플리케이션(112)은 각각의 컴퓨팅 시스템에 대해 하나씩 더 많은 조각을 생성할 것이다. 일부 구현에서, 사용자 프라이버시를 보호하기 위해, 애플리케이션(112)은 의사 난수 함수를 사용하여 사용자 프로파일(Pi)을 조각들로 분할할 수 있다. 즉, 애플리케이션(112)은 의사 난수 함수 PRF(Pi)를 사용하여 2개의 조각 ({[Pi,1],[Pi,2]})을 생성할 수 있다. 정확한 분할(splitting)은 애플리케이션(112)에서 사용하는 비밀 분산(secret sharing) 알고리즘 및 암호화 라이브러리에 따라 달라질 수 있다.
일부 구현에서, 애플리케이션(112)은 또한 MPC 클러스터(130)에 하나 이상의 레이블(label, 라벨)을 제공할 수 있다. 레이블들은 특정 아키텍처(예를 들어, k-NN)의 기계 학습 모델을 트레이닝하는데 사용되지 않을 수 있지만, 레이블은 모델 트레이닝 프로세스(예를 들어, k 값)를 제어하는 하이퍼파라미터를 미세 조정하거나 트레이닝된 기계 학습 모델의 품질을 평가하거나 예측을 수행하는데, 즉, 사용자에게 사용자 그룹을 제안할지 여부를 결정하는데 사용될 수 있다. 레이블은 예를 들어 사용자에 대한 하나 이상의 사용자 그룹 식별자를 포함할 수 있으며 이에 대해 컨텐츠 플랫폼(150)이 액세스할 수 있다. 즉, 레이블은 컨텐츠 플랫폼(150)에 의해 관리되거나 컨텐츠 플랫폼(150)이 판독 액세스 권한을 갖는 사용자 그룹에 대한 사용자 그룹 식별자를 포함할 수 있다. 일부 구현에서, 단일 레이블은 사용자에 대한 다수의 사용자 그룹 식별자를 포함한다. 일부 구현에서, 사용자에 대한 레이블은 이기종일 수 있고 사용자를 구성원으로 포함하는 모든 사용자 그룹 및 추가 정보(예를 들어, 사용자가 주어진 디지털 컴포넌트와 상호 작용했는지 여부)를 포함한다. 이를 통해 k-NN 모델을 사용하여 다른 사용자가 주어진 디지털 컴포넌트와 상호 작용할지 여부를 예측할 수 있다. 각 사용자 프로파일에 대한 레이블은 사용자 프로파일에 해당하는 사용자에 대한 사용자 그룹 구성원 자격을 나타낼 수 있다.
사용자 프로파일에 대한 레이블은 입력에 대응하는 사용자가 추가되거나 추가되어야 하는 사용자 그룹을 예측한다. 예를 들어, 입력 사용자 프로파일에 대한 k개의 최근접 이웃 사용자 프로파일들에 해당하는 레이블은, 예를 들어 사용자 프로파일 간의 유사성에 기초하여 입력 사용자 프로파일에 해당하는 사용자가 가입하거나 가입해야 하는 사용자 그룹을 예측한다. 이러한 예측(된) 레이블을 사용하여 사용자에게 사용자 그룹을 제안하거나 애플리케이션 레이블에 해당하는 사용자 그룹에 사용자를 추가하도록 요청할 수 있다.
레이블들이 포함되는 경우, 애플리케이션(112)은 또한 각 레이블(i)을 조각들, 예를 들어 [labeli,1] 및 [labeli,2]로 분할할 수 있다. 이러한 방식으로, 컴퓨팅 시스템들(MPC1 및 MPC2) 간의 공모 없이 컴퓨팅 시스템(MPC1 및 MPC2)은 [Pi,1] 또는 [Pi,2]로부터 Pi를 재구성하거나 [labeli,1] 또는 [labeli,2]로부터 레이블(i)을 재구성할 수 없다.
애플리케이션(112)은 사용자 프로파일(Pi)의 조각([Pi,1] 또는 [Pi,2]) 및/또는 각 레이블(labeli)(206)의 조각([labeli,1] 또는 [labeli,2])을 암호화한다. 일부 구현에서, 애플리케이션(112)은 사용자 프로파일(Pi)의 제1 조각([Pi,1])과 레이블(labeli)의 제1 조각([labeli,1])의 복합(composite) 메시지를 생성하고 컴퓨팅 시스템(MPC1)의 암호화 키를 사용하여 복합 메시지를 암호화한다. 유사하게, 애플리케이션(112)은 사용자 프로파일(Pi)의 제2 조각([Pi,2])과 레이블(labeli)의 제2 조각([labeli,2])의 복합 메시지를 생성하고 컴퓨팅 시스템(MPC2)의 암호화 키를 사용하여 복합 메시지를 암호화한다. 이러한 함수는 PubKeyEncrypt([Pi,1] || [labeli,1], MPC1) 및 PubKeyEncrypt([Pi,2] || [labeli,2], MPC2)로 나타낼 수 있으며, 여기서 PubKeyEncrypt는 MPC1 또는 MPC2의 해당 공개 키를 사용하는 공개 키 암호화 알고리즘을 나타낸다. 심볼 "||"은 JSON(JavaScript Object Notation), CBOR(Concise Binary Object Representation) 또는 프로토콜 버퍼와 같은 다수의 단순 메시지에서 복잡한 메시지를 구성하는 가역적 방법을 나타낸다.
애플리케이션(112)은 암호화된 조각들을 컨텐츠 플랫폼(150)으로 제공한다(208). 예를 들어, 애플리케이션(112)은 사용자 프로파일 및 레이블의 암호화된 조각들을 컨텐츠 플랫폼(150)으로 전송할 수 있다. 각 조각은 컴퓨팅 시스템(MPC1 또는 MPC2)의 암호화 키를 사용하여 암호화되므로 컨텐츠 플랫폼(150)은 사용자의 사용자 프로파일 또는 레이블에 액세스할 수 없다.
컨텐츠 플랫폼(150)은 다수의 클라이언트 디바이스로부터 사용자 프로파일의 조각 및 레이블의 조각을 수신할 수 있다. 컨텐츠 플랫폼(150)은 사용자 프로파일의 조각을 컴퓨팅 시스템(MPC1 및 MPC2)에 업로드함으로써 기계 학습 모델의 트레이닝을 개시할 수 있다. 레이블들은 트레이닝 프로세스에서 사용되지 않을 수 있지만, 컨텐츠 플랫폼(150)은 모델 품질을 평가하거나 나중에 모델을 질의할 때 사용하기 위해 레이블의 조각을 컴퓨팅 시스템(MPC1 및 MPC2)에 업로드할 수 있다.
컨텐츠 플랫폼(150)은 각 클라이언트 디바이스(110)로부터 수신된 제1 암호화된 조각(예를 들어, PubKeyEncrypt([Pi,1] ||[labeli,1], MPC1))을 컴퓨팅 시스템(MPC1)에 업로드한다(210). 유사하게, 컨텐츠 플랫폼(150)은 제2 암호화된 조각(예를 들어, PubKeyEncrypt([Pi,2] || [labeli,2], MPC2))을 컴퓨팅 시스템(MPC2)에 업로드한다(212). 두 업로드 모두 일괄 처리될 수 있으며 기계 학습 모델을 트레이닝하기 위해 특정 기간 동안 수신된 사용자 프로파일 및 레이블의 암호화된 조각을 포함할 수 있다.
일부 구현에서, 컨텐츠 플랫폼(150)이 컴퓨팅 시스템(MPC1)에 제1 암호화된 조각을 업로드하는 순서는 컨텐츠 플랫폼(150)이 컴퓨팅 시스템(MPC2)에 제2 암호화된 조각을 업로드하는 순서와 일치해야 한다. 이것은 컴퓨팅 시스템(MPC1 및 MPC2)이 동일한 비밀의 2개 조각, 예를 들어 동일한 사용자 프로파일의 2개 조각을 적절하게 매칭시킬 수 있게 한다.
일부 구현에서, 컨텐츠 플랫폼(150)은 매칭을 용이하게 하기 위해 동일한 의사 랜덤 또는 순차적으로 생성된 식별자를 동일한 비밀 조각들에 명시적으로 할당할 수 있다. 일부 MPC 기술은 입력 또는 중간 결과의 무작위 섞기(shuffling)에 의존할 수 있지만, 본 문서에 설명된 MPC 기술에는 이러한 무작위 섞기가 포함되지 않을 수 있으며 대신 업로드 순서에 의존하여 매칭할 수 있다.
일부 구현에서, 동작들(208, 210 및 212)은 애플리케이션(112)이 [Pi,1] ||labeli,1]을 MPC1으로 그리고 [Pi,2] || [labeli,2]를 MPC2로 직접 업로드하는 대안적인 프로세스로 대체될 수 있다. 이 대안적인 프로세스는 동작(208, 210, 212)을 지원하기 위해 컨텐츠 플랫폼(150)의 인프라 비용을 감소시킬 수 있고, MPC1 및 MPC2에서 기계 학습 모델의 트레이닝 또는 업데이트를 시작하기 위한 레이턴시를 감소시킬 수 있다. 예를 들어, 이는 컨텐츠 플랫폼(150)이 MPC1 및 MPC2로 전송하는 컨텐츠 플랫폼(150)으로의 데이터 전송을 제거한다. 그렇게 하는 것은 네트워크(105)를 통해 전송되는 데이터의 양을 감소시키고 이러한 데이터를 처리하는데 있어서 컨텐츠 플랫폼(150)의 논리의 복잡성을 감소시킨다.
컴퓨팅 시스템(MPC1 및 MPC2)은 기계 학습 모델을 생성한다(214). 사용자 프로파일 데이터에 기초하여 새로운 기계 학습 모델이 생성될 때마다 트레이닝 세션으로 지칭될 수 있다. 컴퓨팅 시스템(MPC1 및 MPC2)은 클라이언트 디바이스(110)로부터 수신된 사용자 프로파일의 암호화된 조각들에 기초하여 기계 학습 모델을 트레이닝할 수 있다. 예를 들어, 컴퓨팅 시스템(MPC1 및 MPC2)은 MPC 기술을 사용하여 사용자 프로파일의 조각에 기초하여 k-NN 모델을 트레이닝할 수 있다.
암호화 계산을 최소화하거나 적어도 줄이고 따라서 모델 트레이닝 및 추론 동안 사용자 프라이버시 및 데이터를 보호하기 위해 컴퓨팅 시스템(MPC1 및 MPC2)에 가해지는 계산 부담을 줄이기 위해, MPC 클러스터(130)는 랜덤 투영 기술(예를 들어 SimHash)을 사용하여, 두 사용자 프로파일(Pi와 Pj) 간의 유사성을 빠르고 안전하며 확률적으로 수량화한다. SimHash는 두 데이터 세트 간의 유사성을 빠르게 추정할 수 있는 기술이다. 두 사용자 프로파일(Pi 및 Pj) 간의 유사성은 두 사용자 프로파일(Pi 및 Pj)을 나타내는 두 비트 벡터 간의 해밍 거리를 결정함으로써 결정될 수 있으며, 이는 높은 확률로 두 사용자 프로파일 간의 코사인 거리에 반비례한다.
개념적으로, 각 트레이닝 세션에 대해, m개의 랜덤 투영 초평면(hyperplanes) U = {U1, U2, …, Um}이 생성될 수 있다. 랜덤 투영 초평면은 랜덤 투영 평면으로도 지칭될 수 있다. 컴퓨팅 시스템(MPC1 및 MPC2) 간의 다단계 연산의 한 가지 목적은 k-NN 모델의 트레이닝에 사용되는 각 사용자 프로파일(Pi)에 대해 길이가 m인 비트 벡터(Bi)를 생성하는 것이다. 이 비트 벡터(Bi)에서 각 비트(Bi,j)는 투영 평면들(Uj) 중 하나와 사용자 프로파일(Pi)의 내적(dot product)의 부호, 즉, 모든 j∈[1,m]에 대해 Bi,j = sign(Uj ⊙ Pi)를 나타내고, 여기서 ⊙은 길이가 같은 두 벡터의 내적을 나타낸다. 즉, 각 비트는 사용자 프로파일(Pi)이 평면(Uj)의 어느 쪽에 위치하는지를 나타낸다. 비트 값 1은 양의 부호를 나타내고 비트 값 0은 음의 부호를 나타낸다.
다단계 연산의 각 끝에서, 두 컴퓨팅 시스템(MPC1 및 MPC2) 각각은 일반 텍스트의 각 사용자 프로파일에 대한 비트 벡터, 각 사용자 프로파일의 조각 및 각 사용자 프로파일에 대한 레이블의 조각을 포함하는 중간 결과를 생성한다. 예를 들어, 컴퓨팅 시스템(MPC1)에 대한 중간 결과는 아래 [표 1]에 도시된 데이터일 수 있다. 컴퓨팅 시스템(MPC2)은 유사한 중간 결과를 갖지만 각 사용자 프로파일과 각 레이블의 조각이 다르다. 추가적인 프라이버시 보호를 추가하기 위해, MPC 클러스터(130)의 두 서버 각각은 일반 텍스트에서 m차원 비트 벡터의 절반만 얻을 수 있는데, 예를 들어 컴퓨팅 시스템(MPC1)은 모든 m차원 비트 벡터의 첫 번째 m/2 차원을 억고 컴퓨팅 시스템(MPC2)은 모든 m차원 비트 벡터의 두 번째 m/2 차원을 얻는다.
일반 텍스트의 비트 벡터 Pi에 대한 MPC1 조각 labeli에 대한 MPC1 조각
''' ''' '''
Bi ''' '''
Bi+1 ''' '''
''' ''' '''
단위 길이(i≠j)의 2개의 임의의 사용자 프로파일 벡터(Pi 및 Pj)가 주어지면, 2개의 사용자 프로파일 벡터(Pi 및 Pj)에 대한 비트 벡터(Bi 및 Bj) 사이의 해밍 거리는 랜덤 투영의 수(m)가 충분히 크다고 가정할 때 높은 확률로 사용자 프로파일 벡터(Pi 및 Pj) 사이의 코사인 거리에 비례하는 것으로 나타났다.
위에 도시된 중간 결과에 기초하고 비트 벡터(Bi)가 일반 텍스트이기 때문에, 각각의 컴퓨팅 시스템(MPC1 및 MPC2)은 예를 들어 트레이닝함으로써 k-NN 알고리즘을 사용하여 개별 k-NN 모델을 독립적으로 생성할 수 있다. 컴퓨팅 시스템(MPC1 및 MPC2)은 동일하거나 다른 k-NN 알고리즘을 사용할 수 있다. k-NN 모델을 트레이닝하기 위한 예시적인 프로세스는 도 4에 도시되고 아래에 설명되어 있다. 일단 k-NN 모델이 트레이닝되면, 애플리케이션(112)은 k-NN 모델에 질의하여 사용자 그룹에 사용자를 추가할지 여부를 결정할 수 있다.
애플리케이션(112)은 MPC 클러스터(130)에 추론 요청을 제출한다(216). 이 예에서, 애플리케이션(112)은 컴퓨팅 시스템(MPC1)에 추론 요청을 전송한다. 다른 예들에서, 애플리케이션(112)은 컴퓨팅 시스템(MPC2)에 추론 요청을 전송할 수 있다. 애플리케이션(112)은 추론 요청을 제출하라는 컨텐츠 플랫폼(150)으로부터의 요청에 응답하여 추론 요청을 제출할 수 있다. 예를 들어, 컨텐츠 플랫폼(150)은 클라이언트 디바이스(110)의 사용자가 특정 사용자 그룹에 추가되어야 하는지 여부를 결정하기 위해 k-NN 모델을 질의하도록 애플리케이션(112)에 요청할 수 있다. 이 요청은 사용자 그룹에 사용자를 추가해야 하는지 여부를 추론하기 위한 추론 요청으로 지칭될 수 있다.
추론 요청을 개시하기 위해, 컨텐츠 플랫폼(150)은 추론 요청 토큰(Minfer)을 애플리케이션(112)으로 전송할 수 있다. 추론 요청 토큰(Minfer)은 MPC 클러스터(130)의 서버가 애플리케이션(112)이 특정 도메인에 의해 소유된 특정 기계 학습 모델을 질의할 수 있는 권한이 있음을 검증할 수 있게 한다. 추론 요청 토큰(Minfer)은 모델 액세스 제어가 선택 사항(optional)인 경우 선택 사항이다. 추론 요청 토큰(Minfer)은 아래 [표 2]와 같은 항목을 도시하고 기술할 수 있다.
항목 번호 컨텐츠 설명
1 컨텐츠 플랫폼 도메인(예를 들어,eTLD+1 도메인) 컨텐츠 플랫폼을 고유하게 식별하는 컨텐츠 플랫폼의 도메인
2 모델 식별자 컨텐츠 플랫폼의 기계 학습 모델에 대한 고유 식별자
3 k 페치할 최근접 이웃의 수
4 집계 함수 k개의 최근접 이웃 레이블에 적용된 집계 함수
5 집계 함수 파라미터들 집계 함수에 의해 사용되는 추가 파라미터
6 토큰 생성 타임스탬프 이 토큰이 생성된 시간을 나타내는 타임스탬프
7 동작 추론 요청 동작
8 디지털 서명 항목 1-7에 대한 컨텐츠 플랫폼의 디지털 서명
이 예에서, 추론 요청 토큰(Minfer)은 7개의 항목과 컨텐츠 플랫폼(150)의 개인 키를 사용하여 7개의 항목에 기초하여 생성된 디지털 서명을 포함한다. eTLD+1은 유효 최상위 도메인(eTLD)에 공용 접미사보다 한 레벨 더 추가한 것이다. eTLD+1의 예는 "example.com"이며, 여기서 ".com"은 최상위 도메인이다.
특정 사용자에 대한 추론을 요청하기 위해, 컨텐츠 플랫폼(150)은 추론 요청 토큰(Minfer)을 생성하고 그 토큰을 사용자의 클라이언트 디바이스(110)에서 실행되는 애플리케이션(112)으로 전송할 수 있다. 일부 구현에서, 컨텐츠 플랫폼(150)은 애플리케이션(112)만이 공개 키에 대응하는 비밀 개인 키를 사용하여 추론 요청 토큰(Minfer)을 복호화할 수 있도록 애플리케이션(112)의 공개 키를 사용하여 추론 요청 토큰(Minfer)을 암호화한다. 즉, 컨텐츠 플랫폼은 애플리케이션(112)으로 PubKeyEnc(Minfer, application_public_key)를 전송할 수 있다.
애플리케이션(112)은 추론 요청 토큰(Minfer)을 복호화하고 검증할 수 있다. 애플리케이션(112)은 자신의 개인 키를 사용하여 암호화된 추론 요청 토큰(Minfer)을 해독할 수 있다. 애플리케이션(112)은 (i) 디지털 서명을 생성하는데 사용된 컨텐츠 플랫폼(150)의 개인 키에 대응하는 컨텐츠 플랫폼(150)의 공개 키를 사용하여 디지털 서명을 검증하고 (ii) 토큰 생성 타임스탬프가 오래되지 않았음을, 예를 들어 타임스탬프에 의해 표시된 시간이 검증이 진행중인 현재 시간의 임계값 내에 있는지 확인함으로싸 추론 요청 토큰(Minfer)검증할 수 있다. 추론 요청 토큰(Minfer)이 유효한 경우, 애플리케이션(112)은 MPC 클러스터(130)에 질의할 수 있다.
개념적으로, 추론 요청은 기계 학습 모델에 대한 모델 식별자, 현재 사용자 프로파일(Pi, k)(페치할 최근접 이웃의 수), 선택적으로 추가 신호(예를 들어, 컨텍스트 신호 또는 디지털 컴포넌트 신호), 집계 함수 및 집계 함수 파라미터를 포함할 수 있다. 그러나, 일반 텍스트 형식의 사용자 프로파일(Pi)이 컴퓨팅 시스템(MPC1 또는 MPC2)으로 누출되는 것을 방지하고 이에 따라 사용자 프라이버시를 보호하기 위해, 애플리케이션(112)은 사용자 프로파일(Pi)을 MPC1 및 MPC2에 대해 각각 2개의 조각([Pi,1] 및 [Pi,2])으로 분할할 수 있다. 그런 다음, 애플리케이션(112)은 질의를 위해, 2개의 컴퓨팅 시스템(MPC1 또는 MPC2) 중 하나를, 예를 들어 랜덤하게 또는 의사 랜덤하게 선택할 수 있다. 애플리케이션(112)이 컴퓨팅 시스템(MPC1)을 선택하는 경우, 애플리케이션(112)은 제1 조각([Pi,1]) 및 제2 조각의 암호화된 버전, 예를 들어 PubKeyEncrypt([Pi,2], MPC2)를 사용하여 컴퓨팅 시스템(MPC1)으로 단일 요청을 전송할 수 있다. 이 예에서 애플리케이션(112)은 컴퓨팅 시스템(MPC1)이 [Pi,2]에 액세스하는 것을 방지하기 위해 컴퓨팅 시스템(MPC2)의 공개 키를 사용하여 제2 조각([Pi,2])을 암호화하여, 컴퓨팅 시스템(MPC1)이 [Pi,1] 및 [Pi,2]로부터 사용자 프로파일(Pi)을 재구성할 수 있도록 한다.
아래에서 더 상세히 설명되는 바와 같이, 컴퓨팅 시스템(MPC1 및 MPC2)은 사용자 프로파일(Pi)에 대해 k개의 최근접 이웃을 협력하여 계산한다. 그런 다음 컴퓨팅 시스템(MPC1 및 MPC2)은 몇 가지 가능한 기계 학습 기술(예를 들어, 이진 분류, 다중 클래스 분류, 회귀 등) 중 하나를 사용하여 k개의 최근접 이웃 사용자 프로파일에 기초하여 사용자를 사용자 그룹에 추가할지 여부를 결정할 수 있다. 예를 들어, 집계 함수는 기계 학습 기술(예를 들어, 이진, 다중 클래스, 회귀)을 식별할 수 있고 집계 함수 파라미터는 집계 함수 기반으로 할 수 있다. 집계 함수는 연산 예를 들어 합(sum), 논리적 AND 또는 OR. 또는 파라미터를 사용하여 수행되는 다른 적절한 함수를 정의할 수 있다. 예를 들어, 집계 함수는 방정식에 사용되는 함수와 파라미터를 포함하는 방정식의 형태일 수 있다.
일부 구현에서, 집계 함수 파라미터는 컨텐츠 플랫폼(150)이 사용자에 대한 k-NN 모델에 질의하고 있는 사용자 그룹에 대한 사용자 그룹 식별자를 포함할 수 있다. 예를 들어, 컨텐츠 플랫폼(150)은 사용자 그룹 식별자 "하이킹(hiking)"을 갖는 하이킹과 관련된 사용자 그룹에 사용자를 추가할지 여부를 알고 싶어할 수 있다. 이 예에서 집계 함수 파라미터는 "하이킹" 사용자 그룹 식별자를 포함할 수 있다. 일반적으로, 컴퓨팅 시스템(MPC1 및 MPC2)은 사용자 그룹의 구성원인 k개의 최근접 이웃의 수에 기초하여, 예를 들어 그들의 레이블에 기초하여 사용자를 사용자 그룹에 추가할지 여부를 결정할 수 있다.
MPC 클러스터(130)는 추론 결과를 애플리케이션(112)에 제공한다(218). 이 예에서, 질의를 수신한 컴퓨팅 시스템(MPC1)은 추론 결과를 애플리케이션(112)으로 전송한다. 추론 결과는 애플리케이션(112)이 사용자를 0개 이상의 사용자 그룹에 추가해야 하는지 여부를 나타낼 수 있다. 예를 들어, 사용자 그룹 결과는 사용자 그룹에 대한 사용자 그룹 식별자를 지정할 수 있다. 그러나, 이 예에서 컴퓨팅 시스템(MPC1)은 사용자 그룹을 알고 있다. 이를 방지하기 위해, 컴퓨팅 시스템(MPC1)은 추론 결과의 조각을 계산할 수 있고 컴퓨팅 시스템(MPC2)은 동일한 추론 결과의 다른 조각을 계산할 수 있다. 컴퓨팅 시스템(MPC2)은 자신의 조각의 암호화된 버전을 컴퓨팅 시스템(MPC1)에 제공할 수 있으며, 여기서 조각은 애플리케이션(112)의 공개 키를 사용하여 암호화된다. 컴퓨팅 시스템(MPC1)은 추론 결과의 자신의 조각 및 사용자 그룹 결과의 컴퓨팅 시스템(MPC2)의 조각의 암호화된 버전을 애플리케이션(112)에 제공할 수 있다. 애플리케이션(112)은 컴퓨팅 시스템(MPC2)의 조각을 복호화하고 두 조각으로부터 추론 결과를 계산할 수 있다. 사용자 그룹에 사용자를 추가할지 여부를 결정하기 위해 k-NN 모델에 쿼리하는 예시적인 프로세스가 도 5에 도시되고 아래에 설명된다. 일부 구현에서, 컴퓨팅 시스템(MPC1)이 컴퓨팅 시스템(MPC2)의 결과를 위조하는 것을 방지하기 위해, 컴퓨팅 시스템(MPC2)은 애플리케이션(112)의 공개 키를 사용하여 결과를 암호화하기 전이나 후에 결과에 디지털 서명을 한다. 애플리케이션(112)은 MPC2의 공개 키를 사용하여 컴퓨팅 시스템(MPC2)의 디지털 서명을 검증한다.
애플리케이션(112)은 사용자에 대한 사용자 그룹 리스트을 업데이트한다(220). 예를 들어, 추론 결과가 특정 사용자 그룹에 사용자를 추가하는 것인 경우, 애플리케이션(112)은 사용자를 사용자 그룹에 추가할 수 있다. 일부 구현에서, 애플리케이션(112)은 사용자 그룹에 사용자를 추가하기 위한 허가를 사용자에게 프롬프트할 수 있다.
애플리케이션(112)은 컨텐츠에 대한 요청을 전송한다(222). 예를 들어, 애플리케이션(112)은 디지털 컴포넌트 슬롯을 갖는 전자 리소스을 로드하는 것에 응답하여 디지털 컴포넌트에 대한 요청을 컨텐츠 플랫폼(150)으로 전송할 수 있다. 일부 구현에서, 요청은 사용자를 구성원으로 포함하는 사용자 그룹에 대한 하나 이상의 사용자 그룹 식별자를 포함할 수 있다. 예를 들어, 애플리케이션(112)은 사용자 그룹 리스트으로부터 하나 이상의 사용자 그룹 식별자를 획득하고 사용자 그룹 식별자(들)에 요청을 제공할 수 있다. 일부 구현에서, 기술들은 컨텐츠 플랫폼이 사용자 그룹 식별자를 사용자, 애플리케이션(112), 및/또는 요청이 수신되는 클라이언트 디바이스(112)와 연관시킬 수 있는 것을 방지하기 위해 사용될 수 있다.
컨텐츠 플랫폼(150)은 컨텐츠를 애플리케이션(112)으로 전송한다(224). 예를 들어, 컨텐츠 플랫폼(150)은 사용자 그룹 식별자(들)에 기초하여 디지털 컴포넌트를 선택하고 디지털 컴포넌트를 애플리케이션(112)에 제공할 수 있다. 일부 구현에서, 컨텐츠 플랫폼(150)은 애플리케이션(112)과 협력하여, 사용자 그룹 식별자(들)를 애플리케이션(112) 외부로 누설하지 않고 사용자 그룹 식별자(들)에 기초하여 디지털 컴포넌트를 선택한다.
애플리케이션(112)은 수신된 컨텐츠를 디스플레이하거나 구현한다(226). 예를 들어, 애플리케이션(112)은 수신된 디지털 컴포넌트를 전자 리소스의 디지털 컴포넌트 슬롯에 디스플레이할 수 있다.
사용자 프로파일을 생성하기 위한 예시적인 프로세스
도 3은 사용자 프로파일을 생성하고 사용자 프로파일의 조각들(shares)을 MPC 클러스터로 전송하기 위한 예시적인 프로세스(300)를 도시하는 흐름도이다. 프로세스(300)의 동작들은 예를 들어, 도 1의 클라이언트 디바이스(110)에 의해, 예를 들어 클라이언트 디바이스(110)에서 실행되는 애플리케이션(112)에 의해 구현될 수 있다. 프로세스(300)의 동작들은 비-일시적일 수 있는 하나 이상의 컴퓨터 판독 가능 매체에 저장된 명령들로 구현될 수 있으며, 하나 이상의 데이터 처리 장치에 의한 명령들의 실행은 하나 이상의 데이터 처리 장치로 하여금 프로세스(300)의 동작들을 수행하게 할 수 있다.
사용자의 클라이언트 디바이스(110) 상에서 실행되는 애플리케이션(112)은 이벤트에 대한 데이터를 수신한다(302). 이벤트는 예를 들어 클라이언트 디바이스(110)에서의 전자 리소스의 프리젠테이션, 클라이언트 디바이스(110)에서의 디지털 컴포넌트의 프리젠테이션, 클라이언트 디바이스(110)에서 전자 리소스 또는 디지털 컴포넌트와의 사용자 상호 작용, 또는 디지털 컴포넌트에 대한 전환, 또는 제공된 전자 리소스 또는 디지털 컴포넌트에 대한 사용자 상호 작용 또는 전환의 부족일 수 있다. 이벤트가 발생할 때, 컨텐츠 플랫폼(150)은 사용자에 대한 사용자 프로파일을 생성하는데 사용하기 위해 이벤트와 관련된 데이터를 애플리케이션(112)에 제공할 수 있다.
애플리케이션(112)은 각각의 컨텐츠 플랫폼(150)에 대해 상이한 사용자 프로파일을 생성할 수 있다. 즉, 특정 컨텐츠 플랫폼(150)에 대한 사용자의 사용자 프로파일은 특정 컨텐츠 플랫폼(150)으로부터 수신된 이벤트 데이터만을 포함할 수 있다. 이는 다른 컨텐츠 플랫폼의 이벤트와 관련된 데이터를 컨텐츠 플랫폼과 공유하지 않음으로써 사용자 프라이버시를 보호한다. 일부 구현에서, 애플리케이션(112)은 컨텐츠 플랫폼(150)의 요청에 따라 컨텐츠 플랫폼(150)에 의해 소유된 각각의 기계 학습 모델에 대해 상이한 사용자 프로파일을 생성할 수 있다. 설계 목표에 기반하여, 다른 기계 학습 모델에는 다른 트레이닝 데이터가 필요할 수 있다. 예를 들어, 사용자 그룹에 사용자를 추가할지 여부를 결정하기 위해 제1 모델이 사용될 수 있다. 제2 모델은 사용자가 디지털 컴포넌트와 상호 작용할지 여부를 예측하는데 사용될 수 있다. 이 예에서, 제2 모델에 대한 사용자 프로파일은 제1 모델에 대한 사용자 프로파일에 없는 추가 데이터, 예를 들어 사용자가 디지털 컴포넌트와 상호 작용했는지 여부를 포함할 수 있다.
컨텐츠 플랫폼(150)은 프로파일 업데이트 토큰(Mupdate)의 형태로 이벤트 데이터를 전송할 수 있다. 프로파일 업데이트 토큰(Mupdate)에는 아래 [표 3]에 도시 및 설명된 다음 항목이 있다.

항목 번호

컨텐츠

설명
1 컨텐츠 플랫폼 도메인(예를 들어, eTLD + 1 도메인) 컨텐츠 플랫폼을 고유하게 식별하는 컨텐츠 플랫폼의 도메인


2


모델 식별자
컨텐츠 플랫폼의 기계 학습 모델에 대한 고유 식별자. 이 항목은 동일한 소유자 도메인에 대한 다수의 기계 학습 모델의 트레이닝에 동일한 특징 벡터가 적용되어야 하는 경우 다수의 값을 가질 수 있다.
3 프로파일 기록 이벤트에 기초하여 컨텐츠 플랫폼에 의해 결정된 n 차원 특징 벡터
4 토큰 생성 타임스탬프 이 토큰이 생성된 시간을 나타내는 타임스탬프

5

만료 시간
특징 벡터가 만료되어 사용자 프로파일 계산에 사용되지 않는 날짜 및 시간.

6

프로파일 감소(decay) 비율
사용자 프로파일에서 이 이벤트 데이터의 가중치가 감소하는 비율을 정의하는 선택적 비율
7 동작 사용자 프로파일 누적
8 디지털 서명 항목 1-7에 대한 컨텐츠 플랫폼의 디지털 서명
모델 식별자는 사용자 프로파일이 트레이닝에 사용되거나 사용자 그룹 추론을 만드는데 사용될 기계 학습 모델, 예를 들어 k-NN 모델을 식별한다. 프로파일 기록은 이벤트에 특정된 데이터, 예를 들어 이벤트 유형, 전자 리소스 또는 디지털 컴포넌트, 이벤트가 발생한 시간, 및/또는 컨텐츠 플랫폼(150)이 기계 학습 모델을 트레이닝하고 사용자 그룹을 추론하는데 사용하기를 원하는 다른 적절한 이벤트 데이터를 포함하는 n 차원 특징 벡터이다. 전자 서명은 컨텐츠 플랫폼(150)의 개인키를 사용하여 7개 항목을 기반으로 생성된다.
일부 구현에서, 전송 동안 업데이트 토큰(Mupdate)을 보호하기 위해, 컨텐츠 플랫폼(150)은 업데이트 토큰(Mupdate)을 애플리케이션(112)으로 전송하기 전에 업데이트 토큰(Mupdate)을 암호화한다. 예를 들어, 컨텐츠 플랫폼(150)은 애플리케이션의 공개 키, 예를 들어, PubKeyEnc(Mupdate, application_public_key)를 사용하여 업데이트 토큰(Mupdate)을 암호화할 수 있다.
일부 구현에서, 컨텐츠 플랫폼(150)은 프로파일 업데이트 토큰(Mupdate)의 형태로 이벤트 데이터 또는 업데이트 요청을 인코딩하지 않고 이벤트 데이터를 애플리케이션(112)으로 전송할 수 있다. 예를 들어, 애플리케이션(112) 내에서 실행되는 컨텐츠 플랫폼(150)으로부터 기인된(originated) 스크립트는 스크립트 API를 통해 이벤트 데이터 및 업데이트 요청을 애플리케이션(112)으로 직접 전송할 수 있으며, 여기서 애플리케이션(112)은 이벤트 데이터 및 업데이트 요청을 위조 또는 누출로부터 보호하기 위해 W3C(World Wide Web Consortium) 출처-기반 보안 모델 및/또는 HTTPS(Hypertext Transfer Protocol Secure)에 의존한다.
애플리케이션(112)은 이벤트에 대한 데이터를 저장한다(304). 이벤트 데이터가 암호화된 경우, 애플리케이션(112)은 이벤트 데이터를 암호화하는데 사용되는 공개 키에 대응하는 개인 키를 사용하여 이벤트 데이터를 복호화할 수 있다. 이벤트 데이터가 업데이트 토큰(Mupdate)의 형태로 전송된 경우, 애플리케이션(112)은 이벤트 데이터를 저장하기 전에 업데이트 토큰(Mupdate)을 검증할 수 있다. 애플리케이션(112)은 (i) 디지털 서명을 생성하는데 사용된 컨텐츠 플랫폼(150)의 개인 키에 대응하는 컨텐츠 플랫폼(150)의 공개 키를 사용하여 디지털 서명을 검증하고, (ii) 토큰 생성 타임스탬프가 오래되지 않았음을, 예를 들어 타임스탬프에 의해 표시되는 시간이 검증이 진행 중인 현재 시간의 임계 시간 내에 있음을 확인함으로써 업데이트 토큰(Mupdate)을 검증할 수 있다. 업데이트 토큰(Mupdate)이 유효한 경우, 애플리케이션(112)은 예를 들어 n 차원 프로파일 레고드를 저장함으로써 이벤트 데이터를 저장할 수 있다. 임의의 검증이 실패하는 경우, 애플리케이션(112)은 예를 들어 이벤트 데이터를 저장하지 않음으로써 업데이트 요청을 무시할 수 있다.
각각의 기계 학습 모델에 대해, 예를 들어 각각의 고유한 모델 식별자에 대해, 애플리케이션(112)은 해당 모델에 대한 이벤트 데이터를 저장할 수 있다. 예를 들어, 애플리케이션(112)은 각각의 고유 모델 식별자에 대해, n 차원 특징 벡터의 세트(예를 들어, 업데이트 토큰의 프로파일 기록), 및 각 특징 벡터에 대해, 만료 시간을 포함하는 데이터 구조를 유지할 수 있다. 각각의 특징 벡터는 클라이언트 디바이스(110)의 사용자에 대한 이벤트 관련 특징에 대한 특징값들을 포함할 수 있다. 모델 식별자에 대한 예시적인 데이터 구조가 아래의 [표 4]에 나타나 있다.
특징 벡터 만료
n 차원 특징 벡터 만료 시간
... ...
유효한 업데이트 토큰(Mupdate)이 수신되면, 애플리케이션(112)은 데이터 구조에 업데이트 토큰(Mupdate)의 특징 벡터와 만료 시간을 추가함으로써 업데이트 토큰(Mupdate)에 포함된 모델 식별자에 대한 데이터 구조를 업데이트할 수 있다. 주기적으로, 애플리케이션(112)은 저장 사이즈를 줄이기 위해 데이터 구조로부터 만료된 특징 벡터를 제거할 수 있다.
애플리케이션(112)은 사용자 프로파일을 생성할지 여부를 결정한다(306). 예를 들어, 애플리케이션(112)은 컨텐츠 플랫폼(150)으로부터의 요청에 응답하여 특정 기계 학습 모델에 대한 사용자 프로파일을 생성할 수 있다. 요청은 사용자 프로파일을 생성하고 사용자 프로파일의 조각을 컨텐츠 플랫폼(150)에 반환하는 것일 수 있다. 일부 구현에서, 애플리케이션(112)은 생성된 사용자 프로파일을, 예를 들어, 컨텐츠 플랫폼(150)으로 전송하기 보다는 MPC 클러스터(130)에 직접 업로드할 수 있다. 사용자 프로파일의 조각을 생성하고 반환하라는 요청의 보안을 보장하기 위해, 컨텐츠 플랫폼(150)은 업로드 토큰(Mupload)을 애플리케이션(112)으로 전송할 수 있다.
업로드 토큰(Mupload)은 업데이트 토큰(Mupdate)과 유사한 구조를 가질 수 있지만 동작(예를 들어, "사용자 프로파일 누적" 대신 "서버 업데이트")이 다르다. 업로드 토큰(Mupload)에는 또한 동작 지연을 위한 추가 항목이 포함될 수 있다. 동작 지연은 애플리케이션(112)이 더 많은 이벤트 데이터, 예를 들어 더 많은 특징 벡터를 누적하는 동안 사용자 프로파일의 조각을 계산 및 업로드하는 것을 지연하도록 애플리케이션(112)에게 지시할 수 있다. 이를 통해 기계 학습 모델은 일부 중요한 이벤트(예를 들어, 사용자 그룹 가입) 직전과 직후에 사용자 이벤트 데이터를 캡처할 수 있다. 동작 지연은 지연 시간을 지정할 수 있다. 이 예에서 디지털 서명은 [표 3]의 나머지 7개 항목과 컨텐츠 플랫폼의 개인 키를 이용한 동작 지연에 기초하여 생성될 수 있다. 컨텐츠 플랫폼(150)은 전송 동안 업로드 토큰(Mupload)을 보호하기 위해 애플리케이션의 공개 키를 사용하여 업데이트 토큰(Mupdate), 예를 들어 PubKeyEnc(Mupload, application_public_key)와 유사한 방식으로 업로드 토큰(Mupload)을 암호화할 수 있다.
애플리케이션(112)은 업로드 토큰(Mupload)을 수신하고, 그것이 암호화된 경우 업로드 토큰(Mupload)을 복호화하고, 그리고 업로드 토큰(Mupload)을 검증할 수 있다. 이 검증은 업데이트 토큰(Mupdate)이 검증되는 방식과 유사할 수 있다. 애플리케이션(112)은 (i) 디지털 서명을 생성하는데 사용된 컨텐츠 플랫폼(150)의 개인 키에 대응하는 컨텐츠 플랫폼(150)의 공개 키를 사용하여 디지털 서명을 검증하고, (ii) 토큰 생성 타임스탬프가 오래되지 않았음을, 예를 들어 타임스탬프에 의해 표시되는 시간이 검증이 진행 중인 현재 시간의 임계 시간 내에 있음을 확인함으로써 업로드 토큰(Mupload)을 검증할 수 있다. 업로드 토큰(Mupload)이 유효한 경우, 애플리케이션(112)은 사용자 프로파일을 생성할 수 있다. 임의의 검증이 실패하는 경우, 애플리케이션(112)은 예를 들어 사용자 프로파일을 생성하지 않음으로써 업로드 요청을 무시할 수 있다.
일부 구현에서, 컨텐츠 플랫폼(150)은 프로파일 업로드 토큰(Mupload)의 형태로 업로드 요청을 인코딩하지 않고 사용자 프로파일을 업로드하도록 애플리케이션(112)에게 요청할 수 있다. 예를 들어, 애플리케이션(115) 내에서 실행되는 컨텐츠 플랫폼(150)으로부터 기인된 스크립트는 스크립트 API를 통해 업로드 요청을 애플리케이션(115)으로 직접 전송할 수 있으며, 여기서 애플리케이션(115)은 위조 또는 누출로부터 업로드 요청을 보호하기 위해 W3C 출처 기반 보안 모델 및/또는 HTTPS에 의존한다.
사용자 프로파일을 생성하지 않기로 결정한 경우, 프로세스(300)는 동작(302)으로 돌아가 컨텐츠 플랫폼(150)으로부터 추가 이벤트 데이터를 기다릴 수 있다. 사용자 프로파일을 생성하기로 결정한 경우, 애플리케이션(112)은 사용자 프로파일을 생성한다(308).
애플리케이션(112)은 저장된 이벤트 데이터, 예를 들어, [표 4]에 도시된 데이터 구조에 저장된 데이터에 기초하여 사용자 프로파일을 생성할 수 있다. 애플리케이션(112)은 요청에 포함된 모델 식별자, 예를 들어 항목 1의 컨텐츠 플랫폼(eTLD+1) 도메인 및 업로드 토큰(Mupload)의 항목 2의 모델 식별자에 기초하여 적절한 데이터 구조에 액세스할 수 있다.
애플리케이션(112)은 아직 만료되지 않은 학습 기간의 데이터 구조에서 n 차원 특징 벡터를 집계함으로써 사용자 프로파일을 계산할 수 있다. 예를 들어, 사용자 프로파일은 아직 만료되지 않은 학습 기간의 데이터 구조에서 n 차원 특징 벡터들의 평균일 수 있다. 그 결과는 프로파일 공간에서 사용자를 나타내는 n 차원 특징 벡터이다. 선택적으로, 애플리케이션(112)은 예를 들어 L2 정규화를 사용하여 n 차원 특징 벡터를 단위 길이로 정규화할 수 있다. 컨텐츠 플랫폼(150)은 선택적 학습 기간을 지정할 수 있다.
일부 구현에서, 감쇠율(decay rates)이 사용자 프로파일을 계산하는데 사용될 수 있다. MPC 클러스터(130)를 사용하여 기계 학습 모델을 트레이닝하는 많은 컨텐츠 플랫폼(150)이 있을 수 있고 각 컨텐츠 플랫폼(150)은 다수의 기계 학습 모델을 가질 수 있기 때문에, 사용자 특징 벡터 데이터를 저장하는 것은 상당한 데이터 저장 요구 사항을 초래할 수 있다. 감쇠 기술을 사용하면 기계 학습 모델을 트레이닝하기 위한 사용자 프로파일을 생성할 목적으로 각 클라이언트 디바이스(110)에 저장되는 데이터의 양을 실질적으로 줄일 수 있다.
주어진 기계 학습 모델에 대해 k개의 특징 벡터({F1, F2, … Fk})가 있다고 가정하고, 각각은 n 차원 벡터 및 해당 연령(age)(record_age_in_secondsi)이다. 애플리케이션(112)은 아래의 관계식 1을 사용하여 사용자 프로파일을 계산할 수 있다.
관계식 1 :
Figure pct00001
이 관계식에서, 파라미터(record_age_in_secondsi)는 프로파일 기록이 클라이언트 디바이스(110)에 저장된 초 단위 시간이고, 파라미터 (decay_rate_in_seconds)는 (예를 들어, 업데이트 토큰(Mupdate)의 항목 6에서 수신된) 프로파일 기록의 초 단위 감소율이다. 이러한 방식으로, 더 최근의 특징 벡터가 더 많은 가중치를 가진다. 이것은 또한 애플리케이션(112)이 특징 벡터를 저장하는 것을 피하고 지속적인 저장으로 프로파일 기록만을 저장할 수 있도록 한다. 애플리케이션(112)은 각 모델 식별자에 대한 다수의 개별 특징 벡터가 아니라 각 모델 식별자에 대한 n 차원 벡터(P) 및 타임스탬프(user_profile_time)만 저장하면 된다. 이것은 많은 클라이언트 디바이스가 일반적으로 제한된 데이터 저장 용량을 갖는 클라이언트 디바이스(110)에 저장되어야 하는 데이터의 양을 실질적으로 감소시킨다.
n 차원 벡터 사용자 프로파일(P)과 타임스탬프를 초기화하기 위해, 애플리케이션은 벡터(P)를 각 차원의 값이 0인 n 차원의 벡터로 설정하고, user_profile_time을 시대(epoch)로 설정할 수 있다. 언제라도 새로운 특징 벡터(Fx)로 사용자 프로파일(P)을 업데이트하기 위해, 애플리케이션(112)은 아래의 관계식 2를 사용할 수 있다:
관계식 2 :
Figure pct00002
애플리케이션(112)은 또한 관계식 2로 사용자 프로파일을 업데이트할 때 사용자 프로파일 시간을 현재 시간(current_time)으로 업데이트할 수 있다. 애플리케이션(112)이 위의 감쇠율 알고리즘을 사용하여 사용자 프로파일을 계산하는 경우 동작(304 및 308)이 생략된다는 점에 유의한다.
애플리케이션(112)은 사용자 프로파일의 조각들(shares)을 생성한다(310). 애플리케이션(112)은 의사 난수 함수를 사용하여 사용자 프로파일(Pi)(예를 들어, n 차원 벡터(P))를 조각들로 분할할 수 있다. 즉, 애플리케이션(112)은 의사 난수 함수 PRF(Pi)를 사용하여 사용자 프로파일(Pi)의 2개의 조각{[Pi,1],[Pi,2]}을 생성할 수 있다. 정확한 조각은 애플리케이션(112)에서 사용하는 비밀 분산 알고리즘 및 암호화 라이브러리에 따라 달라질 수 있다. 일부 구현에서, 애플리케이션은 샤미르(Shamir)의 비밀 분할 체계를 사용한다. 하나 이상의 레이블의 조각이 제공되는 경우, 애플리케이션(112)은 또한 레이블의 조각들을 생성할 수 있다.
애플리케이션(112)은 사용자 프로파일(Pi)(312)의 조각({[Pi,1],[Pi,2]})을 암호화한다. 예를 들어, 위에서 설명된 바와 같이, 애플리케이션(112)은 사용자 프로파일 및 레이블의 조각들을 포함하는 복합 메시지를 생성하고, 암호화 결과 (PubKeyEncrypt([Pi,1] || [labeli,1], MPC1) 및 PubKeyEncrypt([Pi,2] || [labeli,2], MPC2))를 획득하기 위해 복합 메시지를 암호화한다. MPC 클러스터(130)의 암호화 키를 사용하여 조각들을 암호화하는 것은 컨텐츠 플랫폼(150)이 일반 텍스트로 사용자 프로파일에 액세스할 수 있게 되는 것을 방지한다. 애플리케이션(112)은 암호화된 조각들을 컨텐츠 플랫폼(314)으로 전송한다. 애플리케이션(112)이 비밀 조각들을 컴퓨팅 시스템(MPC1 및 MPC2)으로 직접 전송하는 경우 동작(314)이 생략된다는 점에 유의한다.
기계 학습 모델 생성 및 사용하기 위한 예시적인 프로세스
도 4는 기계 학습 모델을 생성하기 위한 예시적인 프로세스(400)를 도시하는 흐름도이다. 프로세스(400)의 동작들은 예를 들어 도 1의 MPC 클러스터(130)에 의해 구현될 수 있다. 프로세스(400)의 동작들은 또한 비-일시적일 수 있는 하나 이상의 컴퓨터 판독 가능 매체에 저장된 명령들로서 구현될 수 있으며, 하나 이상의 데이터 처리 장치에 의한 명령들의 실행은 하나 이상의 데이터 처리 장치로 하여금 프로세스(400)의 동작들을 수행하게 할 수 있다.
MPC 클러스터(130)는 사용자 프로파일의 조각들을 획득한다(402). 컨텐츠 플랫폼(150)은 사용자 프로파일의 조각들을 MPC 클러스터(130)로 전송함으로써 MPC 클러스터(130)가 기계 학습 모델을 트레이닝하도록 요청할 수 있다. 컨텐츠 플랫폼(150)은 주어진 시간 기간 동안 기계 학습 모델을 위해 클라이언트 디바이스(110)로부터 수신된 암호화된 조각들에 액세스하고 이러한 조각들을 MPC 클러스터(130)에 업로드할 수 있다.
예를 들어, 컨텐츠 플랫폼(150)은 컴퓨팅 시스템(MPC1)에, 각 사용자 프로파일(Pi)에 대한 사용자 프로파일의 암호화된 제1 조각과 그 레이블의 암호화된 제1 조각(예를 들어, PubKeyEncrypt([Pi,1] || [labeli,1], MPC1))을 전송할 수 있다. 유사하게, 컨텐츠 플랫폼(150)은 컴퓨팅 시스템(MPC2)에, 각 사용자 프로파일(Pi)에 대한 사용자 프로파일의 암호화된 제2 조각과 그 레이블의 암호화된 제2 조각(예를 들어, PubKeyEncrypt([Pi,2] || [labeli,2], MPC2))를 전송할 수 있다.
애플리케이션(112)이 사용자 프로파일의 비밀 조각들을 MPC 클러스터(130)로 직접 전송하는 일부 구현에서, 컨텐츠 플랫폼(150)은 트레이닝 요청을 MPC 클러스터(130)로 전송함으로써 MPC 클러스터(130)가 기계 학습 모델을 트레이닝하도록 요청할 수 있다.
컴퓨팅 시스템(MPC1 및 MPC2)은 랜덤 투영 평면을 생성한다(404). 컴퓨팅 시스템(MPC1 및 MPC2)은 협력하여 m개의 랜덤 투영 평면(U = {U1, U2, …, Um})을 생성할 수 있다. 이러한 랜덤 투영 평면은 두 컴퓨팅 시스템(MPC1 및 MPC2) 사이의 비밀 조각들로서 유지되어야 한다. 일부 구현에서, 컴퓨팅 시스템(MPC1 및 MPC2)은 디피헬만(Diffie-Hellman) 키 교환 기술을 사용하여 랜덤 투영 평면들을 생성하고 그들의 비밀을 유지한다.
아래에서 더 자세히 설명되는 바와 같이, 컴퓨팅 시스템(MPC1 및 MPC2)은 각 사용자 프로파일의 조각들을 각각의 랜덤 투영 평면에 투영하고, 각 랜덤 투영 평면에 대해, 사용자 프로파일의 조각이 랜덤 투영 평면의 한 쪽에 있는지 여부를 결정할 것이다. 그런 다음 각 컴퓨팅 시스템(MPC1 및 MPC2)은 각 랜덤 투영에 대한 결과에 기초하여 사용자 프로파일의 비밀 조각들로부터 비밀 조각들의 비트 벡터를 구축할 수 있다. 사용자의 비트 벡터에 대한 조각 지식, 예를 들어, 사용자 프로파일(Pi)이 투영 평면(Uk)의 한 쪽에 있는지 여부는 컴퓨팅 시스템(MPC1 또는 MPC2)이 Pi 분포에 관한 일부 지식을 얻을 수 있도록 하는데, 이는 사용자 프로파일(Pi)이 단위 길이를 갖는다는 사전 지식에 대한 증분이다. 컴퓨팅 시스템(MPC1 및 MPC2)이 이 정보에 액세스하는 것을 방지하기 위해((예를 들어, 사용자 프라이버시 및/또는 데이터 보안을 위해 이것이 필요하거나 선호되는 구현에서), 일부 구현에서, 랜덤 투영 평면이 비밀 조각들에 있으므로 컴퓨팅 시스템(MPC1 및 MPC2) 모두 일반 텍스트의 랜덤 투영 평면에 액세스할 수 없다. 다른 구현에서, 랜덤 비트 플리핑 (flipping, 뒤집기) 패턴은 선택적 동작(406-408)에 설명된 바와 같이, 비밀 분산 알고리즘을 사용하여 랜덤 투영 결과에 적용될 수 있다.
비밀 조각을 통해 비트를 플리핑하는 방법을 설명하기 위해, 값이 0이거나 동일한 확률로 1인 두 개의 비밀(x 및 y)이 있다고 가정한다. 등식 연산 [x] == [y]는 y == 0이면 x의 비트를 뒤집고 y == 1이면 x의 비트를 유지한다. 이 예에서 연산은 50% 확률로 비트(x)를 랜덤하게 뒤집는다. 이 연산은 두 컴퓨팅 시스템(MPC1과 MPC2) 사이에 원격 프로시저 호출(RPC)을 요구할 수 있으며 라운드의 수는 데이터 크기와 비밀 분산(secret sharing) 알고리즘에 따라 다르다.
각각의 컴퓨팅 시스템(MPC1 및 MPC2)은 m-차원 비밀 벡터를 생성한다(406). 컴퓨팅 시스템(MPC1)은 m 차원 비밀 벡터({S1, S2, … Sm})을 생성할 수 있는데, 여기서 각 요소(Si)는 0 또는 동일한 확률로 1의 값을 갖는다. 컴퓨팅 시스템(MPC1)은 m차원 벡터를 제1 조각({[S1,1], [S2,1]), … [Sm,1]}과 제2 조각({[S1,2], [S2 ,2], … [Sm,2]})인 2개의 조각으로 분할한다. 컴퓨팅 시스템(MPC1)은 제1 조각을 비밀로 유지하고 제2 셰러를 컴퓨팅 시스템(MPC2)에 제공할 수 있다. 컴퓨팅 시스템(MPC1)은 m차원 벡터({S1, S2, … Sm})을 폐기할 수 있다.
컴퓨팅 시스템(MPC2)은 비밀 m차원 벡터 {T1, T2,... Tm}을 생성할 수 있으며, 여기서 각 요소(Ti)는 0 또는 1의 값을 갖는다. 컴퓨팅 시스템(MPC2)은 m차원 벡터를 제1 조각 {[T1,1], [T2,1], ...[Tm,1]} 과 제2 조각 {[T1,2], [T2 ,2],...[Tm,2]}의 두 개의 조각(shares)으로 분할한다. 컴퓨팅 시스템(MPC2)은 제1 조각 비밀을 유지하고 제2 조각을 컴퓨팅 시스템(MPC1)에 제공할 수 있다. 그런 다음 컴퓨팅 시스템(MPC2)은 m차원 벡터 {T1, T2,...Tm}을 폐기할 수 있다.
2개의 컴퓨팅 시스템(MPC1 및 MPC2)은 보안 MPC 기술을 사용하여 비트 플리핑 패턴(408)의 조각들을 계산한다. 컴퓨팅 시스템(MPC1 및 MPC2)은 비트 플리핑 패턴의 조각들을 계산하기 위해 컴퓨팅 시스템(MPC1 및 MPC2) 간의 다수의 라운드트립과 함께 비밀 조각 MPC 동등성 테스트를 사용할 수 있다. 비트 플리핑 패턴은 위에서 설명한 [x] == [y] 연산을 기반으로 할 수 있다. 즉, 비트 플리핑 패턴은 {S1 == T1, S2 == T2, … Sm == Tm}일 수 있다. 각 STi = (Si == Ti)라고 하자. 각 STi는 0 또는 1의 값을 갖는다. MPC 연산이 완료된 후, 컴퓨팅 시스템(MPC1)은 비트 플리핑 패턴의 제1 조각 {[ST1,1], [ST2,1], … [STm,1]}를 갖고, 컴퓨팅 시스템(MPC2)은 비트 플리핑 패턴의 제2 조각 {[ST1,2], [ST2,2], … [STm,2]}를 갖는다. 각 STi의 조각은 2개의 컴퓨팅 시스템(MPC1 및 MPC2)이 2개의 컴퓨팅 시스템(MPC1 및 MPC2) 중 하나에 불투명한 방식으로 비트 벡터의 비트를 플리핑할 수 있게 한다.
각각의 컴퓨팅 시스템(MPC1 및 MPC2)은 각 랜덤 투영 평면에 각 사용자 프로파일의 조각들을 투영한다(410). 즉, 컴퓨팅 시스템(MPC1)이 조각을 수신한 각 사용자 프로파일에 대해, 컴퓨팅 시스템(MPC1)은 조각([Pi,1])을 각 투영 평면(Uj)에 투영할 수 있다. 사용자 프로파일의 각 조각 및 각 랜덤 투영 평면(Uj)에 대해 이 동작을 수행하면 z×m 차원의 행렬(R)이 생성되는데, 여기서 z는 사용 가능한 사용자 프로파일의 수이고 m은 랜덤 투영 평면의 수이다. 행렬(R)의 각 요소 Ri,j는 투영 평면(Uj)과 조각([Pi,1]) 사이의 내적, 예를 들어 Ri,j = Uj ⊙ [Pi,1]을 계산함으로써 결정될 수 있다. 연산 ⊙은 길이가 같은 두 벡터의 내적을 나타낸다.
비트 플리핑이 사용되는 경우, 컴퓨팅 시스템(MPC1)은 컴퓨팅 시스템(MPC1 및 MPC2) 간에 비밀리에 공유되는 비트 플리핑 패턴을 사용하여 행렬의 요소(Ri,j) 중 하나 이상의 값을 수정할 수 있다. 행렬(R)의 각 요소(Ri,j)에 대해 컴퓨팅 시스템(MPC1)은 요소(Ri,j)의 값으로서 [STj,1] == sign(Ri,j)를 계산할 수 있다. 따라서, 비트 플리핑 패턴에서 비트 [STj,1]의 해당 비트가 0의 값을 갖는 경우 요소(Ri,j)의 부호(sign)가 반전(플리핑)될 것이다. 이 계산에는 컴퓨팅 시스템(MPC2)에 대한 다수의 RPC가 필요할 수 있다.
유사하게, 컴퓨팅 시스템(MPC2)이 조각을 수신한 각각의 사용자 프로파일에 대해, 컴퓨팅 시스템(MPC2)은 조각([Pi,2])을 각 투영 평면(Uj)에 투영할 수 있다. 사용자 프로파일의 각 조각 및 각 랜덤 투영 평면(Uj)에 대해 이 동작을 수행하면 z x m 차원의 행렬(R')이 생성되는데, 여기서 z는 사용 가능한 사용자 프로파일의 수이고 m은 랜덤 투영 평면의 수이다. 행렬(R')의 각 요소(Ri,j')는 투영 평면(Uj)과 조각([Pi,2]) 간의 내적, 예를 들어 Ri,j' = Uj ⊙ [Pi,2]를 계산함으로써 결정될 수 있다. 연산 ⊙은 길이가 같은 두 벡터의 내적을 나타낸다.
비트 플리핑이 사용되는 경우, 컴퓨팅 시스템(MPC2)은 컴퓨팅 시스템(MPC1 및 MPC2) 사이에 비밀리에 공유되는 비트 플리핑 패턴을 사용하여 행렬의 요소들(Ri,j') 중 하나 이상의 값을 수정할 수 있다. 행렬(R)의 각 요소(Ri,j')에 대해, 컴퓨팅 시스템(MPC2)은 요소(Ri,j')의 값으로서 [STj,2] == sign(Ri,j')를 계산할 수 있다. 따라서, 비트 플리핑 패턴에서 비트(STj)의 해당 비트가 0 값을 갖는 경우 요소(Ri,j')의 부호가 반전된다. 이 계산에는 컴퓨팅 시스템(MPC1)에 대한 여러 RPC가 필요할 수 있다.
컴퓨팅 시스템(MPC1 및 MPC2)은 비트 벡터를 재구성한다(412). 컴퓨팅 시스템(MPC1 및 MPC2)은 정확히 동일한 크기를 갖는 행렬(R 및 R')에 기초하여 사용자 프로파일에 대한 비트 벡터를 재구성할 수 있다. 예를 들어, 컴퓨팅 시스템(MPC1)은 행렬(R)의 열의 일부를 컴퓨팅 시스템(MPC2)으로 전송할 수 있고 컴퓨팅 시스템(MPC2)은 행렬(R')의 열의 나머지 부분을 MPC1으로 전송할 수 있다. 특정 예에서, 컴퓨팅 시스템(MPC1)은 행렬(R)의 열의 제1 절반을 컴퓨팅 시스템(MPC2)으로 전송할 수 있고 컴퓨팅 시스템(MPC2)은 행렬(R')의 열의 제2 절반을 MPC1으로 전송할 수 있다. 이 예에서는 수평 재구성을 위해 열이 사용되고 사용자 프라이버시를 보호하기 위해 선호되지만, 수직 재구성을 위한 다른 예제에서 행이 사용될 수 있다.
이 예에서, 컴퓨팅 시스템(MPC2)은 행렬(R')의 열의 제1 절반과 컴퓨팅 시스템(MPC1)으로부터 수신된 행렬(R)의 열의 제1 절반을 결합하여 비트 벡터의 제1 절반(즉, m/2 차원)을 일반 텍스트(평문)로 재구성할 수 있다. 유사하게, 컴퓨팅 시스템(MPC1)은 행렬(R)의 열의 제2 절반과 컴퓨팅 시스템(MPC2)로부터 수신된 행렬(R')의 열의 제2 절반을 결합하여 비트 벡터의 제2 절반(즉, m/2 차원)을 일반 텍스트로 재구성할 수 있다. 개념적으로, 컴퓨팅 시스템(MPC1 및 MPC2)은 이제 두 개의 행렬(R 및 R')에 있는 대응하는 조각들을 결합하여 비트 행렬(B)을 일반 텍스트로 재구성한다. 이 비트 행렬(B)은 기계 학습 모델을 위한 컨텐츠 플랫폼(150)으로부터 조각들이 수신된 각 사용자 프로파일에 대한 투영 결과(각 투영 평면에 투영됨)의 비트 벡터를 포함한다. MPC 클러스터(130)의 2개의 서버 각각은 일반 텍스트의 비트 행렬(B)의 절반을 소유한다.
그러나, 비트 플리핑이 사용되는 경우, 컴퓨팅 시스템(MPC1 및 MPC2)은 기계 학습 모델에 대해 고정된 랜덤 패턴으로 행렬(R 및 R')의 요소의 비트를 플리핑하였다. 이 랜덤 비트 플리핑 패턴은 두 컴퓨팅 시스템(MPC1 및 MPC2) 중 하나에 대해 불투명하므로 컴퓨팅 시스템(MPC1 및 MPC2) 모두 투영 결과의 비트 벡터로부터 원래 사용자 프로파일을 추론할 수 없다. 암호 설계는 MPC1 또는 MPC2가 비트 벡터를 수평으로 분할함으로써, 즉 컴퓨팅 시스템(MPC1) 투영 결과의 비트 벡터의 제2 절반을 일반 텍스트로 유지하고 컴퓨팅 시스템(MPC2)은 투영 결과의 비트 벡터의 제1 절반을일반 텍스트로 유지함으로써 MPC1 또는 MPC2가 원래 사용자 프로파일을 추론하는 것을 방지한다.
컴퓨팅 시스템(MPC1 및 MPC2)은 기계 학습 모델을 생성한다(414). 컴퓨팅 시스템(MPC1)은 비트 벡터의 제2 절반을 사용하여 k-NN 모델을 생성할 수 있다. 유사하게, 컴퓨팅 시스템(MPC2)은 비트 벡터의 제1 절반을 사용하여 k-NN 모델을 생성할 수 있다. 비트 플리핑과 행렬의 수평 분할을 사용하여 모델을 생성하는 것은 심층 방어 원칙(defense-in-depth principle)을 적용하여 모델 생성에 사용된 사용자 프로파일의 비밀을 보호한다.
일반적으로, 각 k-NN 모델은 사용자 세트의 사용자 프로파일 간의 코사인 유사도(또는 거리)를 나타낸다. 컴퓨팅 시스템(MPC1)에 의해 생성된 k-NN 모델은 비트 벡터의 제2 절반 간의 유사성을 나타내고 컴퓨팅 시스템(MPC2)에 의해 생성된 k-NN 모델은 비트 벡터의 제1 절반 간의 유사성을 나타낸다. 예를 들어, 각 k-NN 모델은 비트 벡터의 절반 간의 코사인 유사성을 정의할 수 있다.
컴퓨팅 시스템(MPC1 및 MPC2)에 의해 생성된 2개의 k-NN 모델은 전술한 바와 같은 고유한 모델 식별자를 갖는 k-NN 모델로 지칭될 수 있다. 컴퓨팅 시스템(MPC1 및 MPC2)은 모델을 생성하는데 사용되는 각 사용자 프로파일에 대한 레이블의 조각들 및 모델을 저장할 수 있다. 그런 다음, 컨텐츠 플랫폼(150)은 모델에 질의하여 사용자의 사용자 그룹에 대한 추론을 할 수 있다.
기계 학습 모델을 사용하여 사용자 그룹을 추론하기 위한 예시적인 프로세스
도 5는 기계 학습 모델을 사용하여 사용자를 사용자 그룹에 추가하기 위한 예시적인 프로세스(500)를 도시하는 흐름도이다. 프로세스(500)의 동작들은 예를 들어, 도 1의 MPC 클러스터(130) 및 클라이언트 디바이스(110), 예를 들어 클라이언트 디바이스(110)에서 실행되는 애플리케이션(112)에 의해 구현될 수 있다. 프로세스(500)의 동작들은 또한 비-일시적일 수 있는 하나 이상의 컴퓨터 판독 가능 매체에 저장된 명령들로서 구현될 수 있으며, 하나 이상의 데이터 처리 장치에 의한 명령들의 실행은 하나 이상의 데이터 처리 장치로 하여금 프로세스(500)의 동작들을 수행하게 할 수 있다.
MPC 클러스터(130)는 주어진 사용자 프로파일에 대한 추론 요청을 수신한다(502). 사용자의 클라이언트 디바이스(110)에서 실행되는 애플리케이션(112)은 예를 들어 컨텐츠 플랫폼(150)으로부터의 요청에 응답하여 추론 요청을 MPC 클러스터(130)로 전송할 수 있다. 예를 들어, 컨텐츠 플랫폼(150)은 애플리케이션(112)이 추론 요청을 MPC 클러스터(130)로 제출하도록 요청하기 위해 업로드 토큰(Minfer)을 애플리케이션(112)으로 전송할 수 있다. 추론 요청은 사용자가 임의의 수의 사용자 그룹에 추가되어야 하는지 여부를 질의하는 것일 수 있다.
추론 요청 토큰(Minfer)은 사용자의 주어진 사용자 프로파일의 조각들, 기계 학습 모델(예를 들어, k-NN 모델)의 모델 식별자 및 추론에 사용될 소유자 도메인, 추론에 사용될 주어진 사용자 프로파일의 k개의 최근접 이웃, 추가 신호(예를 들어, 컨텍스트 또는 디지털 컴포넌트 신호), 추론에 사용될 집계 함수 및 추론에 사용될 집계 함수 파라미터, 소유자 도메인 기밀 개인 키를 사용하여 소유자 도메인에 의해 생성된 위의 모든 정보에 대한 서명을 포함할 수 있다.
상술한 바와 같이, 일반 텍스트 형태의 주어진 사용자 프로파일(Pi)이 컴퓨팅 시스템(MPC1 또는 MPC2)에 누출되는 것을 방지하고, 이에 의해 사용자 프라이버시를 보호하기 위해, 애플리케이션(112)은 주어진 사용자 프로파일(Pi)을 MPC1 및 MPC2에 대해 각각 2개의 조각(shares, 부분)([Pi,1] 및 [Pi,2])으로 분할할 수 있다. 그런 다음 애플리케이션(112)은 주어진 사용자 프로파일의 제1 조각([Pi,1]) 및 주어진 사용자 프로파일의 제2 조각의 암호화된 버전, 예를 들어 PubKeyEncrypt([Pi,2], MPC2)을 갖는 단일 추론 요청을 컴퓨팅 시스템(MPC1)으로 전송할 수 있다. 또한, 추론 요청은 MPC 클러스터(130)가 추론 요청을 인증할 수 있도록 추론 요청 토큰(Minfer)을 포함할 수 있다. 제1 조각 및 암호화된 제2 조각을 포함하는 추론 요청을 전송함으로써, 애플리케이션(112)에 의해 전송되는 발신 요청의 수가 감소되고, 결과적으로 클라이언트 디바이스(110)에서 계산, 대역폭 및 배터리가 절약된다.
다른 구현에서, 애플리케이션(112)은 주어진 사용자 프로파일의 제1 조각([Pi,1])을 컴퓨팅 시스템(MPC1)으로 전송하고 주어진 사용자 프로파일의 제2 조각([Pi,2])을 컴퓨팅 시스템(MPC2)으로 전송할 수 있다. 주어진 사용자 프로파일의 제2 공유([Pi,2])를 컴퓨팅 시스템(MPC1)을 거치지 않고 컴퓨팅 시스템(MPC2)으로 전송함으로써, 제2 조각은 컴퓨팅 시스템(MPC1)이 주어진 사용자 프로파일의 제2 조각([Pi,2])에 액세스하는 것을 방지하기 위해 암호화될 필요가 없다.
각각의 컴퓨팅 시스템(MPC1 및 MPC2)은 비밀 조각 표현(504)에서 주어진 사용자 프로파일에 대한 k개의 최근접 이웃을 식별한다. 컴퓨팅 시스템(MPC1)은 주어진 사용자 프로파일의 제1 조각([Pi,1])을 사용하여 주어진 사용자 프로파일의 비트 벡터의 절반을 계산할 수 있다. 비트 벡터를 생성하기 위해, 컴퓨팅 시스템(MPC1)은 도 4의 프로세스(400)의 동작(410 및 412)을 사용할 수 있다. 즉, 컴퓨팅 시스템(MPC1)은 k-NN 모델을 위해 생성된 랜덤 투영 벡터를 사용하여 주어진 사용자 프로파일의 조각([Pi,1])을 투영하여 주어진 사용자 프로파일에 대한 비트 벡터의 비밀 조각을 생성할 수 있다. 비트 플리핑이 k-NN 모델을 생성하는데 사용된 경우, 컴퓨팅 시스템(MPC1)은 k-NN 모델을 생성하는데 사용된 비트 플리핑 패턴의 제1 조각{[ST1,1], [ST2,1],...[STm,1]}을 사용하여 주어진 사용자 프로파일에 대한 비트 벡터의 비밀 조각의 요소들을 수정할 수 있다.
유사하게, 컴퓨팅 시스템(MPC1)은 주어진 사용자 프로파일의 암호화된 제2 조각(PubKeyEncrypt([Pi,2], MPC2)을 컴퓨팅 시스템(MPC2)에 제공할 수 있다. 컴퓨팅 시스템(MPC2)은 자신의 개인 키를 사용하여 주어진 사용자 프로파일의 제2 조각([Pi,2])를 복호화(해독)하고 주어진 사용자 프로파일의 제2 조각([Pi,2])을 사용하여 주어진 사용자 프로파일에 대한 비트 벡터의 절반을 계산할 수 있다. 즉, 컴퓨팅 시스템(MPC2)은 k-NN 모델에 대해 생성된 랜덤 투영 벡터를 사용하여 주어진 사용자 프로파일의 조각([Pi,2])을 투영하고 주어진 사용자 프로파일에 대한 비트 벡터를 생성할 수 있다. 비트 플리핑이 k-NN 모델을 생성하는데 사용된 경우, 컴퓨팅 시스템(MPC2)은 k-NN 모델을 생성하는데 사용된 비트 플리핑 패턴의 제2 조각 {[ST1,2], [ST2,2],...[STm,2]}을 사용하여 주어진 사용자 프로파일에 대한 비트 벡터의 요소들을 수정할 수 있다. 그런 다음 컴퓨팅 시스템(MPC1 및 MPC2)은 도 4의 동작(412)에서 설명된 바와 같이 수평 분할로 비트 벡터를 재구성한다. 재구성 완료 후, 컴퓨팅 시스템(MPC1)은 주어진 사용자 프로파일에 대한 전체 비트 벡터의 제1 절반을 갖고 컴퓨팅 시스템(MPC2)은 주어진 사용자 프로파일에 대한 전체 비트 벡터의 제2 절반을 갖는다.
컴퓨팅 시스템(MPC1 및 MPC2) 각각은 주어진 사용자 프로파일에 대한 비트 벡터의 절반과 k-NN 모델을 사용하여 k'개의 최근접 이웃 사용자 프로파필을 식별하는데, 여기서 k'=α×k이고, α는 실제 생성 데이터 및 통계 분석에 기초하여 경험적으로 결정된다.. 예를 들어, α는 3 또는 다른 적절한 숫자이다. 컴퓨팅 시스템(MPC1)은 전체 비트 벡터의 제1 절반과 k-NN 모델의 각 사용자 프로파일에 대한 비트 벡터 사이의 해밍 거리를 계산할 수 있다. 그런 다음 컴퓨팅 시스템(MPC1)은 계산된 해밍 거리, 예를 들어, 가장 낮은 해밍 거리를 갖는 k'개의 사용자 프로파일에 기초하여 k'개의 최근접 이웃을 식별한다. 다시 말해서, 컴퓨팅 시스템(MPC1)은 주어진 사용자 프로파일의 조각에 기초하여 최근접 사용자 프로파일의 세트 및 다수의 사용자 프로파일을 사용하여 트레이닝된 k-최근접 이웃 모델을 식별한다. 표 형식의 예시 결과는 아래 [표 5]와 같다.
행 ID 해밍 거리
(일반 텍스트)
사용자 프로파일의
조각들
레이블의
조각들
i di,1 [Pi,1] [labeli,1]
... ... ... ...
[표 5]에서, 각 행은 특정 최근접 이웃 사용자 프로파일에 대한 것이고 각 사용자 프로파일에 대한 비트 벡터의 제1 절반과 컴퓨팅 시스템(MPC1)에 의해 계산된 주어진 사용자 프로파일에 대한 비트 벡터 사이의 해밍 거리를 포함한다. 특정 최근접 이웃 사용자 프로파일의 행에는 해당 사용자 프로파일의 제1 조각과 해당 사용자 프로파일과 관련된 레이블의 제1 조각도 포함된다.
유사하게, 컴퓨팅 시스템(MPC2)은 k-NN 모델의 각각의 사용자 프로파일에 대한 비트 벡터와 전체 비트 벡터의 제2 절반 사이의 해밍 거리를 계산할 수 있다. 그런 다음 컴퓨팅 시스템(MPC2)은 계산된 해밍 거리, 예를 들어 가장 낮은 해밍 거리를 갖는 k'개의 사용자 프로파일에 기초하여 k'개의 최근접 이웃을 식별한다. 표 형식의 예시적인 결과는 아래 [표 6]과 같다.
행 ID 해밍 거리
(일반 텍스트)
사용자 프로파일의
조각들
레이블의
조각들
j dj,2 [Pj,2] [labelj,2]
... ... ... ...
[표 6]에서, 각각의 행은 특정 최근접 이웃 사용자 프로파일에 대한 것이고 해당 사용자 프로파필과 컴퓨팅 시스템(MPC2)에 의해 계산된 주어진 사용자 프로파필 간의 해밍 거리를 포함한다. 특정 최근접 이웃 사용자 프로파일의 행에는 해당 사용자 프로파일의 제2 조각과 해당 사용자 프로파일과 관련된 레이블의 제2 조각도 포함된다.
컴퓨팅 시스템(MPC1 및 MPC2)은 행 식별자(행 ID)의 리스트와 해밍 거리 쌍을 서로 교환할 수 있다. 이후, 각 컴퓨팅 시스템(MPC1 및 MPC2)은 동일한 알고리즘 및 입력 데이터를 갖는 k개의 최근접 이웃을 독립적으로 선택할 수 있다. 예를 들어, 컴퓨팅 시스템(MPC1)은 두 컴퓨팅 시스템(MPC1 및 MPC2)으로부터 부분 질의 결과에 공통인 행 식별자를 찾을 수 있다. 공통 행 식별자의 각 i에 대해, 컴퓨팅 시스템(MPC1)은 2개의 부분 해밍 거리(예를 들어, di = di,1 + di,2)로부터 결합 해밍 거리(di)를 계산한다. 그런 다음 컴퓨팅 시스템(MPC1)은 결합 해밍 거리(di)에 기초하여 공통 행 식별자를 주문(orfer)하여 k개의 최근접 이웃을 선택할 수 있다. k개의 최근접 이웃에 대한 행 식별자는 ID = {id1, … idk}로 나타낼 수 있다. α가 충분히 크면 위의 알고리즘에서 결정된 k개의 최근접 이웃은 높은 확률을 갖는 실제 k개의 최근접 이웃임을 증명할 수 있다. 그러나, α의 값이 클수록 계산 비용이 높아진다. 일부 구현에서, 컴퓨팅 시스템(MPC1 및 MPC2)은 PSI(Private Set Intersection) 알고리즘에 참여하여 컴퓨팅 시스템(MPC1 및 MPC2) 모두로부터의 부분 질의 결과에 공통인 행 식별자를 결정한다. 또한, 일부 구현에서, MPC1 및 MPC2는 향상된 PSI 알고리즘에 참여하여 두 컴퓨터 시스템(MPC1 및 MPC2)의 부분 질의 결과에 공통인 행 식별자들에 대해 di = di,1 + di,2를 계산하고, di에 의해 결정된 상위 k개의 최근접 이웃 외에는 MPC1 또는 MPC2에 아무 것도 드러내지(표시) 않는다.
사용자를 사용자 그룹에 추가할지 여부가 결정된다(506). 이 결정은 k개의 최근접 이웃 프로파일 및 그들의 관련 레이블에 기초하여 이루어질 수 있다. 결정은 또한 사용된 집계 함수와 해당 집계 함수에 대한 집계 파라미터를 기반으로 한다. 집계 함수는 이진 분류, 회귀(예를 들어, 산술 평균 또는 제곱 평균 제곱근 사용), 다중 클래스 분류 및 가중된 k-NN과 같은 기계 학습 문제의 특성에 따라 선택될 수 있다. 사용자 그룹에 사용자를 추가할지 여부를 결정하는 각각의 방식은 MPC 클러스터(130)와 클라이언트(110)에서 실행되는 애플리케이션(112) 사이의 상이한 상호 작용을 포함할 수 있으며, 이는 아래에서 더 자세히 설명된다.
사용자를 사용자 그룹에 추가하지 않기로 결정한 경우, 애플리케이션(112)은 사용자를 사용자 그룹에 추가하지 않을 수 있다(508). 사용자를 사용자 그룹에 추가하기로 결정한 경우, 애플리케이션(112)은 예를 들어 사용자 그룹의 사용자 그룹 식별자를 포함하도록 클라이언트 디바이스(110)에 저장된 사용자 그룹 리스트을 업데이트함으로써 사용자를 사용자 그룹에 추가할 수 있다(510).
예시적인 이진 분류 추론 기법
이진 분류의 경우, 추론 요청은 집계 함수 파라미터로서 임계값(Ltrue 및 Lfalse)을 포함할 수 있다. 레이블 값은 부울 유형 즉 참(true) 또는 거짓(false)이다. 임계값 파라미터는 사용자가 사용자 그룹(Ltrue)에 추가되기 위해 참 값의 레이블을 가져야 하는 k개의 최근접 이웃 프로파일의 임계값 백분율을 나타낼 수 있다. 그렇지 않으면 사용자가 사용자 그룹(Lfalse)에 추가된다. 한 가지 접근 방식에서, MPC 클러스터(130)는 참인 레이블 값을 갖는 최근접 이웃 사용자 프로파일의 수가 임계값과 k의 곱(product)보다 크면 사용자 그룹(Ltrue)(그렇지 않으면 Lfalse)에 사용자를 추가하도록 애플리케이션(112)에 지시할 수 있다. 그러나, 컴퓨팅 시스템(MPC1)은 추론 결과, 예를 들어 사용자가 가입해야 하는 사용자 그룹을 학습한다.
사용자 프라이버시를 보호하기 위해, 추론 요청은 일반 텍스트의 임계값, 컴퓨팅 시스템(MPC1)에 대한 제1 조각([Ltrue,1] 및 [Lfalse,1]), 컴퓨팅 시스템(MPC2)에 대한 암호화된 제2 조각(PubKeyEncrypt([Ltrue,2] || [Lfalse,2] || application_public_key, MPC2)을 포함할 수 있다. 이 예에서, 애플리케이션(112)은 심볼(||)로 표시된 바와같이 [Ltrue,2], [Lfasle,2] 및 애플리케이션(112)의 공개 키로부터 복합 메시지를 생성하고, 컴퓨팅 시스템(MPC2)의 공개 키를 사용하여 이 복합 메시지를 암호화할 수 있다. 컴퓨팅 시스템(MPC1)에서 애플리케이션(112)으로의 추론 응답은 컴퓨팅 시스템(MPC1)에 의해 결정된 추론 결과[Lresult,1]의 제1 조각 및 컴퓨팅 시스템(MPC2)에 의해 결정된 추론 결과[Lresult,2]의 제2 조각을 포함할 수 있다.
제2 조각이 컴퓨팅 시스템(MPC1)에 의해 액세스되는 것을 방지하고 따라서 컴퓨팅 시스템(MPC1)이 일반 텍스트의 추론 결과를 얻을 수 있게 하기 위해, 컴퓨팅 시스템(MPC2)은 추론 결과[Lresult,2]의 제2 조각의 암호화된(및 선택적으로 디지털 서명된) 버전, 예를 들어 PubKeySign(PubKeyEncrypt([Lresult,2], application_public_key), MPC2)을 애플리케이션(112)에 전송된 추론 응답에 포함하기 위해 컴퓨팅 시스템(MPC1)으로 전송할 수 있다. 이 예에서, 애플리케이션(112)은 디지털 서명을 생성하는데 사용된 컴퓨팅 시스템(MPC2)의 개인 키에 대응하는 컴퓨팅 시스템(MPC2)의 공개 키를 사용하여 디지털 서명을 검증하고, 추론 결과[Lresult,2]의 제2 조각을 암호화하는데 사용된 공개 키(application_public_key)에 대응하는 애플리케이션(112)의 개인 키를 사용하여 추론 결과[Lresult,2]의 제2 조각을 복호화할 수 있다.
그런 다음, 애플리케이션(112)은 제1 조각([Lresult,1]) 및 제2 조각([Lresult,2])로부터 추론 결과(Lresult)를 재구성할 수 있다. 디지털 서명을 사용함으로써 애플리케이션(112)은 컴퓨팅 시스템(MPC2)로부터, 예를 들어 컴퓨팅 시스템(MPC1)에 의한 결과의 위조를 검출할 수 있다. 원하는 보안 수준, MPC 클러스터(130)의 컴퓨팅 시스템을 운영하는 당사자 및 가정된 보안 모델에 따라 디지털 서명이 필요하지 않을 수 있다.
컴퓨팅 시스템(MPC1 및 MPC2)은 MPC 기술을 사용하여 이진 분류 결과의 조각 ([Lresult,1] 및 [Lresult,2])을 결정할 수 있다. 이진 분류에서, 사용자 프로파일의 label1의 값은 0(false, 거짓) 또는 1(true, 참)이다. 선택된 k개의 최근접 이웃이 식별자({id1,...idk}에 의해 식별된다고 가정하면, 컴퓨팅 시스템(MPC1 및 MPC2)은 k개의 최근접 이웃 사용자 프로파일에 대한 레이블의 합(sum_of_labels)을 계산할 수 있으며, 여기서 합은 아래의 관계식 3으로 표현된다.
관계식 3 :
Figure pct00003
합을 결정하기 위해, 컴퓨팅 시스템(MPC1)은 ID(즉, {id1, ...idk})를 컴퓨팅 시스템(MPC2)으로 전송한다. 컴퓨팅 시스템(MPC2)은 ID의 행 식별자 수가 k-익명성을 시행하기 위한 임계값보다 큰지 검증할 수 있다. 컴퓨팅 시스템(MPC2)은 아래의 관계식 4를 사용하여 레이블들의 합([sum_of_labels2])의 제2 조각을 계산할 수 있다.
관계식 4 :
Figure pct00004
컴퓨팅 시스템(MPC1)은 또한 아래의 관계식 5를 사용하여 레이블의 합([sum_of_labels1])의 제1 조각을 계산할 수 있다.
관계식 5 :
Figure pct00005
레이블의 합(sum_of_labels)이 컴퓨팅 시스템(MPC1 및 MPC2)이 가능한 한 적게 알아야 하는 기밀 정보인 경우, 컴퓨팅 시스템(MPC1)은 레이블의 합 ([sum_of_labels1])의 제1 조각이 임계값 미만인지, 예를 들어 [below_threshold1] = [sum_of_labels1] < 임계값×k인지 여부를 계산할 수 있다. 유사하게, 컴퓨팅 시스템(MPC2)은 레이블의 합([sum_of_labels2])의 제2 조각이 임계값 미만인지, 예를 들어 [below_threshold2] = [sum_of_labels2] < 임계값×k인지 여부를 계산할 수 있다. 컴퓨팅 시스템(MPC1)은 [below_threshold1]×[Lfalse, 1] + (1-[below_threshold1])×[Ltrue, 1]에 의해 추론 결과([Lresult,1])를 계산하도록 진행할 수 있다. 유사하게, 컴퓨팅 시스템(MPC2)은 [below_threshold2]×[Lfalse, 2] + (1-[below_threshold2])×[Ltrue, 2]에 의해 [Lresult,2]를 계산할 수 있다.
레이블의 합(sum_of_labels)이 기밀 정보가 아닌 경우, 컴퓨팅 시스템(MPC1 및 MPC2)은 [sum_of_labels1] 및 [sum_of_labels2]로부터 sum_of_labels를 재구성할 수 있다. 그런 다음 컴퓨팅 시스템(MPC1 및 MPC2)은 파라미터(below_threshold)를 sum_of_labels < 임계값 × k, 예를 들어 임계값 미만이면 1의 값 또는 임계값 미만이 아니면 0의 값으로 설정할 수 있다.
파라미터(below_threshold)를 계산한 후, 컴퓨팅 시스템(MPC1 및 MPC2)은 추론 결과(Lresult)를 결정하기 위해 진행할 수 있다. 예를 들어, 컴퓨팅 시스템(MPC2)은 below_threshold의 값에 따라 [Lresult,2]를 [Ltrue,2] 또는 [Lfalse,2]로 설정할 수 있다. 예를 들어, 컴퓨팅 시스템(MPC2)은 레이블의 합이 임계값 미만이 아닌 경우 [Lresult,2]를 [Ltrue,2]로 설정하거나 레이블의 합이 임계값 미만인 경우 [Lfalse,2]로 설정할 수 있다. 그런 다음 컴퓨팅 시스템(MPC2)은 추론 결과의 암호화된 제2 조각(PubKeyEncrypt(Lresult,2], application_public_key)) 또는 이 결과의 디지털 서명된 버전을 컴퓨팅 시스템(MPC1)에 반환할 수 있다.
유사하게, 컴퓨팅 시스템(MPC1)은 below_threshold의 값에 따라 [Lresult,1]을 [Ltrue,1] 또는 [Lfalse,1]로 설정할 수 있다. 예를 들어, 컴퓨팅 시스템(MPC1)은 레이블의 합이 임계값 미만이 아닌 경우 [Lresult,1]을 [Ltrue,1]로 설정하거나, 레이블의 합이 임계값 미만인 경우 [Lfalse,1]로 설정할 수 있다. 컴퓨팅 시스템(MPC1)은 추론 결과[Lresult,1]의 제1 조각(부분)과 추론 결과[Lresult,2]의 암호화된 제2 조각을 애플리케이션(112)에 대한 추론 응답으로서 전송할 수 있다. 그런 다음, 애플리케이션(112)은 위에서 설명된 바와 같이 2개의 조각에 기초하여 추론 결과를 계산할 수 있다.
예시적인 다중 클래스 분류 추론 기법
다중 클래스 분류의 경우, 각 사용자 프로파일과 관련된 레이블은 카테고리(범주)형 특징일 수 있다. 컨텐츠 플랫폼(150)은 임의의 가능한 카테고리 값을 대응하는 사용자 그룹 식별자에 매핑하는 룩업 테이블을 지정할 수 있다. 룩업 테이블은 추론 요청에 포함된 집계 함수 파라미터 중 하나일 수 있다.
발견된 k개의 최근접 이웃 내에서, MPC 클러스터(130)는 가장 빈번한 레이블 값을 찾는다. 그런 다음 MPC 클러스터(130)는 룩업 테이블에서 가장 빈번한 레이블 값에 대응하는 사용자 그룹 식별자를 찾고, 예를 들어, 클라이언트 디바이스(110)에 저장된 사용자 그룹 리스트에 사용자 그룹 식별자를 추가함으로써 애플리케이션(112)이 사용자 그룹 식별자에 대응하는 사용자 그룹에 사용자를 추가하도록 요청한다.
이진 분류와 유사하게, 컴퓨팅 시스템(MPC1 및 MPC2)에서 추론 결과(Lresult)를 숨기는 것이 바람직할 수 있다. 그렇게 하기 위해, 애플리케이션(112) 또는 컨텐츠 플랫폼(150)은 카테고리 값을 추론 결과(Lresult)의 개별 조각에 각각 매핑하는 2개의 룩업 테이블을 생성할 수 있다. 예를 들어, 애플리케이션은 카테고리 값을 제1 조각([Lresult1])에 매핑하는 제1 룩업 테이블과 카테고리 값을 제2 조각([Lresult2])에 매핑하는 제2 룩업 테이블을 생성할 수 있다. 애플리케이션으로부터 컴퓨팅 시스템(MPC1)으로의 추론 요청은 컴퓨팅 시스템(MPC1)에 대한 일반 텍스트의 제1 룩업 테이블 및 컴퓨팅 시스템(MPC2)에 대한 제2 룩업 테이블의 암호화된 버전을 포함할 수 있다. 제2 륵업 테이블은 컴퓨팅 시스템(MPC2)의 공개 키를 사용하여 암호화될 수 있다. 예를 들어, 제2 룩업 테이블과 애플리케이션의 공개 키를 포함하는 복합 메시지는 컴퓨팅 시스템(MPC2)의 공개 키, 예를 들어, PubKeyEncrypt(lookuptable2 || application_public_key, MPC2))를 사용하여 암호화될 수 있다.
컴퓨팅 시스템(MPC1)에 의해 전송된 추론 응답은 컴퓨팅 시스템(MPC1)에 의해 생성된 추론 결과의 제1 조각([Lresult1])을 포함할 수 있다. 이진 분류와 유사하게, 제2 조각이 컴퓨팅 시스템(MPC1)에 의해 액세스되는 것을 방지하고 컴퓨팅 시스템(MPC1)이 일반 텍스트의 추론 결과를 획득할 수 있도록 하기 위해, 컴퓨팅 시스템 (MPC2)은 추론 결과[Lresult,2]의 제2 조각의 암호화된(및 선택적으로 디지털 서명된) 버전, 예를 들어 PubKeySign(PubKeyEncrypt([Lresult,2], application_public_key), MPC2)를 애플리케이션(112)으로 전송된 추론 결과에 포함하기 위해 컴퓨팅 시스템 (MPC1)에 전송할 수 있다. 애플리케이션(112)은 [Lresult1] 및 [Lresult2]로부터 추론 결과(Lresult)를 재구성할 수 있다.
다중 클래스 분류 문제에 대해 w개의 유효한 레이블({l1, l2, … lw})이 있다고 가정한다. 다중 클래스 분류에서 추론 결과(Lresult)의 조각([Lresult1] 및 [Lresult2])을 결정하기 위해, 컴퓨팅 시스템(MPC1)은 컴퓨팅 시스템(MPC2)에 ID(즉, {id1, … idk})를 전송한다. 컴퓨팅 시스템(MPC2)은 ID의 행 식별자 수가 k-익명성을 시행하기 위한 임계값보다 큰지 검증할 수 있다. 일반적으로, k-NN의 k는 k-익명성의 k보다 훨씬 클 수 있다. 그런 다음 컴퓨팅 시스템(MPC2)은 아래의 관계식 6을 사용하여 정의되는 j번째 레이블[lj,2]의 제2 빈도 조각[frequencyj,2]을 계산할 수 있다.
관계식 6 :
Figure pct00006
유사하게, 컴퓨팅 시스템(MPC1)은 아래의 관계식 7을 사용하여 정의되는 j번째 레이블[lj,1]의 제1 빈도 조각[frequencyj,1]을 계산한다.
관계식 7 :
Figure pct00007
k개의 최근접 이웃 내의 레이블의 빈도(frequencyi)가 민감하지 않다고 가정하면, 컴퓨팅 시스템(MPC1 및 MPC2)은 해당 레이블에 대한 두 개의 조각([frequencyi,1] 및 [frequencyi,2])으로부터 빈도(i)를 재구성할 수 있다. 그런 다음 컴퓨팅 시스템(MPC1 및 MPC2)은 frequencyindex가 가장 큰 값을 갖는 인덱스 파라미터(index), 예를 들어 index = argmaxi(frequencyi)를 결정할 수 있다.
그런 다음 컴퓨팅 시스템(MPC2)은 자신의 룩업 테이블에서 가장 높은 빈도를 갖는 레이블에 대응하는 조각([Lresult,2])을 조회하여 PubKeyEncrypt([Lresult,2], application_public_key)를 컴퓨팅 시스템(MPC1)에 리턴할 수 있다. 컴퓨팅 시스템(MPC1)은 자신의 룩업 테이블에서 가장 높은 빈도를 갖는 레이블에 대응하는 조각([Lresult,1])을 유사하게 조회할 수 있다. 컴퓨팅 시스템(MPC1)은 두 개의 조각(예를 들어, [Lresult,1] 및 PubKeyEncrypt([Lresult,2], application_public_key)를 포함하는 추론 응답을 애플리케이션(112)으로 전송할 수 있다. 전술한 바와 같이, 제2 조각은 컴퓨팅 시스템(MPC1)이 컴퓨팅 시스템(MPC2)의 응답을 위조하는 것을 방지하기 위해 컴퓨팅 시스템(MPC2)에 의해 디지털 서명될 수 있다. 그런 다음, 애플리케이션(112)은 위에서 설명된 바와 같이 2개의 조각에 기초하여 추론 결과를 계산하고, 추론 결과에 의해 식별된 사용자 그룹에 사용자를 추가할 수 있다.
예시적인 회귀 추론 기법
회귀의 경우, 각 사용자 프로파일(P)과 관련된 레이블은 숫자이어야 한다. 컨텐츠 플랫폼(150)은 임계값의 정렬된 리스트, 예를 들어 (-∞< t0 < t1 <...< tn < ∞) 및 사용자 그룹 식별자의 리스트, 예를 들어 {L0, L1, … Ln, Ln+1}을 지정할 수 있다. 또한, 컨텐츠 플랫폼(150)은 집계 함수, 예를 들어 산술 평균 또는 제곱 평균을 지정할 수 있다.
발견된 k개의 최근접 이웃 내에서, MPC 클러스터(130)는 레이블 값의 평균(결과)을 계산한 다음 그 결과를 사용하여 매핑을 조회하여 추론 결과(Lresult)를 찾는다. 예를 들어, MPC 클러스터(130)는 아래의 관계식 8을 사용하여 레이블 값들의 평균에 기초하여 레이블을 식별할 수 있다.
관계식 8:
result ≤ t0인 경우, Lresult ← L0;
result > tn인 경우, Lresult ← Ln+1;
tx < result ≤tx+1인 경우, Lresult ← Lx+1
즉, 결과가 임계값 이하인 경우, 추론 결과(Lresult)는 L0이다. 결과가 임계값(tn)보다 큰 경우, 추론 결과(Lresult)는 Ln+1이다. 그렇지 않고 결과가 임계값(tx)보다 크고 임계값(tx+1)이하인 경우, 추론 결과(Lresult)는 Lx+1이다. 그런 다음 컴퓨팅 시스템(MPC1)은 예를 들어 추론 결과(Lresult)를 포함하는 추론 응답을 애플리케이션(112)으로 전송함으로써 애플리케이션(112)이 추론 결과(Lresult)에 대응하는 사용자 그룹에 사용자를 추가하도록 요청한다.
위에서 설명된 다른 분류 기술과 유사하게, 추론 결과(Lresult)는 컴퓨팅 시스템(MPC1 및 MPC2)에서 숨길 수 있다. 그렇게 하기 위해, 애플리케이션(112)으로부터의 추론 요청은 컴퓨팅 시스템(MPC1)에 대한 레이블([Li,1])의 제1 조각 및 컴퓨팅 시스템(MPC2)에 대한 레이블([Li,2])의 암호화된 두 번째 조각들(예를 들어, PubKeyEncrypt([L0,2 || … || Ln+1,2 || application_public_key, MPC2))을 포함할 수 있다.
컴퓨팅 시스템(MPC1)에 의해 전송된 추론 결과는 컴퓨팅 시스템(MPC1)에 의해 생성된 추론 결과의 제1 조각[Lresult1]을 포함할 수 있다. 이진 분류와 유사하게, 제2 조각이 컴퓨팅 시스템(MPC1)에 의해 액세스되는 것을 방지하고 컴퓨팅 시스템(MPC1)이 일반 텍스트의 추론 결과를 획득할 수 있도록 하기 위해, 컴퓨팅 시스템(MPC2)은 추론 결과[Lresult,2]의 제2 조각의 암호화된(선택적으로 디지털 서명된) 버전, 예를 들어, PubKeySign(PubKeyEncrypt([Lresult,2], application_public_key), MPC2))를 애플리케이션(112)으로 전송된 추론 결과에 포함하기 위해 컴퓨팅 시스템(MPC1)에 전송할 수 있다. 애플리케이션(112)은 [Lresult,1] 및 [Lresult,2]로부터 추론 결과(Lresult)를 재구성할 수 있다.
집계 함수가 산술 평균인 경우, 컴퓨팅 시스템(MPC1 및 MPC2)은 이진 분류와 유사하게 레이블의 합(sum_of_labels)을 계산한다. 레이블의 합이 민감하지 않은 경우, 컴퓨팅 시스템(MPC1 및 MPC2)은 두개의 조각([sum_of_labels1] 및 [sum_of_labels2])을 계산한 다음 두개의 조각에 기초하여 sum_of_labels를 재구성할 수 있다. 컴퓨팅 시스템(MPC1 및 MPC2)은 레이블의 합을 최근접 이웃 레이블의 양, 예를 들어 k로 나눔으로써 레이블의 평균을 계산할 수 있다.
그런 다음 컴퓨팅 시스템(MPC1)은 관계식 8을 사용하여 평균과 임계값을 비교하여 평균에 대응하는 레이블의 제1 조각을 식별하고 제1 조각([Lresult,1])을 식별된 레이블의 제1 조각으로 설정할 수 있다. 유사하게, 컴퓨팅 시스템(MPC2)은 관계식 8을 사용하여 평균과 임계값을 비교하여 평균에 대응하는 레이블의 제2 조각을 식별하고 제2 조각([Lresult,2])을 식별된 레이블의 제2 조각으로 설정할 수 있다. 컴퓨팅 시스템(MPC2)은 애플리케이션(112)의 공개 키, 예를 들어 PubKeyEncrypt ([Lresult,2], application_public_key)를 사용하여 제2 조각([Lresult,2])을 암호화하고 암호화된 제2 조각을 컴퓨팅 시스템(MPC1)으로 전송할 수 있다. 컴퓨팅 시스템(MPC1)은 제1 조각 및 암호화된 제2 조각(이는 위에서 설명된 바와 같이 선택적으로 디지털 서명될 수 있음)을 애플리케이션(112)에 제공할 수 있다. 그런 다음, 애플리케이션(112)은 레이블(Lresult)(예를 들어, 사용자 그룹 식별자)에 의해 식별된 사용자 그룹에 사용자를 추가할 수 있다.
레이블의 합이 민감한 경우, 컴퓨팅 시스템(MPC1 및 MPC2)은 일반 텍스트의 sum_of_labels를 구성하지 못할 수 있다. 대신, 컴퓨팅 시스템(MPC1)은 ∀i∈[0,n]에 대해 마스크([maski,1] = [sum_of_labels1] > ti×k)를 계산할 수 있다. 이 계산은 컴퓨팅 시스템(MPC1 및 MPC2) 사이에 여러 번 라운드트립(왕복)해야 할 수 있다. 다음으로, 컴퓨팅 시스템(MPC1)은 [acci,1] = (1== ∑j=0 i[maskj,1])를 계산할 수 있고, 컴퓨팅 시스템(MPC2)은 [acci,2] = (1== ∑j=0 i[maskj,2])를 계산할 수 있다. 이 연산에서 동일성 테스트는 컴퓨팅 시스템(MPC1 및 MPC2) 사이에 여러 번 라운드트립해야 할 수 있다.
또한 컴퓨팅 시스템(MPC1)은 [use_default1] = (0==∑j=0 n[maskj,1)])를 계산할 수 있고, 컴퓨팅 시스템(MPC2)은 [use_default2] = (0== ∑j=0 n[maskj,2])를 계산할 수 있다. 그런 다음 MPC 클러스터(130)는 ∀i∈[0,n]에 대해 acci == 1인 경우에만 Li를 반환하고 use_default == 1인 경우 Ln+1을 반환한다. 이 조건은 아래의 관계식 9로 나타낼 수 있다.
관계식 9 :
Figure pct00008
대응하는 암호화 구현은 아래의 관계식 10 및 11로 나타낼 수 있다.
관계식 10 :
Figure pct00009
관계식 11 :
Figure pct00010
이러한 계산은 Li가 일반 텍스트인 경우 컴퓨팅 시스템(MPC1 및 MPC2) 간의 임의의 라운드트립 계산을 필요로 하지 않으며 Li가 비밀 조각에 있는 경우 한 번의 라운드트립 계산을 포함한다. 컴퓨팅 시스템(MPC1)은 결과의 2개의 조각(예를 들어, [Lresult,1] 및 [Lresult,2])을 애플리케이션(112)에 제공할 수 있으며, 제2 조각은 위에서 설명된 바와 같이 컴퓨팅 시스템(MPC2)에 의해 암호화되고 선택적으로 디지털 서명된다. 이러한 방식으로, 애플리케이션(112)은 컴퓨팅 시스템(MPC1 또는 MPC2)이 즉각적인 또는 최종 결과에 관해 학습하지 않고 추론 결과(Lresult)를 결정할 수 있다.
제곱 평균의 경우, 컴퓨팅 시스템(MPC1)은 ID(즉, {id1, … idk})를 컴퓨팅 시스템(MPC2)으로 전송한다. 컴퓨팅 시스템(MPC2)은 ID의 행 식별자 수가 k-익명성을 시행하기 위한 임계값보다 큰지 확인할 수 있다. 컴퓨팅 시스템(MPC2)은 아래의 관계식 12를 사용하여 sum_of_square_labels 파라미터의 제2 조각(예를 들어, 레이블 값의 제곱의 합)을 계산할 수 있다.
관계식 12 :
Figure pct00011
유사하게, 컴퓨팅 시스템(MPC1)은 아래의 관계식 13을 사용하여 sum_of_square_labels 파라미터의 제1 조각을 계산할 수 있다.
관계식 13 :
Figure pct00012
sum_of_square_labels 파라미터가 민감하지 않다고 가정하면, 컴퓨팅 시스템 (MPC1 및 MPC2)은 두 개의 조각([sum_of_square_labels1] 및 [sum_of_square_labels2])로부터 sum_of_square_labels 파라미터를 재구성할 수 있다. 컴퓨팅 시스템(MPC1 및 MPC2)은 sum_of_squares_labels를 최근접 이웃 레이블의 양, 예를 들어 k로 나눈 다음 제곱근을 계산함으로써 레이블의 평균 제곱근을 계산할 수 있다.
평균이 산술 평균을 통해 계산되는지 또는 제곱 평균 제곱근(root mean square)을 통해 계산되는지 여부에 관계없이, 컴퓨팅 시스템(MPC1)은 관계식 8을 사용하여 평균을 임계값과 비교하여 평균에 해당하는 레이블을 식별하고 제1 조각([Lresult,1])을 식별된 레이블로 설정할 수 있다. 유사하게, 컴퓨팅 시스템(MPC2)은 관계식 8을 사용하여 평균을 임계값과 비교하여 평균에 해당하는 레이블블(또는 레이블의 비밀 조각)을 식별하고 제2 조각[Lresult,2]을 식별자 레이블(또는 식별자 레이블의 비밀 조각)로 설정할 수 있다. 컴퓨팅 시스템(MPC2)은 애플리케이션(112)의 공개 키, 예를 들어 PubKeyEncrypt([Lresult,2], application_public_key)를 사용하여 제2 조각[Lresult,2]을 암호화하고 암호화된 제2 조각을 컴퓨팅 시스템(MPC1)으로 전송할 수 있다. 컴퓨팅 시스템(MPC1)은 추론 결과로서 애플리케이션(112)에 제1 조각 및 암호화된 제2 조각(이는 위에서 설명된 바와 같이 선택적으로 디지털 서명될 수 있음)을 제공할 수 있다. 그런 다음, 애플리케이션(112)은 Lresult의 레이블(예를 들어, 사용자 그룹 식별자)에 의해 식별된 사용자 그룹에 사용자를 추가할 수 있다. sum_of_square_labels 파라미터가 민감한 경우, 컴퓨팅 시스템(MPC1 및 MPC2)은 추론 결과의 조각들을 계산하기 위해 산술 평균 예에서 사용된 것과 유사한 암호화 프로토콜을 수행할 수 있다.
분류 및 회귀 문제의 결과를 추론하는 위의 기술에서, 모든 k개의 최근접 이웃은 최종 추론 결과에 대해 동일한 영향, 예를 들어 동일한 가중치를 갖는다. 많은 분류 및 회귀 문제의 경우, 이웃과 질의 파라미터(Pi) 사이의 해밍 거리가 증가할 때 k개의 이웃 각각에 단조 감소하는 가중치가 할당되면 모델 품질이 향상될 수 있다. 이 속성이 있는 일반적인 커널 함수는 Epanechnikov(포물선) 커널 함수이다. 해밍 거리와 가중치는 모두 일반 텍스트로 계산할 수 있다.
희소 특징 벡터 사용자 프로파일
전자 리소스의 특징이 사용자 프로파일에 포함되고 기계 학습 모델을 생성하는데 사용되는 경우, 결과적인 특징 벡터는 도메인, URL 및 IP 주소와 같은 높은 카디널리티(cardinality) 카테고리형 특징을 포함할 수 있다. 이러한 특징 벡터는 희소하며 대부분의 요소는 값이 0이다. 애플리케이션(112)은 특징 벡터를 둘 이상의 밀집 특징 벡터로 분할할 수 있지만, 기계 학습 플랫폼은 너무 많은 클라이언트 디바이스 업로드 대역폭을 소비하여 실용적이지 않다. 이 문제를 방지하기 위해, 위에서 설명한 시스템 및 기술을 적용하여 희소 특징 벡터를 더 잘 처리할 수 있다.
이벤트에 대한 특징 벡터를 클라이언트 디바이스에 제공할 때, 전자 리소스에 포함된 컨텐츠 플랫폼(150)의 컴퓨터 판독 가능 코드(예를 들어, 스크립트)는 이벤트에 대한 특징 벡터를 지정하기 위해 애플리케이션(예를 들어, 브라우저) API를 호출할 수 있다. 이 코드 또는 컨텐츠 플랫폼(150)은 특징 벡터(그의 일부)가 밀집(dense) 또는 희소(sparse)인지 여부를 결정할 수 있다. 특징 벡터(또는 그의 일부)가 밀집한 경우 코드는 API 파라미터로서 숫자 값의 벡터를 전달할 수 있다. 특징 벡터(또는 그의 일부)가 희소인 경우, 코드는 예를 들어 0이 아닌 특징 값을 가진 특징 요소에 대한 색인화된 키/값 쌍과 같은 맵을 전달할 수 있으며, 여기서 키는 이러한 특징 요소들의 이름 또는 인덱스이다. 특징 벡터(또는 그의 일부)가 희소하고 0이 아닌 특징값들이 항상 동일한 값(예를 들어, 1)인 경우, 코드는 요소들이 이러한 특징 요소들의 이름 또는 인덱스인 세트를 전달할 수 있다.
특징 벡터를 집계하여 사용자 프로파일을 생성할 때, 애플리케이션(112)은 밀집 및 희소 특징 벡터를 상이하게 처리할 수 있다. 밀집 벡터에서 계산된 사용자 프로파일(또는 그의 일부)은 밀집 벡터로 남아 있다. 맵에서 계산된 사용자 프로파일(또는 그의 일부)은 채우기 비율(fill rate)이 충분히 높아 맵이 더 이상 저장 비용을 절약하지 않을 때까지 맵으로 유지된다. 해당 지점에서, 애플리케이션(112)은 희소 벡터 표현을 밀집 벡터 표현으로 변환할 것이다.
일부 구현에서, 애플리케이션(112)은 일부 특징 벡터 또는 특징 벡터의 일부를 희소 특징 벡터로 분류하고 일부를 밀집 특징 벡터로 분류할 수 있다. 그런 다음 애플리케이션(112)은 사용자 프로파일 및/또는 사용자 프로파일의 조각들을 생성할 때 각각의 유형의 특징 벡터를 상이하게 처리할 수 있다.
일부 구현에서, 애플리케이션(112)은 특징 벡터의 일부 또는 특징 벡터의 일부를 희소 특징 벡터로 분류하고 일부를 밀집 특징 벡터로 분류할 수 있다. 그 다음, 애플리케이션(112)은 사용자 프로파일 및/또는 사용자 프로파일의 공유를 생성할 때 각각의 유형의 특징 벡터를 상이하게 처리할 수 있다.
세트로부터 계산된 사용자 프로파일(또는 그의 일부)은 집계 함수가 합(sum)인 경우 맵일 수 있다. 예를 들어, 각 특징 벡터는 카테고리형 특징 "도메인 방문(domain visited)"을 가질 수 있다. 집계 함수, 즉 합은 사용자가 게시자 도메인을 방문한 횟수를 계산할 것이다. 세트로부터 계산된 사용자 프로파일(또는 그의 일부)은 집계 함수가 논리적 OR인 경우 세트로 남을 수 있다. 예를 들어, 각 특징 벡터는 카테고리형 특징 "도메인 방문"을 가질 수 있다. 집계 함수, 즉 논리적 OR은 방문 빈도에 관계없이 사용자가 방문한 모든 게시자 도메인을 계산할 것이다.
ML 트레이닝 및 예측을 위해 사용자 프로파일을 MPC 클러스터(130)로 전송하기 위해, 애플리케이션(112)은 사용자 프로파일의 밀집 부분을 비밀 조각들을 지원하는 임의의 표준 암호화 라이브러리로 분할할 수 있다. 클라이언트 디바이스 업로드 대역폭과 계산 비용을 크게 증가시키지 않고 사용자 프로파일의 희소 부분을 분할하기 위해, 함수 비밀 분산(Function Secret Sharing : FSS)) 기술이 사용될 수 있다. 이 예에서, 컨텐츠 플랫폼(150)은 1부터 순차적으로 사용자 프로파일의 희소 부분에 있는 각각의 가능한 요소에 고유 인덱스를 할당한다. 인덱스의 유효 범위가 [1, N] 범위에 있다고 가정한다.
애플리케이션에 의해 계산된 사용자 프로파일에서 0이 아닌 값(Pi)을 갖는 i번째 요소인 1 ≤ i ≤ N에 대해, 애플리케이션(112)은 다음의 속성을 갖는 2개의 의사 난수 함수(Pseudo-Random Functions : PRF)(gi 및 hi)를 생성할 수 있다.
1≤j≤N 및 j≠i인 모든 j에 대해 gi(j)+hi(j)=0
그렇지 않으면 gi(j)+hi(j)=Pi
FSS를 사용하여, gi 또는 hi는 예를 들어 log2(N)×size_of_tag 비트로 간결하게 나타낼 수 있으며 gi 또는 hi에서 i 또는 Pi를 추론하는 것은 불가능하다. 무차별 대입 보안 공격을 방지하기 위해, size_of_tag는 일반적으로 96비트 이상이다. N 차원 중 n ≪ N인 0이 아닌 값을 갖는 n 차원이 있다고 가정한다. n 차원 각각에 대해, 애플리케이션(112)은 위에서 설명된 바와 같이 2개의 의사 난수 함수(g 및 h)를 구성할 수 있다. 게다가, 애플리케이션(112)은 모든 n개의 함수(g)의 간결한 표현을 벡터(G)로 패키징할 수 있고, n개의 함수(h)의 간결한 표현을 동일한 순서로 다른 벡터(H)로 패키징할 수 있다.
또한, 애플리케이션(112)은 사용자 프로파일(P)의 밀집 부분을 2개의 추가 비밀 조각([P1] 및 [P2])으로 분할할 수 있다. 그런 다음, 애플리케이션(112)은 컴퓨팅 시스템(MPC1)에 [P1] 및 G를 전송하고 MPC2에 [P2] 및 H를 전송할 수 있다. G를 전송하는 것은 |G|×log2(N)×size_of_tag=n×log2(N)×size_of_tag 비트가 필요하며, 이는 n << N일 때 애플리케이션(112)이 밀집 벡터로 사용자 프로파일의 희소 부분을 전송하는 경우 필요한 N 비트보다 훨씬 작을 수 있다.
컴퓨팅 시스템(MPC1)이 g1을 수신하고 컴퓨팅 시스템(MPC2)가 h1을 수신하는 경우, 두 컴퓨팅 시스템(MPC1 및 MPC2는)은 샤미르의 비밀 조각을 독립적으로 생성할 수 있다. 1≤j≤N인 임의의 j에 대해, 컴퓨팅 시스템(MPC1)은 2차원 좌표 [1,2×gi(j)]에 점을 생성하고, 컴퓨팅 시스템(MPC2)은 2차원 좌표 [-1,2×hi(j)]에 점을 생성한다. 두 컴퓨팅 시스템(MPC1 및 MPC2)이 협력하여 두 점을 통과하는 선 y = a0 + a1×x를 구성하면, 관계식 14 및 15가 형성된다.
관계식 14: 2×gi(j) = a0 + a1
관계식 15: 2×hi(j) = a0 - a1
두 관계식을 더하면, 결과는 2×gi(j) + 2×hi(j) = (a0 + a1) + (a0 - a1)이 되며, 이는 a0 = gi(j)+hi(j)로 단순화된다. 따라서, [1,2×gi(j)] 및 [-1,2×hi(j)]는 희소 배열(즉 Pi)에서 0이 아닌 i번째 요소의 두개의 비밀 조각이다.
기계 학습 트레이닝 과정의 랜덤 투영 동작 동안, 컴퓨팅 시스템(MPC1)은 [P1]과 G의 사용자 프로파일에 대한 비밀 조각 벡터를 독립적으로 조합할 수 있다. 위의 설명에 따르면, |G| = n이고, 여기서 n은 사용자 프로파일의 희소 부분에 있는 0이 아닌 요소의 수이다. 또한, 사용자 프로파일의 희소 부분은 N 차원으로 알려져 있으며 여기서 n << N이다.
G = {g1, … gn}이라고 가정한다. 1≤j≤N 및 1≤k≤n인 j번째 차원에 대해, [SPj,1] = ∑k=1 ngk(j)이라고 하자. 유사하게, H = {h1, … hn}이라고 하자. 컴퓨팅 시스템(MPC2)은 [SPj,2] = ∑k=1 nhk(j)를 독립적으로 계산할 수 있다. [SPj,1] 및 [SPj,2]가 SPj의 비밀 조각들, 즉 사용자 프로파일의 원래 희소 부분에 있는 j번째 요소의 비밀 값임을 증명하는 것은 쉽다.
[SP1] = {[SP1,1], … [SPN,1]}, 즉 사용자 프로파일의 희소 부분을 밀집하게 표현하여 재구성된 비밀 조각이라고 하자. [P1]과 [SP1]을 연결(concatenate)함으로써 컴퓨팅 시스템(MPC1)은 원래 사용자 프로파일의 전체 비밀 조각을 재구성할 수 있다. 컴퓨팅 시스템(MPC1)은 랜덤하게 [P1] || [SP1]을 투영할 수 있다. 마찬가지로 컴퓨팅 시스템(MPC2)은 랜덤하게 [P2] || [SP2]를 투영할 수 있다. 투영 후에, 위에서 설명한 기술을 사용하여 유사한 방식으로 기계 학습 모델을 생성할 수 있다.
도 6은 시스템(600)에서 사용자 프로파일에 대한 추론 결과를 생성하기 위한 예시적인 프레임워크의 개념도이다. 보다 구체적으로, 다이어그램은 시스템(600)을 집합적으로 구성하는 랜덤 투영 로직(610), 제1 기계 학습 모델(620) 및 최종 결과 계산 로직(640)을 도시한다. 일부 구현에서, 시스템(600)의 기능은 MPC 클러스터의 다중 컴퓨팅 시스템을 통해 안전하고 분산된 방식으로 제공될 수 있다. 시스템(600)을 참조하여 설명되는 기술은 예를 들어, 도 2-5를 참조하여 위에서 설명된 것과 유사할 수 있다. 예를 들어, 랜덤 투영 로직(610)과 관련된 기능은 도 2 및 4를 참조하여 위에서 설명된 랜덤 투영 기술 중 하나 이상의 기능에 대응할 수 있다. 유사하게, 일부 예에서, 제1 기계 학습 모델(620)은 단계(214, 414, 및 504)와 관련하여 위에서 설명된 것들 중 하나 이상과 같이 도 2, 도 4 및 도 5를 참조하여 위에서 설명된 기계 학습 모델 중 하나 이상에 대응할 수 있다. 일부 예에서, 제1 기계 학습 모델(620)에 의해 유지 및 활용될 수 있고 하나 이상의 메모리 유닛에 저장될 수 있는 암호화된 레이블 데이터 세트(626)는 예를 들어, 도 5의 단계(506)를 참조하여 위에서 설명된 k개의 최근접 이웃 프로파일과 관련될 수 있는 것과 같은, 제1 기계 학습 모델(620)을 트레이닝하는 프로세스를 생성 또는 트레이닝하거나, 프로세스의 트레이닝 품질 평가 또는 미세 조정에 사용되는 각 사용자 프로파일에 대한 적어도 하나의 참(true) 레이블을 포함할 수 있다. 즉, 암호화된 레이블 데이터 세트(626)는 n개의 사용자 프로파일 각각에 대한 적어도 하나의 true 레이블을 포함할 수 있으며, 여기서 n은 제1 기계 학습 모델(620)을 트레이닝하는데 사용된 사용자 프로파일의 총 수이다. 예를 들어, 암호화된 레이블 데이터 세트(626)는 n개의 사용자 프로파일에서 j번째 사용자 프로파일(Pj)에 대한 적어도 하나의 true 레이블(Lj), n개의 사용자 프로파일에서 k번째 사용자 프로파일(Pk)에 대한 적어도 하나의 true 레이블(Lk), n개의 사용자 프로파일에서 l번째 사용자 프로파일(Pl)에 대한 하나 이상의 true 레이블(Ll)을 포함할 수 있으며, 여기서 1 ≤ j, k, l ≤ n이다. 제1 기계 학습 모델(620)을 생성하거나 트레이닝하는데 사용되었고 암호화된 레이블 데이터 세트(626)의 일부로 포함된 사용자 프로파일과 관련된 이러한 true 레이블들은 암호화, 예를 들어 비밀 조각들로 표시될 수 있다. 추가적으로, 일부 예에서, 최종 결과 계산 로직(640)은 도 2의 단계(218)를 참조하여 위에서 설명된 것들 중 하나 이상과 같은 추론 결과를 생성하기 위한 하나 이상의 동작을 수행하는 것과 관련하여 채용된 로직에 대응할 수 있다. 제1 기계 학습 모델(620) 및 최종 결과 계산 로직(640)은 이진 분류, 회귀 및/또는 다중 클래스 분류 기술을 포함하는 하나 이상의 추론 기술을 사용하도록 구성될 수 있다.
도 6의 예에서, 시스템(600)은 추론 시간에 하나 이상의 동작을 수행하는 것으로 도시된다. 랜덤 투영 로직(610)은 변환된 사용자 프로파일(619)(Pi')을 획득하기 위해 사용자 프로파일(609)(Pi)에 랜덤 투영 변환을 적용하기 위해 사용될 수 있다. 랜덤 투영 로직(610)을 채용함으로써 획득된 변환된 사용자 프로파일(619)은 일반 텍스트(평문)일 수 있다. 예를 들어, 랜덤 투영 로직(610)은 사용자 프라이버시를 보호하기 위해 랜덤 노이즈로 사용자 프로파일(609) 및 다른 사용자 프로파일에 포함되거나 표시된 특징 벡터와 같은 특징 벡터를 난독화하기 위해 적어도 부분적으로 채용될 수 있다.
제1 기계 학습 모델(620)은 트레이닝되고 후속적으로 변환된 사용자 프로파일(619)을 입력으로서 수신하고 이에 응답하여 적어도 하나의 예측(된) 레이블(629)(
Figure pct00013
)을 생성하기 위해 후속적으로 활용될 수 있다. 제1 기계 학습 모델(620)을 사용하여 획득된 적어도 하나의 예측 레이블(629)은 암호화될 수 있다. 일부 구현에서, 제1 기계 학습 모델(620)은 k-최근접 이웃(k-NN) 모델(622) 및 레이블 예측기(624)를 포함한다. 이러한 구현에서, k-NN 모델(622)은 변환된 사용자 프로파일(619)과 가장 유사한 것으로 간주되는 k개의 최근접 사용자 프로파일을 식별하기 위해 제1 기계 학습 모델(620)에 의해 사용될 수 있다. 일부 예에서, 하나 이상의 프로토타입 방법에 기반한 것과 같은 k-NN 모델 이외의 모델이 모델(622)로서 채용될 수 있다. 레이블 예측기(624)는 암호화된 레이블 데이터 세트(626)에 포함된 true 레이블들 중에서 k개의 최근접 이웃 사용자 프로파일 각각에 대한 true 레이블을 식별하고 그 식별된 레이블에 기초하여 적어도 하나의 예측 레이블(629)을 결정할 수 있다. 일부 구현에서, 레이블 예측기(624)는 적어도 하나의 예측 레이블(629)을 결정할 때 수신 및/또는 생성하는 데이터에 소프트맥스 함수를 적용할 수 있다.
제1 기계 학습 모델(620) 및 최종 결과 계산 로직(640)이 회귀 기술을 사용하도록 구성된 구현의 경우, 적어도 하나의 예측 레이블(629)은 예를 들어 레이블 예측기(624)에 의해 결정된 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합과 같은 정수를 나타내는 단일 레이블에 대응할 수 있다. 레이블 예측기(624)에 의해 결정된 k개의 최근접 사용자 프로파일에 대한 true 레이블의 이러한 합은 k의 계수로 스케일링(조정)된 k개의 최근접 사용자 프로파일에 대한 true 레이블의 평균과 실질적으로 동일하다. 유사하게, 제1 기계 학습 모델(620) 및 최종 결과 계산 로직(640)이 이진 분류 기술을 사용하도록 구성되는 구현의 경우, 적어도 하나의 예측 레이블(629)은 예를 들어 이러한 합에 적어도 부분적으로 기초하여 레이블 예측기(624)에 의해 결정된 정수를 나타내는 단일 레이블에 대응할 수 있다. 이진 분류의 경우 k개의 최근접 사용자 프로파일에 대한 true 레이블 각각은 0 또는 1의 이진 값일 수 있으므로 전술한 평균은 예를 들어 제1 기계 학습 모델(620)(예를 들어, 변환된 사용자 프로파일(619))에 의해 입력으로서 수신된 사용자 프로파일에 대한 true 레이블이 1과 동일할 예측 확률을 효과적으로 나타내는 0과 1 사이의 정수 값일 수 있다. 제1 기계 학습 모델(620) 및 최종 결과 계산 로직(640)이 회귀 기술을 사용하도록 구성된 구현에 대해 적어도 하나의 예측 레이블(629)의 특성 및 구현을 위해 적어도 하나의 예측된 레이블(629)이 결정될 수 있는 방식에 관한 추가 세부 사항 뿐만 아니라 제1 기계 학습 모델(620) 및 최종 결과 계산 로직(640)이 이진 분류 기술을 사용하도록 구성되는 구현에 대해 도 9-11을 참조하여 아래에 제공된다.
제1 기계 학습 모델(620) 및 최종 결과 계산 로직(640)이 다중 클래스 분류 기술을 사용하도록 구성되는 구현의 경우, 적어도 하나의 예측 레이블(629)은 레이블 예측기(624)에 의해 결정된 예측된 레이블의 벡터 또는 세트에 대응할 수 있다. 이러한 벡터 또는 예측 레이블 세트에 있는 각각의 예측 레이블은 개별 카테고리에 해당할 수 있으며, 레이블 예측기(624)에 의해 결정된 바와 같이 벡터의 개별 카테고리에 해당하는 true 레이블 또는 k개의 최근접 이웃 사용자 프로파일의 사용자 프로파일에 대한 true 레이블 세트가 제1 값(예를 들어, 1)의 true 레이블인 빈도 또는 다수결에 적어도 부분적으로 기초하여 레이블 예측기(624)에 의해 결정될 수 있다. 이진 분류와 마찬가지로 다중 클래스 분류의 경우, k개의 최근접 이웃 사용자 프로파일에 있는 사용자 프로파일에 대한 각 벡터 또는 true 레이블 세트의 각 true 레이블은 0 또는 1의 이진 값일 수 있다. 제1 기계 학습 모델(620) 및 최종 결과 계산 로직(640)이 다중 클래스 분류 기술을 사용하도록 구성되는 구현에 대해 적어도 하나의 예측 레이블(629)의 특성 및 적어도 하나의 예측 레이블(629)이 결정될 수 있는 방식에 관한 추가 세부 사항이 도 9-11을 참조하여 아래에 제공된다.
최종 결과 계산 로직(640)은 적어도 하나의 예측 레이블(629)에 기초하여 추론 결과(649)(Resulti)를 생성하기 위해 사용될 수 있다. 예를 들어, 최종 결과 계산 로직(640)은 하나 이상의 임계값에 대해 적어도 하나의 예측 레이블(629)을 평가하고 평가 결과에 기초하여 추론 결과(649)를 결정하기 위해 사용될 수 있다. 일부 예에서, 추론 결과(649)는 사용자 프로파일(609)과 관련된 사용자가 하나 이상의 사용자 그룹에 추가되어야 하는지 여부를 나타낼 수 있다. 일부 구현에서, 적어도 하나의 예측 레이블(629)은 추론 결과(649)에 포함되거나 그렇지 않으면 표시될 수 있다.
일부 구현에서, 도 6에 도시된 바와 같은 시스템(600)은 도 1의 MPC 클러스터(130)와 같은 MPC 클러스터에 의해 구현되는 시스템을 나타낼 수 있다. 이와 같이, 이러한 구현들 중 적어도 일부에서, 도 6에 도시된 요소들을 참조하여 본 명세서에 설명된 기능의 일부 또는 전부가 MPC 클러스터의 2개 이상의 컴퓨팅 시스템을 통해 안전하고 분산된 방식으로 제공될 수 있음을 이해해야 한다. 예를 들어, MPC 클러스터의 2개 이상의 컴퓨팅 시스템 각각은 도 6을 참조하여 본 명세서에 설명된 기능의 개별 조각(share, 부분)을 제공할 수 있다. 이 예에서, 둘 이상의 컴퓨팅 시스템은 병렬로 작동하고 비밀 조각들을 교환하여 도 6을 참조하여 본 명세서에 설명된 것과 유사하거나 동등한 동작들을 협력적으로 수행할 수 있다. 전술한 구현들 중 적어도 일부에서, 사용자 프로파일(609)은 사용자 프로파일의 조각을 나타낼 수 있다. 이러한 구현에서, 도 6을 참조하여 본 명세서에 설명된 데이터 또는 수량의 다른 부분들 중 하나 이상은 또한 비밀 조각을 나타낼 수 있다. 도 6을 참조하여 본 명세서에 설명된 기능을 제공함에 있어서, 사용자 프라이버시를 보호할 목적으로 2개 이상의 컴퓨팅 시스템에 의해 추가 동작이 수행될 수 있다는 것을 이해해야 한다. 전술한 구현들 중 하나 이상의 예는, 예를 들어, 도 12 및 본 명세서의 다른 곳을 참조하여 아래에서 더 상세히 설명된다. 일반적으로, 아래 및 본 문서의 다른 부분에 설명된 "조각(shares, 부분)"은 적어도 일부 구현에서 비밀 조각에 해당할 수 있다.
k-NN 모델(622)과 같은 k-NN 모델에 대한 트레이닝 프로세스는 레이블에 대한 지식이 필요하지 않다는 점에서 비교적 빠르고 간단할 수 있지만, 이러한 모델의 품질은 일부 상황에서 개선의 여지를 남길 수 있다. 이와 같이, 일부 구현에서, 아래에서 더 상세히 설명되는 하나 이상의 시스템 및 기술이 제1 기계 학습 모델(620)의 성능을 향상시키기 위해 활용될 수 있다.
도 7은 시스템(700)에서 향상된 성능을 갖는 사용자 프로파일에 대한 추론 결과를 생성하기 위한 예시적인 프레임워크의 개념도이다. 일부 구현에서, 도 7에 도시된 바와 같은 요소들(609-629) 중 하나 이상은 각각 도 6을 참조하여 앞서 설명된 바와 같은 요소들(609-629) 중 하나 이상과 유사하거나 동일할 수 있다. 시스템(600)과 매우 유사하게, 시스템(700)은 랜덤 투영 로직(610) 및 제1 기계 학습 모델(620)을 포함하고, 추론 시간에 하나 이상의 동작을 수행하는 것으로 도시된다.
그러나, 시스템(600)과 달리, 시스템(700)은 입력으로서 변환된 사용자 프로파일(619)을 수신하고 출력으로서 적어도 하나의 예측 라벨(629)의 예측 오차의 양을 나타내는 예측 잔차 값(739)(Residuei)을 생성함으로써 제1 기계 학습 모델(620)의 성능을 부스트(향상)시키기 위해 트레이닝되고 차후에 활용되는 제2 기계 학습 모델(730)을 더 포함한다. 예를 들어, 제2 기계 학습 모델의 정확도는 제1 기계 학습 모델의 정확도보다 높을 수 있다. 제2 기계 학습 모델(730)을 사용하여 획득된 예측 잔차 값(739)은 일반 텍스트일 수 있다. 최종 결과 계산 로직(640) 대신에 시스템(700)에 포함된 최종 결과 계산 로직(740)은 적어도 하나의 예측 레이블(629)에 기초하고 예측 잔차 값(739)에 추가로 기초하여 추론 결과(749)(Resulti)를 생성하기 위해 사용될 수 있다. 예측 잔차 값(739)이 적어도 하나의 예측 레이블(629)의 예측 오차의 양을 나타내는 경우, 예측 잔차 값(739)과 함께 적어도 하나의 예측 레이블(629)에 의존하는 것은 최종 결과 계산 로직(740)이 적어도 하나의 예측 레이블(629)에서 표현될 수 있는 오차의 적어도 일부를 효과적으로 오프셋하거나 상쇄할 수 있도록 함으로써 시스템(700)에 의해 생성된 추론 결과(749)의 정확도 및 신뢰성 중 하나 또는 둘 모두를 향상시킨다.
예를 들어, 최종 결과 계산 로직(740)은 적어도 하나의 예측 레이블(629)과 예측 잔차 값(739)의 합을 계산하기 위해 사용될 수 있다. 일부 예에서, 최종 결과 계산 로직(740)은 하나 이상의 임계값에 대해 이러한 계산된 합을 평가하고 평가 결과에 기초하여 추론 결과(749)를 결정하기 위해 더 사용될 수 있다. 일부 구현에서, 적어도 하나의 예측 레이블(629)과 예측 잔차 값(739)의 이러한 계산된 합은 도 6의 추론 결과(649) 또는 도 7의 749에 포함되거나 표시될 수 있다.
제2 기계 학습 모델(730)은 심층 신경망(DNN), 그래디언트(gradient, 경사) 부스팅 결정 트리 및 랜덤 포레스트 모델 중 하나 이상을 포함하거나 이에 대응할 수 있다. 즉, 제1 기계 학습 모델(620)과 제2 기계 학습 모델(730)은 구조적으로 서로 다를 수 있다. 일부 구현에서, 제2 기계 학습 모델(730)은 하나 이상의 그래디언트 부스팅 알고리즘, 하나 이상의 그래디언트(기울기) 하강 알고리즘 또는 이들의 조합을 사용하여 트레이닝될 수 있다.
일반적으로 본 문서에 더 자세히 설명된 대로 잔차(residues)를 사용하는 부스팅 알고리즘을 사용하면 더 약한 기계 학습 모델(예를 들어, k 최근접 이웃 모델)을 사용하여 더 강력한 기계 학습 모델(예를 들어, DNN)을 트레이닝할 수 있다. 약한 학습자를 위한 트레이닝 프로세스와 달리 강한 학습자를 위한 트레이닝 레이블은 약한 학습자의 잔차이다. 이러한 잔차를 사용하면 보다 정확한 강한 학습자의 트레이닝이 가능하다.
제2 기계 학습 모델(730)은 제1 기계 학습 모델(620)을 트레이닝하는데 사용되었고, 제1 기계 학습 모델(620)을 사용하여 결정된 사용자 프로파일 세트에 대한 true 레이블과 사용자 프로파일 세트에 대한 예측 레이블 간의 차이를 나타내는 데이터가 사용되었던 동일한 사용자 프로파일 세트를 사용하여 트레이닝될 수 있다. 이와 같이, 제2 기계 학습 모델(730)을 트레이닝하는 프로세스는 제1 기계 학습 모델(620)을 트레이닝하는 프로세스의 적어도 일부가 수행된 후에 수행된다. 제1 기계 학습 모델(620)을 사용하여 결정된 예측 레이블과 true 레이블 간의 차이를 나타내는 데이터와 같이 제2 기계 학습 모델(730)을 트레이닝하는데 사용되는 데이터는 트레이닝된 제1 기계 학습 모델(730)의 성능을 평가하는 프로세스를 통해 생성되거나 획득될 수 있다. 이러한 프로세스의 예는 도 10 내지 도 11을 참조하여 아래에서 더 상세히 설명된다.
위에서 언급한 바와 같이, 시스템(600, 700)에 포함된 랜덤 투영 로직(610)은 사용자 프라이버시를 보호하기 위해 랜덤 노이즈로 사용자 프로파일(609) 및 다른 사용자 프로파일에 포함되거나 표시된 특징 벡터와 같은 특징 벡터를 난독화하기 위해 적어도 부분적으로 사용될 수 있다. 기계 학습 트레이닝 및 예측을 가능하게 하기 위해, 랜덤 투영 로직(610)에 의해 적용되는 랜덤 투영 변환은 특징 벡터들 사이의 거리의 개념을 보존할 필요가 있다. 랜덤 투영 로직(610)에서 사용될 수 있는 랜덤 투영 기술의 일 예는 SimHash 기술을 포함한다. 이 기술 및 위에서 설명한 다른 기술은 이러한 특징 벡터 간의 코사인 거리를 유지하면서 특징 벡터를 난독화하는 역할을 할 수 있다.
특징 벡터들 사이의 코사인 거리의 보존은 제1 기계 학습 모델(620)의 k-NN 모델(622)과 같은 k-NN 모델을 트레이닝하고 사용하기에 충분함을 증명할 수 있지만, 제2 기계 학습 모델(730)의 하나 이상의 모델과 같은 다른 유형의 모델을 트레이닝하고 사용하는데에는 덜 이상적일 수 있다. 이와 같이, 일부 구현에서, 특징 벡터들 사이의 유클리드 거리를 유지하면서 특징 벡터를 난독화하는 역할을 할 수 있는 랜덤 투영 로직(610)에서 랜덤 투영 기술을 사용하는 것이 바람직할 수 있다. 이러한 랜덤 투영 기술의 한 예는 존슨-린덴스트라우스(Johnson-Lindenstrauss)(J-L) 기술 또는 변환을 포함한다.
위에서 언급한 바와 같이, J-L 변환의 한 가지 속성은 특징 벡터 간의 유클리드 거리를 확률로 보존한다는 것이다. 또한 J-L 변환은 손실이 있고 되돌릴 수 없으며 랜덤 노이즈를 포함한다. 이와 같이, MPC 클러스터의 두 개 이상의 서버 또는 컴퓨팅 시스템이 공모하더라도, 그들은 J-L 변환 기술을 사용하여 획득한 사용자 프로파일의 변환된 버전(Pi')으로부터 원래 사용자 프로파일(Pi)의 정확한 재구성을 획득할 수 없다. 이러한 방식으로, 본 명세서에 설명된 하나 이상의 시스템에서 사용자 프로파일을 변환할 목적으로 J-L 변환 기술을 사용하는 것은 사용자 프라이버시 보호를 제공하는 역할을 할 수 있다. 더욱이, 차원 축소 기술로 J-L 변환 기술이 사용될 수 있다. 이와 같이, 본 명세서에 설명된 하나 이상의 시스템에서 사용자 프로파일을 변환할 목적으로 J-L 변환 기술을 사용하는 것의 한 가지 유리한 점은 실제로 이러한 시스템에 의해 후속 처리 단계가 수행될 수 있는 속도를 상당히 증가시키는 역할을 할 수 있다는 것이다.
일반적으로, 임의로 작은 ε > 0이 주어지면, 임의의 1 ≤ i, j ≤ n에 대해 Pi를 Pi'로, Pj를 Pj'로 변환하는데 적용할 수 있는 J-L 변환이 존재하는데, 여기서 n은 트레이닝 예제의 수이고, 그리고 (1-ε)×|Pi-Pj|2 ≤ |Pi' - Pj'|2 ≤ (1+ε)×|Pi-Pj|2이다. 즉, J-L 변환을 적용하면 임의로 선택된 두 트레이닝 예제 사이의 유클리드 거리를 작은 부분(fraction)(ε) 이하로 변경할 수 있다. 적어도 전술한 이유 때문에, 일부 구현에서, J-L 변환 기술은 본 명세서에 설명된 바와 같이 랜덤 투영 로직(610)에서 채용될 수 있다.
일부 구현에서, 도 7에 도시된 바와 같은 시스템(700)은 도 1의 MPC 클러스터(130)와 같은 MPC 클러스터에 의해 구현되는 시스템을 나타낼 수 있다. 이와 같이, 이러한 구현들 중 적어도 일부에서, 도 7에 도시된 요소를 참조하여 본 명세서에 설명된 기능의 일부 또는 전부는 MPC 클러스터의 2개 이상의 컴퓨팅 시스템을 통해 안전하고 분산된 방식으로 제공될 수 있다. 예를 들어, MPC 클러스터의 2개 이상의 컴퓨팅 시스템 각각은 도 7을 참조하여 본 명세서에 설명된 기능의 개별 조각(share)을 제공할 수 있다. 이 예에서, 둘 이상의 컴퓨팅 시스템은 병렬로 작동하고 비밀 조각들을 교환하여 도 7을 참조하여 본 명세서에 설명된 것과 유사하거나 동등한 동작들을 협력적으로 수행할 수 있다. 전술한 구현들 중 적어도 일부에서, 사용자 프로파일(609)은 사용자 프로파일의 비밀 조각을 나타낼 수 있다. 이러한 구현에서, 도 7을 참조하여 본 명세서에 설명된 데이터 또는 양의 다른 부분 중 하나 이상은 또한 그의 비밀 조각을 나타낼 수 있다. 도 7을 참조하여 본 명세서에 설명된 기능을 제공함에 있어서, 사용자 프라이버시를 보호할 목적으로 2개 이상의 컴퓨팅 시스템에 의해 추가 동작이 수행될 수 있다는 것을 이해해야 한다. 전술한 구현들 중 하나 이상의 예는, 예를 들어, 도 12 및 본 명세서의 다른 곳을 참조하여 아래에서 더 상세히 설명된다.
도 8은 MPC 클러스터에서 부스팅된 성능, 예를 들어 더 높은 정확도로 사용자 프로파일에 대한 추론 결과를 생성하기 위한 예시적인 프로세스(800)를 도시하는 흐름도이다. 도 8을 참조하여 설명된 동작들 중 하나 이상은, 예를 들어, 추론 시간에 수행될 수 있다. 프로세스(800)의 동작들은 예를 들어, 도 1의 MPC 클러스터(130)와 같은 MPC 클러스터에 의해 구현될 수 있고, 또한 도 1을 참조하여 위에서 설명된 동작들 중 하나 이상에 대응할 수 있다. 도 8을 참조하여 설명된 동작들 중 하나 이상은, 예를 들어, 추론 시간에 수행될 수 있다.
일부 구현에서, 도 8에 도시된 요소들을 참조하여 본 명세서에 설명된 기능의 일부 또는 전부는 도 1의 MPC 클러스터(130)와 같은 MPC 클러스터의 2개 이상의 컴퓨팅 시스템을 통해 안전하고 분산된 방식으로 제공될 수 있다. 예를 들어, MPC 클러스터의 2개 이상의 컴퓨팅 시스템 각각은 도 8을 참조하여 본 명세서에 설명된 기능의 개별 조각을 제공할 수 있다. 이 예에서, 둘 이상의 컴퓨팅 시스템은 병렬로 작동하고 비밀 조각들을 교환하여 도 8을 참조하여 본 명세서에 설명된 것과 유사하거나 동등한 동작들을 협력적으로 수행할 수 있다. 도 8을 참조하여 본 명세서에 설명된 기능을 제공함에 있어서, 사용자 프라이버시를 보호할 목적으로 2개 이상의 컴퓨팅 시스템에 의해 추가 동작이 수행될 수 있다는 것을 이해해야 한다. 전술한 구현들 중 하나 이상의 예는, 예를 들어, 도 12 및 본 명세서의 다른 곳을 참조하여 아래에서 더 상세히 설명된다. 프로세스(800)의 동작들은 또한 비-일시적일 수 있는 하나 이상의 컴퓨터 판독 가능 매체에 저장된 명령들로서 구현될 수 있으며, 하나 이상의 데이터 처리 장치에 의한 명령들의 실행은 하나 이상의 데이터 처리 장치로 하여금 프로세스(800)의 동작들을 수행하게 할 수 있다.
MPC 클러스터는 특정 사용자 프로파일과 관련된 추론 요청을 수신한다(802). 예를 들어, 이것은 도 1을 참조하여 위에서 설명된 바와 같이, 애플리케이션(112)으로부터 추론 요청을 수신하는 MPC 클러스터(130)와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다.
MPC 클러스터는 특정 사용자 프로파일, 다수의 사용자 프로파일을 사용하여 트레이닝된 제1 기계 학습 모델, 다수의 사용자 프로파일에 대한 다수의 참(true) 레이블 중 하나 이상에 기초하여 특정 사용자 프로파일에 대한 예측 레이블을 결정한다(804). 예를 들어, 이것은 도 6-7을 참조하여 위에서 설명한 바와 같이, 적어도 하나의 예측 레이블(629)(
Figure pct00014
)을 획득하기 위해 활용되는 제1 기계 학습 모델(620)과 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다.
이 예에서, 다수의 사용자 프로파일에 대한 다수의 true 레이블은 암호화된 레이블 데이터(626)의 일부로서 포함된 true 레이블에 대응할 수 있으며, 이는 제1 기계 학습 모델(620)을 트레이닝하는데 사용되었던 다수의 사용자 프로파일에 대한 true 레이블이다. 예를 들어, 특정 사용자 프로파일에 대한 예측 레이블의 결정이 기초하는 다수의 true 레이블 중의 하나 이상의 true 레이블은 제1 기계 학습 모델(620)의 k-NN 모델(622)에 의해 식별된 k개의 최근접 사용자 프로파일 각각에 대한 적어도 하나의 true 레이블을 포함할 수 있다. 일부 예에서, 도 6 내지 도 7의 예에서와 같이 다수의 true 레이블 각각이 암호화된다. k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블을 활용하여 예측 레이블을 결정할 수 있는 다양한 방법 중 일부는 위에 자세히 설명되어 있다. 위에서 분명히 알 수 있듯이, 예측 레이블을 결정하기 위해 이러한 true 레이블이 활용되는 방식(way) 또는 방식(manner)은 사용되는 추론 기술(들)의 유형(예를 들어, 회귀 기술, 이진 분류 기술, 다중 클래스 분류 기술 등)에 적어도 부분적으로 의존할 수 있다.
MPC 클러스터는 특정 사용자 프로파일 및 다수의 사용자 프로파일을 사용하여 트레이닝된 제2 기계 학습 모델 및 제1 기계 학습 모델을 사용하여 다수의 사용자 프로파일에 대해 결정된 다수의 사용자 프로파일에 대한 다수의 true 레이블과 다수의 예측 레이블 간의 차이를 나타내는 데이터에 기초하여 예측 레이블에서 예측된 오차를 나타내는 예측된 잔차 값을 결정한다(806). 예를 들어, 이것은 도 7을 참조하여 위에서 설명된 바와 같이 예측(된) 잔차 값(739)(Residuei)을 획득하기 위해 활용되는 제2 기계 학습 모델(730)과 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다. 이와 같이, 일부 구현에서, 제2 기계 학습 모델은 심층 신경망, 그래디언트 부스팅 결정 트리 및 랜덤 포레스트 모델 중 적어도 하나를 포함한다.
MPC 클러스터는 예측 레이블 및 예측 잔차 값에 기초하여 추론 결과를 나타내는 데이터를 생성한다(808). 예를 들어, 이것은 도 7을 참조하여 위에서 설명된 바와 같이 추론 결과(749)(Resulti)를 생성하기 위해 사용되는 최종 결과 계산 로직(740)과 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다. 이와 같이, 일부 예에서, 추론 결과는 예측 레이블 및 예측 잔류 값의 합을 포함하거나 이에 해당한다.
MPC 클러스터는 추론 결과를 나타내는 데이터를 클라이언트 디바이스에 제공한다(810). 예를 들어, 이것은 도 1-2를 참조하여 위에서 설명된 바와 같이. 애플리케이션(112)이 실행되는 클라이언트 디바이스(110)에 추론 결과를 제공하는 MPC 클러스터(130)와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다.
일부 구현에서, 프로세스(800)는 MPC 클러스터가 특정 사용자 프로파일의 변환된 버전을 획득하기 위해 특정 사용자 프로파일에 변환을 적용하는 하나 이상의 동작을 더 포함한다. 이러한 구현에서, 예측 레이블을 결정하기 위해, MPC 클러스터는 특정 사용자 프로파일의 변환된 버전에 적어도 부분적으로 기초하여 예측 레이블을 결정한다. 예를 들어, 이것은 도 6-7을 참조하여 위에서 설명된 바와 같이, 변환된 사용자 프로파일(619)(Pi')을 획득하기 위해 사용자 프로파일(609)(Pi)에 랜덤 투영 변환을 적용하기 위해 사용되는 랜덤 투영 로직(610)과 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다. 이와 같이, 일부 예에서, 전술한 변환은 랜덤 투영일 수 있다. 더욱이, 이들 예들 중 적어도 일부에서, 전술한 랜덤 투영은 존슨-린덴스트라우스(J-L) 변환일 수 있다. 전술한 구현들 중 적어도 일부에서, 예측 레이블을 결정하기 위해, MPC 클러스터는 제1 기계 학습 모델에 대한 입력으로서 특정 사용자 프로파일의 변환된 버전을 제공하여 출력으로서 특정 사용자 프로파일에 대한 예측 레이블을 획득할 수 있다. 예를 들어, 이것은 도 6-7을 참조하여 위에서 설명된 바와 같이, 변환된 사용자 프로파일(619)(Pi')을 입력으로서 수신하고 그에 응답하여 적어도 하나의 예측 레이블(629)(
Figure pct00015
)을 생성하는 제1 기계 학습 모델(620)과 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다.
위에서 언급한 바와 같이, 일부 구현에서 제1 기계 학습 모델은 k-최근접 이웃 모델을 포함한다. 이러한 구현들 중 적어도 일부에서, 예측 레이블을 결정하기 위해, MPC 클러스터는 특정 사용자 프로파일 및 k-최근접 이웃 모델에 적어도 부분적으로 기초하여 다수의 사용자 프로파일 중에서 특정 사용자 프로파일과 가장 유사한 것으로 간주되는 k개의 최근접 이웃 사용자 프로파일을 식별하고, k개의 최근접 이웃 사용자 프로파일 각각에 대한 true 레이블에 적어도 부분적으로 기초하여 예측된 레이블을 결정한다. 이러한 일부 구현에서, k개의 최근접 사용자 프로파일 각각에 대한 true 레이블에 적어도 부분적으로 기초하여 예측 레이블을 결정하기 위해, MPC 클러스터는 k개의 최근접 사용자 프로파일에 대한 true 레이블들의 합을 결정한다. 예를 들어, 이것은 도 6-7을 참조하여 위에서 설명된 바와 같이, 하나 이상의 회귀 및/또는 이진 분류 기술이 사용되는 하나 이상의 구현에서 적어도 하나의 예측 레이블(629)(
Figure pct00016
)을 획득하기 위해 활용되는 제1 기계 학습 모델(620)과 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다. 일부 예에서, 예측 레이블은 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블들의 합을 포함하거나 이에 대응한다.
앞서 언급된 구현들 중 일부에서, k개의 최근접 이웃 사용자 프로파일 각각에 대한 true 레이블에 적어도 부분적으로 기초하여 예측 레이블을 결정하기 위해, MPC 클러스터는 카테고리 세트에 각각 대응하는 k개의 최근접 이웃 사용자 프로파일 각각에 대한 true 레이블 세트에 적어도 부분적으로 기초하여 예측 레이블 세트를 결정하고, 예측 레이블 세트를 결정하기 위해 MPC 클러스터는 세트내의 각 카테고리에 대한 동작들을 수행한다. 이러한 동작들은 MPC 클러스터가 k개의 최근접 이웃 사용자 프로파일에 있는 사용자 프로파일에 대한 true 레이블 세트의 커테고리에 해당하는 true 레이블들이 제1 값의 true 레이블인 빈도 또는 다수결을 결정하는 하나 이상의 동작을 포함할 수 있다. 예를 들어, 이것은 도 6-7을 참조하여 위에서 설명된 바와 같이, 하나 이상의 다중 클래스 분류 기술이 사용되는 하나 이상의 구현에서 적어도 하나의 예측 레이블(629)(
Figure pct00017
)을 획득하기 위해 활용되는 제1 기계 학습 모델(620)과 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다.
도 9는 MPC 클러스터에서 추론 성능을 부스팅하기 위한 제2 기계 학습 모델을 준비하고 트레이닝을 수행하기 위한 예시적인 프로세스(900)를 예시하는 흐름도이다. 프로세스(900)의 동작들은 예를 들어 도 1의 MPC 클러스터(130)와 같은 MPC 클러스터에 의해 구현될 수 있으며, 또한, 도 2, 4, 6 및 7을 참조하여 위에서 설명된 동작들 중 하나 이상에 대응할 수 있다. 일부 구현에서, 도 9에 도시된 요소들을 참조하여 본 명세서에 설명된 기능의 일부 또는 전부는 도 1의 MPC 클러스터(130)와 같은 MPC 클러스터의 2개 이상의 컴퓨팅 시스템을 통해 안전하고 분산된 방식으로 제공될 수 있다. 예를 들어, MPC 클러스터의 2개 이상의 컴퓨팅 시스템 각각은 도 9를 참조하여 본 명세서에 설명된 기능의 개별 비밀 조각을 제공할 수 있다. 이 예에서, 2개 이상의 컴퓨팅 시스템은 병렬로 작동하고 비밀 조각들을 교환하여 도 9를 참조하여 본 명세서에 설명된 것과 유사하거나 동등한 동작들을 협력적으로 수행할 수 있다. 도 9를 참조하여 본 명세서에 설명된 기능을 제공함에 있어서, 사용자 프라이버시를 보호할 목적으로 2개 이상의 컴퓨팅 시스템에 의해 추가 동작이 수행될 수 있다는 것을 이해해야 한다. 전술한 구현들 중 하나 이상의 예는, 예를 들어, 도 12 및 본 명세서의 다른 곳을 참조하여 아래에서 더 상세히 설명된다. 프로세스(900)의 동작들은 또한 비-일시적일 수 있는 하나 이상의 컴퓨터 판독 가능 매체에 저장된 명령들로서 구현될 수 있으며, 하나 이상의 데이터 처리 장치에 의한 명령들의 실행은 하나 이상의 데이터 처리 장치로 하여금 프로세스(900)의 동작들을 수행하게 할 수 있다.
MPC 클러스터는 다수의 사용자 프로파일을 사용하여 제1 기계 학습 모델을 트레이닝한다(910). 예를 들어, 제1 기계 학습 모델은 전술한 바와 같이 제1 기계 학습 모델(620)에 대응할 수 있다. 마찬가지로 제1 기계 학습 모델의 트레이닝에 사용되는 다수의 사용자 프로파일은 제1 기계 학습 모델(620)을 트레이닝하는데 사용되는 n개의 사용자 프로파일에 대응할 수 있으며, 이에 대한 true 레이블은 전술한 바와 같이 암호화된 레이블 데이터 세트(626)에 포함될 수 있다.
MPC 클러스터는 다수의 사용자 프로파일을 사용하여 트레이닝된 제1 기계 학습 모델의 성능을 평가한다(920). 이러한 평가가 수반할 수 있는 것에 관련된 추가 세부 사항은 도 10-11을 참조하여 아래에 제공된다.
일부 구현에서, 이러한 평가에서 생성된 데이터는 제1 기계 학습 모델(620)과 같은 제1 기계 학습 모델의 성능이 예를 들어 제2 기계 학습 모델(730)과 같은 제2 기계 학습 모델을 통해 부스팅을 보증하는지 여부를 결정하기 위해 MPC 클러스터 또는 MPC 클러스터와 통신하는 다른 시스템에 의해 활용될 수 있다. 이러한 방식으로 이용될 수 있는 이러한 평가에서 생성된 데이터의 예는 도 10의 프로파일 및 잔차 데이터 세트(1070) 및 도 11의 단계(1112)를 참조하여 아래에서 더 상세히 설명된다.
예를 들어, 일부 상황에서, MPC 클러스터 또는 MPC 클러스터와 통신하는 다른 시스템은 이러한 평가에서 생성된 데이터에 기초하여, 제1 기계 학습 모델의 성능(예를 들어, 예측 정확도)이 하나 이상의 임계값을 충족하고 따라서 부스팅을 보증하지 않는다고 결정할 수 있다. 이러한 상황에서, MPC 클러스터는 이 결정에 기초하여 제2 기계 학습 모델을 트레이닝하고 구현하는 것을 자제할 수 있다. 그러나, 다른 상황에서, MPC 클러스터 또는 MPC 클러스터와 통신하는 다른 시스템은 이러한 평가에서 생성된 데이터에 기초하여, 제1 기계 학습 모델의 성능(예를 들어, 예측 정확도)이 하나 이상의 임계값을 충족하고 따라서 부스팅을 보증한다고 결정할 수 있다. 이러한 상황에서, MPC 클러스터는 이러한 결정에 기초하여, 도 6-7을 참조하여 위에서 설명된 바와 같이, 시스템(600)에서 시스템(700)으로 전환할 때 얻을 수 있는 것과 유사한 기능의 업그레이드를 받을 수 있다. 이러한 기능 업그레이드를 받기 위해, MPC 클러스터는 잔차 값을 사용하여 제1 기계 학습 모델의 성능, 예를 들어 정확도를 향상시키기 위해 제2 기계 학습 모델(730)과 같은 제2 기계 학습 모델을 트레이닝하고 구현하는 것을 진행할 수 있다. 일부 예에서, 이러한 평가에서 생성된 데이터는 추가로 또는 대안적으로 MPC 클러스터와 관련된 하나 이상의 엔티티에 제공될 수 있다. 이러한 일부 예에서, 하나 이상의 엔티티는 제1 기계 학습 모델의 성능이 부스팅을 보증하는지 여부에 관해 자체적으로 결정을 내리고 그에 따라 진행할 수 있다. 다른 구성이 가능하다.
MPC 클러스터는 제1 기계 학습 모델의 성능 평가에서 생성된 데이터를 포함하는 데이터 세트를 사용하여 제2 기계 학습 모델을 트레이닝한(930). 이러한 데이터의 예는 도 10의 프로파일 및 잔차 데이터 세트(1070) 및 도 11의 단계(1112)를 참조하여 아래에서 설명되는 것을 포함할 수 있다.
일부 구현에서, 프로세스(900)는 추가 단계(912-916)을 더 포함하며, 이는 아래에서 더 상세히 설명된다. 이러한 구현에서, 단계(912-916)는 단계(920 및 930) 이전에 수행되지만, 단계(910) 이후에 수행될 수 있다.
도 10은 시스템(1000)에서 제1 기계 학습 모델의 성능을 평가하기 위한 예시적인 프레임워크의 개념도이다. 일부 구현에서, 도 10에 도시된 요소(609-629) 중 하나 이상은 각각 도 6-7을 참조하여 위에서 설명된 요소(609-629) 중 하나 이상과 유사하거나 동등할 수 있다. 일부 예에서, 도 10을 참조하여 본 명세서에 설명된 동작들 중 하나 이상은 도 9의 단계(920)를 참조하여 위에서 설명된 동작들 중 하나 이상에 대응할 수 있다. 시스템(600 및 700)과 매우 유사하게, 시스템(1000)은 랜덤 투영 로직(610) 및 제1 기계 학습 모델(620)을 포함한다.
그러나, 시스템(600 및 700)과 달리, 시스템(1000)은 잔차 계산 로직(1060)을 더 포함한다. 또한, 도 10의 예에서, 사용자 프로파일(609)(Pi)은 제1 기계 학습 모델(620)을 트레이닝하는데 사용된 다수의 사용자 프로파일 중 하나에 대응하는 반면, 도 6 및 7의 예에서, 사용자 프로파일(609)(Pi)은 제1 기계 학습 모델(620)을 트레이닝하는데 사용된 다수의 사용자 프로파일 중 하나에 반드시 대응할 필요는 없고, 대신 단순히 추론 시간에 수신된 추론 요청과 관련된 사용자 프로파일에 대응할 수 있다. 제1 기계 학습 모델(620)을 트레이닝하는데 사용된 전술한 다수의 사용자 프로파일은 일부 예에서 도 9의 단계(910)를 참조하여 위에서 설명된 다수의 사용자 프로파일에 대응할 수 있다. 잔차 계산 로직(1060)은 적어도 하나의 예측 레이블(629) 및 적어도 하나의 true 레이블(1059)(Li)에 기초하여 적어도 하나의 예측된 라벨(629)에서의 오차의 양을 나타내는 잔차 값(1069)(Residuei)을 생성하는데 사용될 수 있다. 적어도 하나의 예측 레이블(629)(
Figure pct00018
) 및 적어도 하나의 true 레이블(1059)((Li) 모두가 암호화될 수 있다. 예를 들어, 잔차 계산 로직(1060)은 비밀 조각들을 사용하여 적어도 하나의 예측 레이블(629)과 적어도 하나의 true 레이블(1059) 사이의 값의 차이를 계산할 수 있다. 일부 구현에서, 잔차 값(1069)은 전술한 값의 차이에 대응할 수 있다.
잔차 값(1069)은 변환된 사용자 프로파일(619)과 관련하여, 예를 들어 프로파일 및 잔차 데이터 세트(1070)의 일부로서 메모리에 저장될 수 있다. 일부 예에서, 프로파일 및 잔차 데이터 세트(1070)에 포함된 데이터는 도 9의 단계(930)를 참조하여 위에서 설명된 데이터 및 도 11의 단계(1112)를 참조하여 아래 설명된 데이터 중 하나 또는 둘 모두에 대응할 수 있다. 일부 구현에서, 잔차 값(1069)은 사용자 프라이버시 및 데이터 보안을 보호하기 위해 비밀 조각의 형태이다.
일부 구현에서, 도 10에 도시된 바와 같은 시스템(1000)은 도 1의 MPC 클러스터(130)와 같은 MPC 클러스터에 의해 구현되는 시스템을 나타낼 수 있다. 이와 같이, 이러한 구현들 중 적어도 일부에서, 도 10에 도시된 요소들을 참조하여 본 명세서에 설명된 기능의 일부 또는 전부가 MPC 클러스터의 두 개 이상의 컴퓨팅 시스템을 통해 안전하고 분산된 방식으로 제공될 수 있음을 이해해야 한다. 예를 들어, MPC 클러스터의 2개 이상의 컴퓨팅 시스템 각각은 도 10을 참조하여 본 명세서에 설명된 기능의 개별 조각을 제공할 수 있다. 이 예에서, 둘 이상의 컴퓨팅 시스템은 병렬로 작동하고 비밀 조각들을 교환하여 도 10을 참조하여 본 명세서에 설명된 것과 유사하거나 동등한 동작들을 협력적으로 수행할 수 있다. 전술한 구현들 중 적어도 일부에서, 사용자 프로파일(609)은 사용자 프로파일의 비밀 조각을 나타낼 수 있다. 이러한 구현에서, 도 10을 참조하여 본 명세서에 설명된 데이터 또는 수량의 다른 부분 중 하나 이상은 또한 그의 비밀 조각을 나타낼 수 있다. 도 10을 참조하여 본 명세서에 설명된 기능을 제공함에 있어서, 사용자 프라이버시를 보호할 목적으로 2개 이상의 컴퓨팅 시스템에 의해 추가 동작이 수행될 수 있다는 것을 이해해야 한다. 전술한 구현들 중 하나 이상의 예는, 예를 들어, 도 12 및 본 명세서의 다른 곳을 참조하여 아래에서 더 상세히 설명된다.
도 11은 MPC 클러스터에서 제1 기계 학습 모델의 성능을 평가하기 위한 예시적인 프로세스(1100)를 도시하는 흐름도이다. 프로세스(1100)의 동작들은 예를 들어, 도 1의 MPC 클러스터(130)와 같은 MPC 클러스터에 의해 구현될 수 있고, 또한 도 9-10을 참조하여 위에서 설명된 동작들 중 하나 이상에 대응할 수 있다. 일부 예에서, 도 11을 참조하여 본 명세서에 설명된 동작들 중 하나 이상은 도 9의 단계(920)를 참조하여 위에서 설명된 동작들 중 하나 이상에 대응할 수 있다. 일부 구현에서, 도 11에 도시된 요소들을 참조하여 본 명세서에 설명된 기능의 일부 또는 전부는 도 1의 MPC 클러스터(130)와 같은 MPC 클러스터의 2개 이상의 컴퓨팅 시스템을 통해 안전하고 분산된 방식으로 제공될 수 있다. 예를 들어, MPC 클러스터의 2개 이상의 컴퓨팅 시스템 각각은 도 11을 참조하여 본 명세서에 설명된 기능의 개별 조각을 제공할 수 있다. 이 예에서, 둘 이상의 컴퓨팅 시스템은 병렬로 작동하고 비밀 조각들을 교환하여 도 11을 참조하여 본 명세서에 설명된 것과 유사하거나 동등한 동작들을 협력적으로 수행할 수 있다. 도 11을 참조하여 본 명세서에 설명된 기능을 제공함에 있어서, 사용자 프라이버시를 보호할 목적으로 2개 이상의 컴퓨팅 시스템에 의해 추가 동작이 수행될 수 있다는 것을 이해해야 한다. 전술한 구현들 중 하나 이상의 예는, 예를 들어, 도 12 및 본 명세서의 다른 곳을 참조하여 아래에서 더 상세히 설명된다. 프로세스(1100)의 동작들은 또한 비-일시적일 수 있는 하나 이상의 컴퓨터 판독 가능 매체에 저장된 명령들서 구현될 수 있으며, 하나 이상의 데이터 처리 장치에 의한 명령들의 실행은 하나 이상의 데이터 처리 장치로 하여금 프로세스(1100)의 동작들을 수행하게 할 수 있다.
MPC 클러스터는 i번째 사용자 프로파일과 하나 이상의 대응하는 true 레이블([Pi,Li])을 선택하고, 여기서 i는 처음에 1(1102-1104)의 값으로 설정되고 i가 n(1114-1116)이 될 때까지 재귀를 통해 증가하며, n은 제1 기계 학습 모델을 트레이닝하는데 사용된 사용자 프로파일의 총 수이다. 다시 말해서, 프로세스(1100)는 제1 기계 학습 모델을 트레이닝하는데 사용된 n개의 사용자 프로파일 각각에 대해 후술하는 바와 같이 단계(1106-1112)를 수행하는 것을 포함한다.
일부 구현에서, i번째 사용자 프로파일은 사용자 프로파일의 비밀 조각을 나타낼 수 있다. 이러한 구현에서, 도 11을 참조하여 본 명세서에 설명된 데이터 또는 수량의 하나 이상은 또한 그의 조작을 나타낼 수 있다
MPC 클러스터는 i번째 사용자 프로파일의 변환된 버전(Pi')을 획득하기 위해 i번째 사용자 프로파일(Pi)에 랜덤 투영을 적용한다(1106). 예를 들어, 이것은 도 10을 참조하여 전술한 바와 같이, 변환된 사용자 프로파일(619)(Pi')을 획득하기 위해 사용자 프로파일(609)(Pi)에 랜덤 투영 변환을 적용하기 위해 사용되는 랜덤 투영 로직(610)과 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다.
MPC 클러스터는 제1 기계 학습 모델에 대한 입력으로 i번째 사용자 프로파일의 변환된 버전(Pi')을 제공하여 출력으로서 i번째 사용자 프로파일의 변환된 버전(Pi')에 대한 적어도 하나의 예측 레이블(
Figure pct00019
)을 획득한다(1108). 예를 들어, 이것은 도 10을 참조하여 전술한 바와 같이, 입력으로서 변환된 사용자 프로파일(619)(Pi')을 수신하고 이에 대한 응답으로 적어도 하나의 예측 레이블(
Figure pct00020
)을 생성하는 제1 기계 학습 모델(620)과 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다.
MPC 클러스터는 i번째 사용자 프로파일(Pi) 및 적어도 하나의 예측 레이블(
Figure pct00021
)에 대한 적어도 하나의 true 레이블(Li)에 적어도 부분적으로 기초하여 잔차 값(Residuei)을 계산한다(1110). 예를 들어, 이것은 도 10을 참조하여 전술한 바와 같이, 적어도 하나의 true 레이블(1059)(Li) 및 적어도 하나의 예측 레이블(629)(
Figure pct00022
)에 적어도 부분적으로 기초하여 잔차 값(1069)(Residuei)을 계산하기 위해 사용되는 잔차 계산 로직(1060)과 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다.
MPC 클러스터는 i번째 사용자 프로파일의 변환된 버전(Pi')과 관련하여 계산된 잔차 값(Residuei)을 저장한다(1112). 예를 들어, 이것은 도 10을 참조하여 전술한 바와 같이, 예를 들어 변환된 사용자 프로파일(619)(Pi')과 관련하여 프로파일 및 잔차 데이터 세트(1070)의 일부로서 메모리에 저장되는 잔차 값(1069)(Residuei)과 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 해당할 수 있다. 일부 예에서, 이 데이터는 도 9의 단계(930)를 참조하여 위에서 설명된 바와 같은 데이터에 대응할 수 있다. 이와 같이, 이러한 예에서, 이 단계에서 저장된 데이터의 일부 또는 전부는 제2 기계 학습 모델(730)과 같은 제2 기계 학습 모델을 트레이닝하기 위한 데이터로서 활용될 수 있다.
단계(1108-1110)를 다시 한번 참조하면, 제1 기계 학습 모델이 회귀 기술을 사용하도록 구성된 적어도 일부 구현에 대해, MPC 클러스터가 단계(1108)에서 획득하는 적어도 하나의 예측 레이블(
Figure pct00023
)은 정수를 나타내는 단일 예측 레이블에 대응할 수 있다. 이러한 구현에서, MPC 클러스터가 단계(1110)에서 계산하는 잔차 값(Residuei)은 적어도 하나의 true 레이블(Li)과 적어도 하나의 예측 레이블(
Figure pct00024
) 사이의 값의 차이를 나타내는 정수에 대응할 수 있다. 전술한 구현들 중 적어도 일부에서, 단계(1108)에서, 제1 기계 학습 모델은 i번째 사용자 프로파일의 변환된 버전(Pi')과 가장 유사한 것으로 간주되는 k개의 최근접 이웃 사용자 프로파일을 식별하고, k개의 최근접 사용자 프로파일 각각에 대한 적어도 하나의 true 레이블을 식별하고, k개의 최근접 사용자 프로파일에 대한 true 레이블들의 합을 계산하고, 이 합을 적어도 하나의 예측 레이블(
Figure pct00025
)로서 사용한다. 위에서 언급한 바와 같이, 이 단계에서 결정된 k개의 최근접 사용자 프로파일에 대한 true 레이블들의 이러한 합은 k의 계수로 스케일링된 k개의 최근접 사용자 프로파일에 대한 true 레이블들의 평균과 사실상 동일하다. 일부 예에서, 이 합은 분할 동작이 수행될 필요가 없도록 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 평균 대신에 적어도 하나의 예측 레이블(
Figure pct00026
)로서 활용될 수 있다. 적어도 하나의 예측 레이블(
Figure pct00027
)이 k의 계수로 스케일링된 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 평균과 사실상 동일하다고 가정하면, 제1 기계 학습 모델이 회귀 기술을 사용하도록 구성된 적어도 일부 구현의 경우, 단계(1110)에서 MPC 클러스터에 의해 수행되는 계산은 다음과 같이 주어진다.
Residuei = kLi -
Figure pct00028
유사하게, 제1 기계 학습 모델이 이진 분류 기술을 사용하도록 구성되는 적어도 일부 구현의 경우, MPC 클러스터가 단계(1108)에서 획득하는 적어도 하나의 예측 레이블(
Figure pct00029
)은 예를 들어 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합에 적어도 부분적으로 기초하여 결정된 정수를 나타내는 단일 예측 레이블에 대응할 수 있다. 제1 기계 학습 모델이 회귀 기술을 사용하도록 구성된 구현과 관련하여 위에서 언급한 바와같이, k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 이러한 합은 k의 계수로 스케일링된 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 평균과 사실상 동일하다.
그러나, 제1 기계 학습 모델이 회귀 기술을 사용하도록 구성된 구현과 달리, 제1 기계 학습 모델이 이진 분류 기술을 사용하도록 구성된 구현에서, k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블 각각은 0 또는 1의 이진 값일 수 있으므로, 전술한 평균은 0과 1 사이의 정수 값(예를 들어, 0.3, 0.8 등)일 수 있다. 이진 분류 기술이 사용되는 구현에서 MPC 클러스터는 단계(1108)에서 적어도 하나의 예측 레이블(
Figure pct00030
)로서 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합(sum_of_labels)을 계산하고 사용하고, 수학적으로 실행 가능한 단계(1110)에서 잔차 값(Residuei)을 얻기 위해 회귀 기술이 사용되는 구현(Residuei = kLi -
Figure pct00031
)을 참조하여 위에서 설명한 공식을 사용하지만, 이러한 잔차 값(Residuei)은 예를 들어 나중에 제1 기계 학습 모델을 부스팅하는 것이 보증되는지 여부를 결정하는데 사용될 때 또는 제2 기계 학습 모델(730)과 같은 제2 기계 학습 모델을 트레이닝하는데 사용될 때 잠재적으로 프라이버시 문제를 제기할 수 있다. 보다 구체적으로, k개의 최근접 이웃 사용자 프로파일에 대한 각각의 true 레이블들은 0 또는 1의 이진 값일 수 있기 때문에, 이진 분류 기술이 사용되는 구현에서, 이러한 잔차 값 (Residuei)의 부호는 잠재적으로 적어도 하나의 true 레이블(Li)의 값을 나타낼 수 있으며, 따라서 단계(1112)에서 또는 그 이후에 일부 용량의 잔차 값(Residuei)을 나타내는 데이터를 처리할 수 있는 하나 이상의 시스템 및/또는 엔티티에 의해 잠재적으로 추론될 수 있다.
예를 들어, 이진 분류 기술이 적용되고 Li=1, k=15 및
Figure pct00032
=12인 제1 예를 고려한다. 이 제1 예에서, 적어도 하나의 예측 레이블(
Figure pct00033
)은 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합(sum_of_labels)에 해당하며, 이는 k의 계수로 스케일링된 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 평균과 실질적으로 동일하며, 여기서 앞서 언급한 평균은 0.8의 정수가 아닌 값이다. 위에서 설명한 것과 동일한 공식(Residuei = kLi-
Figure pct00034
)이 이 제1 예에서 잔차 값(Residuei)을 계산하기 위해, 예를 들어 단계(1110)에서 사용된다면, 이 제1 예에서 잔차 값(Residuei)은 Residuei = (15)(1)-12=3으로 주어질 것이다. 따라서 이 제1 예에서 잔차 값(Residuei)은 (양수) 3의 값과 같을 것이다. 이제 이진 분류 기술이 사용되고 Li=0인 이지만 k 및
Figure pct00035
가 다시 각각 15 및 12의 값과 동일한 제2 예를 고려한다. 다시 한번, 위에서 설명한 것과 동일한 공식(Residuei = kLi-
Figure pct00036
)이 이 제2 예에서 잔차 값(Residuei)을 계산하기 위해, 예를 들어 단계(1110)에서 활용된다면, 이 제2 예에서 잔류 값(Residuei)은 Residuei = (15)(0)-12 = -12로 제공된다. 따라서 이 제1 예에서 잔차 값(Residuei)은 -12 값과 같다. 실제로, 상술한 제1 및 제2 예의 경우, 양의 잔차 값(Residuei)은 Li=1과 상관될 수 있는 반면, 음의 잔차 값(Residuei)은 Li=0과 상관될 수 있다.
Residuei에서 Li를 추론하는 것이 가능한 이유를 이해하려면, true 레이블들이 0인 제1 기계 학습 모델을 트레이닝하는데 사용되는 사용자 프로파일의 잔차가
Figure pct00037
표기법을 사용하여 정규 분포를 만족한다고 가정하는 예를 고려한다. 여기서 μ0 및 σ0는 0(zero)과 같고 제1 기계 학습을 트레이닝하는데 사용된 사용자 프로파일과 관련된 true 레이블들에 대한 예측 오차(예를 들어, 잔차 값)의 정규 분포의 평균 및 표준 편차이고, 레이블이 1인 트레이닝 예제의 잔차는
Figure pct00038
를 충족한다고 가정하고, 그리고 여기서 μ1 및 σ1은 1(one)이고 각각 제 기계 학습 모델을 트레이닝하는데 사용된 사용자 프로파일과 관련된 true 레이블들에 대한 예측 오차의 정규 분포의 평균 및 표준 편차이다. 이러한 가정하에서, μ0 < 0, μ1 > 0이고 σ0 = σ1이라는 보장은 없다.
전술한 내용에 비추어, 아래에서 설명되는 바와 같이, 일부 구현에서, 이진 분류 기술이 사용되는 구현을 위해 단계(1108-1110)와 관련된 하나 이상의 동작을 수행하기 위해 다른 접근이 취해질 수 있다. 일부 구현에서, 트레이닝 예제들의 두 클래스에 대한 잔차가 동일한 정규 분포를 갖도록 하기 위해, MPC 클러스터는 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합(sum_of_labels)에 변환(f)을 적용하여 잔차가 Li
Figure pct00039
에 기초하여 계산된 잔자 값은 Li를 예측하는데 사용될 수 없다. 변환(f)은 초기 예측 레이블에 적용될 때(예를 들어, 이진 분류의 경우 true 레이블의 합, 다중 클래스 분류의 경우 true 레이블의 과반수 투표 등), 제1 기계 학습 모델의 예측에 존재할 수 있는 편향(bias)을 제거하는 역할을 할 수 있다. 이러한 목표를 달성하려면 변환(f)가 다음 속성을 충족해야 한다.
(i) f(μ0)=0
(ii) f(μ1)=1
(iii) σ0×f'(μ0)=σ1×f'(μ1), 여기서 f'는 f의 도함수이다.
이러한 구현에 사용될 수 있는 위의 속성을 갖는 변환의 한 예는 f(x)=a2x2 + a1x + a0 형태의 2차 다항식 변환이며, 여기서 f'(x) = 2a2x + a1이다. 일부 예에서, MPC 클러스터는 다음과 같이 세 가지 제약 조건으로부터 세 가지 선형 방정식에 기초하여 계수{a2,a1,a0}의 값을 결정론적으로 찾을 수 있다.
Figure pct00040
라고 하자.
Figure pct00041
이 예에서 MPC 클러스터는 {a2,a1,a0} = D×{a2',a1',a0'}로 계수{a2,a1,a0}를계산할 수 있다. MPC 클러스터는 예를 들어 비밀 조각들에 대해 덧셈 및 곱셈 연산을 사용하여 {a2',a1',a0'} 및 D를 계산할 수 있다. 변환 f(x) = a2x2 + a1x + a0는 또한
Figure pct00042
과 같이 거울 대칭이다.
전술한 계수 및 이에 의존하는 다른 값을 계산하기 위해, MPC 클러스터는 먼저 각각 0, μ0 및 σ0인 true 레이블들에 대한 예측 오차(예를 들어, 잔차 값)의 확률 분포의 평균 및 표준 편차 뿐만 아니라 각각 1, μ1 및 σ1인 true 레이블들에 대한 예측 오차((예를 들어, 잔차 값)의 확률 분포의 평균 및 표준 편차를 추정할 수 있다. 일부 예에서, 0인 true 레이블들에 대한 예측 오차의 확률 분포의 분산(σ0 2)은 표준 편차(σ0)에 추가로 또는 표준 편차(σ0) 대신 결정될 수 있으며, 1인 true 레이블들에 대한 예측 오차의 확률 분포의 분산(σ1 2)은 표준 편차(σ1)에 추가로 또는 표준 편차(σ1) 대신 결정될 수 있다.
일부 경우에, 예측 오차의 주어진 확률 분포는 정규 분포에 대응할 수 있고, 다른 경우에 예측 오차의 주어진 확률 분포는 베르누이(Bernoulli) 분포, 균일 분포, 이항 분포, 초기하(hypergeometric) 분포, 기하 분포, 지수 분포 등과 같은 정규 분포 이외의 확률 분포에 해당할 수 있다. 이러한 다른 경우에서, 추정되는 분포 파라미터는 일부 예에서 평균, 표준 편차 및 분산 이외의 파라미터, 예를 들어 예측 오차의 주어진 확률 분포의 특성에 특정된 하나 이상의 파라미터를 포함할 수 있다. 예를 들어, 균일 분포에 대응하는 예측 오차의 주어진 확률 분포에 대해 추정되는 분포 파라미터는 최소값 및 최대값 파라미터(a 및 b)를 포함할 수 있는 반면, 지수 분포에 대응하는 예측 오차의 주어진 확률 분포에 대해 추정되는 분포 파라미터는 적어도 하나의 비율(rate) 파라미터(λ)를 포함할 수 있다. 일부 구현에서, 도 11의 프로세스(1110)와 관련하여 수행되는 하나 이상의 동작과 유사한 하나 이상의 동작이 수행되어, 제1 기계 학습 모델의 예측 오차를 나타내는 데이터가 이러한 분포 파라미터를 추정하기 위해 획득되고 활용될 수 있다. 전술한 구현들 중 적어도 일부에서, 제1 기계 학습 모델의 예측 오차를 나타내는 데이터가 획득되고 활용되어, (i) 여러 상이한 유형의 확률 분포(예를 들어, 정규 분포, 베르누이 분포, 균일 분포, 이항 분포, 초기하 분포, 기하 분포, 지수 분포 등)로부터, 데이터에 의해 표시된 예측 오차의 주어진 서브세트의 확률 분포의 모양에 가장 근접하게 대응하는 특정 유형의 확률 분포를 식별하고, 그리고 (ii) 식별된 특정 유형의 확률 분포에 따라 데이터에 의해 표시된 예측 오차의 주어진 서브세트의 확률 분포의 하나 이상의 파라미터를 추정할 수 있다. 다른 구성이 가능하다.
추정된 분포 파라미터가 평균 및 표준 편차를 포함하는 예를 다시 한번 참조하면, 이 예에서 0인 true 레이블들에 대한 이러한 분포 파라미터를 추정하기 위해, MPC 클러스터는 다음을 계산할 수 있다.
Figure pct00043
여기서,
Figure pct00044
일부 예에서, MPC 클러스터는 예를 들어, 분산(σ0 2)의 제곱근을 계산함으로써 분산(σ0 2)에 기초하여 표준 편차(σ0)를 계산한다. 유사하게, 1인 true 레이블들에 대한 이러한 분포 파라미터를 추정하기 위해 MPC 클러스터는 다음을 계산할 수 있다.
Figure pct00045
여기서,
Figure pct00046
일부 예에서, MPC 클러스터는 예를 들어 분산(σ1 2)의 제곱근을 계산함으로써 분산(σ1 2)에 기초하여 표준 편차(σ1)를 계산한다.
이러한 분포 파라미터가 추정되면, 계수{a2,a1,a0}가 계산되고 저장되어 나중에 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합((sum_of_labels)에 해당 변환(f)을 적용하는데 사용될 수 있다. 일부 예에서, 이러한 계수들은 제1 기계 학습 모델을 구성하는데 활용되어, 앞으로 제1 기계 학습 모델은 입력에 응답하는 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합에 해당 변환(f)을 적용한다.
이진 분류와 매우 유사하게 다중 클래스 분류의 경우, k개의 최근접 이웃 사용자 프로파일에 있는 사용자 프로파일에 대한 각 벡터 또는 true 레이블 세트의 각 true 레이블은 0 또는 1의 이진 값일 수 있다. 이러한 이유로, 이진 분류와 관련하여 위에서 설명한 것과 유사한 접근 방식이 Li 및 (
Figure pct00047
)에 기초하여 계산된 잔차 값이 Li를 예측하는데 사용될 수 없도록 다중 클래스 분류 기술이 구현된 경우에도 취해질 수 있다. 그러나, 다중 클래스 분류의 경우에는, 카테고리별로 각각의 기능 또는 변환(f)을 정의하여 활용할 수 있다. 예를 들어, 각 사용자 프로파일에 대한 각 벡터 또는 true 레이블 세트가 w개의 서로 다른 카테고리에 각각 대응하는 w개의 서로 다른 true 레이블을 포함하는 경우, w개의 서로 다른 변환(f)이 결정되고 활용될 수 있다. 또한, true 레이블의 합을 계산하는 대신 다중 클래스 분류의 경우 각 카테고리별로 빈도 값을 계산한다. 이러한 빈도 값을 계산하는 방법에 대한 추가 세부 사항은 바로 아래뿐만 아니라 위에 제공된다. 다른 구성도 가능하다.
임의의 선택된 j번째 레이블에 대해, MPC 클러스터는 lj가 트레이닝 예제에 대한 트레이닝 레이블인지 여부에 기초하여 트레이닝 예제들을 두 그룹으로 나룰 수(partition) 있다. lj가 트레이닝 레이블인 트레이닝 예제 그룹의 경우, MPC 클러스터는 빈도(j)가 정규 분포에 있다고 가정하고 평균(μ1) 및 분산(σ1)을 계산할 수 있다. 반면에, lj가 트레이닝 레이블이 아닌 트레이닝 예제 그룹의 경우, MPC 클러스터는 빈도(j)가 정규 분포에 있다고 가정하고 평균(μ0) 및 분산(σ0)을 계산할 수 있다.
이진 분류와 유사하게, 다중 클래스 분류의 경우 k-NN 모델의 예측은 편향될 가능성이 가장 높다(예를 들어, 0이어야 하는 경우 μ0 > 0, k이어야 하는 경우 μ1 < k). 게다가, σ0 == σ1이라는 보장은 없다. 이와 같이, 이진 분류와 유사하게, 다중 클래스 분류의 경우 MPC 클러스터는 변환 후 두 그룹에 대한 Residuej가 실질적으로 동일한 정규 분포를 갖도록 상기 예측된 빈도(j)에 변환(f)을 적용한다. 이러한 목표를 달성하려면 변환(f)이 다음 속성을 충족해야 한다.
f(μ0) = 0
f(μ1) = k
σ0×f'(μ0) = σ1×f'(μ1)
여기서 f'는 f의 도함수이다.
위의 세 가지 속성은 이진 분류 사례의 해당 속성과 매우 유사하다. 다중 클래스 분류의 경우, 사용할 수 있는 위의 속성을 갖는 변환의 한 예는 f(x)=a2x2 + a1x + a0 형태의 2차 다항식 변환이다. 여기서 f'(x) =2a2x + a1이다. 일부 예에서, MPC 클러스터는 다음과 같이 세 가지 제약 조건의 3개의 선형 방정식에 기초하여 계수 {a2,a1,a0}의 값을 결정론적으로 계산할 수 있다.
Figure pct00048
라고 하자.
a2' = σ0 - σ1
a1' = 2(σ1μ1 - σ0μ0)
a0' = μ00σ0 + μ0σ1 - 2μ1σ1)
이진 분류 및 다중 클래스 분류에 대한 변환은 거의 동일하며, 유일한 차이점은 k-NN 모델을 사용한 다중 클래스 분류에서 D 값이 일부 구현에서 k의 계수만큼 확대될 수 있다는 점이다.
도 9를 다시 한번 참조하면, 일부 구현에서, 단계(912-916) 중 하나 이상은 Li 및 (
Figure pct00049
)에 기초하여 계산된 잔차 값들이 Li를 예측하는데 사용될 수 없도록 MPC 클러스터에 의해 사용될 수 있는 적어도 하나의 함수 또는 변환을 정의하기 위한 접근 방식으로 위에서 설명된 동작 중 하나 이상에 대응할 수 있다. 특히, 단계(912-916)는 하나 이상의 이진 및/또는 다중 클래스 분류 기술이 사용되는 구현을 위해 수행될 수 있다. 위에서 언급한 바와 같이, 단계(912-916)는 단계(920 및 930) 이전에 수행되고, 단계(910) 이후에 수행될 수 있다.
MPC 클러스터는 다수의 사용자 프로파일에 대한 다수의 true 레이블에 기초하여 분포 파라미터 세트를 추정한다(912). 예를 들어, 이것은 단계(910)에서 사용된 동일한 사용자 프로파일들과 관련된 true 레이블들에 기초하여 위에서 설명된 바와 같이, 파라미터(μ0, σ0 2, σ0, μ1, σ1 2, 및 σ1) 중 하나 이상을 계산하는 MPC 클러스터와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다.
MPC 클러스터는 추정된 분포 파라미터 세트에 기초하여 함수를 도출한다(914). 예를 들어, 이것은 함수를 효과적으로 정의하는 {a2,a1,a0}와 같은 파라미터 또는 계수를 계산하는 MPC 클러스터와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 해당할 수 있다. 이와 같이, 일부 구현에서, 단계(914)에서 함수를 도출하기 위해, MPC 클러스터는 예를 들어, {a2,a1,a0}과 같은 함의 파라미터들의 세트를 도출한다.
MPC 클러스터는 사용자 프로파일이 입력으로 주어지면 초기 예측 레이블을 생성하고 도출된 함수를 초기 예측 레이블에 적용하여 출력으로 사용자 프로파일에 대한 예측 레이블을 생성하도록 제1 기계 학습 모델을 구성한다(916). 예를 들어, 이것은 제1 기계 학습 모델을 구성하는 MPC 클러스터와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있으므로, 앞으로 제1 기계 학습 모델은 입력에 응답하는 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합(이진 분류의 경우)에 해당 변환(f)을 적용한다. 다중 클래스 분류의 경우, 변환(f)은 MPC 클러스터가 w개의 서로 다른 카테고리에 대응하는 벡터 또는 세트의 w개의 서로 다른 값 중 각각에 적용하도록 제1 기계 학습 모델을 구성하는 w개의 서로 다른 기능 중 하나를 나타낼 수 있다. 전술한 바와 같이, 이들 w개의 상이한 값들 각각은 빈도 값에 대응할 수 있다.
단계(912-916)가 수행되고 제1 기계 학습 모델이 이러한 방식으로 구성되면, 단계(920)에서 생성되고 예를 들어 단계(930)에서 후속적으로 활용되는 데이터는 true 레이블(Li)을 예측하는데 사용되지 않을 수 있다.
다시 도 8을 참조하면, 일부 구현에서, 프로세스(800)는 도 9 내지 도 11을 참조하여 위에서 설명된 동작들 중 하나 이상에 대응하는 하나 이상의 단계를 포함할 수 있다.
일부 구현에서, 프로세스(800)는 MPC 클러스터가 제1 기계 학습 모델의 성능을 평가하는 하나 이상의 동작을 더 포함한다. 예를 들어, 이것은 도 9를 참조하여 앞서 설명된 바와 같이 단계(920)를 수행하는 MPC 클러스터와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다. 이러한 구현에서 제1 기계 학습 모델의 성능을 평가하기 위해, 다중 사용자 프로파일 각각에 대해, MPC 클러스터는 (i) 사용자 프로파일, (ii) 제1 기계 학습 모델, 및 (iii) 다수의 사용자 프로파일에 대한 다수의 true 레이블 중 하나 이상에 적어도 부분적으로 기초하여 사용자 프로파일에 대한 예측 레이블을 결정하고, 사용자 프로파일에 대해 결정된 예측 레이블 및 다수의 true 레이블에 포함된 사용자 프로파일에 대한 true 레이블에 적어도 부분적으로 기초하여 예측 레이블의 예측 오차를 나타내는 사용자 프로파일에 대한 잔차 값을 결정한다. 예를 들어, 이것은 도 11을 참조하여 위에서 설명된 바와 같이 단계(1108-1106)를 수행하는 MPC 클러스터와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다. 또한, 이러한 구현에서, 프로세스(800)는 MPC 클러스터가 제1 기계 학습 모델의 성능을 평가할 때 다수의 사용자 프로파일에 대해 결정된 잔차 값을 나타내는 데이터를 사용하여 제2 기계 학습 모델을 트레이닝하는 하나 이상의 동작을 더 포함한다. 예를 들어, 이것은 도 9를 참조하여 위에서 설명된 바와 같이 단계(930)를 수행하는 MPC 클러스터와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다.
전술한 구현들 중 적어도 일부에서, 사용자 프로파일에 대한 잔차 값은 사용자 프로파일에 대해 결정된 예측 레이블과 사용자 프로파일에 대한 true 레이블 사이의 값의 차이를 나타낸다. 예를 들어, 이것은 회귀 기술이 사용되는 예의 경우일 수 있다.
앞서 언급한 구현들 중 적어도 일부에서, MPC 클러스터가 제1 기계 학습 모델의 성능을 평가하기 전에, 프로세스(800)는 MPC 클러스터가 다수의 true 레이블에 적어도 부분적으로 기초하여 함수를 도출(유도)하고, 입력으로 사용자 프로파일이 주어지면 함수를 사용하여 사용자 프로파일에 대한 예측 레이블을 출력으로 생성하도록 제1 기계 학습 모델을 구성하는 하나 이상의 동작을 더 포함한다. 예를 들어, 이것은 도 9를 참조하여 위에서 설명된 바와 같이 단계(914-916)를 수행하는 MPC 클러스터와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다. 이와 같이, 일부 구현에서, 이 단계에서 함수를 도출하기 위해, MPC 클러스터는 예를 들어 {a2,a1,a0}와 같은 함수의 파라미터 세트를 도출한다.
전술한 구현들 중 적어도 일부에서, 프로세스(800)는 MPC 클러스터가 다수의 true 레이블에 적어도 부분적으로 기초하여 분포 파라미터의 세트를 추정하는 하나 이상의 동작들을 더 포함한다. 이러한 구현에서, 다수의 true 레이블에 적어도 부분적으로 기초하여 함수를 도출하기 위해, MPC 클러스터는 추정된 분포 파라미터 세트에 적어도 부분적으로 기초하여 함수를 도출한다. 예를 들어, 이것은 도 9를 참조하여 위에서 설명된 바와 같이 단계(912-914)를 수행하는 MPC 클러스터와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다. 이와 같이, 전술한 분포 파라미터 세트는 다수의 true 레이블에서 제1 값의 true 레이블에 대한 예측 오차 확률 분포의 하나 이상의 파라미터, 예를 들어 다수의 true 레이블에서 제1 값의 true 레이블에 대한 예측 오차의 정규 분포의 평균(μ0) 및 분산(σ0), 및 다수의 true 레이블에서 제2 값의 true 레이블에 대한 예측 오차 확률 분포의 하나 이상의 파라미터, 예를 들어 다수의 true 레이블에서 상이한 제1 값의 true 레이블에 대한 예측 오차의 정규 분포의 평균(μ1) 및 분산(σ1)을 포함할 수 있다. 전술한 바와 같이, 일부 예에서, 전술한 분포 파라미터 세트는 다른 유형의 파라미터를 포함할 수 있다. 게다가, 전술한 구현들 중 적어도 일부에서, 함수는 2차 다항식 함수, 예를 들어 f(x)=a2x2 + a1x + a0이고, 여기서 f'(x)=2a2x + a1이다.
전술한 구현들 중 적어도 일부에서, 입력으로서 사용자 프로파일이 주어지면 함수를 사용하여 사용자 프로파일에 대한 예측 레이블을 출력으로 생성하도록 제1 기계 학습 모델을 구성하기 위해, MPC 클러스터는 입력으로 사용자 프로파일이 주어지면 (i) 사용자 프로파일에 대한 초기 예측 레이블을 생성하고, (ii) 사용자 프로파일에 대한 초기 예측 레이블에 함수를 적용하여 사용자 프로파일에 대한 예측 레이블을 출력으로 생성하도록 제1 기계 학습 모델을 구성한다. 예를 들어, 이진 분류 기술이 사용되는 예의 경우, 이것은 입력으로 사용자 프로파일이 주어지면 MPC 클러스터가 (i) k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합(sum_of_labels)을 계산하고, (ii) 함수(변환 f)를 사용자 프로파일에 대한 초기 예측 레이블에 적용하여 출력으로 사용자 프로파일에 대한 예측 레이블(
Figure pct00050
= f(sum_of_labels))을 생성하는 하나 이상의 동작에 대응할 수 있다. 다중 클래스 분류 기술이 사용되는 경우에도 유사한 동작이 수행될 수 있다. 일부 구현에서, 사용자 프로파일에 대한 초기 예측 레이블에 함수를 적용하기 위해, MPC 클러스터는 도출된 파라미터 세트, 예를 들어 {a2,a1,a0}에 기초하여 정의된 대로 함수를 적용한다. 일부 예에서, k개의 최근접 이웃 사용자 프로파일 각각에 대한 true 레이블에 적어도 부분적으로 기초하여 예측 레이블을 결정하기 위해, MPC 클러스터는 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합을 결정한다. 예를 들어, 이것은 회귀 또는 이진 분류 기술이 사용되는 구현의 경우일 수 있다. 앞서 언급된 예들 중 일부에서, 특정 사용자 프로파일에 대한 예측 레이블은 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합에 해당할 수 있다. 예를 들어, 이것은 회귀 분류 기술이 사용되는 구현의 경우일 수 있다(
Figure pct00051
= sum_of_labels). 다른 이러한 예에서, k개의 최근접 사용자 프로파일 각각에 대한 true 레이블에 적어도 부분적으로 기초하여 예측 레이블을 결정하기 위해, MPC 클러스터는 k개의 최근접 사용자 프로파일에 대한 true 레이블의 합에 함수를 적용하여 특정 사용자 프로파일에 대한 예측 레이블을 생성한다. 예를 들어, 이것은 이진 분류 기술이 사용되는 구현의 경우일 수 있다(
Figure pct00052
= f(sum_of_labels)).
위에서 언급한 바와 같이, 앞서 언급된 구현들 중 일부에서, k개의 최근접 이웃 사용자 프로파일 각각에 대한 true 레이블에 적어도 부분적으로 기초하여 예측 레이블을 결정하기 위해, MPC 클러스터는 카테고리 세트에 각각 대응하는 k개의 최근접 이웃 사용자 프로파일 각각에 대한 true 레이블 세트에 적어도 부분적으로 기초하여 예측 레이블 세트를 결정하고, 예측 레이블 세트를 결정하기 위해 MPC 클러스터는 해당 세트의 각 카테고리에 대해 동작을 수행한다. 이러한 동작은 MPC 클러스터가 k개의 최근접 이웃 사용자 프로파일의 사용자 프로파일에 대한 true 레이블 세트의 카테고리에 대응하는 true 레이블들이 제1 값의 true 레이블인 빈도를 결정하는 하나 이상의 동작을 포함할 수 있다. 예를 들어, 이것은 도 6-7을 참조하여 위에서 설명된 바와 같이 하나 이상의 다중 클래스 분류 기술이 사용되는 하나 이상의 구현에서 적어도 하나의 예측 레이블(629)(
Figure pct00053
)을 획득하기 위해 활용되는 제1 기계 학습 모델(620)과 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 해당할 수 있다. 전술한 구현들 중 적어도 일부에서, 예측 레이블 세트를 결정하기 위해, 세트의 각 카테고리에 대해, MPC 클러스터는 상기 결정된 빈도에 상기 가테고리에 해당하는 함수를 적용하여 특정 사용자 프로파일의 커테고리에 해당하는 예측 레이블을 생성한다. 예를 들어, 각각의 함수는 도 9의 단계(914)를 참조하여 위에서 설명된 바와 같이 w개의 상이한 카테고리에 대해 MPC 클러스터에 의해 도출된 w개의 상이한 함수 중 하나에 대응할 수 있다.
도 12는 MPC 클러스터의 컴퓨팅 시스템에서 부스트(향상)된 성능을 갖는 사용자 프로파일에 대한 추론 결과를 생성하기 위한 예시적인 프로세스(1200)를 도시하는 흐름도이다. 도 12를 참조하여 설명된 동작들 중 하나 이상은, 예를 들어, 추론 시간에 수행될 수 있다. 프로세스(1200)의 동작들 중 적어도 일부는 예를 들어, 도 1의 MPC 클러스터(130)의 MPC1과 같은 MPC 클러스터의 제1 컴퓨팅 시스템에 의해 구현될 수 있고, 또한 도 8을 참조하여 위에서 설명된 동작들 중 하나 이상에 대응할 수 있다. 그러나, 프로세스(1200)에서, 사용자 데이터 프라이버시 보호를 제공하기 위해 하나 이상의 동작이 비밀 조각들에 대해 수행될 수 있다. 일반적으로, 이하 및 여기에서 설명되는 "조각(shares)"은 적어도 일부 구현에서 비밀 조각에 해당할 수 있다. 다른 구성도 가능하다. 도 12를 참조하여 설명된 동작들 중 하나 이상은, 예를 들어, 추론 시간에 수행될 수 있다.
MPC 클러스터의 제1 컴퓨팅 시스템은 주어진 사용자 프로파일과 관련된 추론 요청을 수신한다(1202). 예를 들어, 이것은 도 1을 참조하여 위에서 설명된 바와 같이, 애플리케이션(112)으로부터 추론 요청을 수신하는 MPC 클러스터(130)의 MPC1과 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 해당할 수 있다. 일부 구현에서, 이것은 도 8을 참조하여 위에서 설명된 바와 같이 단계(802)와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작들에 해당할 수 있다.
MPC 클러스터의 제1 컴퓨팅 시스템은 주어진 사용자 프로파일에 대한 예측 레이블을 결정한다(1204-1208). 일부 구현에서, 이것은 도 8을 참조하여 위에서 설명된 바와 같이 단계(804)와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 해당할 수 있다. 그러나, 단계(1204-1208)에서, 주어진 사용자 프로파일에 대한 예측 레이블의 결정은 사용자 데이터 프라이버시 보호를 제공하기 위해 비밀 조각들에 대해 수행될 수 있다. 주어진 사용자 프로파일에 대한 예측 레이블을 결정하기 위해, MPC 클러스터의 제1 컴퓨팅 시스템은 (i) 주어진 사용자 프로파일의 제1 조각, 다수의 사용자 프로파일을 사용하여 트레이닝된 제1 기계 학습 모델, 및 다수의 사용자 프로파일에 대한 다수의 true 레이블 중 하나 이상에 적어도 부분적으로 기초하여 예측 레이블의 제 조각을 결정하고(1204), (ii) MPC 클러스터의 제2 컴퓨팅 시스템으로부터, 주어진 사용자 프로파일의 제2 조각 및 하나 이상의 기계 학습 모델의 제1 세트에 적어도 부분적으로 기초하여 MPC 클러스터의 제2 컴퓨팅 시스템에 의해 결정된 예측 레이블의 제2 조각을 나타내는 데이터를 수신하고, 그리고 (iii) 예측 레이블의 제1 및 제2 조각에 적어도 부분적으로 기초하여 예측 레이블을 결정한다(1208). 예를 들어, MPC 클러스터의 제2 컴퓨팅 시스템은 도 1의 MPC 클러스터(130)의 MPC2에 해당할 수 있다.
이 예에서, 다수의 사용자 프로파일에 대한 다수의 true 레이블은 제1 기계 학습 모델(620)을 트레이닝 및/또는 평가하는데 사용된 다수의 사용자 프로파일에 대한 true 레이블들인 암호화된 레이블 데이터(626)의 일부로서 포함된 true 레이블들에 해당할 수 있다. 일부 예에서, 다수의 true 레이블은 다른 true 레이블 세트의 조각에 해당할 수 있다. 예를 들어, 주어진 사용자 프로파일에 대한 예측 레이블의 결정이 기초하는 다수의 true 레이블 중에서, 하나 이상의 true 레이블은 제1 기계 학습 모델(620)의 k-NN 모델(622)에 의해 식별된 k개의 최근접 사용자 프로파일 각각에 대한 적어도 하나의 true 레이블을 포함할 수 있다. 일부 예에서, 도 6 내지 도 7의 예에서와 같이 다수의 true 레이블 각각이 암호화된다. k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블이 예측 레이블을 결정하기 위해 활용될 수 있는 다양한 방법 중 일부는 위에 자세히 설명되어 있다. 위에서 분명히 알 수 있는 바와 같이, 예측 레이블을 결정하기 위해 이러한 true 레이블이 활용되는 방식(way) 또는 방식(manner)은 사용되는 추론 기술의 유형(예를 들어, 회귀 기술, 이진 분류 기술, 다중 클래스 분류 기술 등)에 적어도 부분적으로 의존할 수 있다. k-NN 계산과 관련하여 수행될 수 있는 비밀 조각 교환에 관한 추가 세부사항은 도 1-5를 참조하여 위에서 제공된다.
MPC 클러스터의 제1 컴퓨팅 시스템은 예측 레이블에서의 예측 오차를 나타내는 예측 잔차(residue) 값을 결정한다(1210-1214). 일부 구현에서, 이것은 도 8을 참조하여 위에서 설명된 바와 같이 단계(806)와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 해당할 수 있다. 그러나, 단계(1210-1214)에서, 예측 잔차 값의 결정은 사용자 데이터 프라이버시 보호를 제공하기 위해 비밀 조각들에 대해 수행될 수 있다. 예측 잔차 값을 결정하기 위해, MPC 클러스터의 제1 컴퓨팅 시스템은 (i) 주어진 사용자 프로파일의 제1 조각과 다수의 사용자 프로파일을 사용하여 트레이닝된 제2 기계 학습 모델 및 제1 기계 학습 모델(1210)을 사용하여 다수의 사용자 프로파일에 대해 결정된 다수의 사용자 프로파일에 대한 다수의 true 레이블과 다수의 예측 레이블 간의 차이를 나타내는 데이터에 적어도 부분적으로 기초하여 주어진 사용자 프로파일에 대한 예측 잔차 값의 제1 조각을 결정하고(1210), (ii) MPC 클러스터의 제2 컴퓨팅 시스템으로부터, 주어진 사용자 프로파일의 제2 조각 및 하나 이상의 기계 학습 모델의 제2 세트에 적어도 부분적으로 기초하여 MPC 클러스터의 제2 컴퓨팅 시스템에 의해 결정된 주어진 사용자 프로파일에 대한 예측 잔차 값의 제2 조각을 나타내는 데이터를 수신하고(1212), 그리고 예측 잔차 값의 제1 및 제2 조각에 적어도 부분적으로 기초하여 주어진 사용자 프로파일에 대한 예측 잔차 값을 결정한다(1214).
MPC 클러스터의 제1 컴퓨팅 시스템은 예측 레이블 및 예측 잔차 값에 기초하여 추론 결과를 나타내는 데이터를 생성한다(1216). 일부 구현에서, 이것은 도 8을 참조하여 위에서 설명된 바와 같이 단계(808)와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 해당할 수 있다. 이와 같이, 일부 예에서, 추론 결과는 예측 레이블과 예측 잔차 값의 합을 포함하거나 이에 해당한다.
MPC 클러스터의 제1 컴퓨팅 시스템은 추론 결과를 나타내는 데이터를 클라이언트 디바이스에 제공한다(1218). 일부 구현에서, 이것은 도 8을 참조하여 위에서 설명된 바와 같이 단계(810)와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다. 예를 들어, 이것은 도 1-2를 참조하여 위에서 설명한 바와 같이 애플리케이션(112)이 실행되는 클라이언트 디바이스(110)에 추론 결과를 제공하는 MPC 클러스터(130)와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다.
일부 구현에서, 프로세스(1200)는 MPC 클러스터의 제1 컴퓨팅 시스템이 주어진 사용자 프로파일의 제1 조각에 변환(transformation)을 적용하여 주어진 사용자 프로파일의 제1 변환된 조각을 획득하는 하나 이상의 동작을 더 포함한다. 이들 구현에서, 예측 레이블을 결정하기 위해, MPC 클러스터의 제1 컴퓨팅 시스템은 주어진 사용자 프로파일의 제1 변환된 조각에 적어도 부분적으로 기초하여 예측 레이블의 제1 조각을 결정한다. 예를 들어, 이것은 도 6 내지 도 8을 참조하여 전술한 바와 같이, 랜덤 투영 변환을 사용자 프로파일(609)(Pi)에 적용하여 변환된 사용자 프로파일(Pi')을 획득하기 위해 사용되는 랜덤 투영 로직(610)과 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다.
전술한 구현들 중 적어도 일부에서, 예측 레이블의 제1 조각을 결정하기 위해, MPC 클러스터의 제1 컴퓨팅 시스템은 주어진 사용자 프로파일의 제1 변환된 조각을 제1 기계 학습 모델에 대한 입력으로 제공하여 주어진 사용자 프로파일에 대한 예측 레이블의 제1 조각을 출력으로 얻는다. 예를 들어, 이것은 도 6-7을 참조하여 위에서 설명한 바와 같이, 변환된 사용자 프로파일(619)(Pi')을 입력으로 수신하고, 이에 응답하여 적어도 하나의 예측 레이블(629)(
Figure pct00054
)을 생성하는 제1 기계 학습 모델(620)과 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다.
일부 예에서, 전술한 변환은 랜덤 투영일 수 있다. 더욱이, 이러한 예 중 적어도 일부에서, 전술한 랜덤 투영은 존슨-린덴스트라우스(J-L) 변환일 수 있다.
일부 구현에서, J-L 변환을 적용하기 위해, MPC 클러스터는 암호 텍스트 (ciphertext, 암호문)의 프로젝트(project, 투영) 행렬(R)을 생성할 수 있다. n 차원 Pi를 k 차원으로 투영하기 위해, MPC 클러스터는 n×k 랜덤 행렬(R)을 생성할 수 있다. 예를 들어, 제1 컴퓨팅 시스템(예를 들어, MPC1)은 50% 확률로 Ai,j = 1이고 50% 확률로 Ai,j = 0인 n×k 랜덤 행렬(A)을 생성할 수 있다. 제1 컴퓨팅 시스템은 A를 두 개의 조각([A1] 및 [A2])로 분할하고, A를 폐기하고, [A1]을 기밀로 유지하고, 그리고 [A2]를 제2 컴퓨팅 시스템(예를 들어, MPC2)에 제공할 수 있다. 유사하게, 제2 컴퓨팅 시스템은 n×k 랜덤 행렬(B)을 생성할 수 있으며, 이 행렬의 요소는 A 요소의 분포가 동일하다. 제2 컴퓨팅 시스템은 B를 두 개의 조각([B1] 및 [B2])으로 분할하고, B를 폐기하고, [B2]를 기밀로 유지하고, 그리고 [B1]을 제1 컴퓨팅 시스템에 제공할 수 있다.
그런 다음 제1 컴퓨팅 시스템은 [R1]을 2×([A1] == [B1])-1로 계산할 수 있다. 유사하게, 제2 컴퓨팅 시스템은 [R2]를 2×([A2] == [B2])-1로 계산할 수 있다. 이러한 방식으로, [R1]과 [R2]는 동일한 확률로 요소가 1 또는 -1인 R의 2개의 비밀 조각이다.
실제 랜덤 투영은 1×k의 결과를 생성하기 위해 1×n 차원의 Pi의 비밀 조각들과 n×k 차원의 트로젝션 행렬(R) 사이에 있다. n ≫ k라고 가정하면, J-L 변환은 트레이닝 데이터의 차원을 n에서 k로 줄인다. 암호화된 데이터에서 위의 투영을 수행하기 위해, 제1 컴퓨팅 시스템은 [Pi,1] ⊙ [Ri,1]을 계산할 수 있으며, 이는 두 조각 간의 곱셈과 두 조각 간의 덧셈을 필요로 한다.
위에서 언급한 바와 같이, 일부 구현에서, 제1 기계 학습 모델은 MPC 클러스터의 제1 컴퓨팅 시스템에 의해 유지되는 k-최근접 이웃 모델을 포함하고, 하나 이상의 기계 학습 모델의 제1 세트는 MPC 클러스터의 제2 컴퓨팅 시스템에 의해 유지되는 k-최근접 이웃 모델을 포함한다. 일부 예에서, 앞서 언급된 2개의 k-최근접 이웃 모델은 서로 동일하거나 거의 동일할 수 있다. 즉, 일부 예에서, 제1 및 제2 컴퓨팅 시스템은 동일한 k-NN 모델의 사본을 유지하고 각각은 true 레이블의 자체 조각을 저장한다. 일부 예에서, 하나 이상의 프로토타입 방법에 기반을 둔 모델은 앞서 언급된 k-최근접 이웃 모델 중 하나 또는 둘 다를 대신하여 구현될 수 있다.
이들 구현들 중 적어도 일부에서, 예측 레이블을 결정하기 위해, MPC 클러스터의 제1 컴퓨팅 시스템은 (i) MPC 클러스터의 제1 컴퓨팅 시스템에 의해 유지되는 k-최근접 이웃 모델 및 주어진 사용자 프로파일의 제1 조각에 적어도 부분적으로 기초하여 최근접 이웃 사용자 프로파일의 제1 세트를 식별하고, (ii) MPC 클러스터의 제2 컴퓨팅 시스템으로부터, MPC 클러스터의 제2 컴퓨팅 시스템에 의해 유지되는 k-최근접 이웃 모델 및 주어진 사용자 프로파일의 제2 조각에 적어도 부분적으로 기초하여 MPC 클러스터의 제2 컴퓨팅 시스템에 의해 식별된 최근접 이웃 프로파일의 제2 세트를 나타내는 데이터를 수신하고, 그리고 (iii) 최근접 이웃 프로파일의 제1 및 제2 세트에 적어도 부분적으로 기초하여 다수의 사용자 프로파일 중에서 주어진 사용자 프로파일과 가장 유사한 것으로 간주되는 k개의 최근접 이웃 사용자 프로파일을 식별하고, k개의 최근접 이웃 사용자 프로파일 각각에 대한 true 레이블에 적어도 부분적으로 기초하여 예측 레이블의 제 조각을 결정한다. 예를 들어, 이것은 도 6-8을 참조하여 위에서 설명한 바와 같이, 하나 이상의 회귀 및/또는 이진 분류 기술이 사용되는 하나 이상의 구현에서 적어도 하나의 예측 레이블(629)(
Figure pct00055
)을 획득하기 위해 활용되는 제1 기계 학습 모델(620)과 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다. 일부 예에서, 예측 레이블은 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블들의 합을 포함하거나 이에 대응한다.
앞서 언급된 구현들 중 일부에서, 예측 레이블의 제1 조각을 결정하기 위해, MPC 클러스터의 제1 컴퓨팅 시스템은 (i) k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합의 제1 조각을 결정하고, (ii) MPC 클러스터의 제2 컴퓨팅 시스템으로부터, k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합의 제2 조각을 수신하고, 그리고 (iii) k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블 합의 제1 및 제2 조각에 적어도 부분적으로 기초하여 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합을 결정한다. 예를 들어, 이것은 도 6-8을 참조하여 위에서 설명한 바와 같이, 하나 이상의 다중 클래스 분류 기술이 사용되는 하나 이상의 구현에서 적어도 하나의 예측 레이블(629)(
Figure pct00056
)을 획득하기 위해 활용되는 제1 기계 학습 모델(620)과 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다.
일부 구현에서, 제2 기계 학습 모델은 심층 신경망(deep neural network : DNN), 그래디언트 부스팅 결정 트리(gradient-boosting decision tree : GBDT), 및 MPC 클러스터의 제1 컴퓨팅 시스템에 의해 유지되는 랜덤 포레스트 모델 중 적어도 하나를 포함하고, 하나 이상의 기계 학습 모델의 제2 세트는 DNN, GBDT, 및 MPC 클러스터의 제2 컴퓨팅 시스템에 의해 유지되는 랜덤 포레스트 모델 중 적어도 하나를 포함한다. 일부 예에서, 제1 및 제2 컴퓨팅 시스템에 의해 유지되는 2개의 모델(예를 들어, DNN, GBDT, 랜덤 포레스트 모델 등)은 서로 동일하거나 거의 동일할 수 있다.
일부 구현에서, 프로세스(1200)는 MPC 클러스터가 제1 기계 학습 모델의 성능을 평가하고 제 기계 학습 모델의 성능을 평가할 때 다수의 사용자 프로파일에 대해 결정된 예측 잔차 값을 나타내는 데이터를 사용하여 제2 기계 학습 모델을 트레이닝하는 하나 이상의 동작을 더 포함한다. 예를 들어, 이것은 도 8-9를 참조하여 위에서 설명된 바와 같이 단계(920)를 수행하는 MPC 클러스터와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다. 그러나, 이러한 구현에서, 사용자 데이터 프라이버시 보호를 제공하기 위해 하나 이상의 동작이 비밀 조각들에 대해 수행될 수 있다. 이러한 구현에서, 제1 기계 학습 모델의 성능을 평가하기 위해, MPC 클러스터는 사용자 프로파일에 대한 예측 레이블을 결정하고 그 예측 레이블의 예측 오차를 나타내는 사용자 프로파일에 대한 잔차 값을 결정한다. 사용자 프로파일에 대한 예측 레이블을 결정하기 위해, MPC 클러스터의 제1 컴퓨팅 시스템은 (i) 사용자 프로파일의 제1 조각, 제1 기계 학습 모델, 및 다수의 사용자 프로파일에 대한 다수의 true 레이블 중 하나 이상에 적어도 부분적으로 기초하여 용자 프로파일에 대한 예측 레이블의 제1 조각을 결정하고, (ii) MPC 클러스터의 제2 컴퓨팅 시스템으로부터, 사용자 프로파일의 제2 조각 및 MPC 클러스터의 제2 컴퓨팅 시스템에 의해 유지되는 하나 이상의 기계 학습 모델의 제1 세트에 적어도 부분적으로 기초하여 MPC 클러스터의 제2 컴퓨팅 시스템에 의해 결정된 사용자 프로파일에 대한 예측 레이블의 제2 조각을 나타내는 데이터를 수신하고, 그리고 (iii) 예측 레이블의 제1 및 제2 조각에 적어도 부분적으로 기초하여 사용자 프로파일에 대한 예측 레이블을 결정한다. 예측 레이블의 오차를 나타내는 사용자 프로파일에 대한 잔차 값을 결정하기 위해, MPC 클러스터의 제1 컴퓨팅 시스템은 (i) 사용자 프로파일에 대해 결정된 예측 레이블 및 다수의 실제 레이블에 포함된 사용자 프로파일에 대한 true 레이블의 제1 조각에 적어도 부분적으로 기초하여 사용자 프로파일에 대한 잔차 값의 제1 조각을 결정하고, (ii) MPC 클러스터의 제 컴퓨팅 시스템으로부터, 사용자 프로파일에 대해 결정된 예측 레이블 및 사용자 프로파일에 대한 true 레이블의 제2 조각에 적어도 부분적으로 기초하여 MPC 클러스터의 제2 컴퓨팅 시스템에 의해 결정된 사용자 프로파필에 대한 잔차 값의 제2 조각을 나타내는 데이터를 수신하고, 그리고 잔차 값의 제1 및 제2 조각에 적어도 부분적으로 기초하여 사용자 프로파필에 대한 잔차 값을 결정한다. 예를 들어, 이것은 도 11을 참조하여 위에서 설명된 바와 같이 단계(1108-1106)를 수행하는 MPC 클러스터와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다. 또한, 이러한 구현에서, 프로세스(1200)는 MPC 클러스터가 제1 기계 학습 모델의 성능을 평가할 때 다수의 사용자 프로파일에 대해 결정된 잔차 값을 나타내는 데이터를 사용하여 제2 기계 학습 모델을 트레이닝하는 하나 이상의 동작을 더 포함한다. 예를 들어, 이것은 도 9를 참조하여 위에서 설명된 바와 같이 단계(930)를 수행하는 MPC 클러스터와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다.
전술한 구현들 중 적어도 일부에서, 사용자 프로파일에 대한 잔차 값의 제1 조각은 제1 기계 학습 모델에 의해 사용자 프로파일에 대해 결정된 예측 레이블과 사용자 프로파일에 대한 true 레이블의 제1 조각 간의 값 차이를 나타내고, 사용자 프로파일에 대한 잔차 값의 제2 조각은 제1 기계 학습 모델에 의해 사용자 프로파일에 대해 결정된 예측 레이블과 사용자 프로파일에 대한 true 레이블의 제2 조각 간의 값 차이를 나타낸다. 예를 들어, 이것은 회귀 기술이 사용된 예의 경우일 수 있다.
전술한 구현들 중 적어도 일부에서, MPC 클러스터가 제1 기계 학습 모델의 성능을 평가하기 전에, 프로세스(1200)는 MPC 클러스터가 (i) 함수를 도출하고 (ii) 입력으로 사용자 프로파일리 주어지면 사용자 프로파일에 대한 초기 예측 레이블을 생성하고 상기 함수를 사용자 프로파일에 대한 초기 예측 레이블에 적용하여 출력으로 사용자 프로파일에 대한 예측 레이블의 제1 조각을 생성하는 하나 이상의 동작을 더 포함한다. 예를 들어, 이것은 도 8-9를 참조하여 위에서 설명된 바와 같이 단계(914-916)를 수행하는 MPC 클러스터와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다. 함수를 도출하기 위해, MPC 클러스터의 제1 컴퓨팅 시스템은 (i) 다수의 true 레이블 각각의 제1 조각에 적어도 부분적으로 기초하여 함수의 제1 조각을 도출하고, (ii) MPC 클러스터의 제2 컴퓨팅 시스템으로부터, 다수의 true 레이블 각각의 제2 조각에 적어도 부분적으로 기초하여 MPC 클러스터의 제2 컴퓨팅 시스템에 의해 도출된 함수의 제2 조각을 나타내는 데이터를 수신하고, 그리고 함수의 제1 및 제2 조각에 적어도 부분적으로 기반하여 함수를 도출한다. 예를 들어, 이진 분류 기술이 사용되는 예의 경우, 이 것은 입력으로 사용자 프로파일이 주어지면, MPC 클러스터가 (i) k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합(sum_of_labels)을 계산하고, 그리고 (ii) 사용자 프로파일에 대한 예측 레이블(
Figure pct00057
= f(sum_of_labels))을 출력으로 생성하기 위해 사용자 프로파일에 대한 초기 예측 레이블에 함수(변환 f)를 적용하도록 제1 기계 학습 모델을 구성하는 하나 이상의 동작에 대응할 수 있다. 다중 클래스 분류 기술이 사용되는 경우에도 유사한 동작들이 수행될 수 있다.
비밀 조각들을 통해 구현될 때, 제1 컴퓨팅 시스템(예를 들어, MPC1)은 다음을 계산할 수 있다.
Figure pct00058
유사하게, 비밀 조각들을 통해 구현될 때, 제2 컴퓨팅 시스템(예를 들어, MPC2)은 다음을 계산할 수 있다.
Figure pct00059
그런 다음 MPC 클러스터는 위에서 설명한 대로 sum0, count0, sum_of_square0를 일반 텍스트로 재구성하고 분포(
Figure pct00060
)를 계산할 수 있다.
유사하게, 분포(
Figure pct00061
)를 계산하기 위해, 제1 컴퓨팅 시스템(예를 들어, MPC1)은 다음을 계산할 수 있다:
Figure pct00062
그리고, 제2 컴퓨팅 시스템(예를 들어, MPC2)은 다음을 계산할 수 있다.
Figure pct00063
그런 다음 MPC 클러스터는 위에서 설명된 대로 sum1, count1, sum_of_square1을 일반 텍스트로 재구성하고 분포(
Figure pct00064
)를 계산할 수 있다.
전술한 구현들 중 적어도 일부에서, 제1 기계 학습 모델의 성능을 평가할 때, MPC 클러스터는 하나 이상의 고정 소수점 계산 기술을 사용하여 각각의 사용자 프로파일에 대한 잔차 값을 결정할 수 있다. 보다 구체적으로, 제1 기계 학습 모델의 성능을 평가할 때, 각 사용자 프로파일에 대한 잔차 값의 제1 조각을 결정하기 위해, MPC 클러스터의 제1 컴퓨팅 시스템은 특정 스케일링 계수(factor)로 해당 true 레이블 또는 그의 조각을 스케일링하고, 특정 스케일링 계수로 함수와 관련된 계수(coefficients){a2, a1, a0}를 스케일링하고, 스케일링된 계수를 가장 가까운 정수로 반올림한다. 이러한 구현에서, MPC 클러스터의 제2 컴퓨팅 시스템은 각각의 사용자 프로파일에 대한 잔차 값의 제2 조각을 결정하기 위해 유사한 동작들을 수행할 수 있다. 따라서 MPC 클러스터는 비밀 조각들로 잔차 값을 계산하고, 두 개의 비밀 조각으로부터 일반 텍스트(cleartext) 잔차 값을 재구성하고, 그리고 일반 텍스트 잔차 값을 스케일링 계수로 나눌(divide) 수 있다.
전술한 구현들 중 적어도 일부에서, 프로세스(1200)는 MPC 클러스터의 제1 컴퓨팅 시스템이 다수의 true 레이블 각각의 제1 조각에 적어도 부분적으로 기초하여 분포 파라미터 세트의 제1 조각을 추정하는 하나 이상의 동작을 더 포함한다. 일부 이러한 구현에서, 다수의 true 레이블 각각의 제1 조각에 적어도 부분적으로 기초하여 함수의 제1 조각을 도출하기 위해, MPC 클러스터의 제1 컴퓨팅 시스템은 분포 파라미터 세트의 제1 조각에 적어도 부분적으로 기초하여 함수의 제1 조각을 도출한다. 예를 들어, 이것은 도 8 내지 도 9를 참조하여 위에서 설명된 바와 같이 단계(912 내지 914)를 수행하는 MPC 클러스터와 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다. 이와 같이, 전술한 분포 파라미터 세트는 다수의 true 레이블에서 제1 값의 true 레이블에 대한 예측 오차 확률 분포의 하나 이상의 파라미터, 예를 들어, 다수의 true 레이블에서 제1 값의 true 레이블에 대한 예측 오차의 정규 분포의 평균(μ0) 및 분산(σ0)과, 그리고 다수의 true 레이블에서 제2 값의 true 레이블에 대한 예측 오차 확률 분포의 하나 이상의 파라미터, 예를 들어, 다수의 true 레이블에서 상이한 제2 값의 true 레이블에 대한 예측 오차 정규 분포의 평균(μ1) 및 분산(σ1)을 포함할 수 있다. 전술한 바와 같이, 일부 예에서, 전술한 분포 파라미터 세트는 다른 유형의 파라미터를 포함할 수 있다. 게다가, 전술한 구현들 중 적어도 일부에서, 함수는 2차 다항식 함수, 예를 들어 f(x) = a2x2 + a1x + a0이고, 여기서 f'(x) = 2a2x + a1이지만, 일부 예에서 다른 함수가 사용될 수 있다.
일부 예에서, 예측 레이블의 제1 조각을 결정하기 위해, MPC 클러스터의 제1 컴퓨팅 시스템은 (i) k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합의 제1 조각을 결정하고, (ii) MPC 클러스터의 두 번째 컴퓨팅 시스템으로부터, k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블 합의 제2 조각을 수신하고, 그리고 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블 합의 제1 및 제2 조각에 적어도 부분적으로 기초하여 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합을 결정한다. 예를 들어, 이것은 회귀 또는 이진 분류 기술이 사용되는 구현의 경우일 수 있다. 앞서 언급한 예들 중 일부에서, 예측 레이블의 제1 조각은 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합에 해당할 수 있다. 예를 들어, 이것은 회귀 분류 기술이 사용되는 구현의 경우일 수 있다(
Figure pct00065
= sum_of_labels). 다른 이러한 예에서, 예측 레이블의 제1 조각을 결정하기 위해, MPC 클러스터는 k개의 최근접 이웃 사용자 프로파일에 대한 true 레이블의 합에 함수를 적용하여 주어진 사용자 프로파일에 대한 예측 레이블을 생성한다. 예를 들어, 이것은 이진 분류 기술이 사용되는 구현의 경우일 수 있다(
Figure pct00066
= f(sum_of_labels)).
위에서 언급한 바와 같이, 앞서 언급된 구현들 중 일부에서, k개의 최근접 이웃 사용자 프로파일 각각에 대한 true 레이블에 적어도 부분적으로 기초하여 예측 레이블의 제1 조각을 결정하기 위해, MPC 클러스터의 제1 컴퓨팅 시스템은 카테고리 세트에 대응하는 k개의 최근접 이웃 사용자 프로파일 각각에 대한 true 레이블 세트에 적어도 부분적으로 기초하여 예측 레이블 세트의 제 조각을 결정한다. 예측 레이블 세트의 제1 조각을 결정하기 위해, 세트의 각 카테고리에 대해, MPC 클러스터의 제1 컴퓨팅 시스템은 k개의 최근접 이웃 사용자 프로파일에 있는 사용자 프로파일에 대한 true 레이블 세트의 카테고리에 해당하는 true 레이블들이 제1 값의 true 레이블인 빈도의 제1 조각을 결정하고, (ii) k개의 최근접 이웃 사용자 프로파일에 있는 사용자 프로파일에 대한 true 레이블 세트의 카테고리에 해당하는 true 레이블들이 제1 값의 true 레이블인 빈도의 제2 조각을 수신하고, 그리고 k개의 최근접 이웃 사용자 프로파일의 사용자 프로파일에 대한 true 레이블 세트의 카테고리에 해당하는 true 레이블이 제1 값의 true 레이블인 빈도의 제1 및 제2 조각에 적어도 부분적으로 기초하여 k개의 최근접 이웃 사용자 프로파일의 사용자 프로파일에 대한 true 레이블 세트의 커테고리에 해당하는 true 레이블들이 제1 값의 true 레이블인 빈도를 결정한다. 이러한 동작들은 MPC 클러스터의 제1 컴퓨팅 시스템이 k개의 최근접 이웃 사용자 프로파일에 있는 사용자 프로파일에 대한 true 레이블 세트의 카테고리에 해당하는 true 레이블들이 제1 값의 true 레이블인 빈도를 결정하는 하나 이상의 동작을 포함할 수 있다. 예를 들어, 이것은 도 6-8을 참조하여 위에서 설명된 바와 같이, 하나 이상의 다중 클래스 분류 기술이 사용되는 하나 이상의 구현에서 적어도 하나의 예측 레이블(629)(
Figure pct00067
)을 획득하기 위해 활용되는 제1 기계 학습 모델(620)과 관련하여 수행되는 하나 이상의 동작과 유사하거나 동등한 하나 이상의 동작에 대응할 수 있다.
전술한 구현들 중 적어도 일부에서, 예측 레이블 세트의 제1 조각을 결정하기 위해, 세트의 각각의 카테고리에 대해, MPC 클러스터의 제1 컴퓨팅 시스템은 카테고리에 대응하는 함수를, k개의 최근접 이웃 사용자 프로파일의 사용자 프로파일에 대한 true 레이블 세트의 카테고리에 해당하는 true 레이블들이 제1 값의 true인 빈도에 적용하여, 주어진 사용자 프로파일에 대한 카테고리에 해당하는 예측 레이블의 제1 조각을 생성한다. 예를 들어, 각각의 함수는 도 8 및 도 9의 단계(914)를 참조하여 위에서 설명된 바와 같이 w개의 상이한 카테고리에 대해 MPC 클러스터에 의해 도출된 w개의 상이한 함수 중 하나에 대응할 수 있다.
다중 클래스 분류 문제의 경우, 제1 기계 학습 모델의 성능(예를 들어, 품질)을 평가할 때, 각 트레이닝 예제/질의에 대해, MPC 클러스터는 k개의 최근접 이웃을 찾고 비밀 조각들에 대한 그들 레이블의 빈도를 계산할 수 있다.
예를 들어, 다중 클래스 분류 문제에 대해 w개의 유효한 레이블({l1, l2,...lw})(예를 들어, 클래스)이 있다고 가정하는 예를 고려한다. {id1, id2,... idk}로 식별되는 k개의 이웃 중에서, 제 컴퓨팅 시스템(예를 들어, MPC1)은 j번째 레이블의 빈도를 다음과 같이 [lj,1]로 계산할 수 있다.
Figure pct00068
제1 컴퓨팅 시스템은 다음과 같이 true 레이블 [label1]에서 빈도를 계산할 수 있다.
Figure pct00069
따라서, 제1 컴퓨팅 시스템은 다음을 계산할 수 있다.
Figure pct00070
그리고 [Residuej,1]은 다음과 동일하다.
Figure pct00071
유사하게, 제2 컴퓨팅 시스템(예를 들어, MPC2)은 다음을 계산할 수 있다.
Figure pct00072
이진 분류 및 회귀의 경우 각 추론에 대해 잔차 값은 정수 유형의 비밀 메시지일 수 있다. 이에 반해, 다중 클래스 분류의 경우, 각 추론에 대해 잔차 값은 위와 같이 정수 벡터의 비밀 메시지일 수 있다.
도 13은 위에서 설명된 동작들을 수행하는데 사용될 수 있는 예시적인 컴퓨터 시스템(1300)의 블록도이다. 시스템(1300)은 프로세서(1310), 메모리(1320), 저장 디바이스(1330) 및 입출력 디바이스(1340)를 포함한다. 각각의 컴포넌트(1310, 1320, 1330, 1340)는 예를 들어, 시스템 버스(1350)를 사용하여 상호 연결될 수 있다. 프로세서(1310)는 시스템(1300) 내에서 실행하기 위한 명령들을 처리할 수 있다. 일부 구현에서, 프로세서(1310)는 단일 스레드 프로세서이다. 다른 구현에서, 프로세서(1310)는 다중 스레드 프로세서이다. 프로세서(1310)는 메모리(1320) 또는 저장 디바이스(1330)에 저장된 명령들을 처리할 수 있다.
메모리(1320)는 시스템(1300) 내에 정보를 저장한다. 일 구현에서, 메모리(1320)는 컴퓨터 판독가능 매체이다. 일부 구현에서, 메모리(1320)는 휘발성 메모리 유닛이다. 다른 구현예에서, 메모리(1320)는 비-휘발성 메모리 유닛이다.
저장 디바이스(1330)는 시스템(1300)을 위한 대용량 저장 디바이스를 제공할 수 있다. 일부 구현에서, 저장 디바이스(1330)는 컴퓨터 판독가능 매체이다. 다양한 상이한 구현에서, 저장 디바이스(1330)는 예를 들어, 하드 디스크 디바이스, 광 디스크 디바이스, 다수의 컴퓨팅 디바이스(예를 들어, 클라우드 저장 디바이스)에 의해 네트워크를 통해 공유되는 저장 디바이스, 또는 일부 다른 대용량 저장 디바이스를 포함할 수 있다.
입/출력 디바이스(1340)는 시스템(1300)에 대한 입/출력 동작을 제공한다. 일부 구현에서, 입/출력 디바이스(1340)는 네트워크 인터페이스 디바이스, 예를 들어 이더넷 카드, 직렬 통신 디바이스(예를 들어, RS-232 포트), 및/또는 무선 인터페이스 디바이스(예를 들어, 802.11 카드) 중 하나 이상을 포함할 수 있다. 다른 구현에서, 입/출력 디바이스는 입력 데이터를 수신하고 출력 데이터를 외부 디바이스(1360), 예를 들어, 키보드, 프린터 및 디스플레이 디바이스로 보내도록 구성된 드라이버 디바이스를 포함할 수 있다. 그러나, 모바일 컴퓨팅 디바이스, 모바일 통신 디바이스, 셋탑 박스 텔레비전 클라이언트 디바이스 등과 같은 다른 구현도 사용될 수 있다.
예시적인 처리 시스템이 도 13에서 설명되었지만, 본 명세서에서 설명된 주제 및 기능적 동작의 구현은 다른 유형의 디지털 전자 회로, 또는 본 명세서에 개시된 구조 및 그의 구조적 등가물을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다.
본 명세서에 기술된 주제 및 동작들의 실시예는 디지털 전자 회로, 또는 본 명세서에 개시된 구조 및 그 구조적 등가물을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 기술된 주제의 실시예는 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 저장 매체(또는 매체)에 인코딩된, 하나 이상의 컴퓨터 프로그램, 즉, 컴퓨터 프로그램 명령의 하나 이상의 모듈로 구현될 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령은 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로 전송하기 위해 정보를 인코딩하도록 생성되는 인공적으로 생성된 전파 신호, 예를 들어 기계 생성의 전기, 광학 또는 전자기 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 저장 디바이스, 컴퓨터 판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 이에 포함될 수 있다. 더욱이, 컴퓨터 저장 매체는 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 물리적 컴포넌트 또는 매체(예를 들어, 다중 CD, 디스크 또는 기타 저장 디바이스)이거나 이에 포함될 수 있다.
본 명세서에 기술된 동작들은 하나 이상의 컴퓨터 판독 가능 저장 디바이스에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작들로 구현될 수 있다.
"데이터 처리 장치"라는 용어는 예를 들어 프로그램 가능 프로세서, 컴퓨터, 시스템 온 칩, 또는 다수의 것, 또는 이들의 조합을 포함하여 데이터를 처리하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 이 장치는 FPGA(필드 프로그램 가능 게이트 어레이) 또는 ASIC(주문형 집적 회로)와 같은 특수 목적 논리 회로를 포함할 수 있다. 장치는 또한 하드웨어 외에 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 플랫폼 간 런타임 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로도 알려짐)은 컴파일 또는 해석된 언어, 선언적 또는 절차적 언어를 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램이나 모듈, 컴포넌트, 서브루틴, 객체 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하여 모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있지만 반드시 그런 것은 아니다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 포함하는 파일의 일부, 해당 프로그램 전용 단일 파일 또는 여러 조정 파일(예를 들어, 파일 하나 이상의 모듈, 하위 프로그램 또는 코드의 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트에 분산되어 있고 통신 네트워크로 상호 연결된 여러 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에 기술된 프로세스 및 논리 흐름은 입력 데이터에 대해 동작하고 출력을 생성함으로써 동작을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 FPGA(field programmable gate array) 또는 ASIC(application-specific integrated circuit)과 같은 특수 목적 논리 회로에 의해 수행될 수 있고 장치도 이들로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어 범용 및 특수 목적 마이크로프로세서 모두를 포함한다. 일반적으로 프로세서는 판독 전용 메모리나 랜덤 액세스 메모리 또는 둘 다로부터 명령과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령들에 따라 동작들을 수행하기 위한 프로세서와 명령들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어 자기, 광자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 이들로 데이터를 전송하거나 둘 모두를 포함하거나 작동 가능하게 연결된다. 그러나 컴퓨터에는 이러한 디바이스가 필요하지 않다. 더욱이, 컴퓨터는 휴대 전화, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 휴대용 저장 디바이스(예를 들어, 범용 직렬 버스(USB) 플래시 드라이브)와 같은 다른 디바이스에 내장될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 디바이스는 예를 들어 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스), 자기 디스크(예를 들어, 내부 하드 디스크 또는 이동식 디스크), 광자기 디스크, 및 CD-ROM 및 DVD-ROM 디스크를 포함하여, 모든 형태의 비-휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에서 설명된 주제의 실시예는 사용자에게 정보를 표시하기 위한 디스플레이 디바이스(예를 들어, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 디바이스를 사용하여 사용자와의 상호 작용도 제공할 수 있는데, 예를 들어, 사용자에게 제공되는 피드백은 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 임의의 형태의 감각적 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함한 모든 형태로 수신될 수 있다. 또한, 컴퓨터는 예를 들어 웹 브라우저에서 수신된 요청에 응답하여 사용자 클라이언트 디바이스의 웹 브라우저에 웹 페이지를 전송함으로써 사용자가 사용하는 디바이스로 문서를 보내고 문서를 수신하여 사용자와 상호 작용할 수 있다.
본 명세서에 설명된 주제의 실시예는 백엔드 컴포넌트(예를 들어, 데이터 서버)를 포함하거나, 미들웨어 컴포넌트(예를 들어, 애플리케이션 서버)를 포함하거나, 프론트 엔드 컴포넌트(예를 들어, 사용자가 본 명세서에 설명된 주제의 구현과 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터), 또는 하나 이상의 이러한 백엔드, 미들웨어 또는 프런트 엔드 컴포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 통신 네트워크와 같은 디지털 데이터 통신의 임의의 형태 또는 매체에 의해 상호 연결될 수 있다. 통신 네트워크의 예는 근거리 통신망("LAN") 및 광역 네트워크("WAN"), 상호 네트워크(예를 들어, 인터넷) 및 피어 투 피어 네트워크(예를 들어, 애드 혹 피어-투-피어 네트워크)를 포함한다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램 덕분에 발생한다. 일부 실시예에서, 서버는 데이터(예를 들어, HTML 페이지)를 (클라이언트 디바이스와 상호 작용하는 사용자에게 데이터를 표시하고 사용자 입력을 수신하기 위해) 클라이언트 디바이스로 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용의 결과)는 서버에서 클라이언트 디바이스로부터 수신될 수 있다.
본 명세서는 많은 특정 구현 세부 사항을 포함하지만, 이는 임의의 발명 또는 청구될 수 있는 것의 범위에 대한 제한으로 해석되어서는 안 되며, 오히려 특정 발명의 특정 실시예에 특정된 특징의 설명으로 해석되어야 한다. 별도의 실시예와 관련하여 본 명세서에 설명된 특정 특징은 단일 실시예에서 조합하여 구현될 수 있다. 역으로, 단일 실시예의 맥락에서 설명된 다양한 특징은 개별적으로 또는 임의의 적절한 하위 조합으로 다수의 실시예에서 구현될 수도 있다. 더욱이, 특징들이 특정 조합으로 작용하는 것으로 위에서 설명될 수 있고 심지어 초기에 그렇게 청구될 수도 있지만, 청구된 조합의 하나 이상의 특징은 일부 경우에 조합에서 제거될 수 있으며 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 동작들이 도면에 특정 순서로 도시되어 있지만, 이는 바람직한 결과를 달성하기 위해 이러한 동작들이 도시된 특정 순서 또는 순차적인 순서로 수행되거나 모든 도시된 동작들이 수행되어야 함을 요구하는 것으로 이해되어서는 안 된다. 특정 상황에서 멀티태스킹 및 병렬 처리가 유리할 수 있다. 더욱이, 상술한 실시예에서 다양한 시스템 컴포넌트의 분리가 모든 실시예에서 이러한 분리를 요구하는 것으로 이해되어서는 안되며, 설명된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품에 패키지될 수 있음을 이해해야 한다.
따라서, 주제의 특정 실시예들이 설명되었다. 다른 실시예는 다음 청구항의 범위 내에 있다. 일부 경우, 청구범위에 인용된 동작들은 다른 순서로 수행될 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 또한, 첨부된 도면에 도시된 프로세스는 바람직한 결과를 달성하기 위해 도시된 특정 순서 또는 순차적인 순서를 반드시 필요로 하는 것은 아니다. 특정 구현에서, 멀티태스킹 및 병렬 처리가 유리할 수 있다.

Claims (22)

  1. 컴퓨터 구현 방법으로서,
    복수의 다자간 연산(MPC) 컴퓨팅 시스템의 제1 컴퓨팅 시스템에 의해, 주어진 사용자 프로파일의 제1 조각(share)을 포함하는 추론 요청을 수신하는 단계와;
    복수의 사용자 프로파일을 사용하여 트레이닝된 제1 기계 학습 모델에 적어도 부분적으로 기초하여 주어진 사용자 프로파일에 대한 예측 레이블을 결정하는 단계와;
    예측 레이블의 예측 오차를 나타내는 주어진 사용자 프로파일에 대한 예측 잔차 값을 결정하는 단계와, 상기 예측 잔차 값을 결정하는 단계는,
    제1 컴퓨팅 시스템에 의해, 주어진 사용자 프로파일의 제1 조각 및 복수의 사용자 프로파일을 사용하여 트레이닝된 제2 기계 학습 모델 그리고 복수의 사용자 프로파일에 대한 복수의 참(true) 레이블과 제1 기계 학습 모델을 사용하여 복수의 사용자 프로파일에 대해 결정된 복수의 예측 레이블 간의 차이를 나타내는 데이터에 적어도 부분적으로 기초하여 주어진 사용자 프로파필에 대한 예측 잔차 값의 제1 조각을 결정하는 단계;
    제1 컴퓨팅 시스템에 의해 복수의 MPC 컴퓨팅 시스템의 제2 컴퓨팅 시스템으로부터, 주어진 사용자 프로파일의 제2 조각 및 하나 이상의 기계 학습 모델의 제2 세트에 적어도 부분적으로 기초하여 제2 컴퓨팅 시스템에 의해 결정된 상기 주어진 사용자 프로파일에 대한 예측 잔차 값의 제2 조각을 나타내는 데이터를 수신하는 단계; 및
    예측 잔차 값의 제1 및 제2 조각에 적어도 부분적으로 기초하여 주어진 사용자 프로파일에 대한 예측 잔차 값을 결정하는 단계를 포함하고; 그리고
    제1 컴퓨팅 시스템에 의해, 주어진 사용자 프로파일 및 예측 잔차 값에 대해 결정된 예측 레이블에 적어도 부분적으로 기초하여 추론 결과의 제1 조각을 생성하는 단계와; 그리고
    제1 컴퓨팅 시스템에 의해 클라이언트 디바이스로, 추론 결과의 제1 조각 및 제2 컴퓨팅 시스템으로부터 수신된 추론 결과의 제2 조각을 제공하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 주어진 사용자 프로파일에 대한 예측 레이블을 결정하는 단계는,
    제1 컴퓨팅 시스템에 의해, (i) 주어진 사용자 프로파일의 제1 조각, (ii) 복수의 사용자 프로파일을 사용하여 트레이닝된 제1 기계 학습 모델, 및 (iii) 복수의 사용자 프로파일에 대한 복수의 참 레이블 중 하나 이상에 적어도 부분적으로 기초하여 예측 레이블의 제1 조각을 결정하는 단계와, 상기 복수의 참 레이블은 복수의 사용자 프로파일에 있는 각 사용자 프로파일에 대한 하나 이상의 참 레이블을 포함하고;
    제1 컴퓨팅 시스템에 의해 제2 컴퓨팅 시스템으로부터, 주어진 사용자 프로파일의 제2 조각 및 하나 이상의 기계 학습 모델의 제1 세트에 적어도 부분적으로 기초하여 제2 컴퓨팅 시스템에 의해 결정된 예측 레이블의 제2 조각을 나타내는 데이터를 수신하는 단계와; 그리고
    예측 레이블의 제1 및 제2 조각에 적어도 부분적으로 기초하여 예측 레이블을 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  3. 임의의 선행하는 항에 있어서,
    제1 컴퓨팅 시스템에 의해, 주어진 사용자 프로파일의 제1 변환 조각을 획득하기 위해 주어진 사용자 프로파일의 제1 조각에 변환(transformation)을 적용하는 단계를 더 포함하고, 상기 제1 컴퓨팅 시스템에 의해, 예측 레이블의 제1 조각을 결정하는 단계는,
    제1 컴퓨팅 시스템에 의해, 주어진 사용자 프로파일의 제1 변환 조각에 적어도 부분적으로 기초하여 예측 레이블의 제1 조각을 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  4. 제3항에 있어서,
    상기 변환은 존슨-린덴스트라우스(J-L) 변환을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  5. 제3항에 있어서,
    상기 제1 컴퓨팅 시스템에 의해, 예측 레이블의 제1 조각을 결정하는 단계는,
    제1 컴퓨팅 시스템에 의해, 주어진 사용자 프로파일에 대한 예측 레이블의 제1 조각을 출력으로 획득하기 위해 제1 기계 학습 모델에 대한 입력으로 상기 주어진 사용자 프로파일의 제1 변환 조각을 제공하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  6. 임의의 선행하는 항에 있어서,
    제1 기계 학습 모델의 성능을 평가하는 단계와, 상기 평가하는 단계는 복수의 사용자 프로파일 각각에 대해:
    사용자 프로파일에 대한 예측 레이블을 결정하는 단계로서:
    제1 컴퓨팅 시스템에 의해, (i) 사용자 프로파일의 제1 조각, (ii) 제1 기계 학습 모델, 및 (iii) 복수의 사용자 프로파일에 대한 복수의 참 레이블 중 하나 이상에 적어도 부분적으로 기초하여 사용자 프로파일에 대한 예측 레이블의 제1 조각을 결정하는 단계;
    제1 컴퓨팅 시스템에 의해 제2 컴퓨팅 시스템으로부터, 사용자 프로파일의 제2 조각 및 제2 컴퓨팅 시스템에 의해 유지되는 하나 이상의 기계 학습 모델의 제1 세트에 적어도 부분적으로 기초하여 제2 컴퓨팅 시스템에 의해 결정된 사용자 프로파일에 대한 예측 레이블의 제2 조각을 나타내는 데이터를 수신하는 단계; 및
    예측 레이블의 제1 및 제2 조각에 적어도 부분적으로 기초하여 사용자 프로파일에 대한 예측 레이블을 결정하는 단계를 포함하고;
    예측 레이블의 오차를 나타내는 사용자 프로파일에 대한 잔차 값을 결정하는 단계로서:
    제1 컴퓨팅 시스템에 의해, 사용자 프로파일에 대해 결정된 예측 레이블 및 복수의 참 레이블에 포함된 사용자 프로파일에 대한 참 레이블의 제1 조각에 적어도 부분적으로 기초하여 사용자 프로파일에 대한 잔차 값의 제1 조각을 결정하는 단계;
    제1 컴퓨팅 시스템에 의해 제2 컴퓨팅 시스템으로부터, 사용자 프로파일에 대해 결정된 예측 레이블 및 사용자 프로파일에 대한 참 레이블의 제2 조각에 적어도 부분적으로 기초하여 제2 컴퓨팅 시스템에 의해 결정된 사용자 프로파일에 대한 잔차 값의 제2 조각을 나타내는 데이터 수신하는 단계; 및
    잔차 값의 제1 및 제2 조각에 적어도 부분적으로 기초하여 사용자 프로파일에 대한 잔차 값을 결정하는 단계를 포함하고; 그리고
    제1 기계 학습 모델의 성능을 평가할 때 복수의 사용자 프로파일에 대해 결정된 잔차 값을 나타내는 데이터를 사용하여 제2 기계 학습 모델을 트레이닝하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  7. 제6항에 있어서,
    제1 기계 학습 모델의 성능을 평가하기 전에:
    함수의 파라미터 세트를 도출하는 단계와, 상기 도출하는 단계는,
    제1 컴퓨팅 시스템에 의해, 복수의 참 레이블 각각의 제1 조각에 적어도 부분적으로 기초하여 함수의 파라미터 세트의 제1 조각을 도출하는 단계;
    제1 컴퓨팅 시스템에 의해 제2 컴퓨팅 시스템으로부터, 복수의 참 레이블 각각의 제2 조각에 적어도 부분적으로 기초하여 제2 컴퓨팅 시스템에 의해 도출된 함수의 파라미터 세트의 제2 조각을 나타내는 데이터를 수신하는 단계 ; 및
    함수의 파라미터 세트의 제1 및 제2 조각에 적어도 부분적으로 기초하여 함수의 파라미터 세트를 도출하는 단계를 포함하고; 그리고
    사용자 프로파일이 입력으로 주어지면 사용자 프로파일에 대한 초기 예측 레이블을 생성하고 도출된 파라미터 세트에 기초하여 정의된 함수를 사용자 프로파일에 대한 초기 예측 레이블에 적용하여 출력으로서 사용자 프로파일에 대한 예측 레이블의 제1 조각을 생성하도록 제1 기계 학습 모델을 구성하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  8. 제7항에 있어서,
    제1 컴퓨팅 시스템에 의해, 복수의 참 레이블 각각의 제1 조각에 적어도 부분적으로 기초하여 분포 파라미터 세트의 제1 조각을 추정하는 단계를 더 포함하고,
    상기 제1 컴퓨팅 시스템에 의해, 복수의 참 레이블 각각의 제1 조각에 적어도 부분적으로 기초하여 함수의 파라미터 세트의 제1 조각을 도출하는 단계는,
    제1 컴퓨팅 시스템에 의해, 분포 파라미터 세트의 제1 조각에 적어도 부분적으로 기초하여 함수의 파라미터 세트의 제1 조각을 도출하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  9. 제8항에 있어서,
    상기 분포 파라미터 세트는,
    복수의 참 레이블에서 제1 값의 참 레이블에 대한 예측 오차 확률 분포의 하나 이상의 파라미터, 및 복수의 참 레이블에서 제2 값의 참 레이블에 대한 예측 오차 확률 분포의 하나 이상의 파라미터를 포함하며, 상기 제2 값은 제1 값과 상이한 것을 특징으로 하는 컴퓨터 구현 방법.
  10. 제6항에 있어서,
    상기 사용자 프로파일에 대한 잔차 값의 제1 조각은,
    사용자 프로파일에 대해 결정된 예측 레이블과 사용자 프로파일에 대한 참 레이블의 제1 조각 사이의 값 차이를 나타내고; 그리고
    상기 사용자 프로파일에 대한 잔차 값의 제2 조각은,
    사용자 프로파일에 대해 결정된 예측 레이블과 사용자 프로파일에 대한 참 레이블의 제2 조각 사이의 값 차이를 나타내는 것을 특징으로 하는 컴퓨터 구현 방법.
  11. 제1항 내지 제2항 중 어느 한 항에 있어서,
    상기 제1 기계 학습 모델은 제1 컴퓨팅 시스템에 의해 유지되는 k-최근접 이웃 모델을 포함하고;
    상기 하나 이상의 기계 학습 모델의 제1 세트는 제2 컴퓨팅 시스템에 의해 유지되는 k-최근접 이웃 모델을 포함하고;
    상기 제2 기계 학습 모델은 제1 컴퓨팅 시스템에 의해 유지되는 심층 신경망(DNN) 및 제1 컴퓨팅 시스템에 의해 유지되는 그래디언트 부스팅 결정 트리(GBDT) 중 적어도 하나를 포함하고; 그리고
    상기 하나 이상의 기계 학습 모델의 제2 세트는 제2 컴퓨팅 시스템에 의해 유지되는 DNN 및 제2 컴퓨팅 시스템에 의해 유지되는 GBDT 중 적어도 하나를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  12. 제11항에 있어서,
    상기 제1 컴퓨팅 시스템에 의해, 예측 레이블의 제1 조각을 결정하는 단계는,
    제1 컴퓨팅 시스템에 의해, 주어진 사용자 프로파일의 제1 조각 및 제1 컴퓨팅 시스템에 의해 유지되는 k-최근접 이웃 모델에 적어도 부분적으로 기초하여 최근접 이웃 사용자 프로파일의 제1 세트를 식별하는 단계와;
    제1 컴퓨팅 시스템에 의해 제2 컴퓨팅 시스템으로부터, 주어진 사용자 프로파일의 제2 조각 및 제2 컴퓨팅 시스템에 의해 유지되는 k-최근접 이웃 모델에 적어도 부분적으로 기초하여 제2 컴퓨팅 시스템에 의해 식별된 최근접 이웃 프로파일의 제2 세트를 나타내는 데이터를 수신하는 단계와;
    최근접 이웃 프로파일의 제1 및 제2 세트에 적어도 부분적으로 기초하여 복수의 사용자 프로파일 중에서 주어진 사용자 프로파일과 가장 유사한 것으로 간주되는 k개의 최근접 이웃 사용자 프로파일을 식별하는 단계와; 그리고
    제1 컴퓨팅 시스템에 의해, k개의 최근접 이웃 사용자 프로파일 각각에 대한 참 레이블에 적어도 부분적으로 기초하여 예측 레이블의 제1 조각을 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  13. 제12항에 있어서,
    상기 제1 컴퓨팅 시스템에 의해, 예측 레이블의 제1 조각을 결정하는 단계는,
    제1 컴퓨팅 시스템에 의해, k개의 최근접 이웃 사용자 프로파일에 대한 참 레이블의 합의 제1 조각을 결정하는 단계;
    제1 컴퓨팅 시스템에 의해 제2 컴퓨팅 시스템으로부터, k개의 최근접 이웃 사용자 프로파일에 대한 참 레이블의 합의 제2 조각을 수신하는 단계; 그리고
    k개의 최근접 사용자 프로파일에 대한 참 레이블의 합의 제1 및 제2 조각에 적어도 부분적으로 기초하여 k개의 최근접 사용자 프로파일에 대한 참 레이블의 합을 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  14. 제13항에 있어서,
    상기 제1 컴퓨팅 시스템에 의해, 예측 레이블의 제1 조각을 결정하는 단계는,
    주어진 사용자 프로파일에 대한 예측 레이블의 제1 조각을 생성하기 위해 k개의 최근접 이웃 사용자 프로파일에 대한 참 레이블의 합에 함수를 적용하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  15. 제13항에 있어서,
    상기 주어진 사용자 프로파일에 대한 예측 레이블의 제1 조각은,
    k개의 최근접 이웃 사용자 프로파일에 대한 참 레이블의 합을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  16. 제12항에 있어서,
    상기 제1 컴퓨팅 시스템에 의해, k개의 최근접 이웃 사용자 프로파일 각각에 대한 참 레이블에 적어도 부분적으로 기초하여 예측 레이블의 제1 조각을 결정하는 단계는,
    제1 컴퓨팅 시스템에 의해, 카테고리 세트에 각각 대응하는 k개의 최근접 이웃 사용자 프로파일 각각에 대한 참 레이블 세트에 적어도 부분적으로 기초하여 예측 레이블 세트의 제1 조각을 결정하는 단계를 포함하여,
    세트의 각 카테고리에 대해:
    k개의 최근접 이웃 사용자 프로파일의 사용자 프로파일에 대한 참 레이블 세트의 카테고리에 해당하는 참 레이블이 제1 값의 참 레이블인 빈도의 제1 조각을 결정하는 단계;
    제1 컴퓨팅 시스템에 의해 제2 컴퓨팅 시스템으로부터, k개의 최근접 이웃 사용자 프로파일의 사용자 프로파일에 대한 참 레이블 세트의 카테고리에 해당하는 참 레이블이 제1 값의 참 레이블인 빈도의 제2 조각을 수신하는 단계; 및
    k개의 최근접 이웃 사용자 프로파일의 사용자 프로파일에 대한 참 레이블 세트의 카테고리에 해당하는 참 레이블이 제1 값의 참 레이블인 빈도의 제1 및 제2 조각에 적어도 부분적으로 기초하여 k개의 최근접 이웃 사용자 프로파일의 사용자 프로파일에 대한 참 레이블 세트의 카테고리에 해당하는 참 레이블이 제1 값의 참 레이블인 빈도를 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  17. 제16항에 있어서,
    상기 제1 컴퓨팅 시스템에 의해, 예측 레이블 세트의 제1 조각을 결정하는 단계는,
    세트의 각 카테고리에 대해:
    주어진 사용자 프로파일에 대한 카테고리에 해당하는 예측 레이블의 제1 조각을 생성하기 위해 카테고리에 해당하는 함수를, k개의 최근접 이웃 사용자 프로파일의 사용자 프로파일에 대한 참 레이블 세트의 카테고리에 해당하는 참 레이블들이 제1 값의 참 레이블인 빈도에 적용하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  18. 제1항에 있어서,
    상기 클라이언트 디바이스는,
    클라이언트 디바이스의 사용자의 이벤트와 관련된 특징값 및 각각의 특징 벡터에 대한 감쇠율을 각각 포함하는 복수의 특징 벡터를 사용하여 주어진 사용자 프로파일을 계산하는 것을 특징으로 하는 컴퓨터 구현 방법.
  19. 제1항에 있어서,
    상기 클라이언트 디바이스는,
    클라이언트 디바이스의 사용자 이벤트와 관련된 특징값을 각각 포함하는 복수의 특징 벡터를 사용하여 주어진 사용자 프로파일을 계산하고, 상기 주어진 사용자 프로파일을 계산하는 것은,
    복수의 특징 벡터 중 하나 이상을 희소(sparse) 특징 벡터로 분류하는 것; 및
    복수의 특징 벡터 중 하나 이상을 밀집(dense) 특징 벡터로 분류하는 것을 더 포함하고, 상기 방법은,
    희소 특징 벡터 및 밀집 특징 벡터를 사용하여 주어진 사용자 프로파일의 제1 조각 및 하나 이상의 제2 컴퓨팅 시스템에 대한 주어진 사용자 프로파일의 각각의 제2 조각을 생성하는 단계를 더 포함하고,
    상기 주어진 사용자 프로파일의 제1 조각 및 각각의 하나 이상의 제2 조각을 생성하는 단계는 FSS(Function Secret Sharing) 기술을 사용하여 희소 특징 벡터를 분할하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  20. 시스템으로서,
    하나 이상의 프로세서; 및
    하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서로 하여금 임의의 선행하는 항의 방법을 수행하게 하는 명령들을 저장하는 하나 이상의 저장 디바이스를 포함하는 시스템.
  21. 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서로 하여금 제1항 내지 제19항 중 어느 한 항의 방법을 수행하게 하는 명령들을 포함하는 컴퓨터 판독 가능 저장 매체.
  22. 컴퓨터에 의해 실행될 때 컴퓨터로 하여금 제1항 내지 제19항 중 어느 한 항의 방법의 단계를 수행하게 하는 명령들을 포함하는 컴퓨터 프로그램 제품.
KR1020227019999A 2020-10-09 2021-10-08 그래디언트 부스팅을 통한 프라이버시 보호 기계 학습 KR20220101671A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IL277910A IL277910A (en) 2020-10-09 2020-10-09 Privacy-preserving machine learning using a gradient stimulus
IL277910 2020-10-09
PCT/US2021/054183 WO2022076826A1 (en) 2020-10-09 2021-10-08 Privacy preserving machine learning via gradient boosting

Publications (1)

Publication Number Publication Date
KR20220101671A true KR20220101671A (ko) 2022-07-19

Family

ID=81126088

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227019999A KR20220101671A (ko) 2020-10-09 2021-10-08 그래디언트 부스팅을 통한 프라이버시 보호 기계 학습

Country Status (7)

Country Link
US (1) US20230034384A1 (ko)
EP (1) EP4058951A1 (ko)
JP (1) JP7361928B2 (ko)
KR (1) KR20220101671A (ko)
CN (1) CN114930357A (ko)
IL (1) IL277910A (ko)
WO (1) WO2022076826A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11695772B1 (en) * 2022-05-03 2023-07-04 Capital One Services, Llc System and method for enabling multiple auxiliary use of an access token of a user by another entity to facilitate an action of the user
CN116388954B (zh) * 2023-02-23 2023-09-01 西安电子科技大学 通用密态数据安全计算方法
CN117150551B (zh) * 2023-09-04 2024-02-27 东方魂数字科技(北京)有限公司 基于大数据的用户隐私保护方法和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6556659B2 (ja) 2016-05-17 2019-08-07 日本電信電話株式会社 ニューラルネットワークシステム、シェア計算装置、ニューラルネットワークの学習方法、プログラム
EP3602422B1 (en) 2017-03-22 2022-03-16 Visa International Service Association Privacy-preserving machine learning
WO2019048390A1 (en) 2017-09-07 2019-03-14 Koninklijke Philips N.V. MULTI-PART CALCULATION SYSTEM FOR LEARNING A CLASSIFIER

Also Published As

Publication number Publication date
US20230034384A1 (en) 2023-02-02
CN114930357A (zh) 2022-08-19
WO2022076826A1 (en) 2022-04-14
IL277910A (en) 2022-05-01
JP2023509589A (ja) 2023-03-09
JP7361928B2 (ja) 2023-10-16
EP4058951A1 (en) 2022-09-21

Similar Documents

Publication Publication Date Title
US20230214684A1 (en) Privacy preserving machine learning using secure multi-party computation
JP7361928B2 (ja) 勾配ブースティングを介したプライバシーを守る機械学習
US20160004874A1 (en) A method and system for privacy preserving matrix factorization
Lin et al. A generic federated recommendation framework via fake marks and secret sharing
US20240163341A1 (en) Privacy preserving centroid models using secure multi-party computation
JP7471445B2 (ja) コンテンツの配信と分析のためのプライバシーを守る機械学習
JP7422892B2 (ja) 分類の正確さを改善するための機械学習モデリングデータの処理
JP7457131B2 (ja) プライバシーを守る機械学習ラベリング
Elmisery et al. Collaborative privacy framework for minimizing privacy risks in an IPTV social recommender service
Elmisery Private personalized social recommendations in an IPTV system
KR20220126767A (ko) 보안 mpc 및 벡터 계산을 이용한 컨텐츠 배포 정보에 대한 액세스 보호
Hong et al. FedHD: A Privacy-Preserving Recommendation System with Homomorphic Encryption and Differential Privacy
JP7471450B2 (ja) セキュアマルチパーティ計算の性能の向上
US20220405407A1 (en) Privacy preserving cross-domain machine learning
JP2024073565A (ja) プライバシーを守る機械学習ラベリング
Ma et al. Blockchain-Based Privacy-Preserving Federated Learning for Mobile Crowdsourcing
CN115918029A (zh) 使用安全多方计算的灵活内容选择过程