KR20160009012A - 행렬 분해 및 리지 회귀에 기초한 프라이버시-보호 추천을 위한 방법 및 시스템 - Google Patents

행렬 분해 및 리지 회귀에 기초한 프라이버시-보호 추천을 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20160009012A
KR20160009012A KR1020157024126A KR20157024126A KR20160009012A KR 20160009012 A KR20160009012 A KR 20160009012A KR 1020157024126 A KR1020157024126 A KR 1020157024126A KR 20157024126 A KR20157024126 A KR 20157024126A KR 20160009012 A KR20160009012 A KR 20160009012A
Authority
KR
South Korea
Prior art keywords
records
circuit
csp
masked
record
Prior art date
Application number
KR1020157024126A
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 KR20160009012A publication Critical patent/KR20160009012A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44213Monitoring of end-user related data
    • H04N21/44222Analytics of user selections, e.g. selection of programs or purchase activity
    • H04N21/44224Monitoring of user activity on external systems, e.g. Internet browsing
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/602Providing cryptographic facilities or services
    • 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/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] 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/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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3273Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/251Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25891Management of end-user data being end-user preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44213Monitoring of end-user related data
    • H04N21/44222Analytics of user selections, e.g. selection of programs or purchase activity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4668Learning process for intelligent management, e.g. learning user preferences for recommending movies for recommending content, e.g. movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6582Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • 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
    • 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/50Oblivious transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Social Psychology (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computer Graphics (AREA)
  • Algebra (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

프라이버시-보호 추천들을 발생하기 위한 방법 및 시스템은, 사용자들의 제 1 세트로부터 토큰들 및 아이템들을 포함하는 레코드들의 제 1 세트를 입력으로서 수신하고; 적어도 하나의 아이템에 관하여 프라이버시-보호 방식으로 추천들을 발생하기 위해 요청 사용자로부터, 레코드들의 제 1 세트에 대한 행렬 분해에 기초하여 제 1 가블링된 회로를, 그리고 제 2 레코드에 대한 리지 회귀에 기초하여 제 2 가블링된 회로를 설계 및 평가함으로써 개시하여, 레코드들 및 그 레코드들로부터 추출된 임의의 정보가 그 소스 이외의 당사자들로부터 비밀로 유지되고, 그 추천들은 오직 요청 사용자에 의해서만 알려진다. 시스템은 또한, 가블링된 회로들을 설계할 암호-서비스 제공자 및 제 1 회로를 평가할 추천자를 포함한다. 요청 사용자는 제 2 회로를 평가할 것이고 사용자들의 제 1 세트에 포함되지 않을 수도 있다.

Description

행렬 분해 및 리지 회귀에 기초한 프라이버시-보호 추천을 위한 방법 및 시스템{A METHOD AND SYSTEM FOR PRIVACY-PRESERVING RECOMMENDATION BASED ON MATRIX FACTORIZATION AND RIDGE REGRESSION}
관련 출원들에 대한 상호참조
본 출원은 2013년 8월 9일자로 출원된 미국 가특허출원들: 출원번호 제61/864088호 및 명칭- "A METHOD AND SYSTEM FOR PRIVACY PRESERVING MATRIX FACTORIZATION"; 출원번호 제61/864085호 및 명칭 - "A METHOD AND SYSTEM FOR PRIVACY PRESERVING COUNTING"; 출원번호 제61/864094호 및 명칭 - "A METHOD AND SYSTEM FOR PRIVACY-PRESERVING RECOMMENDATION TO RATING CONTRIBUTING USERS BASED ON MATRIX FACTORIZATION"; 그리고 출원번호 제61/864098호 및 명칭 - "A METHOD AND SYSTEM FOR PRIVACY-PRESERVING RECOMMENDATION BASED ON MATRIX FACTORIZATION AND RIDGE REGRESSION" 의 이점 및 그 우선권을 주장한다. 부가적으로, 본 출원은 2013년 12월 19일자로 출원된 PCT 특허출원: 출원번호 PCT/US13/76353 및 명칭 - "A METHOD AND SYSTEM FOR PRIVACY PRESERVING COUNTING"; 및 2013년 3월 4일자로 출원된 미국 가특허 출원들: 출원번호 제61/772404호 및 명칭 - "PRIVACY-PRESERVING LINEAR AND RIDGE REGRESSION" 의 이점 및 그 우선권을 주장한다. 그 가출원 및 PCT 출원들은 모든 목적으로 본 명세서에 전부 참조로 명백하게 통합된다.
본 원리들은 프라이버시-보호 추천 시스템들 및 보안적 다중-당사자 계산에 관한 것이고, 상세하게는, 행렬 분해 및 리지 회귀에 기초하여 평가 기여 사용자들 및 비-기여 사용자들에게 추천들을 프라이버시-보호 및 블라인드 방식으로 제공하는 것에 관한 것이다.
지난 십년간 다량의 리서치 및 상업적 활동은 추천 시스템들의 광범위한 이용을 유도하였다. 그러한 시스템들은 영화, TV, 쇼, 음악, 서적, 호텔, 식당 등등과 같은 다수 종류들의 아이템들에 대한 개인화된 추천들을 사용자들에게 제공한다. 도 1 은 일반적인 추천 시스템 (100) 의 컴포넌트들: 즉, 사용자의 입력 (120) 및 출력 추천들 (140) 을 프로세싱하는 소스 및 추천자 시스템 (RecSys) (130) 을 나타내는 다수의 사용자들 (110) 을 도시한다. 유용한 추천들을 수신하기 위해, 사용자들은, 추천자가 이 데이터를 적절히 관리할 것임을 신뢰하여, 그 선호도들 (사용자의 입력들) 에 관한 실질적인 개인 정보를 공급한다.
그럼에도 불구하고, B. Mobasher, R. Burke, R. Bhaumik, 및 C. Williams: "Toward trustworthy recommender systems: An analysis of attack models and algorithm robustness.", ACM Trans.Internet Techn., 7(4), 2007, 및 E. A'imeur, G. Brassard, J. M. Fernandez, 및 F. S. M. Onana: "ALAMBIC: A privacy-preserving recommender system for electronic commerce", Int. Journal Inf. Sec, 7(5), 2008 에 의한 연구들과 같은 이전의 연구들은 추천자들이 그러한 정보를 남용하거나 사용자를 프라이버시 위협들에 노출시킬 수 있는 다수의 방법들을 식별하였다. 추천자들은 종종 수익을 위해 데이터를 전매하지만, 또한 사용자에 의해 의도적으로 누설된 것을 넘는 정보를 추출하도록 동기가 부여된다. 예를 들어, 영화 평가들 또는 사람의 TV 시청 이력과 같이 통상적으로 민감한 것으로 인지되지 않는 사용자의 선호도들의 레코드들 조차도 사용자의 정치적 소속, 성별 등을 추론하는데 사용될 수 있다. 추천 시스템에서의 데이터로부터 추론될 수 있는 비공개 (private) 정보는, 악의적이거나 선의적인 목적들을 위해, 새로운 데이터 마이닝 및 추론 방법들이 개발됨에 따라 계속 진화하고 있다. 극단적으로, 사용자 선호도들의 레코드들은 사용자를 훨씬 고유하게 식별하는데 사용될 수 있다: A. Naranyan 및 V. Shmatikov 는 "Robust de-anonymization of large sparse datasets", in IEEE S&P, 2008에서 Netflix 데이터세트를 익명해제함으로써 이것을 현저하게 입증하였다. 이에 따라, 비록 추천자가 악의적이 아니더라도, 그러한 데이터의 의도치않은 누설은 사용자들을 연계 공격(linkage attack)들, 즉, 일 데이터베이스를 보조 정보로서 이용하여 상이한 데이터베이스에서의 프라이버시를 타협시키는 공격에 민감하게 만든다.
장래의 추론 위협들, 우발적인 정보 누설, 또는 내부자 위협들 (고의적인 누설) 을 항상 예견할 수는 없기 때문에, 사용자들이 그 개인 데이터를 평문으로 누설하지 않는 추천 시스템을 형성하는 것에 관심이 있다. 본 출원과 동일자로 출원되고 "A METHOD AND SYSTEM FOR PRIVACY PRESERVING MATRIX FACTORIZARTION" 의 명칭인 본 발명자들에 의한 공동 계류중인 출원은 행렬 분해에 기초하여 프라이버시-보호 추천 시스템을 기술한다. 그것은 사용자에 의해 추천자 시스템에 제출된 평가들에 대해 동작하며, 이는 개별 사용자들의 평가들 또는 그 사용자들이 평가한 아이템들을 학습하지 않고도 아이템 레이트들을 프로파일링한다. 이는 사용자들이 아이템 프로파일들을 학습하는 추천자에게 동의함을 가정한다.
본 원리들은 더 강력한 프라이버시-보호 추천 시스템을 제안하며, 여기에서, 추천자 시스템은 사용자의 평가들 및 시스템이 평가하였던 아이템들에 관한 어떠한 정보도 학습하지 않으며 아이템 프로파일들에 관한 어떠한 정보도 또는 사용자 데이터로부터 추출된 어떠한 통계 정보도 학습하지 않는다. 따라서, 추천 시스템은, 제공하는 추천에 대해 완전히 블라인드이면서 평가들을 제공한 사용자들에게 추천들을 제공한다. 더욱이, 추천 시스템은, 리지 회귀를 채용함으로써 행렬 분해 동작에 원래 참여하지 않았던 새로운 사용자에게 추천들을 제공할 수 있다.
본 원리들은, 프라이버시-보호 방식으로, 행렬 분해로서 공지된 협력적 필터링 기술에 기초하여, 추천들을 보안적으로 제공하는 방법을 제안한다. 특히, 그 방법은 사용자들이 아이템들 (예를 들어, 영화, 서적) 에게 제공하였던 평가들을 입력들로서 수신하고, 사용자가 각각의 아이템에게 무슨 평가를 제공할 수 있는지를 예측하기 위해 후속적으로 사용될 수 있는 각각의 아이템 및 각각의 사용자에 대한 프로파일을 생성한다. 본 원리들은 행렬 분해에 기반한 추천자 시스템으로 하여금 사용자의 평가들, 어느 아이템을 사용자가 평가하였는지, 아이템 프로파일들, 또는 사용자 데이터로부터 추출된 임의의 통계 정보를 이제까지 학습하지 않고도 이 태스크를 수행하게 한다. 특히, 추천 시스템은, 제공하는 추천에 대해 완전히 블라인드이면서 이미 평가하지 않았던 아이템들을 어떻게 평가할지에 대한 예측들의 형태로, 평가들을 제공한 사용자들에게 추천들을 제공한다. 더욱이, 추천 시스템은, 리지 회귀를 채용함으로써 행렬 분해 동작에 원래 참여하지 않았던 새로운 사용자에게 추천들을 제공할 수 있다.
본 원리들의 일 양태에 따르면, 행렬 분해 및 리지 회귀를 통해 추천들을 보안적으로 생성하는 방법이 제공되며, 상기 방법은 레코드들의 제 1 세트를 수신하는 단계 (220) 로서, 각각의 레코드는 사용자들의 제 1 세트에서의 개별 사용자로부터 수신되고 (210) 토큰들의 세트 및 아이템들의 세트를 포함하며 각각의 레코드는 그 개별 사용자 이외의 당사자들로부터 비밀로 유지되는 (315), 상기 레코드들의 제 1 세트를 수신하는 단계; 행렬 분해에 기초하여 제 1 가블링된 (garbled) 회로를 이용함으로써 추천자 (RecSys) (230) 에서의 레코드들의 제 1 세트를 평가하는 단계 (355) 로서, 제 1 가블링된 회로의 출력은 레코드들의 상기 제 1 세트에서의 아이템들 모두에 대한 마스킹된 아이템 프로파일들을 포함하는, 상기 레코드들의 제 1 세트를 평가하는 단계; 적어도 하나의 특정 아이템에 대한 요청 사용자로부터 추천 요청을 수신하는 단계 (330); 및 리지 회귀에 기초하여 제 2 가블링된 회로를 사용함으로써 제 2 레코드 및 마스킹된 아이템 프로파일들을 요청 사용자에 의해 평가하는 단계를 포함하며, 제 2 가블링된 회로의 출력은 적어도 하나의 특정 아이템에 관한 추천들을 포함하고, 추천들은 오직 요청 사용자에게만 공지된다 (385). 그 방법은 레코드들의 제 1 세트에 대한 행렬 분해를 수행하도록 CSP 에서 제 1 가블링된 회로를 설계하는 단계 (340) 로서, 제 1 가블링된 회로 출력은 레코드들의 제 1 세트에서의 아이템들 모두에 대한 마스킹된 아이템 프로파일들을 포함하는, 상기 제 1 가블링된 회로를 설계하는 단계; 제 1 가블링된 회로를 RecSys 로 전송하는 단계 (345); 제 2 레코드 및 마스킹된 아이템 프로파일들에 대한 리지 회귀를 수행하도록 CSP 에서 제 2 가블링된 회로를 설계하는 단계 (365) 로서, 제 2 가블링된 회로 출력은 적어도 하나의 특정 아이템에 대한 추천들을 포함하는, 상기 제 2 가블링된 회로를 설계하는 단계; 및 제 2 가블링된 회로를 요청 사용자에게 전송하는 단계 (370) 를 더 포함할 수 있다. 이 방법에서 설계하는 단계들은 부울 회로로서 행렬 분해 동작을 설계하는 단계 (3402); 및 부울 회로로서 리지 회귀 동작을 설계하는 단계 (3652) 를 포함한다. 행렬 분해 회로를 설계하는 단계는 레코드들의 제 1 세트의 어레이를 구성하는 단계; 및 어레이에 대하여 소팅하는 동작 (420, 440, 470, 490), 복사하는 동작 (430, 450), 업데이트하는 동작 (470, 480), 비교하는 동작 (480), 및 그래디언트 기여들을 계산하는 동작 (460) 을 수행하는 단계를 포함한다. 그 방법은 CSP 에 의해 가블링된 회로들의 설계를 위한 파라미터들의 세트를 수신하는 단계를 더 포함할 수 있고, 그 파라미터들은 RecSys 에 의해 전송되었다 (335, 360).
본 원리들의 일 양태에 따르면, 그 방법은 암호화된 레코드들을 생성하기 위해 레코드들의 제 1 세트를 암호화하는 단계 (315) 를 더 포함할 수 있고, 여기서, 암호화하는 단계는 레코드들의 제 1 세트를 수신하는 단계 이전에 수행된다. 그 방법은 CSP 에서 공개 암호화 키들을 생성하는 단계; 및 그 키들을 개별 사용자들에게 전송하는 단계 (310) 를 더 포함할 수 있다. 암호화 방식은 부분 준동형 (homomorphic) 암호화일 수 있고 (310), 그 방법은 마스킹된 레코드들을 생성하기 위해 RecSys 에서 암호화된 레코드들을 마스킹하는 단계 (320); 및 암호해독된 마스킹된 레코드들을 생성하기 위해 CSP 에서 마스킹된 레코드들을 암호해독하는 단계 (325) 를 더 포함할 수 있다. 그 방법에서 설계하는 단계 (340) 는 암호해독된 마스킹된 레코드들을 프로세싱하기 전에 제 1 가블링된 회로 내부에서 탈마스킹(unmask)하는 단계를 더 포함할 수 있다. 그 방법은 CSP 와 RecSys 사이에서 (3502) 불확정 (oblivious) 전송들을 수행하는 단계 (350) 를 더 포함할 수 있고, 여기서, RecSys 는 암호해독된 마스킹된 레코드들의 가블링된 값들을 수신하고, 레코드들은 RecSys 및 CSP 로부터 비공개로 유지된다.
본 원리들의 일 양태에 따르면, 리지 회귀 회로를 설계하는 단계 (365) 는 요청 사용자로부터 마스킹된 아이템 프로파일들 및 제 2 레코드를 수신하는 단계 (3653); 마스킹된 아이템 프로파일들을 탈마스킹하고 토큰들, 아이템들 및 아이템 프로파일들을 포함하는 튜플(tuple)들의 어레이를 생성하는 단계로서, 대응하는 아이템 프로파일은 제 2 레코드로부터 각각의 토큰 및 아이템에 부가되는 (3654), 상기 튜플들의 어레이를 생성하는 단계; 요청 사용자 프로파일을 생성하기 위해 튜플들의 어레이에 대한 리지 회귀를 수행하는 단계 (3656); 및 요청 사용자 프로파일 및 적어도 하나의 특정 아이템 프로파일로부터 추천들을 계산하는 단계 (3658) 를 포함할 수 있다. 리지 회귀 동작을 위한 어레이를 생성하는 단계는 소팅 네트워크를 이용하여 수행될 수 있다 (3654). 그 방법은 요청 사용자, CSP 와 RecSys 사이에서 (3802) 프록시 불확정 전송들을 수행하는 단계 (380) 를 더 포함할 수 있고, 여기서, 요청 사용자는 마스킹된 아이템 프로파일들의 가블링된 값들을 수신하고, 마스킹된 아이템 프로파일들은 요청 사용자와 CSP 로부터 비공개로 유지된다.
본 원리들의 일 양태에 따르면, 그 방법은 각각의 레코드의 토큰들 및 아이템들의 수를 수신하는 단계를 더 포함할 수 있다 (220, 305, 330). 더욱이, 그 방법은 각각의 레코드의 토큰들의 수가 최대 값을 표현한 값보다 작을 경우 각각의 레코드에 널 엔트리들을 패딩하여 상기 값과 동일한 토큰들의 수를 갖는 레코드들을 생성하는 단계를 더 포함할 수 있다 (3052). 레코드들의 제 1 세트의 소스는 데이터베이스일 수 있으며, 제 2 레코드의 소스는 데이터베이스일 수 있다.
본 원리들의 일 양태에 따르면, 행렬 분해 및 리지 회귀를 통해 추천들을 보안적으로 생성하는 시스템이 제공되며, 그 시스템은, 각각의 레코드가 그 개별 사용자 이외의 당사자들로부터 비공개로 유지되도록, 레코드들의 개별 제 1 세트를 제공할 사용자들의 제 1 세트, 보안적 행렬 분해 및 리지 회귀 회로들을 제공할 암호-서비스 제공자 (CSP), 행렬 회로를 평가할 RecSys, 및 제 2 레코드를 제공하고 리지 회귀 회로를 평가할 요청 사용자를 포함하고, 여기서, 사용자들, CSP, 및 RecSys 각각은 적어도 하나의 입력/출력 (604) 을 수신하기 위한 프로세서 (602); 및 프로세서와 신호 통신하는 적어도 하나의 메모리 (606, 608) 를 포함하고, 여기서, RecSys 프로세서는 사용자들의 제 1 세트로부터 레코드들의 제 1 세트를 수신하는 것으로서, 각각의 레코드는 토큰들의 세트 및 아이템들의 세트를 포함하며 각각의 레코드는 그 개별 사용자 이외의 당사자들로부터 비밀로 유지되는, 상기 레코드들의 제 1 세트를 수신하고; 적어도 하나의 특정 아이템에 대한 요청을 요청 사용자로부터 수신하고; 행렬 분해에 기초하여 제 1 가블링된 회로를 이용함으로써 레코드들의 제 1 세트를 평가하는 것으로서, 제 1 가블링된 회로의 출력은 레코드들의 제 1 세트에서의 아이템들 모두에 대한 마스킹된 아이템 프로파일들을 포함하는, 상기 레코드들의 제 1 세트를 평가하도록 구성될 수 있으며, 여기서, 요청 사용자 프로세서는 리지 회귀에 기초하여 제 2 가블링된 회로를 사용함으로써 제 2 레코드 및 마스킹된 아이템 프로파일들을 평가하도록 구성될 수 있으며, 제 2 가블링된 회로의 출력은 적어도 하나의 특정 아이템에 관한 추천들을 포함하고, 추천들은 오직 요청 사용자에게만 공지된다. CSP 프로세서는 레코드들의 제 1 세트에 대한 행렬 분해를 수행하도록 제 1 가블링된 회로를 설계하는 것으로서, 제 1 가블링된 회로 출력은 레코드들의 제 1 세트에서의 아이템들 모두에 대한 마스킹된 아이템 프로파일들을 포함하는, 상기 제 1 가블링된 회로를 설계하고; 제 1 가블링된 회로를 RecSys 로 전송하고; 제 2 레코드 및 마스킹된 아이템 프로파일들에 대한 리지 회귀를 수행하도록 제 2 가블링된 회로를 설계하는 것으로서, 제 2 가블링된 회로 출력은 적어도 하나의 특정 아이템에 대한 추천들을 포함하는, 상기 제 2 가블링된 회로를 설계하며; 그리고 제 2 가블링된 회로를 요청 사용자에게 전송하도록 구성될 수 있다. 그 시스템에서의 CSP 프로세서는 부울 회로로서 행렬 분해 동작을 설계하고; 그리고 부울 회로로서 리지 회귀 동작을 설계하도록 구성됨으로써 가블링된 회로들을 설계하도록 구성될 수 있다. CSP 프로세서는 레코드들의 제 1 세트의 어레이를 구성하고; 어레이에 대하여 소팅하는 동작, 복사하는 동작, 업데이트하는 동작, 비교하는 동작, 및 그래디언트 기여들을 계산하는 동작을 수행하도록 구성됨으로써 행렬 분해 회로를 설계하도록 구성될 수 있다. 그 시스템에서의 CSP 프로세서는 추가로, 가블링된 회로들의 설계를 위한 파라미터들의 세트를 수신하도록 구성될 수 있으며, 여기서, 그 파라미터들은 RecSys 에 의해 전송되었다.
본 원리들의 일 양태에 따르면, 사용자들의 제 1 세트의 각각의 사용자 프로세서는 개별 레코드를 제공하기 전에 암호화된 레코드를 생성하도록 개별 레코드를 암호화하도록 구성될 수 있다. 그 시스템에서의 CSP 프로세서는 추가로, CSP 에서 공개 암호화 키들을 생성하고; 그 키들을 사용자들의 제 1 세트로 전송하도록 구성될 수 있다. 암호화 방식은 부분 준동형 암호화일 수 있고, RecSys 프로세서는 추가로, 마스킹된 레코드들을 생성하기 위해 암호화된 레코드들을 마스킹하도록 구성될 수 있으며, CSP 프로세서는 추가로, 암호해독된 마스킹된 레코드들을 생성하기 위해 마스킹된 레코드들을 암호해독하도록 구성될 수 있다. 그 시스템에서의 CSP 프로세서는 암호해독된 마스킹된 레코드들을 프로세싱하기 전에 제 1 가블링된 회로 내부에서 탈마스킹하도록 추가로 구성됨으로써 제 1 가블링된 회로를 설계하도록 구성될 수 있다. 그 시스템에서의 RecSys 프로세서 및 CSP 프로세서는 추가로, 불확정 전송들을 수행하도록 구성될 수 있으며, 여기서, RecSys 는 암호해독된 마스킹된 레코드들의 가블링된 값들을 수신하고, 레코드들은 RecSys 및 CSP 로부터 비공개로 유지된다. 그 시스템에서의 CSP 프로세서는 요청 사용자로부터 마스킹된 아이템 프로파일들 및 제 2 레코드를 수신하고; 마스킹된 아이템 프로파일들을 탈마스킹하고 토큰들, 아이템들 및 아이템 프로파일들을 포함하는 튜플들의 어레이를 생성하는 것으로서, 대응하는 아이템 프로파일은 제 2 레코드로부터 각각의 토큰 및 아이템에 부가되는, 상기 튜플들의 어레이를 생성하고; 요청 사용자 프로파일을 생성하기 위해 튜플들의 어레이에 대한 리지 회귀를 수행하고; 그리고 요청 사용자 프로파일 및 적어도 하나의 특정 아이템 프로파일로부터 추천들을 계산하도록 구성됨으로써 제 2 가블링된 회로를 설계하도록 구성될 수 있다. 그 시스템에서의 CSP 프로세서는 소팅 네트워크를 설계하도록 구성됨으로써 리지 회귀 동작을 위한 어레이를 생성하도록 구성될 수 있다. 요청 사용자 프로세서, RecSys 프로세서 및 CSP 프로세서는 추가로, 프록시 불확정 전송들을 수행하도록 구성될 수 있고, 요청 사용자는 마스킹된 아이템 프로파일들의 가블링된 값들을 수신하고, 마스킹된 아이템 프로파일들은 요청 사용자와 CSP 로부터 비공개로 유지된다.
본 원리들의 일 양태에 따르면, RecSys 프로세서는 추가로, 각각의 레코드의 토큰들의 수를 수신하도록 구성될 수 있으며, 토큰들의 수는 레코드의 소스에 의해 전송되었다. 사용자들의 제 1 세트에 대한 각각의 프로세서는, 각각의 레코드의 토큰들의 수가 최대 값을 표현한 값보다 작을 경우 각각의 개별 레코드에 널 엔트리들을 패딩하여 상기 값과 동일한 토큰들의 수를 갖는 레코드들을 생성하도록 구성될 수 있다. 레코드들의 제 1 세트의 소스는 데이터베이스일 수 있으며, 제 2 레코드의 소스는 데이터베이스일 수 있다.
본 원리들의 부가적인 특징들 및 이점들이, 첨부 도면들을 참조하여 실시되는 예시적인 실시예들의 다음의 상세한 설명으로부터 명백해질 것이다.
본 원리들은 하기에서 간략히 설명되는 다음의 예시적인 도면들에 따라 더 잘 이해될 수도 있다.
도 1 은 종래기술의 추천 시스템의 컴포넌트들을 도시한다.
도 2 는 본 원리들에 따른 추천 시스템의 컴포넌트들을 도시한다.
도 3 (3a, 3b, 3c, 3d) 은 본 원리들에 따른 프라이버시-보호 추천 방법의 플로우차트를 도시한다.
도 4 (4a, 4b, 4c) 는 본 원리들에 따른 예시적인 행렬 분해 알고리즘을 도시한다.
도 5 (A, B) 는 본 원리들에 따른 행렬 분해 알고리즘에 의해 구성된 데이터 구조 (S) 를 도시한다.
도 6 은 본 원리들을 구현하도록 활용된 컴퓨팅 환경의 블록 다이어그램을 도시한다.
본 원리들에 따르면, 프라이버시-보호 및 블라인드 방식으로, 행렬 분해로서 공지된 협력적 필터링 기술에 기초하여, 추천들을 보안적으로 수행하는 방법이 제공된다.
본 원리들의 방법은 레코드들의 코퍼스 (corpus) 에서의 아이템에 관한 추천을 행하기 위한 서비스로서 기능할 수 있으며, 각각의 레코드는 토큰들 및 아이템들의 세트를 포함한다. 그 세트 또는 레코드들은 1 초과의 레코드를 포함하고, 토큰들의 세트는 적어도 하나의 토큰을 포함한다. 당업자는, 상기 예에 있어서, 레코드가 사용자를 나타낼 수 있음; 토큰들이 레코드에서의 대응하는 아이템들에 대한 사용자의 평가들일 수 있음을 인식할 것이다. 토큰들은 또한 아이템들과 연관된 랭크들, 가중치들, 또는 측정치들을 나타낼 수 있으며, 아이템들은 사람들, 태스크들 또는 일들을 나타낸다. 예를 들어, 랭크들, 가중치들 또는 측정치들은 개인의 건강과 연관될 수 있으며, 연구자는 모집단의 건강 측정치들을 상관시키려고 시도하고 있다. 또는, 그것들은 개인의 생산성과 연관될 수 있으며, 회사는 이전 이력에 기초하여 특정 일들에 대한 스케줄들을 예측하려고 시도하고 있다. 하지만, 관련된 개인들의 프라이버시를 보장하기 위해, 서비스는 각각의 레코드의 콘텐츠들, 제공한 아이템 프로파일들, 또는 사용자 데이터 (레코드들) 로부터 추출된 임의의 통계 정보를 학습하지 않고 블라인드 방식으로 그렇게 하길 원한다. 특히, 서비스는 (a) 각각의 토큰/아이템이 어느 레코드들에 나타나는지, 또는 더 강력한 이유로, (b) 무슨 토큰들/아이템들이 각각의 레코드에 나타나는지, (c) 토큰들의 값들, 및 (d) 아이템 프로파일들, 또는 사용자 데이터로부터 추출된 임의의 통계 정보를 학습하지 않을 것이다. 더욱이, 서비스는, 리지 회귀를 채용함으로써 행렬 분해 동작에 원래 참여하지 않았던 새로운 사용자에게 추천들을 제공할 수 있다. 다음에 있어서, "프라이버시-보호", "비공개", 및 "보안적" 과 같은 용어들 및 단어들은 사용자에 의해 비공개로서 간주된 정보 (레코드) 가 오직 사용자에게만 공지됨을 나타내기 위해 상호대체가능하게 사용되며; 단어 "블라인드" 는 그 사용자 이외의 당사자들이 추천에 대해 역시 블라인드임을 나타내도록 사용된다.
프라이버시-보호하는 방식으로 행렬 분해를 수행하는 것과 연관된 수개의 난제들이 존재한다. 첫째, 프라이버시 관심사들을 다루기 위해, 행렬 분해는 사용자들의 평가들 또는 심지어 어느 아이템들을 사용자들이 평가했는지 조차도 이제까지 학습한 추천자없이 수행되어야 한다. 후자의 요건이 핵심이며: 이전의 연구들은, 심지어 어느 영화를 사용자가 평가했는지를 아는 것조차도 예를 들어 성별을 추론하는데 사용될 수 있음을 보여준다. 둘째, 그러한 프라이버시-보호 알고리즘은 효율적이어야 하고, 사용자들에 의해 제출된 평가들의 수로 완만하게 (예를 들어, 선형으로) 스케일해야 한다. 프라이버시 요건들은 행렬 분해 알고리즘이 데이터-불확정이어야 함: 그 실행은 사용자 입력에 의존하지 않아야 한다는 것을 암시한다. 더욱이, 행렬 분해에 의해 수행된 동작들은 비-선형이며; 따라서, 이들 제약들의 양자 모두 하에서 행렬 분해를 효율적으로 구현하는 방법이 선험적으로 분명하지 않다. 마지막으로, 실제의 실세계 시나리오에 있어서, 사용자들은 제한된 통신 및 계산 리소스들을 가지며, 사용자들이 그 데이터를 공급하지 않은 후 온라인으로 남겨지리라고 예상되지 않아야 한다. 대신, 추천 서비스로부터 온라인과 오프라인 사이를 전후로 이동하는 사용자들의 존재 시 동작할 수 있는 "전송 및 망각 (send and forget)" 타입 솔루션을 갖는 것이 바람직하다.
행렬 분해의 개관으로서, 표준 "협력적 필터링" 설정에 있어서, n명의 사용자들이 m개의 가능한 아이템들 (예를 들어, 영화) 의 서브세트를 평가한다. [n] := {1, ..., n} 사용자들의 세트, 및 [m] := {1, ..., m} 아이템들의 세트에 대해, 평가가 발생하였던 사용자/아이템 쌍을
Figure pct00001
에 의해 그리고 평가들의 총 수를
Figure pct00002
에 의해 표기한다. 마지막으로,
Figure pct00003
에 대해, 아이템 (j) 에 대한 사용자 (i) 에 의해 발생된 평가를
Figure pct00004
에 의해 표기한다. 실제 설정에 있어서, n 및 m 양자는 큰 수이고, 통상적으로, 104 와 106 사이에 이른다. 부가적으로, 제공된 평가들이 드물며, 즉, 잠재적인 평가들의 총 수 (n×m) 보다 훨씬 더 작은 M = 0(n + m) 이다. 이는, 각각의 사용자가 오직 유한한 수의 아이템들만을 ("카탈로그" 사이즈, m 에 의존하지 않음) 평가할 수도 있기 때문에, 통상적인 사용자 거동과 부합한다.
Figure pct00005
에서의 평가들이 주어지면, 추천자 시스템은
Figure pct00006
에서의 사용자/아이템 쌍들에 대한 평가들을 예측하길 원한다. 행렬 분해는 기존의 평가들에 이선형 (bi-linear) 모델을 피팅함으로써 이 태스크를 수행한다. 특히, 일부 작은 치수
Figure pct00007
에 대해,
Figure pct00008
하도록 벡터들
Figure pct00009
, 및
Figure pct00010
이 존재함이 가정되며, 여기서, εi,j 는 i.i.d.(독립 및 동일 분포) 가우시안 랜덤 변수들이다. 벡터들 ui 및 vj 은 각각 사용자 및 아이템 프로파일들로 지칭되며, <ui,vj> 는 벡터들의 내적이다. 사용된 표기는, 제 i 행이 사용자 (i) 의 프로파일을 포함하는 n×d 행렬에 대해
Figure pct00011
이고, 제 j 행이 아이템 (j) 의 프로파일을 포함하는 m×d 행렬에 대해
Figure pct00012
이다.
평가들
Figure pct00013
이 주어지면, 추천자는 통상적으로 다음의 정규화된 최소 제곱 최소화를 수행하는 프로파일들 (U 및 V) 을 계산한다: 어떤 양수 λ, μ > 0 에 대해,
Figure pct00014
당업자는, 프로파일들 (U 및 V) 에 대한 가우시안 선험(prior)들을 가정하면, 식 (2) 에서의 최소화는 U 및 V 의 최대 가능도 추정에 대응한다. 사용자 및 아이템 프로파일들을 가지면, 추천자는, 사용자 (i) 및 아이템 (j) 에 대해,
Figure pct00015
이도록 평가들
Figure pct00016
을 후속적으로 예측할 수 있음을 유의한다.
식 (2) 에서의 정규화된 평균 제곱 에러는 컨벡스 (convex) 함수가 아니고; 이 최소화를 수행하기 위한 수개의 방법들이 문헌에 제안되었다. 본 원리들은 실제로 사용된 인기있는 방법인 그래디언트 디센트 (gradient descent) 에 집중하고, 이는 다음과 같이 기술된다. 식 (2) 에서 정규화된 평균 제곱 에러를 F(U,V) 에 의해 표기하면, 그래디언트 디센트는 적응 룰을 통해 프로파일들 (U 및 V) 을 반복적으로 적응시킴으로써 동작한다:
Figure pct00017
여기서, γ>0 은 작은 이득 인자이며,
Figure pct00018
이며, 여기서, U(0) 및 V(0) 은 랜덤 놈 (norm) 1 행들로 이루어진다 (즉, 프로파일들이 놈 1 볼로부터 u.a.r.(uniformly at random) 로 선택됨).
본 원리들의 다른 양태는 소팅 네트워크들 및 Yao의 가블링된 회로들에 기반한 행렬 분해를 위한 보안적 다중-당사자 계산 (MPC) 을 제안하는 것이다. 보안적 다중-당사자 계산 (MPC) 은 처음에 1980년대에 A. Chi-Chih Yao 에 의해 제안되었다. Yao 의 프로토콜 (별칭: 가블링된 회로들) 은 보안적 다중-당사자 계산을 위한 일반적인 방법이다. V. Nikolaenko, U. Weinsberg, S. Ioannidis, M. Joye, D. Boneh, 및 N. Taft 에 의한 "Privacy-preserving Ridge Regression on Hundreds of millions of records", in IEEE S&P, 2013 로부터 개작된 그 변형에 있어서, 프로토콜은 n개의 입력 소유자들의 세트 사이에 이르고, ai 는 사용자 (i) (1 ≤ i ≤ n), 즉, f(a1, ..., an) 을 평가하길 원하는 평가자 및 제 3 자, 즉, 암호-서비스 제공자 (CSP) 의 비공개 입력을 표기한다. 프로토콜의 종단에서, 평가자는 f(a1, ..., an) 의 값을 학습하지만, 어떠한 당사자도 이 출력 값으로부터 누설된 것보다 더 많이 학습하지 않는다. 프로토콜은 함수 f 가 부울 회로로서, 예를 들어, OR, AND, NOT 및 XOR 게이트들의 그래프로서 표현될 수 있고 그리고 평가자 및 CSP 가 공모하지 않음을 요구한다.
Yao의 가블링된 회로들을 구현하는 최근의 다수의 프레임워크들이 존재한다. 범용 MPC 에 대한 상이한 접근법은 비밀 공유 방식들에 기반하고, 다른 접근법은 완전 준동형 암호화 (FHE) 에 기반한다. 비밀 공유 방식들이, 선형 시스템을 푸는 것, 선형 회귀, 및 옥션들과 같은 다양한 선형 대수 연산들을 위해 제안되었다. 비밀 공유는 계산의 워크로드를 동일하게 공유하고 다중의 라운드들에 걸쳐 통신하는 적어도 3개의 비-공모 온라인 당국들을 요구하고; 그들 중 어떠한 2개도 공모하지 않는 한, 그 계산은 보안적이다. 가블링된 회로들은 오직 2개의 비-공모 당국들, 및 평가자가 클라우드 서비스이고 암호-서비스 제공자 (CSP) 가 신뢰된 하드웨어 컴포넌트에서 구현되는 시나리오에 더 잘 적합되는 훨씬 더 적은 통신을 가정한다.
사용된 암호 프리미티브와 무관하게, 보안적 다중-당사자 계산을 위한 효율적인 알고리즘을 형성함에 있어서의 주요 난제는 알고리즘을 데이터-불확정 방식으로 구현하는 것이고, 즉, 그에 따라 실행 경로가 입력에 의존하지 않는다는 점이다. 일반적으로, 한정된 시간 (T) 에서 실행가능한 임의의 RAM 프로그램은 O(T^3) Turing 머신 (TM) 으로 변환될 수 있으며, 이 TM 은 수학적 계산을 위한 이상화된 모델로서 기능하기 위해 Alan Turing 에 의해 발명된 이론적 계산 머신이고 O(T^3) 는 복잡도가 T3 에 비례함을 의미한다. 부가적으로, 임의의 한정된 T시간 TM 은 사이즈 O(T log T) 의 회로로 변환될 수 있으며, 이는 데이터-불확정이다. 이는 임의의 한정된 T시간 실행가능 RAM 프로그램이 O(Τ^3 log T) 복잡도를 갖는 데이터-불확정 회로로 변환될 수 있음을 암시한다. 그러한 복잡도는 너무 높고 대부분의 어플리케이션들에서 금지된다. 효율적인 데이터-불확정 구현들이 공지되지 않은 알고리즘들의 조사는 W. Du 및 M. J. Atallah 에 의한 "Secure multi-party computation problems and their applications: A review and open problems", in New Security Paradigms Workshop, 2001 - 행렬 분해 문제는 넓게는 데이터 마이닝 요약 문제들의 카테고리에 들어감 - 에서 발견될 수 있다.
소팅 네트워크들은 소팅 병렬처리뿐 아니라 효율적인 하드웨어 구현을 가능케 하기 위해 원래 개발되었다. 이들 네트워크들은, 입력 시퀀스 (a1, a2, ..., an) 를 단조 증가 시퀀스 (a'1, a'2, ..., a'n) 로 소팅하는 회로들이다. 이들은 비교 및 교환 회로들과 함께 그 메인 빌딩 블록을 배선함으로써 구성된다. 수개의 작업들이 암호화 목적들로 소팅 네트워크들의 데이터-불확정성을 활용한다. 하지만, 암호화는 프라이버시를 항상 충분히 보장하지는 않는다. 상대가 암호화된 저장부에 대한 당신의 액세스 패턴들을 관측할 수 있으면, 그들은 당신의 무슨 어플리케이션들이 수행되고 있는지에 관한 민감한 정보를 여전히 학습할 수 있다. 불확정 RAM 은, 액세스되고 있을 때 메모리를 계속 셔플링함으로써; 이에 의해, 무슨 데이터가 액세스되고 있는지 또는 심지어 이전에 액세스되었던 때가 언제인지를 완전히 은닉함으로써 이 문제를 해결한다. 불확정 RAM 에 있어서, 소팅은 데이터-불확정 랜덤 순열을 생성하는 수단으로서 사용된다. 더 최근에, 이는 컨벡스 헐 (convex hull), 모든 최근접 이웃들, 및 가중된 세트 교차의 데이터-불확정 계산들을 수행하는데 사용되었다.
본 원리들의 다른 양태는, 행렬 분해 동작에 원래 참여하지 않았던 새로운 사용자에게 추천들을 제공하기 위해 추천 시스템이 리지 회귀를 채용하는 것이다. 리지 회귀는, 큰 수의 데이터 포인트들을 입력으로서 취하고 이들 포인트들을 통하여 가장 잘 피팅된 곡선을 찾는 알고리즘이다. 그 알고리즘은 다수의 머신-학습 알고리즘들에 대한 빌딩 블록이다. 미국 가특허출원번호 제61/772404호에 설명된 바와 같이, n개의 입력 변수들의 세트 (
Figure pct00019
) 및 출력 변수들의 세트 (
Figure pct00020
)가 주어지면, yi
Figure pct00021
f(xi) 이도록 함수 (
Figure pct00022
) 를 학습하는 문제가 회귀로서 공지된다.
선형 회귀는 f 가 선형 맵에 의해 잘 근사화된다는 전제에 기초한다, 즉, 어떤
Figure pct00023
에 대해,
Figure pct00024
이며, 여기서, (.)T 는 전치 연산을 나타낸다.
예측을 위한 그 분명한 이용을 넘어, 벡터 β = (βk)k= 1,...,d 는 y 가 얼마나 입력 변수들에 의존하는지를 드러낼 때 흥미롭다. 특히, 계수(βk) 의 부호는 출력에 대한 포지티브 또는 네거티브 상관 중 어느 하나를 나타내지만, 크기는 상대적인 중요도를 포착한다. 이들 계수들이 비교할만 하지만 또한 수치적 안정성을 위해, 입력들 (xi) 은 동일한 유한한 도메인 (예를 들어, [-1, 1]) 에 재스케일링된다.
벡터 (
Figure pct00025
) 를 계산하기 위해, 후자는
Figure pct00026
에 대한 다음의 이차 함수를 최소화함으로써 데이터에 피팅된다:
Figure pct00027
식 (7) 을 최소화하는 절차는 리지 회귀로 지칭되며; 목표 (F(β)) 는 페널티 항 (
Figure pct00028
) 을 통합하고, 이는 간결한 솔루션들을 선호한다. 직관적으로, λ = 0 에 대해, 최소화는 심플 최소 제곱 문제를 푸는 것에 대응한다. 양수 λ > 0 에 대해, 페널티 항은 높은 놈을 갖는 솔루션들을 페널티하며: 데이터를 동일하게 피팅하는 2개의 솔루션들 사이에서, 더 적은 큰 계수들을 갖는 하나가 바람직하다.
본 원리들은, 가중된 세트 교차에 근접하지만 가블링된 회로들을 통합하는 보안적 다중-당사자 소팅에 기초한 방법을 제안한다. 도 2 는 본 원리들에 따른, 프라이버시-보호 추천 시스템에서의 액터(actor)들을 도시한다. 액터들은 다음과 같다:
I. 추천자 시스템 (RecSys) (230), 블라인드 프라이버시-보호 행렬 분해 동작을 수행하는 엔터티. 특히, RecSys 는, 어느 영화를 평가하였는지, 무슨 평가가 주어졌는지, 또는 사용자들에 의해 획득되는 추천들을 포함한 사용자 데이터로부터 추출된 임의의 통계 정보 (평균, 아이템 프로파일 등) 를 포함하여 사용자들에 관하여 유용한 어떠한 것도 학습하지 않고도, 사용자 평가들에 대한 행렬 분해로부터 추출된 바와 같은 아이템 프로파일들 (V) 을 블라인드로 계산한다.
II. 암호-서비스 제공자 (CSP) (250), 이는 어느 영화를 평가하였는지, 무슨 평가가 주어졌는지, 또는 추천들을 포함한 사용자 데이터로부터 추출된 임의의 통계 정보 (평균, 아이템 프로파일 등) 를 포함하여 사용자들에 관하여 유용한 어떠한 것도 학습하지 않고도, 보안적 계산을 가능케 할 것이다.
III. 소스 A, 이는 사용자들의 세트 A (2102) 를 포함하는 하나 이상의 사용자들 (210) 로 이루어지고, 이 사용자들 각각은 아이템들의 세트 (220) 에 대한 평가들의 세트를 갖는다. 각각의 사용자 (i ∈ [n]) 는 행렬 분해를 통한 그 평가들 (
Figure pct00029
) 에 기초하여 아이템들의 프로파일링에 동의하지만, 그 평가들, 어느 아이템들을 평가하였는지, 및 사용자 데이터로부터 추출된 임의의 통계 정보 (평균, 아이템 프로파일 등) 를 포함하여 어떠한 것도 추천자에게 누설하기 원하지 않는다. 이들 사용자들은 추천들을 수용하기 원할 수도 있거나 원하지 않을 수도 있다. 예를 들어, 추천 시스템은 그 데이터에 대해 지불할 수도 있다. 균등하게, 소스 A 는 하나 이상의 사용자들 A 의 데이터를 포함하는 데이터베이스를 표현할 수도 있다.
IV. 소스 B, 이는 사용자들의 세트 B (2104) 를 포함하는 하나 이상의 사용자들 (210) 로 이루어지고, 이 사용자들 각각은 아이템들의 세트에 대한 평가들의 세트를 가지며, 각각은 다른 아이템들을 평가하는 레이트가 얼마인지에 대한 예측의 형태로 추천들을 수용하기 원한다. 각각의 사용자는 그 평가들, 어느 아이템들을 평가하였는지, 및 사용자 데이터로부터 추출된 임의의 통계 정보 (평균, 아이템 프로파일 등) 를 포함하여 어떠한 것도 추천자에게 누설하기 원하지 않는다. 세트 B 는 세트 A 와 중첩할 수도 있거나 중첩하지 않을 수도 있으며, 즉, 추천들을 획득하기 원하는 사용자는 행렬 분해 동작에 참여할 수도 있거나 참여하지 않을 수도 있다. 따라서, 세트 A 및 세트 B 는 분리형 (disjoint) 일 수도 있거나 아닐 수도 있다. 균등하게, 소스 B 는 하나 이상의 사용자들 B 의 데이터를 포함하는 데이터베이스를 표현할 수도 있다.
본 원리들에 따르면, RecSys 로 하여금 RecSys 또는 CSP 중 어느 하나도 추천들 (
Figure pct00030
) 을 포함하여 사용자들에 관한 어떠한 것도 학습하지 않으면서 행렬 분해를 실행하게 하는 프로토콜이 제안된다. 특히, 사용자의 평가들 또는 심지어 사용자가 실제로 어느 아이템들을 평가하였는지 중 어느 것도 학습하지 않을 것이고, 아이템 프로파일들 (V), 사용자 프로파일들 (U), 추천들, 또는 사용자 데이터로부터 추출된 임의의 통계 정보 중 어느 것도 학습하지 않을 것이다. 당업자는 추천자로 하여금 사용자 및 아이템 프로파일들을 학습하게 하는 프로토콜은 너무 많이 누설함을 명확히 인식할 것이고: 그러한 설계에 있어서, 추천자는 식 (3)에서의 내적으로부터 사용자의 평가들을 자명하게 추론할 수 있다. 그에 따라, 본 원리들은 추천자 및 CSP 가 사용자 프로파일들, 아이템 프로파일들, 또는 사용자 데이터로부터 추출된 임의의 통계 정보를 학습하지 않는 프라이버시-보호 프로토콜을 제안한다. 요컨대, 본 원리들은 완전히 블라인드 방식으로 동작들을 수행하고, 사용자들에 관한 또는 사용자 데이터로부터 추출된 어떠한 유용한 정보도 학습하지 않는다.
아이템 프로파일은, 아이템을 사용자들/레코드들의 세트의 평가들의 함수로서 정의하는 메트릭으로서 간주될 수 있다. 유사하게, 사용자 프로파일은, 사용자를 사용자들/레코드들의 세트의 평가들의 함수로서 정의하는 메트릭으로서 간주될 수 있다. 이러한 의미에서, 아이템 프로파일은 아이템의 승인/불승인의 측정치, 즉, 아이템의 특징들 또는 특성들의 반영이다. 그리고, 사용자 프로파일은 사용자의 호/불호의 측정치, 즉, 사용자의 성격의 반영이다. 큰 세트의 사용자들/레코드들에 기초하여 계산되면, 아이템 또는 사용자 프로파일은 아이템 또는 사용자의 독립적인 측정치로서 간주될 수 있다. 당업자는 아이템 프로파일들을 단독으로 학습함에 있어서 유용성이 존재함을 인식할 것이다. 첫째, 행렬 분해를 통해
Figure pct00031
에 아이템들을 내장시키는 것은 추천자로 하여금 유사도를 추론 (및 인코딩) 하게 하며: 그 프로파일들이 작은 유클리드 거리를 갖는 아이템들은 사용자에 의해 유사하게 평가된 아이템들이다. 그에 따라, 아이템 프로파일들을 학습하는 태스크는 추천들의 실제 태스크를 넘어 추천자에게 관심이 있다. 특히, 사용자들은, 소스가 데이터베이스인 경우일 수도 있기 때문에, 추천들을 수신할 필요가 없거나 수신하길 원하지 않을 수도 있다. 둘째, 아이템 프로파일들을 획득하였으면 트리비아 (trivia) 가 존재하며: 추천자는 사용자에 의한 어떠한 부가적인 데이터 누설없이도 관련 추천들을 제공하기 위해 그 아이템 프로파일들을 이용할 수 있다. 추천자는 V 를 사용자에게 전송할 수 있으며 (또는 공개적으로 방출함); 아이템 당 그 평가를 알면, 사용자 i 는 ui 에 대하여 식 (2) 를 풂으로써 그 (비공개) 프로파일 (ui) 을 추론할 수 있으며; 소정의 V 에 대해 (이는 분리가능 문제임), 각각의 사용자는 그 평가들에 대해 리지 회귀를 수행함으로써 그 프로파일을 획득할 수 있다. ui 및 V 를 가지면, 사용자는 식 (4) 를 통해 국부적으로 다른 아이템들에 대한 모든 그 평가들을 예측할 수 있다.
상기 논의된 시나리오들 중 양자는 추천자 또는 사용자들 중 어느 하나도 V 의 공개 방출을 반대하지 않는다고 가정한다. 간략화를 위해 뿐만 아니라 추천자에 대한 그러한 프로토콜의 유용성 때문에, "A METHOD AND SYSTEM FOR PRIVACY PRESERVING MATRIX FACTORIZARTION" 의 명칭으로 본 출원과 동일자로 출원된 본 발명자들에 의한 공동-계류중인 출원은 추천자로 하여금 아이템 프로파일들을 학습하게 한다. 본 원리들은 이 설계를 확장하여, 추천자가 블라인드 방식으로 동작을 수행하고 사용자들에 관한 어떠한 유용한 정보도 심지어 V 도 학습하지 않으면서 그 예측된 평가들을 학습하게 하고 그리고 행렬 분해에 평가들을 제공하지 않은 사용자도 또한 추천을 획득하게 한다.
본 원리들에 따르면, 보안 보장이 정직하지만 기이한 위협 모델 하에서 유지된다고 가정된다. 즉, RecSys 및 CSP 는 규정된 바와 같은 프로토콜들을 따르지만, 이들 관심있는 당사자들은 일부 부가적인 정보를 추론하기 위하여 심지어 오프라인이라도 프로토콜 트랜스스크립트들을 분석하도록 선택할 수도 있다. 추천자 및 CSP 는 공모하지 않는다고 추가로 가정된다.
이들 원리들의 선호된 실시형태는 도 3 에 있어서의 그리고 다음의 단계들에 의해 기술된 플로우차트 (300) 를 만족하는 프로토콜을 포함한다.
P1. 소스 A 는 RecSys 에게, 얼마나 많은 쌍의 토큰들 (평가들) 및 아이템들이 각각의 참여 레코드에 대해 제출될 예정인지를 리포트한다 (305). 그 세트 또는 레코드들은 1 초과의 레코드를 포함하고, 레코드 당 토큰들의 세트는 적어도 하나의 토큰을 포함한다. 소스가 사용자들의 세트이면, 각각의 사용자는 RecSys 에게, 토큰들 및 아이템들의 그 개별 개수를 개별적으로 리포트한다.
P2. CSP 는 부분 준동형 방식에 대한 공개 암호화 키 (ξ) 를 생성하고, 모든 사용자들 (소스 A) 에게 전송한다 (310). 당업자는 준동형 암호화는, 특정 타입의 계산들이 암호문에 대해 수행되게 하고 그리고 암호해독된 암호화 결과가 평문에 대해 수행된 연산들의 결과와 매칭함을 획득하게 하는 암호화의 형태임을 인식할 것이다. 예를 들어, 사람들 중 어느 누구도 개별 수들의 값을 찾을 수 없어도, 한 사람이 2개의 암호화 수들을 부가할 수 있고, 그 후, 다른 사람이 그 결과를 암호해독할 수 있다. 부분 준동형 암호화는 평문들에 대한 하나의 연산 (가산 또는 승산) 에 대해 준동형이다. 부분 준동형 암호화는 스칼라에 대한 가산 및 승산에 대해 준동형일 수도 있다. 소스 A 가 사용자들의 세트이면, 각각의 사용자는 RecSys 에게, 토큰들 및 아이템들의 그 개별 개수를 개별적으로 리포트한다.
P3. 세트 A 에서의 각각의 사용자는 그 키 (315) 를 이용하여 그 데이터를 암호화한다. 특히, 모든 쌍 (j, ri,j) 에 대해 (여기서, j 는 아이템 id 이고 ri,j 는 사용자 (i) 가 j 에 주어진 평가이고, 사용자는 공개 암호화 키를 이용하여 이 쌍을 암호화한다. 세트 A 에서의 각각의 사용자는 그 암호화된 데이터를 RecSys 로 전송한다.
P4. RecSys 는 암호화된 데이터에 마스크 (η) 를 부가하고, 암호화되고 마스킹된 데이터를 CSP 로 전송한다 (320). 당업자는 마스크는 데이터 난도화의 형태이고, 랜덤수 발생기 또는 셔플링만큼 단순할 수 있음을 이해할 것이다.
P5. CSP 는 암호화되고 마스킹된 데이터를 암호해독한다 (325).
P6. RecSys 는 모든 아이템들의 코퍼스에서의 적어도 하나의 특정 아이템에 대한 추천 요청들을 적어도 하나의 요청 사용자들로부터 수신한다 (330). 각각의 요청 사용자는 세트 B 에 속하고, 단계 P1 에서의 레코드들을 제공할 수도 있거나 제공하지 않을 수도 있다. 추천들을 요청하는 요청 사용자들이 엄격히 세트 A 로부터 비롯하면, 대안적인 프로토콜이 본 출원과 동일자로 출원되고 "A METHOD AND SYSTEM FOR PRIVACY-PRESERVING RECOMMENDATION TO RATING CONTRIBUTING USERS BASED ON MATRIX FACTORIZATION" 의 명칭인 본 발명자들에 의한 공동 계류중인 출원에서와 같이 진행한다. 각각의 요청 사용자는 RecSys 에게, 얼마나 많은 아이템들을 사용자가 평가했는지, 즉, Mi 를 리포트한다.
P7. Recsys 는, 사용자 및 아이템 프로파일들의 치수 (즉, 파라미터 d), 평가들의 총 수 (즉, 파라미터 M), 세트 A 에서의 사용자의 총 수, 및 가블링된 회로에서의 실수의 정수부 및 분수부를 나타내는데 사용된 비트들의 수를 포함하여, 제 1 가블링된 회로를 형성하는데 필요한 완전한 사양들 CSP 에 전송한다 (335).
P8. CSP 는 레코드들에 대해 매트릭스 분해를 수행하는 가블링된 회로로서 당업자에게 공지된 것을 준비한다 (340). 가블링되기 위해, 회로는 먼저 부울 회로로서 기입된다 (3402). 회로에 대한 입력은 RecSys 가 사용자 데이터를 마스킹하는데 사용된 마스크들을 포함한다. 회로 내에서, 마스크는 데이터를 탈마스킹하고 그 후 행렬 분해를 수행하는데 사용된다. 회로의 출력은 V, 즉, 아이템 프로파일들이다. CSP 는 또한, 아이템 (j) 당 하나씩 랜덤한 마스크들 (ρj) 을 선택한다. 이들은 각각의 아이템 (j) 의 프로파일을 은닉하는데 사용될 것이다. 아이템 프로파일들 (V) 을 평문으로 출력하는 대신, CSP 에 의해 구성된 회로는 마스크들 (ρj) 로 마스킹된 아이템 프로파일들 (vj) 을 출력한다. 어떠한 개별 레코드의 그리고 레코드들로부터 추출된 어떠한 정보의 내용들에 관한 어떠한 지식도 얻지 않는다.
P9. CSP 는 행렬 분해에 대한 가블링된 회로를 RecSys 로 전송한다 (345).
구체적으로, CSP 는 가블링된 테이블들로의 게이트들을 프로세싱하고, 회로 구조에 의해 정의된 순서로 RecSys 에 송신한다.
P10. RecSys 와 CSP 사이의 (3502) 불확정 전송 (350) 을 통해, RecSys 는, 그 자체 또는 CSP 가 실제 값들을 학습하지 않고도, 암호해독되고 마스킹된 레코드들의 가블링된 값들을 학습한다. 당업자는 플레인 (plain) 불확정 전송은 전송기가 잠재적으로 다수 피스들의 정보 중 하나를 수신기로 전송하는 전송의 타입이며 이는 무슨 피스 (존재한다면) 가 전송되었는지에 관해 불확정상태로 남겨짐을 이해할 것이다. 프록시 불확정 전송은 3 이상의 당사자들이 관련되는 불확정 전송이다.
P11. RecSys 는 마스킹된 아이템 프로파일들을 출력하는 제 1 회로를 평가하고 그 프로파일들을 CSP 로 전송한다 (355).
P12. RecSys 는 CSP 에게 수치 Mi 를 통지하고, 제 2 가블링된 회로에 대한 사양을 제공한다. 대부분의 파라미터들은, 사용자 및 아이템 프로파일들의 치수 (즉, 파라미터 d), 및 가블링된 회로에서의 실수의 정수부 및 분수부를 나타내는데 사용된 비트들의 수를 포함하여, 제 1 가블링된 회로에서의 파라미터들을 복제할 것이다 (360).
P13. 그 후, CSP 는, 사용자에게 관심있는 특정 아이템들에 대한 추천들을 발생하기 위해 요청 사용자 평가들 및 마스킹된 아이템 프로파일들에 대한 리지 회귀를 수행하는 제 2 가블링된 회로를 준비한다 (365). 가블링되기 위해, 회로는 먼저 부울 회로로서 기입된다 (3652). 회로는 다음과 같은 태스크들을 수행한다:
a. 사용자에 의해 평가된 각각의 아이템 (w) 에 대해, 입력으로서, Mi 개의 평가들 (w, ri,w) 뿐 아니라 마스킹된 아이템 프로파일들 (vj + ρj) 을 요청 사용자 (i) 로부터 수신한다 (3652).
b. 사용자에 의해 평가된 각각의 아이템 (w) 에 대해, 사용자 (i) 의 Mi 개의 쌍들 (w, ri,w) 모두에 대하여, 아이템 프로파일들을 탈마스킹하고 튜플들 (w, ri,w, vw) 의 어레이에 배치한다 (3654). 이는 다음과 같은 단계들에 의해 수행된다:
i. 사용자에 의해 평가된 각각의 아이템 (w) 에 대해, 사용자 (i) 의 Mi 개의 쌍들 (w, ri,w) 모두 이후에, 모든 탈마스킹된 아이템 프로파일들 (vj) 을 어레이에 배치한다.
ii. 소팅 네트워크를 이용하여, 이 어레이를 아이템 프로파일들에 대하여 소팅하여, 소팅의 종료 시에, 각각의 쌍 (w, ri,w) 직후에 대응하는 프로파일 (vw) 이 옴을 보장한다.
iii. 우측으로부터 좌측으로 선형 패스를 수행하여, 회로는 각각의 아이템의 탈마시킹된 프로파일 (vw) 을 대응하는 튜플 (w, ri,w) 에 복사한다.
iv. 소팅 네트워크를 이용하여, 회로는 아이템 프로파일들로부터 이들 평가 튜플들을 분리하여, 복사되었던 아이템과 함께, 평가들이 이제 어레이의 첫번째 M개의 포지션들을 점유한다.
그 후, 회로는 평가들 및 그 개별 아이템 프로파일들에 걸쳐 리지 회귀를 수행하도록 진행하여,
Figure pct00032
에 대한 솔루션인 사용자 프로파일 (ui) 를 계산하며 (3656), 식 (8) 은 필요한 치환들을 행함으로써 식 (7) 으로부터 도출될 수 있다. 이는, 미국 가특허출원 제61/772404호에서와 같이, 리지 회귀를 수행하는 회로를 이용하여 계산될 수 있다.
d. 이러한 프로파일 (ui) 및 탈마스킹된 아이템 프로파일 (vj) 을 이용하여, 회로는 관심있는 모든 특정 아이템 (j) 에 대해, 예측된 평가들 (
Figure pct00033
) 을 계산한다 (3658).
P14. CSP 는 이 회로를 세트 B 에서의 요청 사용자 (i) 로 포워딩한다 (370).
P15. 요청 사용자 (i) 와 CSP 사이의 (3752) 불확정 전송 (375) 을 통해, 사용자는 그 입력들 (j, ri,j) 에 대응하는 가블링된 값들을 획득한다.
P16. 요청 사용자 (i), RecSys, 및 CSP 사이의 (3802) 프록시 불확정 전송 (380) 을 통해, 사용자는 마스킹된 아이템 프로파일들 (vj + ρj) 에 대응하는 가블링된 값들을 획득한다. 특히, 이러한 프록시 불확정 전송에 있어서, RecSys 는 마스킹된 아이템 프로파일들을 제공하고, 요청 사용자는 마스킹된 아이템 프로파일의 가블링된 값들을 수신하며, CSP 는 프록시로서 작용하지만, 어떠한 당사자도 아이템 프로파일들을 학습하지 않고 오직 RecSys 만이 마스킹된 아이템 프로파일들을 안다.
P17. 요청 사용자는 회로를 평가하여, 관심있는 모든 아이템들의 예측된 평가들을 출력으로서 획득한다 (385).
상기 구성은 세트 A 에 있을 수도 있고 있지 않을 수도 있는 세트 B 에서의 사용자들에 대해 작동하며, 즉, 사용자들은 행렬 분해 동작에 대한 그 평가들을 제출하였을 수도 있거나 제출하지 않았을 수도 있다.
기술적으로, 이 프로토콜은 각각의 사용자에 의해 제공된 토큰들의 수를 누설한다. 이는, 예를 들어, 미리설정된 최대 수 (312) 에 도달할 때까지 적절한 "널" 엔트리들로 제출된 레코드들을 "패딩"함으로써, 단순한 프로토콜 변형을 통해 수정될 수 있다. 간략화를 위해, 프로토콜은 이러한 "패딩" 동작 없이 설명되었다.
가블링된 회로들이 오직 1회만 사용될 수 있기 때문에, 동일한 평가들에 대한 임의의 장래의 계산은, 프록시 불확정 전송을 통해 그 데이터를 다시 제출하도록 사용자들에게 요구할 것이다. 이러한 이유로, 본 원리들의 프로토콜은 공개 키 암호화를 가블링된 회로들과 결합한 하이브리드 접근법을 채택하였다.
본 원리들에 있어서, 공개 키 암호화는 다음과 같이 이용된다: 각각의 사용자 (i) 는 공개 키 (pkCSP) 하의 그 개별 입력들 (j,ri,j) 을 암호화 알고리즘 (ξpkCSP) 으로 암호화하고, 평가된 각각의 아이템 (j) 에 대해, 사용자는 c = ξpkCSP(j,ri,j) 인 쌍 (i,c) 을 RecSys 에 제출하며, 여기서, M개의 평가들이 전부 제출된다. 그 평가들을 제출한 사용자는 오프라인으로 갈 수 있다.
CSP 공개 키 암호화 알고리즘은 부분 준동형이며: 즉, 상수가 대응하는 암호해독 키의 지식없이 암호화된 메시지에 적용될 수 있다. 명백하게, Paillier 또는 Regev 와 같은 부가적으로 준동형 방식이 또한 상수를 부가하기 위해 사용될 수 있지만, 오직 부분적으로 준동형인 해시-ElGamal 은 충분하며 이 경우 더 효율적으로 구현될 수 있다.
사용자들로부터 M개의 평가들을 수신 할 시 - 암호화가 부분적으로 준동형임을 상기함 -, RecSys 는 이들을 랜덤 마스크들 (
Figure pct00034
= c
Figure pct00035
η) 로 모호하게 하며, 여기서, η 는 랜덤 또는 의사-랜덤 변수이고
Figure pct00036
는 XOR 연산이다. RecSys 는 이들을, 가블링된 회로를 형성하는데 필요한 완전한 사양들과 함께 CSP 에게 전송한다. 특히, Recsys 는, 사용자 및 아이템 프로파일들의 치수 (즉, 파라미터 d), 평가들의 총 수 (즉, 파라미터 M), 그리고 사용자들 및 아이템들의 총 수 뿐 아니라, 가블링된 회로에서의 실수의 정수부 및 분수부를 나타내는데 사용된 비트들의 수를 명시한다.
RecSys 가 M개의 누적된 평가들에 걸쳐 행렬 분해를 수행하길 원할 때마다, M 을 CSP 로 리포트한다. CSP 는, (a) 입력들을 암호해독하고 그 후 (b) 행렬 분해를 수행하는 가블링 회로를 RecSys 에 제공할 수도 있다. V. Nikolaenko, U. Weinsberg, S. Ioannidis, M. Joye, D. Boneh, 및 N. Taft 에 의한 "Privacy-preserving ridge regression on hundreds of millions of records", in IEEE S&P, 2013 에 있어서, 회로 내의 암호해독은 마스크들 및 준동형 암호화를 사용함으로써 회피된다. 본 원리들은 행렬 분해에 대한 이러한 아이디어를 활용하지만, 오직 부분 준동형 암호화 방식만을 요구한다.
암호화들을 수신할 시, CSP 는 이들을 암호해독하고, 마스킹된 값들 (i,(j, ri,j)
Figure pct00037
η) 을 획득한다. 그 후, 행렬 분해를 청사진으로서 사용하여, CSP 는 Yao의 가블링된 회로를 준비하여,
(a) 입력으로서, 마스크들 (η) 에 대응하는 가블링된 값들을 입력으로서 취한다;
(b) 마스크들 (η) 을 제거하여 대응하는 튜플들 (i,j,ri,j) 을 복원한다;
(c) 행렬 분해를 수행한다; 그리고
(d)
Figure pct00038
로 마스킹된 아이템 프로파일들 (
Figure pct00039
) 을 출력한다.
식 (4) 및 식 (5) 에 나타낸 그래디언트 디센트 동작들에 의한 행렬 분해의 계산은 실수들의 가산들, 감산들, 및 승산들을 수반한다. 이들 연산들은 회로에서 효율적으로 구현될 수 있다. 그래디언트 디센트 (4) 의 K회 반복들은 K 회로 "계층들" 에 대응하고, 각각은 선행하는 계층에서의 값들로부터 프로파일들의 새로운 값들을 계산한다. 회로의 출력들은 아이템 프로파일들 (V) 이지만 사용자 프로파일들은 폐기된다.
당업자는, 동작들이 평문으로, 예를 들어, RAM 모델로 수행될 경우, 그래디언트 디센트의 각각의 반복을 계산하는 시간 복잡도가 O(M) 임을 관측할 것이다. 각각의 그래디언트 (5) 의 계산은 2M 항들을 가산하는 것을 수반하고, 프로파일 업데이트들 (4) 은 O(n+m) = O(M) 으로 수행될 수 있다.
그래디언트 디센트를 회로로서 구현함에 있어서의 주요 난제는 그렇게 효율적으로 수행하는데 있다. 이를 예시하기 위해, 다음의 순수한 구현을 고려할 수도 있다:
Q1. 각각의 쌍 (i, j) ∈ [n] × [m] 에 대해, 입력으로부터, i 가 j 를 평가하였으면 1 이고 그렇지 않으면 0 인 표시자들
Figure pct00040
을 계산하는 회로를 생성한다.
Q2. 각각의 반복에서, 이들 회로들의 출력들을 사용하여, m 과 n 곱들에 대한 합산으로서 각각의 아이템 및 사용자 그래디언트를 각각 계산하며, 여기서,
Figure pct00041
이다.
불행히도, 이러한 구현은 비효율적이며: 그래디언트 디센트 알고리즘의 모든 반복은 O(n×m) 의 회로 복잡도를 가질 것이다. M << n×m 일 경우, 이는 실제로 통상적인 경우이기 때문에, 상기 회로는 평문으로의 그래디언트 디센트보다 훨씬 덜 효율적이다. 사실, 이차 비용 O(n×m) 은 대부분의 데이터세트들에 대해 엄청나다.
순수한 구현의 비효율성은 어느 사용자들이 아이템을 평가하는지 및 회로 설계 시에 어느 아이템이 사용자에 의해 평가되는지를 식별하는 것에 대한 불능으로부터 발생하여, 데이터에서의 고유의 희박성을 레버리징할 능력을 완화시킨다.
역으로, 본 원리들의 선호된 실시형태에 따르면, 회로 구현은 복잡도가 O((n + m + M)log2(n + m + M))인 소팅 네트워크들에 기초하여, 즉, 평문으로의 구현의 대중대수 인자 내에서 제공된다.
요컨대, 튜플들 (i,j,ri,j) 에 대응하는 입력 데이터, 및 사용자 및 아이템 프로파일들 양자에 대한 플레이스홀더들 (⊥) 양자가 어레이에 함께 저장된다. 적절한 소팅 동작들을 통해, 사용자 또는 아이템 프로파일들이 식별자를 공유하는 입력 근방에 배치될 수 있다. 데이터를 통한 선형 패스들은 그래디언트들의 계산뿐 아니라 프로파일들의 업데이트들을 허용한다. 소팅할 경우, 플레이스홀더는 +∞, 즉, 어떠한 다른 수보다 더 큰 수로서 처리된다.
본 원리들의 선호된 실시형태에 따른 그리고 도 4 의 플로우차트 (400) 를 충족하는 행렬 분해 알고리즘은 다음의 단계들에 의해 설명될 수 있다:
C1. 행렬 (S) 을 초기화함 (410)
알고리즘은 입력으로서, 세트들
Figure pct00042
또는 등가적으로 튜플들
Figure pct00043
을 수신하고, 튜플들의 n + m + M 어레이를 구성한다. S 의 첫번째 n 및 m 튜플들은 각각 사용자 및 아이템 프로파일들에 대한 플레이스홀더들로서 기능하지만, 나머지 M 튜플들은 입력들 (Li) 을 저장한다. 더 구체적으로, 각각의 사용자 (i ∈ [n]) 에 대해, 알고리즘은 튜플 (i,⊥,0,⊥,ui,⊥) 을 구성하고, 여기서,
Figure pct00044
는 랜덤하게 선택된 사용자 (i) 의 초기 프로파일이다. 각각의 아이템 (j ∈ [m]) 에 대해, 알고리즘은 튜플 (⊥,j,0,⊥,⊥,vj,⊥) 을 구성하고, 여기서,
Figure pct00045
는 랜덤하게 또한 선택된 아이템 (j) 의 초기 프로파일이다. 마지막으로, 각각의 쌍
Figure pct00046
에 대해, 알고리즘은 대응하는 튜플 (i,j,1,ri,j,⊥,⊥) 을 구성하고, 여기서, ri,j 는 아이템 (j) 에 대한 사용자 (i) 의 평가이다. 결과적인 어레이는 도 5(A)에 도시된 바와 같다. k번째 튜플의
Figure pct00047
번째 엘리먼트를
Figure pct00048
에 의해 표기하여, 이들 엘리먼트들은 다음의 역할들을 제공한다:
(a) s1,k : [n] 에서의 사용자 식별자들;
(b) s2,k : [m] 에서의 아이템 식별자들;
(c) s3,k : 튜플이 "프로파일" 튜플인지 또는 "입력" 튜플인지를 표시하는 바이너리 플래그;
(d) s4,k : "입력" 튜플들에서의 평가들;
(e) s5,k :
Figure pct00049
에서의 사용자 프로파일들;
(f) s6,k :
Figure pct00050
에서의 아이템 프로파일들.
C2. 사용자 id들에 대하여 (1행 및 3행에 대하여) 증가 차순으로 튜플들을 소팅함 (420). 2개의 id들이 동일하면, 튜플 플래그들, 즉, 각각의 튜플에서의 제 3 엘리먼트들을 비교함으로써 타이를 차단한다. 따라서, 소팅 이후, 각각의 "사용자 프로파일" 튜플이 동일한 id 를 갖는 "입력" 튜플들에 뒤따른다.
C3. 사용자 프로파일들 (좌측 패스) 을 복사함 (430):
Figure pct00051
C4. 아이템 id들에 대하여 (2행 및 3행에 대하여) 증가 차순으로 튜플들을 소팅함 (440). 2개의 id들이 동일하면, 튜플 플래그들, 즉, 각각의 튜플에서의 제 3 엘리먼트들을 비교함으로써 타이를 차단한다.
C5. 아이템 프로파일들 (좌측 패스) 을 복사함 (450):
Figure pct00052
C6. ∀k<M 에 대해 그래디언트 기여들을 계산함 (460):
Figure pct00053
C7. 아이템 프로파일들 (우측 패스) 을 업데이트함 (470):
Figure pct00054
C8. 1행 및 3행에 대하여 튜플들을 소팅함 (475).
C9. 사용자 프로파일들 (우측 패스) 을 업데이트함 (480):
Figure pct00055
C10. 반복들의 횟수가 K 미만이면, C3 으로 이동 (485).
C11. 3행 및 2행에 대하여 튜플들을 소팅함 (490).
C12. k = 1, ..., m 에 대해 아이템 프로파일들 (s6,k) 을 출력함 (495), 여기서, 그 출력은 적어도 하나의 아이템 프로파일로 제한될 수도 있음.
그래디언트 디센트 반복들은 다음의 3개의 주요 단계들을 포함한다:
A. 프로파일들의 복사: 각각의 반복에서, 각각의 개별 사용자 (i) 및 각각의 아이템 (j) 의 프로파일들 (ui 및 vj) 은 i 및 j 가 나타나는 각각의 "입력" 튜플의 대응하는 엘리먼트들 (s5,k 및 s6,k) 에 복사된다. 이는 알고리즘의 C2 내지 C5 에서 구현된다. 예를 들어, 사용자 프로파일들을 복사하기 위해, S 는 프라이머리 인덱스로서 사용자 id (즉, s1,k) 및 세컨더리 인덱스로서 플래그 (즉, s3,k) 를 이용하여 소팅된다. S 의 초기 상태에 적용된 그러한 소팅의 예는 도 5(B)에서 발견될 수 있다. 후속하여, 사용자 id들은, 알고리즘의 단계 C3 에서 공식적으로 설명된 바와 같이, 어레이를 좌측으로부터 우측으로 ("좌측" 패스) 횡단함으로써 복사된다. 이는 s5,k을 각각의 "프로파일" 튜플로부터 그 인접한 "입력" 튜플들로 복사하고; 아이템 프로파일들은 유사하게 복사된다.
B. 그래디언트 기여들의 계산: 프로파일들이 복사된 이후, 예를 들어 (i, j) 에 대응하는 각각의 "입력" 튜플은, 마지막 반복에서 계산된 바와 같이, (각각, s5,k 및 s6,k 에서의) 프로파일들 (ui 및 vj) 뿐 아니라 (s4,k 에서의) 평가 (ri,j) 를 저장한다. 이들로부터, 다음의 양들이 계산된다: vj(r i,j - <u i ,v j >) 및 ui(r i,j - <u i ,v j >), 이는 식 (5) 에서 주어진 바와 같이, ui 및 vj 에 대한 그래디언트들에서의 튜플의 "기여" 로서 보일 수 있다. 이들은, 알고리즘의 단계 C6 에 의해 나타낸 바와 같이, 튜플의 s5,k 및 s6,k 엘리먼트들을 대체한다. 플래그들의 적절한 이용을 통해, 이러한 동작은 오직 "입력" 튜플들에만 영향을 주고, "프로파일" 튜플들을 변경없이 남겨둔다.
C. 프로파일들의 업데이트: 마지막으로, 알고리즘의 단계들 C7 내지 C9 에 나타낸 바와 같이, 사용자 및 아이템 프로파일들이 업데이트된다. 적절한 소팅을 통해, "프로파일" 튜플들은 id 를 공유하는 "입력" 튜플들에 다시 인접하게 된다. 업데이트된 프로파일들은 어레이의 우측에서 좌측으로의 횡단 ("우측 패스") 을 통해 계산된다. 이러한 동작은, "입력" 튜플들을 횡단함에 따라, 그래디언트들의 기여들을 부가한다. "프로파일" 튜플을 조우할 시, 합산된 그래디언트 기여들이 적절하게 스케일링된 프로파일에 부가된다. 프로파일을 전달한 이후, 그래디언트 기여들의 합산이, 플래그들 (s3,k,s3,k +1) 의 적당한 이용을 통해, 제로로부터 재시작한다.
상기 동작들은 K회, 즉, 그래디언트 디센트의 바람직한 반복의 횟수만큼 반복될 것이다. 마지막으로, 마지막 반복의 종료 시, 어레이는 프라이머리 인덱스로서 플래그들 (즉, s3,k) 및 세컨더리 인덱스로서 아이템 id들 (즉, s2,k) 에 대하여 소팅된다. 이는 모든 아이템 프로파일 튜플들을 어레이의 첫번째 m개 포지션들로 가져오고, 이로부터, 아이템 프로파일들이 출력될 수 있다. 더욱이, 사용자 프로파일들을 획득하기 위해, 마지막 반복의 종료 시, 어레이는 프라이머리 인덱스로서 플래그들 (즉, s3,k) 및 세컨더리 인덱스로서 사용자 id들 (즉, s1,k) 에 대하여 소팅된다. 이는 모든 사용자 프로파일 튜플들을 어레이의 첫번째 n개 포지션들로 가져오고, 이로부터, 사용자 프로파일들이 출력될 수 있다.
당업자는 상기 동작들의 각각이 데이터-불확정형이고 회로로서 구현될 수 있음을 인식할 것이다. 프로파일들을 복사하고 업데이트하는 것은 (n + m + M)개의 게이트들을 요구하여, 전체 복잡도는, 예를 들어, Batcher의 회로를 이용하여, O((n + m + M)log2(n + m + M)) 비용을 산출하는 소팅에 의해 결정된다. 알고리즘의 단계 C6 에서의 소팅 및 그래디언트 계산은 가장 계산 집약적인 동작들이며; 다행히, 양자는 고도로 병렬처리 가능하다. 부가적으로, 소팅은 각각의 반복에서의 이전에 계산된 비교들을 재사용함으로써 더 최적화될 수 있다. 특히, 이 회로는, 이전에 설명된 바와 같이, 구현이 가블링되게 하는 부울 회로로서 (예를 들어, OR, AND, NOT 및 XOR 게이트들의 그래프로서) 구현될 수있다.
본 원리들에 따르면, 이전에 설명된 프로토콜과 함께 상기 설명된 행렬 분해 알고리즘의 구현은 추천을 위한 새로운 방법을 프라이버시-보호 방식으로 제공한다. 부가적으로, 이러한 솔루션은, 소팅 네트워크들을 사용함으로써 평문으로 수행된 행렬 분해의 대중대수 인자 내의 복잡도를 갖는 회로를 산출한다. 더욱이, 이러한 구현의 부가적인 이점은 이 회로의 가블링 및 실행이 고도로 병렬처리 가능하다는 점이다.
본 원리들에 따른 시스템의 구현에 있어서, 가블링된 회로 구성은 FastGC, 즉, 공개적으로 입수가능한 가블링된 회로 프레임워크에 기초하였다. FastGC 는 자바 기반 오프 소스 프레임워크이며, 이는 기본 XOR, OR 및 AND 게이트들을 이용하여 회로 정의를 가능케 한다. 일단 회로들이 구성되면, 프레임워크는 가블링된 회로의 가블링, 불확정 전송 및 완전한 평가를 핸들링한다. 하지만, 회로를 가블링 및 실행하기 전, FastGC 는 메모리에서의 전체 가블링되지않은 회로를 자바 오브젝트들의 세트로서 표현한다. 이들 오브젝트들은, 게이트들이 오직 서브세트만이 임의의 시점에서 가블링되고/되거나 실행되기 때문에, 가블링되지않은 회로가 도입하는 메모리 풋프린트에 대한 현저한 메모리 오버헤드를 초래한다. 더욱이, 비록 FastGC 가 상기 설명된 바와 같이 실행 프로세스와 병렬로 가블링을 수행하더라도, 양자의 동작들은 순차적인 방식으로 발생한다: 즉, 게이트들은, 일단 그 입력들이 준비되면 한번에 하나씩 프로세싱된다. 당업자는, 이러한 구현이 병렬처리에 잘 따르지 못함을 명백하게 인식할 것이다.
결과적으로, 프레임워크는 이들 2가지 쟁점들을 다루도록 변형되었다: 즉, FastGC 의 메모리 풋프린트를 감소시키는 것뿐만 아니라 다중의 프로세서들에 걸친 병렬처리화된 가블링 및 계산을 가능케 하는 것. 특히, 회로를 수평적으로 순차적인 "계층들"로 파티셔닝하기 위한 능력을 도입하였고, 각각의 계층은 병렬로 실행될 수 있는 일련의 수직 "슬라이스들" 을 포함한다. 계층은 그 입력들 모두가 준비될 때에만 메모리에 생성된다. 일단 가블링되고 평가되면, 전체 계층이 메모리로부터 제거되며, 다음의 계층이 구성되고, 따라서, 메모리 풋프린트를 최대 계층의 사이즈로 제한할 수 있다. 계층의 실행은, 그 슬라이스들을 스레드들로 할당하여 병렬로 구동할 수 있게 하는 스케줄러를 이용하여 수행된다. 비록 병렬처리화가 다중의 코어들을 갖는 단일 머신 상에서 구현되었지만, 그 구현은, 슬라이스들 사이에 어떠한 공유된 상태도 가정되지 않기 때문에, 상이한 머신들에 걸쳐 단순한 방식으로 구동하도록 확장될 수 있다.
마지막으로, 알고리즘에서 약술된 수치적 동작들을 구현하기 위해, FastGC 는 소팅뿐 아니라, 고정 소수점 수 표현을 갖는 실수들에 걸친 가산 및 승산들을 지원하도록 확장되었다. 소팅을 위해, Batcher의 소팅 네트워크가 사용되었다. 고정 소수점 표현은 절단으로부터 야기된 정확도 손실과 회로의 사이즈 간의 트레이드오프를 도입하였다.
더욱이, 알고리즘의 구현은 다중의 방식들로 최적화되었는데, 특히:
(a) 회로의 실행의 시작부에서 계산된 비교들을 재사용함으로써 소팅의 비용을 감소하였다:
소팅 네트워크의 기본 빌딩 블록은, 2개의 아이템들을 비교하고 필요하다면 그들을 교환하여 출력 쌍이 순서화되는 비교 및 교환 회로이다. 행렬 분해의 소팅 동작들 (라인들 C4 및 C8) 은, 반복 당 정확하게 동일한 입력들을 사용하여, K회의 그래디언트 디센트 반복들의 각각에서 튜플들 간의 동일한 비교들을 수행한다. 사실, 각각의 소팅은, 각각의 반복에서, 어레이 (S) 에서의 튜플들을 정확하게 동일한 방식으로 치환한다. 이러한 특성은 이들 소팅들의 각각에 대한 비교 동작들을 오직 1회 수행함으로써 활용된다. 특히, 형태 (i, j, 플래그, 평가) 의 튜플들의 소팅들은, 예를 들어, i 및 플래그 먼저, j 및 플래그, 다시 i 및 플래그에 대하여, (사용자 또는 아이템 프로파일들의 페이로드없이) 계산의 시작부에서 수행된다. 후속하여, 비교 회로들의 출력들은 그래디언트 디센트 동안 사용된 교환 회로들에 대한 입력으로서 이들 소팅들의 각각에서 재사용된다. 결과적으로, 각각의 반복에서 적용된 "소팅" 네트워크는 어떠한 비교들도 수행하지 않지만, 간단히 튜플들을 치환한다 (즉, 이는 "치환" 네트워크임).
(b) 어레이 (S) 의 사이즈를 감소하였다:
모든 비교들을 사전계산하는 것은 또한, S 에서의 튜플들의 사이즈를 과감히 감소하게 한다. 우선, 당업자는 사용자 또는 아이템 id들에 대응하는 행들이 소팅 동안 비교들에 대한 입력으로서 행렬 분해 알고리즘에서만 사용됨을 관측할 수 있다. 플래그들 및 평가들은 복사 및 업데이트 단계들 동안에 사용되지만, 그 상대적인 포지션들은 각각의 반복에서 동일하다. 더욱이, 이들 포지션들은 계산의 시작부에서의 튜플들 (i, j, 플래그, 평가) 의 소팅의 출력들로서 계산될 수 있다. 그에 따라, 각각의 반복에서 수행된 "치환" 동작들은 오직 사용자 및 아이템 프로파일들에만 적용될 필요가 있으며; 모든 다른 행들은 어레이 (S) 로부터 제거될 수 있다. 하나의 더 많은 개선은, 프로파일들, 예를 들어, 사용자들의 일 세트를 고정하고 오직 아이템 프로파일들만을 치환하기 위하여, 치환의 비용을 2 의 가산 인자만큼 감소한다. 그 후, 아이템 프로파일들은 2개의 상태들 사이를 회전하고, 각각의 상태는 치환을 통해 다른 상태로부터 도달가능하며: 즉, 사용자 프로파일들과 정렬되고 부분 그래디언트들이 계산되는 일 상태, 및 아이템 프로파일들이 업데이트 및 복사되는 일 상태.
(c) XOR들을 사용함으로써 교환 동작들을 최적화하였다:
XOR 연산들이 "프리"하게 실행될 수 있으면, 비교, 교환, 업데이트 및 복사 동작들의 최적화는 가능할 때마다 XOR들을 이용함으로써 수행된다. 당업자는 프리-XOR 게이트들은, 계산 및 통신에 있어서의 마킹된 개선을 표현하는 관련 가블링된 테이블들 및 대응하는 해싱 또는 대칭 키 동작들 없이도 가블링될 수 있다.
(d) 계산들을 병렬처리하였다:
소팅 및 그래디언트 계산들은 행렬 분해 회로에서의 계산의 대부분을 구성하며 (복사 및 업데이트는 실행 시간의 3% 및 비-xor 게이트들의 0.4% 이하에 기여함); 이들 동작들은 FastGC 의 이러한 확장을 통해 병렬처리된다. 그래디언트 계산들은 명백히 병렬처리 가능하며; 소팅 네트워크들은 또한 고도로 병렬처리 가능하다 (병렬처리는 그 개발 이면의 주요 동인임). 더욱이, 각각의 부류에서의 다수의 병렬 슬라이스들은 동일하기 때문에, 회로 슬라이스들을 정의하는 동일한 FastGC 오브젝트들은 상이한 입력들로 재사용되어, 메모리에서 오브젝트들을 반복적으로 생성 및 파괴할 필요성을 현저히 감소시킨다.
본 원리들은 하드웨어, 소프트웨어, 펌웨어, 특수목적 프로세서들, 또는 이들의 조합의 다양한 형태들로 구현될 수도 있음을 이해해야 한다. 바람직하게, 본 원리들은 하드웨어와 소프트웨어의 조합으로서 구현된다. 더욱이, 소프트웨어는 프로그램 저장 디바이스 상에서 유형으로 구현되는 어플리케이션 프로그램으로서 바람직하게 구현된다. 어플리케이션 프로그램은, 임의의 적합한 아키텍처를 포함하는 머신에 업로딩되고 그 머신에 의해 실행될 수도 있다. 바람직하게, 머신은 하나 이상의 중앙 프로세싱 유닛들 (CPU), 랜덤 액세스 메모리 (RAM), 및 입력/출력 (I/O) 인터페이스(들)와 같은 하드웨어를 갖는 컴퓨터 플랫폼 상에 구현된다. 컴퓨터 플랫폼은 또한, 오퍼레이팅 시스템 및 마이크로 명령 코드를 포함한다. 본 명세서에서 설명된 다양한 프로세스들 및 기능들은 마이크로 명령 코드의 부분이거나 어플리케이션 프로그램의 부분 (또는 이들의 조합) 일 수도 있으며, 이는 오퍼레이팅 시스템을 통해 실행된다. 부가적으로, 부가적인 데이터 저장 디바이스 및 프린팅 디바이스와 같은 다양한 다른 주변기기 디바이스가 컴퓨터 플랫폼에 접속될 수도 있다.
도 6 은 본 원리들을 구현하도록 이용된 최소 컴퓨팅 환경 (600) 의 블록 다이어그램을 도시한다. 컴퓨팅 환경 (600) 은 프로세서 (610) 및 적어도 하나의 (바람직하게는, 1 초과의) I/O 인터페이스 (620) 를 포함한다. I/O 인터페이스는 유선 또는 무선일 수 있으며, 무선 구현에 있어서, 컴퓨팅 환경 (600) 으로 하여금 글로벌 네트워크 (예를 들어, 인터넷) 상에서 동작하게 하고 다른 컴퓨터들 또는 서버들 (예를 들어, 클라우드 기반 컴퓨팅 또는 저장 서버들) 과 통신하게 하여 본 원리들이 예를 들어 최종 사용자들에게 원격으로 제공된 SAAS (as a Software as a Service) 특징으로 제공되도록 하는 적절한 무선 통신 프로토콜로 사전 구성된다. 하나 이상의 메모리들 (630) 및/또는 저장 디바이스들 (HDD) (640) 이 또한 컴퓨팅 환경 (600) 내에서 제공된다. 컴퓨팅 환경 (600) 또는 복수의 컴퓨터 환경들 (600) 은 본 원리들의 일 실시형태에 따른 행렬 분해 (C1 - C12) (도 4) 를 위한 프로토콜 (P1 - P17) (도 3) 을 구현할 수도 있다. 특히, 본 원리들의 실시형태에 있어서, 컴퓨팅 환경 (600) 은 RecSys (230) 를 구현할 수도 있고; 별도의 컴퓨팅 환경 (600) 은 CSP (250) 를 구현할 수도 있고, 소스는 하나 또는 복수의 컴퓨터 환경들 (600) 을 포함할 수도 있으며, 각각은, RecSys (230) 및 CSP (250) 와 통신하는데 이용되는 데스크탑 컴퓨터들, 셀룰러 전화기들, 스마트 폰들, 전화기 시계들, 태블릿 컴퓨터들, 개인용 디지털 보조기 (PDA), 노트북들 및 랩탑 컴퓨터들을 포함하지만 이에 한정되지 않는 별개의 사용자 (210) 와 연관된다. 부가적으로, CSP (250) 는 소스에 포함되고, 또는 등가적으로, 소스의 각각의 사용자 (210) 의 컴퓨터 환경에 포함될 수 있다.
첨부 도면들에 도시된 성분 시스템 컴포넌트들 및 방법 단계들 중 일부가 바람직하게 소프트웨어에서 구현되기 때문에, 시스템 컴포넌트들 (또는 프로세스 단계들) 간의 실제 접속들은 본 원리들이 프로그래밍되는 방식에 의존하여 상이할 수도 있음이 더 이해된다. 본 명세서에 교시들이 주어지면, 당업자는 본 원리들의 이러한 및 유사한 구현들 또는 구성들을 고려할 수 있을 것이다.
비록 예시적인 실시형태들이 첨부 도면들을 참조하여 본 명세서에서 설명되었지만, 본 원리들은 그 정확한 실시형태들로 한정되지 않으며 다양한 변경들 및 변형들이, 본 원리들의 범위 또는 사상으로부터 일탈함없이 당업자에 의해 그 안에서 실시될 수도 있음을 이해해야 한다. 모든 그러한 변경들 및 변형들은, 첨부된 청구항들에 기재된 바와 같은 본 원리들의 범위 내에 포함되도록 의도된다.

Claims (32)

  1. 행렬 분해 및 리지 회귀를 통해 추천들을 보안적으로 발생하는 방법으로서,
    레코드들의 제 1 세트를 수신하는 단계 (220) 로서, 각각의 레코드는 사용자들의 제 1 세트에서의 개별 사용자로부터 수신되고 (210) 토큰들의 세트 및 아이템들의 세트를 포함하고, 각각의 레코드는 상기 개별 사용자 이외의 당사자들로부터 비밀로 유지되는 (315), 상기 레코드들의 제 1 세트를 수신하는 단계;
    행렬 분해에 기초하여 제 1 가블링된 회로를 이용함으로써 (355) 추천자 (RecSys) 에서 상기 레코드들의 제 1 세트를 평가하는 단계 (230) 로서, 상기 제 1 가블링된 회로의 출력은 상기 레코드들의 제 1 세트에서의 아이템들 모두에 대한 마스킹된 아이템 프로파일들을 포함하는, 상기 레코드들의 제 1 세트를 평가하는 단계;
    적어도 하나의 특정 아이템에 대한 추천 요청을 요청 사용자로부터 수신하는 단계 (330); 및
    리지 회귀에 기초하여 제 2 가블링된 회로를 이용함으로써 제 2 레코드 및 상기 마스킹된 아이템 프로파일들을 상기 요청 사용자에 의해 평가하는 단계로서, 상기 제 2 가블링된 회로의 출력은 상기 적어도 하나의 특정 아이템에 관한 추천들을 포함하고, 상기 추천들은 오직 상기 요청 사용자에 의해서만 알려지는 (385), 상기 제 2 레코드 및 상기 마스킹된 아이템 프로파일들을 평가하는 단계를 포함하는, 추천들을 보안적으로 발생하는 방법.
  2. 제 1 항에 있어서,
    상기 레코드들의 제 1 세트에 대한 행렬 분해를 수행하도록 CSP 에서 상기 제 1 가블링된 회로를 설계하는 단계 (340) 로서, 상기 제 1 가블링된 회로의 출력은 상기 레코드들의 제 1 세트에서의 아이템들 모두에 대한 마스킹된 아이템 프로파일들을 포함하는, 상기 제 1 가블링된 회로를 설계하는 단계;
    상기 제 1 가블링된 회로를 상기 RecSys 로 전송하는 단계 (345);
    상기 제 2 레코드 및 상기 마스킹된 아이템 프로파일들에 대한 리지 회귀를 수행하도록 상기 CSP 에서 상기 제 2 가블링된 회로를 설계하는 단계 (365) 로서, 상기 제 2 가블링된 회로의 출력은 상기 적어도 하나의 특정 아이템에 대한 추천들을 포함하는, 상기 제 2 가블링된 회로를 설계하는 단계; 및
    상기 제 2 가블링된 회로를 상기 요청 사용자에게 전송하는 단계 (370) 를 더 포함하는, 추천들을 보안적으로 발생하는 방법.
  3. 제 2 항에 있어서,
    상기 설계하는 단계들은,
    부울 회로로서 행렬 분해 동작을 설계하는 단계 (3402); 및
    부울 회로로서 리지 회귀 동작을 설계하는 단계 (3652) 를 포함하는, 추천들을 보안적으로 발생하는 방법.
  4. 제 3 항에 있어서,
    행렬 분해 회로를 설계하는 단계는,
    상기 레코드들의 제 1 세트의 어레이를 구성하는 단계; 및
    상기 어레이에 대하여 소팅하는 동작 (420, 440, 470, 490), 복사하는 동작 (430, 450), 업데이트하는 동작 (470, 480), 비교하는 동작 (480), 및 그래디언트 기여들을 계산하는 동작 (460) 을 수행하는 단계를 포함하는, 추천들을 보안적으로 발생하는 방법.
  5. 제 2 항에 있어서,
    암호화된 레코드들을 생성하기 위해 상기 레코드들의 제 1 세트를 암호화하는 단계 (315) 를 더 포함하고,
    상기 암호화하는 단계는 상기 레코드들의 제 1 세트를 수신하는 단계 이전에 수행되는, 추천들을 보안적으로 발생하는 방법.
  6. 제 5 항에 있어서,
    상기 CSP 에서 공개 암호화 키들을 발생하는 단계; 및
    상기 키들을 상기 개별 사용자들에게 전송하는 단계 (310) 를 더 포함하는, 추천들을 보안적으로 발생하는 방법.
  7. 제 5 항에 있어서,
    상기 암호화는 부분 준동형 암호화이고 (310),
    상기 추천들을 보안적으로 발생하는 방법은,
    마스킹된 레코드들을 생성하기 위해 상기 RecSys 에서 상기 암호화된 레코드들을 마스킹하는 단계 (320); 및
    암호해독된 마스킹된 레코드들을 생성하기 위해 상기 CSP 에서 상기 마스킹된 레코드들을 암호해독하는 단계 (325) 를 포함하는, 추천들을 보안적으로 발생하는 방법.
  8. 제 7 항에 있어서,
    상기 설계하는 단계 (340) 는,
    상기 암호해독된 마스킹된 레코드들을 프로세싱하기 전에 상기 제 1 가블링된 회로 내부에서 상기 암호해독된 마스킹된 레코드들을 탈마스킹(unmask)하는 단계를 포함하는, 추천들을 보안적으로 발생하는 방법.
  9. 제 7 항에 있어서,
    상기 CSP 와 상기 RecSys 사이에서 (3502) 불확정 (oblivious) 전송들을 수행하는 단계 (350) 를 더 포함하고,
    상기 RecSys 는 상기 암호해독된 마스킹된 레코드들의 가블링된 값들을 수신하고, 상기 레코드들은 상기 RecSys 및 상기 CSP 로부터 비공개로 (private) 유지되는, 추천들을 보안적으로 발생하는 방법.
  10. 제 3 항에 있어서,
    리지 회귀 회로를 설계하는 단계 (365) 는,
    상기 요청 사용자로부터 상기 마스킹된 아이템 프로파일들 및 상기 제 2 레코드를 수신하는 단계;
    상기 마스킹된 아이템 프로파일들을 탈마스킹하고 토큰들, 아이템들 및 아이템 프로파일들을 포함하는 튜플들의 어레이를 생성하는 단계로서, 대응하는 아이템 프로파일은 상기 제 2 레코드로부터 각각의 토큰 및 아이템에 부가되는 (3654), 상기 튜플들의 어레이를 생성하는 단계;
    요청 사용자 프로파일을 발생하기 위해 상기 튜플들의 어레이에 대한 리지 회귀를 수행하는 단계 (3656); 및
    상기 요청 사용자 프로파일 및 적어도 하나의 특정 아이템 프로파일로부터 추천들을 계산하는 단계 (3658) 를 포함하는, 추천들을 보안적으로 발생하는 방법.
  11. 제 10 항에 있어서,
    상기 어레이를 생성하는 단계는 소팅 네트워크를 이용하여 수행되는 (3654), 추천들을 보안적으로 발생하는 방법.
  12. 제 1 항에 있어서,
    상기 요청 사용자, CSP 와 상기 RecSys 사이에서 (3802) 프록시 불확정 전송들을 수행하는 단계 (380) 를 더 포함하고,
    상기 요청 사용자는 상기 마스킹된 아이템 프로파일들의 가블링된 값들을 수신하고, 상기 마스킹된 아이템 프로파일들은 상기 요청 사용자와 상기 CSP 로부터 비공개로 유지되는, 추천들을 보안적으로 발생하는 방법.
  13. 제 1 항에 있어서,
    각각의 레코드의 토큰들 및 아이템들의 수를 수신하는 단계 (220, 305, 330) 를 더 포함하는, 추천들을 보안적으로 발생하는 방법.
  14. 제 1 항에 있어서,
    각각의 레코드의 토큰들의 수가 최대 값을 표현한 값보다 작을 경우 각각의 레코드에 널 엔트리들을 패딩하여 상기 값과 동일한 토큰들의 수를 갖는 레코드들을 생성하는 단계 (3052) 를 더 포함하는, 추천들을 보안적으로 발생하는 방법.
  15. 제 1 항에 있어서,
    상기 레코드들의 제 1 세트의 소스는 데이터베이스일 수 있고, 상기 제 2 레코드의 소스는 데이터베이스일 수 있는, 추천들을 보안적으로 발생하는 방법.
  16. 제 2 항에 있어서,
    상기 CSP 에 의해 가블링된 회로들의 설계를 위한 파라미터들의 세트를 수신하는 단계를 더 포함하고,
    상기 파라미터들은 상기 RecSys 에 의해 전송되었던 (335, 360), 추천들을 보안적으로 발생하는 방법.
  17. 행렬 분해 및 리지 회귀를 통해 추천들을 보안적으로 발생하는 시스템으로서,
    상기 시스템은, 각각의 레코드가 그 개별 사용자 이외의 당사자들로부터 비공개로 유지되도록, 레코드들의 개별 제 1 세트를 제공할 사용자들의 제 1 세트, 제 1 회로 및 제 2 회로에서 보안적 행렬 분해 회로 및 리지 회귀 회로를 제공할 암호-서비스 제공자 (CSP), 상기 행렬 분해 회로를 평가할 RecSys, 및 제 2 레코드를 제공하고 상기 리지 회귀 회로를 평가할 요청 사용자를 포함하고,
    상기 사용자들, 상기 CSP, 및 상기 RecSys 각각은,
    적어도 하나의 입력/출력 (604) 을 수신하기 위한 프로세서 (602); 및
    상기 프로세서와 신호 통신하는 적어도 하나의 메모리 (606, 608) 를 포함하고,
    RecSys 프로세서는,
    사용자들의 제 1 세트로부터 레코드들의 제 1 세트를 수신하는 것으로서, 각각의 레코드는 토큰들의 세트 및 아이템들의 세트를 포함하며 각각의 레코드는 상기 개별 사용자 이외의 당사자들로부터 비밀로 유지되는, 상기 레코드들의 제 1 세트를 수신하고;
    적어도 하나의 특정 아이템에 대한 요청을 요청 사용자로부터 수신하고;
    행렬 분해에 기초하여 제 1 가블링된 회로를 이용함으로써 상기 레코드들의 제 1 세트를 평가하는 것으로서, 상기 제 1 가블링된 회로의 출력은 상기 레코드들의 제 1 세트에서의 아이템들 모두에 대한 마스킹된 아이템 프로파일들을 포함하는, 상기 레코드들의 제 1 세트를 평가하도록
    구성되고,
    요청 사용자 프로세서는,
    리지 회귀에 기초하여 제 2 가블링된 회로를 이용함으로써 제 2 레코드 및 상기 마스킹된 아이템 프로파일들을 평가하는 것으로서, 상기 제 2 가블링된 회로의 출력은 상기 적어도 하나의 특정 아이템에 관한 추천들을 포함하고, 상기 추천들은 오직 상기 요청 사용자에 의해서만 알려지는, 상기 제 2 레코드 및 상기 마스킹된 아이템 프로파일들을 평가하도록 구성되는, 추천들을 보안적으로 발생하는 시스템.
  18. 제 17 항에 있어서,
    CSP 프로세서는,
    상기 레코드들의 제 1 세트에 대한 행렬 분해를 수행하도록 상기 제 1 가블링된 회로를 설계하는 것으로서, 상기 제 1 가블링된 회로의 출력은 상기 레코드들의 제 1 세트에서의 아이템들 모두에 대한 마스킹된 아이템 프로파일들을 포함하는, 상기 제 1 가블링된 회로를 설계하고;
    상기 제 1 가블링된 회로를 상기 RecSys 로 전송하고;
    상기 제 2 레코드 및 상기 마스킹된 아이템 프로파일들에 대한 리지 회귀를 수행하도록 상기 제 2 가블링된 회로를 설계하는 것으로서, 상기 제 2 가블링된 회로의 출력은 상기 적어도 하나의 특정 아이템에 대한 추천들을 포함하는, 상기 제 2 가블링된 회로를 설계하며; 그리고
    상기 제 2 가블링된 회로를 상기 요청 사용자에게 전송하도록
    구성되는, 추천들을 보안적으로 발생하는 시스템.
  19. 제 18 항에 있어서,
    상기 CSP 프로세서는,
    부울 회로로서 행렬 분해 동작을 설계하고; 그리고
    부울 회로로서 리지 회귀 동작을 설계하도록
    구성됨으로써 가블링된 회로들을 설계하도록 구성되는, 추천들을 보안적으로 발생하는 시스템.
  20. 제 19 항에 있어서,
    상기 CSP 프로세서는,
    상기 레코드들의 제 1 세트의 어레이를 구성하고; 그리고
    상기 어레이에 대하여 소팅하는 동작, 복사하는 동작, 업데이트하는 동작, 비교하는 동작, 및 그래디언트 기여들을 계산하는 동작을 수행하도록
    구성됨으로써 상기 행렬 분해 회로를 설계하도록 구성되는, 추천들을 보안적으로 발생하는 시스템.
  21. 제 18 항에 있어서,
    상기 사용자들의 제 1 세트의 각각의 사용자 프로세서는,
    개별 레코드를 제공하기 전에 암호화된 레코드를 생성하기 위해 상기 개별 레코드를 암호화하도록 구성되는, 추천들을 보안적으로 발생하는 시스템.
  22. 제 21 항에 있어서,
    상기 CSP 프로세서는 추가로,
    상기 CSP 에서 공개 암호화 키들을 발생하고; 그리고
    상기 키들을 상기 사용자들의 제 1 세트로 전송하도록
    구성되는, 추천들을 보안적으로 발생하는 시스템.
  23. 제 21 항에 있어서,
    상기 암호화는 부분 준동형 암호화이고,
    상기 RecSys 프로세서는 추가로,
    마스킹된 레코드들을 생성하기 위해 상기 암호화된 레코드들을 마스킹하도록 구성되고,
    상기 CSP 프로세서는 추가로,
    암호해독된 마스킹된 레코드들을 생성하기 위해 상기 마스킹된 레코드들을 암호해독하도록 구성되는, 추천들을 보안적으로 발생하는 시스템.
  24. 제 23 항에 있어서,
    상기 CSP 프로세서는,
    상기 암호해독된 마스킹된 레코드들을 프로세싱하기 전에 상기 제 1 가블링된 회로 내부에서 상기 암호해독된 마스킹된 레코드들을 탈마스킹하도록
    추가로 구성됨으로써 상기 제 1 가블링된 회로를 설계하도록 구성되는, 추천들을 보안적으로 발생하는 시스템.
  25. 제 23 항에 있어서,
    상기 RecSys 프로세서 및 상기 CSP 프로세서는 추가로, 불확정 전송들을 수행하도록 구성되고,
    상기 RecSys 는 상기 암호해독된 마스킹된 레코드들의 가블링된 값들을 수신하고, 상기 레코드들은 상기 RecSys 및 상기 CSP 로부터 비공개로 유지되는, 추천들을 보안적으로 발생하는 시스템.
  26. 제 19 항에 있어서,
    상기 CSP 프로세서는,
    상기 요청 사용자로부터 상기 마스킹된 아이템 프로파일들 및 상기 제 2 레코드를 수신하고;
    상기 마스킹된 아이템 프로파일들을 탈마스킹하고 토큰들, 아이템들 및 아이템 프로파일들을 포함하는 튜플들의 어레이를 생성하는 것으로서, 대응하는 아이템 프로파일은 상기 제 2 레코드로부터 각각의 토큰 및 아이템에 부가되는, 상기 튜플들의 어레이를 생성하고;
    요청 사용자 프로파일을 발생하기 위해 상기 튜플들의 어레이에 대한 리지 회귀를 수행하며; 그리고
    상기 요청 사용자 프로파일 및 적어도 하나의 특정 아이템 프로파일로부터 추천들을 계산하도록
    구성됨으로써 상기 제 2 가블링된 회로를 설계하도록 구성되는, 추천들을 보안적으로 발생하는 시스템.
  27. 제 26 항에 있어서,
    상기 CSP 프로세서는 소팅 네트워크를 설계하도록 구성됨으로써 어레이를 생성하도록 구성되는, 추천들을 보안적으로 발생하는 시스템.
  28. 제 17 항에 있어서,
    상기 요청 사용자 프로세서, 상기 RecSys 프로세서 및 CSP 프로세서는 추가로, 프록시 불확정 전송들을 수행하도록 구성되고,
    상기 요청 사용자는 상기 마스킹된 아이템 프로파일들의 가블링된 값들을 수신하고, 상기 마스킹된 아이템 프로파일들은 상기 요청 사용자와 상기 CSP 로부터 비공개로 유지되는, 추천들을 보안적으로 발생하는 시스템.
  29. 제 17 항에 있어서,
    상기 RecSys 프로세서는 추가로, 각각의 레코드의 토큰들의 수를 수신하도록 구성되고, 상기 토큰들의 수는 각각의 레코드의 소스에 의해 전송되었던, 추천들을 보안적으로 발생하는 시스템.
  30. 제 17 항에 있어서,
    상기 사용자들의 제 1 세트에 대한 각각의 프로세서는,
    각각의 레코드의 토큰들의 수가 최대 값을 표현한 값보다 작을 경우 각각의 개별 레코드에 널 엔트리들을 패딩하여 상기 값과 동일한 토큰들의 수를 갖는 레코드들을 생성하도록 구성되는, 추천들을 보안적으로 발생하는 시스템.
  31. 제 17 항에 있어서,
    상기 레코드들의 제 1 세트의 소스는 데이터베이스일 수 있고,
    상기 제 2 레코드의 소스는 데이터베이스일 수 있는, 추천들을 보안적으로 발생하는 시스템.
  32. 제 18 항에 있어서,
    상기 CSP 프로세서는 추가로, 가블링된 회로들의 설계를 위한 파라미터들의 세트를 수신하도록 구성되고,
    상기 파라미터들은 상기 RecSys 에 의해 전송되었던, 추천들을 보안적으로 발생하는 시스템.
KR1020157024126A 2013-03-04 2014-05-01 행렬 분해 및 리지 회귀에 기초한 프라이버시-보호 추천을 위한 방법 및 시스템 KR20160009012A (ko)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US201361772404P 2013-03-04 2013-03-04
US61/772,404 2013-03-04
US201361864088P 2013-08-09 2013-08-09
US201361864094P 2013-08-09 2013-08-09
US201361864085P 2013-08-09 2013-08-09
US201361864098P 2013-08-09 2013-08-09
US61/864,094 2013-08-09
US61/864,098 2013-08-09
US61/864,088 2013-08-09
US61/864,085 2013-08-09
PCT/US2013/076353 WO2014137449A2 (en) 2013-03-04 2013-12-19 A method and system for privacy preserving counting
USPCT/US2013/076353 2013-12-19
PCT/US2014/036360 WO2014138754A2 (en) 2013-03-04 2014-05-01 A method and system for privacy-preserving recommendation based on matrix factorization and ridge regression

Publications (1)

Publication Number Publication Date
KR20160009012A true KR20160009012A (ko) 2016-01-25

Family

ID=51492081

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020157024146A KR20150122162A (ko) 2013-03-04 2013-12-19 프라이버시 보호 카운팅을 위한 방법 및 시스템
KR1020157023908A KR20160030874A (ko) 2013-03-04 2014-05-01 행렬 인수분해에 기초한 등급 기여 사용자들에게로의 추천을 프라이버시-보호하기 위한 방법 및 시스템
KR1020157024126A KR20160009012A (ko) 2013-03-04 2014-05-01 행렬 분해 및 리지 회귀에 기초한 프라이버시-보호 추천을 위한 방법 및 시스템

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020157024146A KR20150122162A (ko) 2013-03-04 2013-12-19 프라이버시 보호 카운팅을 위한 방법 및 시스템
KR1020157023908A KR20160030874A (ko) 2013-03-04 2014-05-01 행렬 인수분해에 기초한 등급 기여 사용자들에게로의 추천을 프라이버시-보호하기 위한 방법 및 시스템

Country Status (6)

Country Link
US (4) US20160019394A1 (ko)
EP (3) EP2965464A2 (ko)
JP (1) JP2016509268A (ko)
KR (3) KR20150122162A (ko)
CN (1) CN105637798A (ko)
WO (4) WO2014137449A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210132847A (ko) 2020-04-28 2021-11-05 이진행 릿지 회귀를 이용한 변수 선택 장치 및 방법

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015163822A1 (en) * 2014-04-23 2015-10-29 Agency For Science, Technology And Research Method and system for generating / decrypting ciphertext, and method and system for searching ciphertexts in a database
US9787647B2 (en) * 2014-12-02 2017-10-10 Microsoft Technology Licensing, Llc Secure computer evaluation of decision trees
US9825758B2 (en) * 2014-12-02 2017-11-21 Microsoft Technology Licensing, Llc Secure computer evaluation of k-nearest neighbor models
US20160189461A1 (en) * 2014-12-27 2016-06-30 Avi Kanon Near field communication (nfc) based vendor/customer interface
WO2017023065A1 (en) * 2015-08-05 2017-02-09 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
US20170359321A1 (en) * 2016-06-13 2017-12-14 Microsoft Technology Licensing, Llc Secure Data Exchange
GB201610883D0 (en) * 2016-06-22 2016-08-03 Microsoft Technology Licensing Llc Privacy-preserving machine learning
US10755172B2 (en) 2016-06-22 2020-08-25 Massachusetts Institute Of Technology Secure training of multi-party deep neural network
EP3270321B1 (en) * 2016-07-14 2020-02-19 Kontron Modular Computers SAS Technique for securely performing an operation in an iot environment
US10628604B1 (en) * 2016-11-01 2020-04-21 Airlines Reporting Corporation System and method for masking digital records
WO2018128207A1 (ko) * 2017-01-06 2018-07-12 경희대학교 산학협력단 왜곡된 데이터에 대한 프라이버시 보호 시스템 및 방법{system and method for privacy presevation in skewed data}
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
US10873568B2 (en) 2017-01-20 2020-12-22 Enveil, Inc. Secure analytics using homomorphic and injective format-preserving encryption and an encrypted analytics matrix
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US10790960B2 (en) 2017-01-20 2020-09-29 Enveil, Inc. Secure probabilistic analytics using an encrypted analytics matrix
US10721057B2 (en) 2017-01-20 2020-07-21 Enveil, Inc. Dynamic channels in secure queries and analytics
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
CN108733311B (zh) * 2017-04-17 2021-09-10 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
US10491373B2 (en) * 2017-06-12 2019-11-26 Microsoft Technology Licensing, Llc Homomorphic data analysis
DE112018002942T5 (de) * 2017-07-06 2020-03-05 Robert Bosch Gmbh Verfahren und System zur datenschutzwahrenden Social-Media-Werbung
WO2019040712A1 (en) * 2017-08-23 2019-02-28 Mochi, Inc. METHOD AND SYSTEM FOR AUCTION AT DECENTRALIZED MARKET
CA3072638A1 (en) * 2017-08-30 2019-03-07 Inpher, Inc. High-precision privacy-preserving real-valued function evaluation
JP6759168B2 (ja) * 2017-09-11 2020-09-23 日本電信電話株式会社 難読化回路生成装置、難読化回路計算装置、難読化回路生成方法、難読化回路計算方法、プログラム
EP3461054A1 (en) 2017-09-20 2019-03-27 Universidad de Vigo System and method for secure outsourced prediction
WO2019110380A1 (en) * 2017-12-04 2019-06-13 Koninklijke Philips N.V. Nodes and methods of operating the same
WO2019121898A1 (en) * 2017-12-22 2019-06-27 Koninklijke Philips N.V. A computer-implemented method of applying a first function to each data element in a data set, and a worker node and system for implementing the same
US11194922B2 (en) * 2018-02-28 2021-12-07 International Business Machines Corporation Protecting study participant data for aggregate analysis
US11334547B2 (en) 2018-08-20 2022-05-17 Koninklijke Philips N.V. Data-oblivious copying from a first array to a second array
US10999082B2 (en) 2018-09-28 2021-05-04 Analog Devices, Inc. Localized garbled circuit device
CN109543094B (zh) * 2018-09-29 2021-09-28 东南大学 一种基于矩阵分解的隐私保护内容推荐方法
WO2020077573A1 (en) * 2018-10-17 2020-04-23 Alibaba Group Holding Limited Secret sharing with no trusted initializer
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
US10817262B2 (en) 2018-11-08 2020-10-27 Enveil, Inc. Reduced and pipelined hardware architecture for Montgomery Modular Multiplication
US11625752B2 (en) 2018-11-15 2023-04-11 Ravel Technologies SARL Cryptographic anonymization for zero-knowledge advertising methods, apparatus, and system
US10915642B2 (en) 2018-11-28 2021-02-09 International Business Machines Corporation Private analytics using multi-party computation
US11178117B2 (en) * 2018-12-18 2021-11-16 International Business Machines Corporation Secure multiparty detection of sensitive data using private set intersection (PSI)
JP2022523182A (ja) * 2019-02-22 2022-04-21 インファー,インク. モジュラー整数を使用したセキュアなマルチパーティ計算のための算術
US11250140B2 (en) * 2019-02-28 2022-02-15 Sap Se Cloud-based secure computation of the median
US11245680B2 (en) * 2019-03-01 2022-02-08 Analog Devices, Inc. Garbled circuit for device authentication
CN110059097B (zh) * 2019-03-21 2020-08-04 阿里巴巴集团控股有限公司 数据处理方法和装置
US11669624B2 (en) * 2019-04-24 2023-06-06 Google Llc Response-hiding searchable encryption
US11277449B2 (en) * 2019-05-03 2022-03-15 Virtustream Ip Holding Company Llc Adaptive distributive data protection system
CN110149199B (zh) * 2019-05-22 2022-03-04 南京信息职业技术学院 一种基于属性感知的隐私保护方法及系统
AU2019461061B2 (en) * 2019-08-14 2023-03-30 Nippon Telegraph And Telephone Corporation Secure gradient descent computation method, secure deep learning method, secure gradient descent computation system, secure deep learning system, secure computation apparatus, and program
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
US11663521B2 (en) 2019-11-06 2023-05-30 Visa International Service Association Two-server privacy-preserving clustering
CN110830232B (zh) * 2019-11-07 2022-07-08 北京静宁数据科技有限公司 基于同态加密算法的隐蔽式竞价方法及竞价系统
US11616635B2 (en) * 2019-11-27 2023-03-28 Duality Technologies, Inc. Recursive algorithms with delayed computations performed in a homomorphically encrypted space
CN111125517B (zh) * 2019-12-06 2023-03-14 陕西师范大学 一种基于差分隐私和时间感知的隐式矩阵分解推荐方法
RU2722538C1 (ru) * 2019-12-13 2020-06-01 Общество С Ограниченной Ответственностью "Убик" Компьютерно-реализуемый способ обработки информации об объектах, с использованием методов совместных вычислений и методов анализа данных
CN111768268B (zh) * 2020-06-15 2022-12-20 北京航空航天大学 一种基于本地化差分隐私的推荐系统
CN112163228B (zh) * 2020-09-07 2022-07-19 湖北工业大学 一种基于幺模矩阵加密的岭回归安全外包方法及系统
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods
US11902424B2 (en) * 2020-11-20 2024-02-13 International Business Machines Corporation Secure re-encryption of homomorphically encrypted data
US20220191027A1 (en) * 2020-12-16 2022-06-16 Kyndryl, Inc. Mutual multi-factor authentication technology
US11113707B1 (en) 2021-01-22 2021-09-07 Isolation Network, Inc. Artificial intelligence identification of high-value audiences for marketing campaigns
US20220247548A1 (en) * 2021-02-01 2022-08-04 Sap Se Efficient distributed privacy-preserving computations
US11308226B1 (en) * 2021-02-22 2022-04-19 CipherMode Labs, Inc. Secure collaborative processing of private inputs
US20220271914A1 (en) * 2021-02-24 2022-08-25 Govermment of the United of America as represented by the Secretary of the Navy System and Method for Providing a Secure, Collaborative, and Distributed Computing Environment as well as a Repository for Secure Data Storage and Sharing
CN114567710B (zh) * 2021-12-03 2023-06-06 湖北工业大学 一种基于岭回归预测的可逆数据隐写方法及系统
CN114726524B (zh) * 2022-06-02 2022-08-19 平安科技(深圳)有限公司 目标数据的排序方法、装置、电子设备及存储介质
CN116383848B (zh) * 2023-04-04 2023-11-28 北京航空航天大学 一种三方安全计算防作恶方法、设备及介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5940738A (en) * 1995-05-26 1999-08-17 Hyundai Electronics America, Inc. Video pedestal network
US6888848B2 (en) * 2000-12-14 2005-05-03 Nortel Networks Limited Compact segmentation of variable-size packet streams
US20020194602A1 (en) * 2001-06-06 2002-12-19 Koninklijke Philips Electronics N.V Expert model recommendation method and system
CN101120590B (zh) * 2005-02-18 2010-10-13 皇家飞利浦电子股份有限公司 现场提交数字信号的方法
CN101495941A (zh) * 2006-08-01 2009-07-29 索尼株式会社 用于内容推荐的领域优化
US8712915B2 (en) * 2006-11-01 2014-04-29 Palo Alto Research Center, Inc. System and method for providing private demand-driven pricing
US9224427B2 (en) * 2007-04-02 2015-12-29 Napo Enterprises LLC Rating media item recommendations using recommendation paths and/or media item usage
US8001132B2 (en) * 2007-09-26 2011-08-16 At&T Intellectual Property I, L.P. Methods and apparatus for improved neighborhood based analysis in ratings estimation
US8131732B2 (en) * 2008-06-03 2012-03-06 Nec Laboratories America, Inc. Recommender system with fast matrix factorization using infinite dimensions
US7685232B2 (en) * 2008-06-04 2010-03-23 Samsung Electronics Co., Ltd. Method for anonymous collaborative filtering using matrix factorization
US8972742B2 (en) * 2009-09-04 2015-03-03 Gradiant System for secure image recognition
EP2481018A4 (en) * 2009-09-21 2013-06-12 Ericsson Telefon Ab L M METHOD AND DEVICE FOR PERFORMING A RECOMMENDATION
US8185535B2 (en) * 2009-10-30 2012-05-22 Hewlett-Packard Development Company, L.P. Methods and systems for determining unknowns in collaborative filtering
US8365227B2 (en) * 2009-12-02 2013-01-29 Nbcuniversal Media, Llc Methods and systems for online recommendation
US8676736B2 (en) * 2010-07-30 2014-03-18 Gravity Research And Development Kft. Recommender systems and methods using modified alternating least squares algorithm
US8881295B2 (en) * 2010-09-28 2014-11-04 Alcatel Lucent Garbled circuit generation in a leakage-resilient manner
US9088888B2 (en) * 2010-12-10 2015-07-21 Mitsubishi Electric Research Laboratories, Inc. Secure wireless communication using rate-adaptive codes
WO2012155329A1 (en) * 2011-05-16 2012-11-22 Nokia Corporation Method and apparatus for holistic modeling of user item rating with tag information in a recommendation system
US10102546B2 (en) * 2011-09-15 2018-10-16 Stephan HEATH System and method for tracking, utilizing predicting, and implementing online consumer browsing behavior, buying patterns, social networking communications, advertisements and communications, for online coupons, products, goods and services, auctions, and service providers using geospatial mapping technology, and social networking
US8925075B2 (en) * 2011-11-07 2014-12-30 Parallels IP Holdings GmbH Method for protecting data used in cloud computing with homomorphic encryption
US8478768B1 (en) * 2011-12-08 2013-07-02 Palo Alto Research Center Incorporated Privacy-preserving collaborative filtering
US8983888B2 (en) * 2012-11-07 2015-03-17 Microsoft Technology Licensing, Llc Efficient modeling system for user recommendation using matrix factorization

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210132847A (ko) 2020-04-28 2021-11-05 이진행 릿지 회귀를 이용한 변수 선택 장치 및 방법

Also Published As

Publication number Publication date
KR20160030874A (ko) 2016-03-21
WO2014138752A2 (en) 2014-09-12
WO2014138752A3 (en) 2014-12-11
US20160004874A1 (en) 2016-01-07
WO2014138753A3 (en) 2014-11-27
WO2014138753A2 (en) 2014-09-12
EP2965464A2 (en) 2016-01-13
US20160020904A1 (en) 2016-01-21
EP3031164A2 (en) 2016-06-15
KR20150122162A (ko) 2015-10-30
JP2016509268A (ja) 2016-03-24
US20160012238A1 (en) 2016-01-14
WO2014137449A2 (en) 2014-09-12
WO2014137449A3 (en) 2014-12-18
EP3031166A2 (en) 2016-06-15
WO2014138754A2 (en) 2014-09-12
WO2014138754A3 (en) 2014-11-27
CN105637798A (zh) 2016-06-01
US20160019394A1 (en) 2016-01-21

Similar Documents

Publication Publication Date Title
KR20160009012A (ko) 행렬 분해 및 리지 회귀에 기초한 프라이버시-보호 추천을 위한 방법 및 시스템
EP3031165A2 (en) A method and system for privacy preserving matrix factorization
Giacomelli et al. Privacy-preserving ridge regression with only linearly-homomorphic encryption
Perifanis et al. Federated neural collaborative filtering
Nikolaenko et al. Privacy-preserving matrix factorization
Liu et al. Secure model fusion for distributed learning using partial homomorphic encryption
Sharma et al. PrivateGraph: Privacy-preserving spectral analysis of encrypted graphs in the cloud
Perifanis et al. FedPOIRec: Privacy-preserving federated poi recommendation with social influence
KR20150123823A (ko) 마스크들을 사용한 프라이버시-보존 리지 회귀
Lu et al. A control-theoretic perspective on cyber-physical privacy: Where data privacy meets dynamic systems
Gong et al. Homomorphic evaluation of the integer arithmetic operations for mobile edge computing
Lin et al. A generic federated recommendation framework via fake marks and secret sharing
Fan et al. PPMCK: Privacy-preserving multi-party computing for K-means clustering
Niu et al. Secure federated submodel learning
CN106170943A (zh) 使用部分同态加密和掩码的隐私保护岭回归
Quoc et al. Privacy preserving stream analytics: The marriage of randomized response and approximate computing
Ben-Itzhak et al. Scionfl: Efficient and robust secure quantized aggregation
Liu et al. ESA-FedGNN: Efficient secure aggregation for federated graph neural networks
Wang et al. Achieving private and fair truth discovery in crowdsourcing systems
Hong et al. FedHD: A Privacy-Preserving Recommendation System with Homomorphic Encryption and Differential Privacy
Dai et al. Privacy‐Preserving Sorting Algorithms Based on Logistic Map for Clouds
Jung Ensuring Security and Privacy in Big Data Sharing, Trading, and Computing
Shi et al. Edge-assisted quantum protocol for secure multiparty logical AND its applications
Bao Privacy-Preserving Cloud-Assisted Data Analytics
Ertaul et al. Implementation of Oblivious Bloom Intersection in Private Set Intersection Protocol (PSI)

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid