JP2016517069A - 行列因数分解に基づいたユーザに寄与する評点に対するプライバシー保護推薦のための方法およびシステム - Google Patents
行列因数分解に基づいたユーザに寄与する評点に対するプライバシー保護推薦のための方法およびシステム Download PDFInfo
- Publication number
- JP2016517069A JP2016517069A JP2015561770A JP2015561770A JP2016517069A JP 2016517069 A JP2016517069 A JP 2016517069A JP 2015561770 A JP2015561770 A JP 2015561770A JP 2015561770 A JP2015561770 A JP 2015561770A JP 2016517069 A JP2016517069 A JP 2016517069A
- Authority
- JP
- Japan
- Prior art keywords
- user
- record
- item
- masked
- profile
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/50—Oblivious transfer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Databases & Information Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
- Algebra (AREA)
Abstract
行列因数分解によって推薦を安全に生成するための方法及びシステムであって、如何なる個人のレコードのコンテンツを学習することなく、トークンの組および項目の組を含むレコードの組を入力として受け取るステップと、レコードの組に対する行列因数分解に基づいてガーブル回路を設計及び評価して、如何なる個人のレコード、又は、推薦を含む、レコードから抽出された如何なる情報のコンテンツも学習せずに、少なくとも1つの項目についてプライバシー保護のやり方で、推薦を生成するステップとによって開始する。本システムは:複数のユーザ又はレコードのソースを表すデータベース;ガーブル回路を設計する暗号サービスプロバイダ及び当該回路を評価するリコメンダシステムからなる3つのパーティを含み、その結果、レコード及びレコードから抽出された任意の情報がこれらのソース以外のパーティには秘密に保たれ、推薦は要求パーティによってのみ知られる。
Description
関連出願の相互参照
本出願は、第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年8月9日に出願された米国特許仮出願の利益および優先権を主張するものである。さらに、本出願は、2013年12月19日に出願された「A METHOD AND SYSTEM FOR PRIVACY PRESERVING COUNTING」という名称のPCT特許出願第PCT/US13/76353号、および2013年3月4日に出願された「PRIVACY−PRESERVING LINEAR AND RIDGE REGRESSION」という名称の米国特許仮出願第61/772404号明細書の利益および優先権を主張するものである。仮出願およびPCT出願は、すべての目的においてそれらの全体が参照により明確に本明細書に組み込まれる。
本出願は、第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年8月9日に出願された米国特許仮出願の利益および優先権を主張するものである。さらに、本出願は、2013年12月19日に出願された「A METHOD AND SYSTEM FOR PRIVACY PRESERVING COUNTING」という名称のPCT特許出願第PCT/US13/76353号、および2013年3月4日に出願された「PRIVACY−PRESERVING LINEAR AND RIDGE REGRESSION」という名称の米国特許仮出願第61/772404号明細書の利益および優先権を主張するものである。仮出願およびPCT出願は、すべての目的においてそれらの全体が参照により明確に本明細書に組み込まれる。
本原理は、プライバシー保護推薦システムおよび安全な複数パーティ計算に関し、特にプライバシー保護および盲目的(blind)なやり方で、行列因数分解に基づいてユーザに寄与する評点に対して推薦を提供することに関する。
最近の10年間の多大な研究および商業的活動は、推薦システムの広範囲に及ぶ使用に繋がっている。このようなシステムは、映画、テレビ番組、音楽、書籍、ホテル、レストランその他などの、多くの種類の項目に対する個人を対象とした推薦をユーザに提供する。図1は一般の推薦システム100の構成要素である、ソースを表すいくつかのユーザ110およびユーザの入力120を処理し、推薦140を出力するリコメンダシステム(RecSys)130を示す。役に立つ推薦を受け取るためにユーザは、リコメンダがこのデータを適切に管理することを信頼して、彼等の好み(ユーザの入力)についてのかなりの個人情報を供給する。
それにもかかわらず、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. Aimeur, 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などの以前の研究は、リコメンダがこのような情報を悪用する、またはユーザをプライバシーの脅威にさらし得る複数の方法を特定している。リコメンダは、しばしば利益のためにデータを転売するように動機付けられるが、またユーザによって意識的に明らかにされたもの以上の情報を抽出するようにも動機付けられる。例えば、映画評点または個人のテレビ視聴履歴などの通常は機密と見なされないユーザの好みの記録でさえ、ユーザの政治的友好関係、性別などを推論するために用いられ得る。推薦システムにおいてデータから推論され得る個人情報は、悪意のあるまたは悪意のない目的のために新しいデータマイニングおよび推論方法が開発されるのに従って、常に進化している。極端に言えば、ユーザの好みの記録は、ユーザを一意的に特定するために用いられることができ、A. Naranyan、およびV. Shmatikovは、”Robust de−anonymization of large sparse datasets”, IEEE S&P, 2008において、Netflixデータセットを非匿名化することによってこれを際立って実証している。したがって、リコメンダに悪意がない場合でも、このようなデータの意図的でない漏洩は、ユーザがリンク攻撃、すなわち1つのデータベースを補助的情報として用いて別のデータベースにおけるプライバシーを危うくする攻撃を受けやすくする。
将来の推論の脅威、偶発的な情報漏洩、または内部者の脅威(意図的な漏洩)を常に予見することはできないので、ユーザが彼等のプライベートなデータをクリアテキストにおいて明らかにしない推薦システムを組み立てることは興味深い。本出願と同じ日に出願された、「A METHOD AND SYSTEM FOR PRIVACY PRESERVING MATRIX FACTORIZATION」という名称の発明者らによる同時係属の出願は、行列因数分解に基づくプライバシー保護推薦システムについて述べている。これは、個々のユーザの評点または彼等が評点した項目を学習することなく、項目評点をプロファイルするリコメンダシステムに対してユーザが提出した評点上で、動作する。これは、ユーザが項目プロファイルを学習するリコメンダに対して同意していると見なしている。
本原理は、リコメンダシステムが、ユーザの評点およびシステムが評点した項目についてのいかなる情報も学習することなく、推薦を含む、項目プロファイルについてのいかなる情報またはユーザデータから抽出されたいかなる統計情報も学習することがない、より強力なプライバシー保護推薦システムを提案する。したがって、推薦システムは、それが提供する推薦に対しては完全に盲目的な状態で、評点を提供したユーザに推薦を提供する。
本原理は、プライバシー保護のやり方で、安全に、行列因数分解として知られている協調フィルタリング技法に基づいて推薦を提供するための方法を提案する。特に、この方法は、入力としてユーザが項目(例えば映画、書籍)に与えた評点を受け取り、ユーザが各項目にどのような評点を与え得るかを後に予測するために用いられ得る、各項目および各ユーザに対するプロファイルを生成する。本原理は、リコメンダシステムが行列因数分解に基づいて、ユーザの評点、どの項目をユーザが評点したか、項目プロファイル、またはユーザデータから抽出された統計データを学習することなく、このタスクを実行することを可能にする。特に、推薦システムは、それが提供する推薦に対して完全に盲目的な状態で、評点に寄与したユーザに、彼等がまだ評点していない項目を彼等がどのように評点するであろうかについての予測の形で推薦を提供する。
本原理の一態様によれば、行列因数分解によって推薦を安全に生成するための方法が提供される。上記方法は、レコードの組(220)を受け取るステップであって、各レコードは、それぞれのユーザから受け取られ、トークンの組および項目の組を備え、各レコードは、上記それぞれのユーザ以外のパーティに秘密に保たれる、ステップと、要求ユーザから少なくとも1つの特定の項目に対する要求を受け取るステップ(330)と、行列因数分解に基づいてガーブル回路を用いることによって、リコメンダ(RecSys)(230)において上記レコードの組を評価するステップ(355)であって、上記ガーブル回路の出力は、上記少なくとも1つの特定の項目に対するマスクされた項目プロファイルと、1つの上記要求ユーザに対するマスクされたユーザプロファイルと、を備える、ステップと、上記少なくとも1つの特定の項目について上記要求ユーザに対する推薦を生成するために、上記要求ユーザと、上記RecSysと、暗号サービスプロバイダ(CSP)との間で、上記マスクされた項目プロファイルおよび上記マスクされたユーザプロファイルを共同で評価するステップ(360〜385)であって、上記要求ユーザに対する各推薦およびユーザプロファイルは、上記要求ユーザ以外のパーティには秘密に保たれ、上記少なくとも1つの特定の項目に対する上記項目プロファイルは、すべてのパーティに秘密に保たれ、ユーザプロファイルおよび項目プロファイルは、それぞれマスクされた項目プロファイルおよびマスクされたユーザプロファイルのマスク解除されたバージョンである、ステップと、を含む。上記方法は、上記レコードの組に対して行列因数分解を実行するために上記CSPにおいて上記ガーブル回路を設計するステップ(340)であって、上記ガーブル回路の出力は、上記少なくとも1つの特定の項目に対するマスクされた項目プロファイルおよび上記1つの要求ユーザに対するマスクされたユーザプロファイルを含む、ステップと、上記ガーブル回路を上記RecSysに伝送するステップ(345)と、をさらに含むことができる。上記方法における設計する上記ステップは、行列因数分解演算をブール回路として設計するステップ(3402)を含むことができる。行列因数分解回路を設計する上記ステップは、上記レコードの組の配列を構築するステップと、上記配列に対してソートし(420、440、470、490)、コピーし(430、450)、更新し(470、480)、比較し(480)、勾配寄与を計算する(460)動作を実行するステップと、を含むことができる。上記方法は、上記CSPによる上記ガーブル回路の上記設計のためのパラメータの組を受け取るステップをさらに含み、上記パラメータは、上記RecSysによって送られる(335)。
本原理の一態様によれば、上記方法は、上記レコードの組を暗号化して、暗号化されたレコードを生成する、暗号化するステップ(315)をさらに含むことができ、上記暗号化するステップは、レコードの組を受け取る上記ステップの前に行われる。上記方法は、上記CSPにおいて公開暗号鍵を生成し、これらの鍵を上記それぞれのユーザに送るステップ(310)をさらに含むことができる。上記暗号化は、部分的準同型暗号化(310)とすることができ、上記方法は、上記RecSysにおいて上記暗号化されたレコードをマスクして、マスクされたレコードを生成するステップ(320)と、上記CSPにおいて上記マスクされたレコードを復号して、復号済みのマスクされたレコードを生成するステップ(325)と、を含むことができる。設計する上記ステップ(340)は、上記復号済みのマスクされたレコードを、それらを処理する前に、上記ガーブル回路内部でマスク解除するステップを含む。上記方法は、上記CSPと上記RecSysの間で(3502)、紛失通信を実行するステップ(350)をさらに含むことができ、上記RecSysは、上記復号済みのマスクされたレコードの上記ガーブル化された値を受け取り、上記レコードは、上記RecSysおよび上記CSPに秘密に保たれる。
本原理の一態様によれば、共同で評価する上記ステップは、上記マスクされたユーザプロファイルを第1のマスクでマスク解除して上記ユーザプロファイルを取得するステップ(360)と、上記ユーザプロファイルを暗号化して、暗号化されたユーザプロファイルを生成するステップ(360)と、上記RecSysにおいて、上記少なくとも1つの特定の項目に対する上記暗号化されたユーザプロファイルと上記マスクされた項目プロファイルとの第1の積を計算するステップ(370)と、上記CSPにおいて、上記少なくとも1つの特定の項目に対する上記暗号化されたユーザプロファイルと少なくとも1つの第2のマスクとの少なくとも1つの第2の積を計算するステップ(375)と、上記RecSysにおいて、上記第1の積から上記少なくとも1つの第2の積を減算して、上記少なくとも1つの特定の項目に対する少なくとも1つの暗号化された推薦を生成するステップ(380)と、上記少なくとも1つの特定の項目に対する上記少なくとも1つの暗号化された推薦を復号するステップ(385)と、をさらに含むことができる。上記第1のマスクは、上記要求ユーザによって選択されることができ(315)、上記少なくとも1つの第2のマスクは、上記CSPによって選択され得る(340)。暗号化および復号する上記ステップは、上記要求ユーザによって選択された加法的準同型暗号方式を用いることができる(360)。
本原理の一態様によれば、上記方法は、各レコードのトークンおよび項目の数を受け取るステップ(220、305)をさらに含むことができる。さらに、上記方法は、各レコードのトークンの数が最大値を表す値より小さいときに、上記値に等しいトークンの数を有するレコードを生成するために、ヌルエントリで各レコードをパッディングするステップ(3052)をさらに含むことができる。上記レコードの組のソースは、データベースとすることができる。
本原理の一態様によれば、行列因数分解によって推薦を安全に生成するためのシステムが提供され、上記システムは、レコードのそれぞれの組を提供するユーザの組と、安全な行列因数分解回路を提供する暗号サービスプロバイダ(CSP)と、各レコードがそのそれぞれのユーザ以外のパーティに秘密に保たれるように上記レコードを評価するRecSysと、を備え、各ユーザ、上記CSP、および上記RecSysはそれぞれ、少なくとも1つの入力/出力(604)において受け取るためのプロセッサー(602)と、そのプロセッサーと信号通信する少なくとも1つのメモリ(606、608)とを含み、上記RecSysのプロセッサーは、レコードの組を受け取ることであって、各レコードは、トークンの組および項目の組を備え、各レコードは、上記それぞれのユーザ以外のパーティに秘密に保たれる、レコードの組を受け取ることと、要求ユーザから少なくとも1つの特定の項目に対する要求を受け取ることと、行列因数分解に基づいてガーブル回路によってレコードの組を評価することであって、上記ガーブル回路の出力は、上記少なくとも1つの特定の項目に対するマスクされた項目プロファイルおよび上記1つの要求ユーザに対するマスクされたユーザプロファイルを備える、評価することと、を実行するように構成され、上記要求ユーザ、RecSys、およびCSPのプロセッサーは、上記少なくとも1つの特定の項目について上記要求ユーザに推薦を生成するために、上記マスクされた項目プロファイルおよび上記マスクされたユーザプロファイルを共同で評価するように構成され(360〜385)、上記要求ユーザに対する各推薦およびユーザプロファイルは、上記要求ユーザ以外のパーティには秘密に保たれ、上記少なくとも1つの特定の項目に対する上記項目プロファイルはすべてのパーティに秘密に保たれ、ユーザプロファイルおよび項目プロファイルは、それぞれマスクされた項目プロファイルおよびマスクされたユーザプロファイルのマスク解除されたバージョンである。上記システム内の上記CSPのプロセッサーは、上記レコードの組に対して行列因数分解を実行するためにガーブル回路を設計することであって、上記ガーブル回路の出力は、上記少なくとも1つの特定の項目に対するマスクされた項目プロファイルと、上記1つの要求ユーザに対するマスクされたユーザプロファイルと、を含む、設計することと、上記ガーブル回路を上記RecSysに伝送することと、を実行するように構成され得る。上記システム内の上記CSPのプロセッサーは、行列因数分解演算をブール回路として設計するように構成されることによって上記ガーブル回路を設計するように構成され得る。上記システム内の上記CSPのプロセッサーは、上記レコードの組の配列を構築するように構成されることによって上記行列因数分解回路を設計し、上記配列に対してソートし、コピーし、更新し、比較し、および勾配寄与を計算する動作を実行するように構成され得る。上記システム内の上記CSPのプロセッサーは、上記ガーブル回路の上記設計のためのパラメータの組を受け取るようにさらに構成されることができ、上記パラメータは上記RecSysによって送られる。
本原理の一態様によれば、各ユーザのプロセッサーは、上記レコードを提供する前に、上記それぞれのレコードを暗号化して、暗号化されたレコードを生成するように構成され得る。上記CSPのプロセッサーは、上記CSPにおいて公開暗号鍵を生成し、それらの鍵を上記ユーザの組に送るようにさらに構成され得る。上記暗号化は、部分的準同型暗号化とすることができ、上記RecSysのプロセッサーは、上記暗号化されたレコードをマスクして、マスクされたレコードを生成するようにさらに構成され、上記CSPのプロセッサーは、上記マスクされたレコードを復号して、復号済みのマスクされたレコードを生成するようにさらに構成される。上記システム内の上記CSPのプロセッサーは、上記復号済みのマスクされたレコードを、それらを処理する前に、上記ガーブル回路内部でマスク解除するようにさらに構成されることによって、上記ガーブル回路を設計するように構成され得る。上記システム内の上記RecSysのプロセッサーおよび上記CSPのプロセッサーは、紛失通信を実行するようにさらに構成されることができ、上記RecSysは、上記復号済みのマスクされたレコードの上記ガーブル化された値を受け取り、上記レコードは、上記RecSysおよび上記CSPに秘密に保たれる。
本原理の一態様によれば、上記要求ユーザのプロセッサーは、上記マスクされたユーザプロファイルを第1のマスクでマスク解除して上記ユーザプロファイルを取得し、上記ユーザプロファイルを暗号化して、暗号化されたユーザプロファイルを生成し、上記少なくとも1つの特定の項目に対する少なくとも1つの暗号化された推薦を復号するようにさらに構成されることができ、上記RecSysのプロセッサーは、上記少なくとも1つの特定の項目に対する上記暗号化されたユーザプロファイルと上記マスクされた項目プロファイルとの第1の積を計算し、上記第1の積から少なくとも1つの第2の積を減算して、上記少なくとも1つの特定の項目に対する少なくとも1つの暗号化された推薦を生成するようにさらに構成され、上記CSPのプロセッサーは、上記少なくとも1つの特定の項目に対する上記暗号化されたユーザプロファイルと少なくとも1つの第2のマスクとの少なくとも1つの第2の積を計算するようにさらに構成される。上記第1のマスクは上記要求ユーザによって選択されることができ、上記少なくとも1つの第2のマスクは上記CSPによって選択され得る。上記要求ユーザのプロセッサーは、上記要求ユーザによって選択された加法的準同型暗号方式を用いるように構成され得る。
本原理の一態様によれば、上記システム内の上記RecSysのプロセッサーは、各レコードのトークンの数を受け取るようにさらに構成されることができ、上記トークンの数はソースによって送られたものである。各ユーザのプロセッサーは、各レコードのトークンの数が最大値を表す値より小さいときに、上記値に等しいトークンの数を有するレコードを生成するために、ヌルエントリで上記各レコードをパッディングするように構成され得る。上記レコードの組のソースは、データベースとすることができる。
本原理のさらなる特徴および利点については、添付の図を参照して以下の例示的実施形態の詳細な説明から明らかにされるであろう。
本原理については、以下に簡潔に述べられる例示の図によってよりよく理解され得る。
従来技術の推薦システムの構成要素を示す図である。
本原理による推薦システムの構成要素を示す図である。
本原理によるプライバシー保護推薦方法のフローチャートである。
本原理によるプライバシー保護推薦方法のフローチャートである。
本原理によるプライバシー保護推薦方法のフローチャートである。
本原理によるプライバシー保護推薦方法のフローチャートである。
本原理による例示の行列因数分解アルゴリズムを示す図である。
本原理による例示の行列因数分解アルゴリズムを示す図である。
本原理による例示の行列因数分解アルゴリズムを示す図である。
本原理による行列因数分解アルゴリズムによって構築されたデータ構造Sを示す図である。
本原理を実現するために利用されるコンピューティング環境のブロック図である。
本原理によれば、安全にプライバシーを保護するおよび盲目的なやり方で、行列因数分解として知られている協調フィルタリング技法に基づいて、推薦を実行するための方法が提供される。
本原理の方法は、各レコードがトークンおよび項目の組を備える、レコードのコーパスにおける項目について推薦を実行するサービスとして働くことができる。レコードの組は2つ以上のレコードを含み、トークンの組は少なくとも1つのトークンを含む。当業者は、上記の例において、レコードがユーザを表すことができ、トークンがレコードにおける対応する項目に対するユーザの評点となり得ることを認識するであろう。トークンはまた、項目に関連する順位、重みまたは測度を表すことができ、項目は個人、タスクまたは仕事を表すことができる。例えば順位、重みまたは測度は個人の健康に関連付けられることができ、研究者は人口の健康測度を相関させることを試みる。またはそれらは、個人の生産性に関連付けられることができ、会社は、前の履歴に基づいて、一定の仕事に対するスケジュールを予測することを試みる。しかしながら、関係する個人のプライバシーを保証するために、サービスはそれを、各レコードの内容、それが提供する項目プロファイル、またはユーザデータ(レコード)から抽出された統計データを学習することなく、盲目的なやり方で行うことを望む。特に、サービスは、(a)各トークン/項目がどのレコードに現れたか、まして(b)各レコードにどのようなトークン/項目が現れるか、(c)トークンの値、および(d)項目プロファイルまたはユーザデータから抽出された統計データを、学習するべきではない。以下では、「プライバシー保護」、「プライベート(private)」、および「安全な」などの用語および語句は、ユーザによってプライベートと見なされる情報(レコード)はユーザのみによって知られることを表すように同義的に用いられ、「盲目的(blind)」という語句は、ユーザ以外のパーティは推薦に対しても盲目的であることを表すように用いられる。
プライバシー保護の方法で行列因数分解を実行することに関連するいくつかの課題が存在する。第一に、プライバシーの懸念に対処するために、行列因数分解は、リコメンダがいかなるときも、ユーザの評点さらには彼等がどの項目を評点したかを学習することなく実行されるべきである。後者の要件は重要であり、以前の研究は、ユーザがどの映画を評点したかを知ることでさえ、例えばその性別を推論するために用いられ得ることを示している。第二に、このようなプライバシー保護アルゴリズムは、効率的であり、ユーザによって提出された評点の数に対して優雅に(例えば線形的に)スケール化するべきである。プライバシー要件は、行列因数分解アルゴリズムがデータ紛失(data-obvious)であるべきで、その実行はユーザ入力に依存するべきではないことを意味する。さらに、行列因数分解によって行われる演算は非線形であり、したがってこれらの両方の制約のもとでどのように行列因数分解を効率的に実装するかは、先験的には明らかではない。最後に、実際的な現実世界のシナリオにおいて、ユーザは限られた通信および計算リソースを有し、彼等が彼等のデータの供給した後にオンラインのままでいることは期待されるべきではない。代わりに、推薦サービスに対してオンラインおよびオフラインの間を交互するユーザの存在下で動作することができる、「送って忘れる」タイプのソリューションを有することが望ましい。
行列因数分解の概要として、標準の「協調フィルタリング」設定では、n人のユーザがm個の可能な項目のサブセット(例えば映画)を評点する。ユーザの組[n]:={1,...,n}、および項目の組[m]:={1,...,m}に対して、評点がそれらに対して生成されたユーザ/項目対を、
で表し、評点の総数を
で表す。最後に、
に対して、項目jに対してユーザiによって生成された評点を、
で表す。実際の設定では、nおよびmは共に大きな数となり、通常は104から106の範囲となる。さらに、提供される評点はまばらであり、すなわちM=O(n+m)であり、これは可能性がある評点の総数n×mよりずっと少ない。これは、各ユーザが有限な数の項目のみを評点し得る(「カタログ」サイズmに依存しない)ので、通常のユーザの挙動と一致する。
における評点を所与としてリコメンダシステムは、
におけるユーザ/項目対に対する評点を予測することを望む。行列因数分解は、このタスクを、双一次式モデルを既存の評点にフィッティングすることによって実行する。特に、ある小さな次元
に対して、ベクトル
が存在すると仮定し、それにより、
ri,j=<ui,vj>+εi,j (1)
となり、εi,jはi.i.d(独立で同一に分布する)ガウス分布ランダム変数である。ベクトルuiおよびvjは、それぞれユーザおよび項目プロファイルと呼ばれ、<ui,vj>はベクトルの内積である。用いられる表記法は、そのi番目の行がユーザiのプロファイルを備えるn×dマトリックスに対して、
ri,j=<ui,vj>+εi,j (1)
となり、εi,jはi.i.d(独立で同一に分布する)ガウス分布ランダム変数である。ベクトルuiおよびvjは、それぞれユーザおよび項目プロファイルと呼ばれ、<ui,vj>はベクトルの内積である。用いられる表記法は、そのi番目の行がユーザiのプロファイルを備えるn×dマトリックスに対して、
であり、そのj番目の行が項目jのプロファイルを備えるおよびm×dマトリックスに対して、
である。
評点
を所与として、リコメンダは通常、ある正のλ、μ>0に対して、以下の正規化最小二乗最小化を行ってプロファイルUおよびVを計算する:
当業者は、プロファイルUおよびVに対してガウス事前分布を仮定し、(2)での最小化はUおよびVの最尤推定に対応することを認識するであろう。ユーザおよび項目プロファイルを有して、リコメンダはその後に、ユーザiおよび項目jに対して、
となるように評点
を予測できることに留意されたい。
(2)での正規化平均二乗誤差は凸関数ではなく、この最小化を実行するためのいくつかの方法が文献に提案されている。本原理は、実際面で用いられる人気のある方法である勾配降下に焦点を当て、これには以下のように述べられる。F(U,V)によって(2)での正規化平均二乗誤差を表して、勾配降下は以下の適合規則を通してプロファイルUおよびVを反復して適合することによって動作する。
γ>0は小さな利得係数であり、
U(0)およびV(0)は一様にランダムなノルム1行からなる(すなわちプロファイルは、ノルム1ボールからu.a.r.(一様にランダム)に選択される)。
本原理の別の態様は、ソーティングネットワークおよびヤオのガーブル回路に基づく安全な複数パーティ計算(MPC)アルゴリズムを提案する。安全な複数パーティ計算は、1980年代にA. Chi−Chih Yaoによって提案された。ヤオのプロトコル(ガーブル回路としても知られる)は、安全な複数パーティ計算のための一般的な方法である。”Privacy−preserving ridge regression on hundreds of millions of records”,IEEE S&P, 2013,by V. Nikolaenko, U. Weinsberg, S. Ioannidis, M. Joye, D. Boneh, およびN. Taftから改造されたその変形では、プロトコルは、n個の入力保有者の組と、aiはユーザiのプライベート入力を表し1≦i≦nとして、f(a1,..,an)を評価することを望む評価器と、サードパーティである暗号サービスプロバイダ(CSP)との間で実行される。プロトコルの終わりでは評価器は、f(a1,..,an)の値を学習するが、いずれのパーティもこの出力値から明らかにされるもの以上を学習することはない。プロトコルは、関数fがブール回路、例えばOR、AND、NOT、およびXORのグラフとして表現されることができること、ならびに評価器およびCSPは共謀しないことを必要とする。
最近では、ヤオのガーブル回路を実現する多くのフレームワークがある。汎用MPCに対する別の方法は秘密共有方式に基づき、もう1つは完全準同型暗号(FHE)に基づく。秘密共有方式は、線形システムを解くこと、線形回帰、およびオークションなどの多様な線形代数演算のために提案されている。秘密共有は、計算の作業負荷を等しく共有し、複数回にわたって通信する、少なくとも3つの共謀しないオンライン権限者を必要とし、計算はそれらのうちの2つが共謀しない限り安全である。ガーブル回路は2つだけの共謀しない権限者およびはるかに少ない通信を前提とし、これは評価器がクラウドサービスであり、暗号サービスプロバイダ(CSP)が信頼されたハードウェア構成要素内に実装されているシナリオに、より適している。
用いられる暗号プリミティブに関わらず、安全な複数パーティ計算のための効率的なアルゴリズムの組み立てにおける主な課題は、データ紛失的なやり方で、すなわち実行パスが入力に依存しないようにアルゴリズムを実装することにある。一般に、制限された時間T内で実行可能ないずれのRAMプログラムも、数学的計算のための理想化モデルとして役立つようにAlan Turingによって発明された理論的計算機械であるO(T^3)チューリングマシン(TM)に変換されることができ、O(T^3)はT3に比例する複雑度を意味する。さらに、いずれのT時間に制限されたTMも、データ紛失であるサイズO(TlogT)の回路に変換され得る。これは、いずれのT時間に制限された実行可能なRAMプログラムも、O(T^3logT)の複雑度を有するデータ紛失回路に変換され得ることを示唆する。このような複雑度は、高過ぎてほとんどの用途において過大である。効率的なデータ紛失の実装が知られていないアルゴリズムの調査は、”Secure multi−party computation problems and their applications: A review and open problems”, in New Security Paradigms, Workshop, 2001,by W. Du, M.J. Atallahに見出されることができ、行列因数分解問題はデータマイニング集計問題の範疇に広く包含される。
ソーティングネットワークは、もともとソーティング並列化および効率的なハードウェア実装を可能にするために開発された。これらのネットワークは、入力シーケンス(a1,a2,...,an)を、単調増加シーケンス(a’1,a’2,...,a’n)にソートする回路である。それらは、それらの主なビルディングブロックである比較交換回路を共同で配線することによって構築される。いくつかの研究は、暗号の目的のためにソーティングネットワークのデータ紛失性を活用する。しかしながら、暗号化は、プライバシーを保証するのに常には十分ではない。敵対者が、暗号化されたストレージへのあなたのアクセスパターンを認識できる場合は、彼等はさらにあなたのアプリケーションが何をしているかについての機密情報を学習することができる。紛失RAMは、メモリがアクセスされるのに従ってそれを連続してシャッフルすることによってこの問題を解決し、それによって何のデータがアクセスされているか、さらにはそれが以前にいつアクセスされたかを完全に隠蔽する。紛失RAMではソートは、データ紛失ランダム並べ換えを発生させる手段として用いられる。より最近では、凸閉包、全最近傍問題、および重み付き積集合のデータ紛失計算を実行するために用いられている。
本原理は、重み付き積集合に近いがガーブル回路を組み込んだ、安全な複数パーティソーティングに基づく方法を提案する。図2は、本原理によるプライバシー保護推薦システムにおける動作者を示す。それらは以下の通りである。
I.盲目的なプライバシー保護行列因数分解演算を実行するエンティティである、リコメンダシステム(RecSys)230。特に、RecSysは、彼等がどの映画を評点したか、彼等がどんな評点を与えたか、またはユーザによって取得される推薦を含むユーザデータから抽出された統計情報(平均、項目プロファイルなど)を含む、ユーザについての役立つものを学習することなく、ユーザ評点に対する行列因数分解から抽出されるように、項目プロファイルV240を盲目的に計算する。
II.暗号サービスプロバイダ(CSP)250。これは、彼等がどの映画を評点したか、彼等がどんな評点を与えたか、または推薦を含むユーザデータから抽出された統計情報(平均、項目プロファイルなど)を含む、ユーザについての役立つものを学習することなく、安全な計算を可能にする。
III.1または複数のユーザ210からなり、それぞれが項目の組220に対する評点の組を有するソース。各ユーザi∈[n]は行列因数分解による、彼等の評点
に基づく項目のプロファイリングに同意するが、リコメンダに対して彼等の評点、彼等がその項目を評点したか、およびユーザデータから抽出された統計情報(手段、項目プロファイルなど)を含むいずれについても明らかにしないことを望む。等価的に、ソースは、1または複数のユーザのデータを含むデータベースを表すことができる。
本原理によれば、RecSysが行列因数分解を実行し、推薦を提供することを可能するプロトコルが提案され、RecSysまたはCSPのいずれも、それに対して暗号化された値が図2におけるRecSysの出力である、ユーザに与えられた推薦
を含む、ユーザについての役に立つものを学習することはない。特に、いずれもユーザの評点、さらにはユーザがどの項目を実際に評点したかを学習するべきではなく、いずれも項目プロファイルV、ユーザプロファイルU、推薦、またはユーザデータから抽出された統計情報を学習するべきではない。当業者は、リコメンダがユーザおよび項目プロファイルの両方を学習することを可能にするプロトコルは余りに多くを明らかにし、このような設計では、リコメンダは、(3)における内積からユーザの評点を自明に推論できることを明らかに認識するであろう。したがって、本原理は、リコメンダおよびCSPが、ユーザプロファイル、項目プロファイル、またはユーザデータから抽出された統計データを学習することがない、プライバシー保護プロトコルを提案する。要約すると、それらは完全に盲目的なやり方で動作を行い、ユーザについての役立つ情報、またはユーザデータから抽出されたものを学習することはない。
項目プロファイルは、項目をユーザ/レコードの組の評点に応じて定義するメトリックと見なされ得る。同様に、ユーザプロファイルは、ユーザをユーザ/レコードの組の評点に応じて定義するメトリックと見なされ得る。この意味で、項目プロファイルは、項目の支持/不支持の測度、すなわち項目の特徴または特性の反映である。そして、ユーザプロファイルは、ユーザの好き/嫌いの測度、すなわちユーザの個性の反映である。大きなユーザ/レコードの組に基づいて計算された場合は、項目またはユーザプロファイルは、それぞれ項目またはユーザの独立の測度と見なされ得る。当業者は、項目プロファイルのみを学習することでの有用性が存在することが分かるであろう。第一に、行列因数分解を通して、
における項目を埋め込むことでリコメンダが類似度を推論(および符号化)することを可能にし、そのプロファイルが小さなユークリッド距離を有する項目は、ユーザによって同じように評点される項目となる。したがって、リコメンダにとって項目プロファイルを学習するタスクは、実際の推薦のタスクよりも関心がある。特に、ソースがデータベースである場合に当てはまり得るように、ユーザは推薦を受け取ることを必要とせずまたは望まない場合がある。第二に、項目プロファイルを取得すると、リコメンダは、些細なことでユーザが追加のデータを明らかにすることなく、それらを用いて関連のある推薦を提供することができる。リコメンダはVをユーザに送る(またはそれを公開する)ことができ、ユーザは項目ごとのその評点を知り、所与のVに対して、uiについて(2)を解くことによって、その(個人の)プロファイルuiを推論することができ、各ユーザはその評点にわたってリッジ回帰を実行することによってそのプロファイルを取得することができる。uiおよびVを有して、ユーザは式(4)を通して他の項目に対するすべてのその評点をローカルに予測することができる。これは本出願と同じ日に発明者らによって出願された、「A METHOD AND SYSTEM FOR PRIVACY−PRESERVING RECOMMENDATION BASED ON MATRIX FACTORIZATION AND RIDGE REGRESSION」という名称の同時係属の出願の主題である。
上述のシナリオの両方とも、リコメンダおよびユーザのいずれもVの公開に反対しないことを前提とする。簡単にするために、およびリコメンダに対するこのようなプロトコルの有用性のために、本出願と同じ日に出願された「A METHOD AND SYSTEM FOR PRIVACY PRESERVING MATRIX FACTORIZATION」という名称の、発明者らによる同時係属の出願は、リコメンダが項目プロファイルを学習することを可能にする。本原理はこの設計を、ユーザが彼等の予測された評点を学習するように拡張し、一方、リコメンダは演算を盲目的なやり方で行い、ユーザについての役立つ情報を、Vさえをも学習することはない。
本原理によれば安全保証は、正直であるが好奇心のある脅威モデルのもとで成り立つようになることが仮定される。言い換えれば、RecSysおよびCSPは、規定されたようにプロトコルに従うが、これらの関心のあるパーティは、プロトコルの写しをオフラインでも分析して何らかの追加情報を推論することを選び得る。さらに、リコメンダおよびCSPは共謀しないことが仮定される。
本原理の好ましい実施形態は、図3におけるフローチャート300の要件を満たすプロトコルを備え、以下のステップによって記述される。
P1.ソースは、どれだけ多くのトークン(評点)および項目の対が、それぞれの参加レコードに対して提出されるかを報告する305。組またはレコードは2つ以上のレコードを含み、レコード当たりのトークンの組は少なくとも1つのトークンを含む。ソースがユーザの組である場合は、各ユーザは、RecSysに、それらのそれぞれのトークンおよび項目の数を個別に報告する。
P2.CSPは、部分的準同型方式ξのための公開暗号鍵を生成し、それをすべてのユーザ(ソース)に送る310。準同型暗号化は、特定のタイプの計算に、暗号化テキスト上で実行されること、及び復号されたものが平文に対して行われた演算の結果と一致する暗号化された結果を取得することを可能にする、暗号化の形であることを当業者は理解するであろう。例えば、彼等のいずれも個々の数の値を見出すことはできないまま、一個人が2つの暗号化された数を追加することができ、次いで別の個人がその結果を復号することができる。部分的準同型暗号化は、平文に対する1つの演算(加算または乗算)に対して準同型である。部分的準同型暗号化は、スカラに対する加算および乗算に対して準同型である。
P3.各ユーザiはマスクθiを選択し、それをCSPの公開鍵のもとで暗号化し、暗号化されたマスクtiを生成する。マスクがデータ難読化の形であり、乱数発生器の追加または乱数によるシャフリングのように簡単なものとし得ることを当業者は理解するであろう。このマスクは、ユーザiのプロファイルuiを隠蔽するために用いられることになる。さらに、各ユーザは、その鍵を用いてそのデータを暗号化する。特に、jを項目idとし、ri,jをユーザiがjに与えた評点として、ユーザは、あらゆる対(j,ri,j)に対してこの対を公開暗号鍵を用いて暗号化する。ユーザは、暗号化されたマスクtiおよび暗号化されたデータをRecSysに送る315。
P4.RecSysは、マスクηを暗号化されたデータに加算し、暗号化されたマスクtiおよび暗号化されマスクされたデータをCSPに転送する320。
P5.CSPは、暗号化されたマスクtiを復号し、復号されたマスクθiを取り出し、また暗号化されたマスクされたデータを復号する325。
P6.RecSysは、少なくとも1つの要求ユーザから、すべての項目のコーパスにおける少なくとも1つの特定の項目に対する推薦要求を受け取る(330)。各要求ユーザは、レコードを提供したユーザの1つである。
P7.RecSysは、ユーザおよび項目プロファイルの次元(すなわちパラメータd)3352、評点の総数(すなわちパラメータM)3354、ユーザおよび項目の総数3356並びにガーブル回路において実数の整数および小数部を表すのに用いられるビット数3358を含む、ガーブル回路を組み立てるのに必要な完全な仕様をCSPに送る335。レコード内に存在するすべての項目ではないにしろ、項目の別の組がパラメータに含まれることになる。
P8.CSPは、項目の別々の組に関して、レコードに対して行列因数分解を実行するガーブル回路として当業者に知られているものを用意する。ガーブル化されるために、回路は、最初にブール回路として書かれる3402。回路への入力は、RecSysがユーザデータをマスクするために用いたマスクを備える。回路の内部では、マスクは、データをマスク解除し、次いで行列因数分解を実行するために用いられる。回路の出力は、項目プロファイルVおよびユーザプロファイルUである。CSPはまた、項目jごとに1つ、それ自体のランダムマスクρjを選択する。これらは、各項目jのプロファイルを隠蔽するために用いられる。項目およびユーザプロファイルをクリアテキストで出力するのではなく、CSPによって構築された回路は、(a)マスクρjでマスクされた項目プロファイルvjおよび(b)マスクθiでマスクされたユーザプロファイルuiを出力する。個々のレコードおよびレコードから抽出された情報の内容についての知識が得られることはない。
P9.CSPは、行列因数分解のためのガーブル回路をRecSysに送る345。具体的には、CSPは、ゲートをガーブル化されたテーブルに処理し、回路構造によって規定された順番にそれらをRecSysに送信する。
P10.RecSysとCSPの間3502の紛失通信を通して350、RecSysは、それ自体またはCSPが実際の値を学習することなく、復号されマスクされたレコードのガーブル化された値を学習する。紛失通信は、何が(もしあれば)伝送されたかについては紛失的なままである受信側に、送出側が潜在的に多くの情報の1つを伝送する、伝送のタイプであることを当業者は理解するであろう。
P11.RecSysは回路を評価し、マスクされたuiを各ユーザiに送り355、それらはそれをマスク解除する。
P12.ユーザが推薦を入手することを望む場合は、ユーザはそのプロファイルuiをマスク解除し、次いで加法的準同型暗号方式
を用いておよびそれ自体の公開鍵を用いて暗号化する360。
P13.ユーザは暗号化されたuiをRecSysに送り、RecSysはそれをCSPに転送する365。
P14.RecSysは、あらゆる項目jに対して、<ui,(vj+ρj)>、j∈[m]の暗号化された値を計算し370、これは暗号方式が加法的準同型であるので行うことができる。
P15.CSPは、あらゆる項目jに対して、<ui,ρj>、j∈[m]の暗号化された値を計算し、これは暗号方式が加法的準同型であるので行うことができ、この値をRecSysに送る375。
P16.RecSysは、<ui,ρj>、j∈[m]の暗号化された値を、対応する<ui,(vj+ρj)>、j∈[m]の暗号化された値から減算し、<ui,vj>,j∈[m]の暗号化された値を取得し、これらをユーザに送る380。
P17.ユーザは、これらの<ui,vj>,j∈[m]の暗号化された値を、その秘密復号鍵を用いて復号し、それにより式(3)に示されるように、あらゆる項目に対するその予測された評点を入手する385。
上記の構築は、そのユーザプロファイルが行列因数分解を通して計算されたユーザのみに対して正しく動作する。まだそのデータを提出していない新しいユーザは、この方法で推薦を入手することはできない。「A METHOD AND SYSTEM FOR PRIVACY−PRESERVING RECOMMENDATION BASED ON MATRIX FACTORIZATION AND RIDGE REGRESSION」という名称の同時係属の出願は、この特定の場合に対処する。
技術的には、このプロトコルは、各ユーザによって提供されるトークンの数を漏洩する。これは、簡単なプロトコル変更を通して、例えば提出されたレコードを、予め設定された最大数に達するまで、適切に「ヌル」エントリで「パッディング(padding)」することによって修正される312。話を簡単にするために、プロトコルは、この「パッディング」動作なしで述べられた。
ガーブル回路は一度使用され得るだけなので、同じ評点に対する将来の計算は、ユーザがプロキシ紛失通信を通して彼等のデータを再提出することが必要になる。プロキシ紛失通信は、3つ以上のパーティが関係する紛失通信である。この理由により、本原理のプロトコルは、公開鍵暗号化をガーブル回路と組み合わせたハイブリッド方法を採用した。
本原理では、公開鍵暗号化は、以下のように用いられる。各ユーザiは、強秘匿暗号化アルゴリズム
を用いて、CSPによって提供された公開鍵pkcspのもとで、そのそれぞれのマスクθiを暗号化し、暗号化されたマスク
を提出する。さらに、各ユーザiは、暗号化アルゴリズム
を用いて、公開鍵pkcspのもとで、そのそれぞれの入力(j,ri,j)を暗号化し、評点された各項目jに対してユーザは、
によって対(i,c)をRecSysに提出し、合計でM個の評点が提出される。その評点を提出したユーザはオフラインになることができる。
CSP公開鍵暗号化アルゴリズムは、部分的準同型であり、対応する復号鍵の知識なしに、暗号化されたメッセージに定数が適用され得る。明らかに、定数を加算するためにPaillierまたはRegevなどの加法的準同型方式も用いられ得るが、部分的準同型なだけであるハッシュElGamalで十分であり、この場合にはより効率的に実装され得る。
暗号が部分的準同型であることを想起すると、ユーザからM個の評点を受け取るとすぐに、RecSysはそれらをランダムマスク
を用いて不明瞭化し、ηはランダムまたは擬似ランダム変数であり、
はXOR演算である。RecSysはそれらを、ガーブル回路を組み立てるのに必要な完全な仕様と共同でCSPに送る。特に、RecSysは、ユーザおよび項目プロファイルの次元(すなわちパラメータd)、評点の総数(すなわちパラメータM)、ユーザおよび項目の総数、ならびにガーブル回路において実数の整数および小数部を表すのに用いられるビット数を指定する。
RecSysがM個の蓄積された評点にわたって行列因数分解を実行することを望むときはいつでも、それはMをCSPに報告する。CSPは、(a)入力を復号し、次いで(b)行列因数分解を実行する、ガーブル回路をRecSysに提供することができる。”Privacy−preserving ridge regression on hundreds of millions of records”,IEEE S&P, 2013,by V. Nikolaenko, U. Weinsberg, S. Ioannidis, M. Joye, D. Boneh, およびN. Taftでは、回路内での復号は、マスクおよび準同型暗号を用いることによって回避される。本原理はこの着想を行列因数分解に利用するが、部分的準同型暗号方式が必要なだけである。
暗号を受け取るとすぐに、CSPはそれらを復号し、マスクされた値
を入手する。次いで行列因数分解を設計図として用い、CSPは以下を行うヤオのガーブル回路を用意する。
(a)入力としてマスクηに対応するガーブル化された値を取り込む。
(b)マスクηを除去して対応するタプル(i,j,ri,j)を回復する。
(c)行列因数分解を実行する。
(d)ρjでマスクされた項目プロファイル
および
でマスクされたユーザプロファイルを出力する。ここで、j∈[m]、
、i∈[n]である。
プロトコルの終わりには、RecSysはそれぞれの
を各ユーザiに送り、それは次いでマスク
、i∈[n]を除去することによってそのプロファイルuiを回復する。ユーザiが項目推薦を入手することを望む場合、ユーザは、そのプロファイルをそれ自体の公開鍵pkiのもとで加法的準同型暗号アルゴリズム
(例えばPaillierの暗号システムなど)によって暗号化し、結果として生じる値
をRecSysに送る。RecSysは、それをCSPに転送し、またj∈[m]に対して、
を計算する。CSPは、j∈[m]に対して、
を計算し、この値をRecSysに返す。最後に、RecSysは、
を
から減算して、すべての項目j∈[m]に対する予測された評点
の暗号化を取得し、それらをユーザiに送る。次いでユーザiは、その秘密復号鍵を用いてクリアテキストでの推薦、すなわち
を取得することができる。
(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(i,j)∈Mを計算し、これはiがjを評点した場合は1、そうでなければ0となる。
Q2.各反復においてこれらの回路の出力を用いて、各項目およびユーザ勾配を、それぞれm個およびn個の積にわたる合計として計算する。
残念ながら、この実装は非効率的であり、勾配降下アルゴリズムのあらゆる反復は、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
アルゴリズムは入力として、組
アルゴリズムは入力として、組
、または等価的にタプル
を受け取り、n+m+M個のタプルの配列を構築する。Sの最初のn個およびm個のタプルはそれぞれユーザおよび項目プロファイルのためのプレースホルダとして働き、残りのM個のタプルは入力Liを記憶する。より具体的には、各ユーザi∈[n]に対して、アルゴリズムはタプル(i,⊥,0,⊥,ui,⊥)を構築し、
はランダムに選択されたユーザiの初期プロファイルである。各項目j∈[m]に対して、アルゴリズムはタプル(⊥,j,0,⊥,⊥,vj,⊥)を構築し、
はやはりランダムに選択された項目jの初期プロファイルである。最後に、各対
に対して、アルゴリズムは対応するタプル(i,j,1,ri,j,⊥,⊥)を構築し、ri,jはユーザiの項目jに対する評点である。結果として生じる配列は、図5(A)に示される。k番目のタプルのl番目の要素をsl,kによって表すと、これらの要素は以下の役割をする。
(a)s1,k:[n]におけるユーザ識別子
(b)s2,k:[m]における項目識別子
(c)s3,k:タプルが「プロファイル」または「入力」タプルであるかを示す2進フラグ
(d)s4,k:「入力」タプルにおける評点
(e)s5,k:Rdにおけるユーザプロファイル
(f)s6,k:Rdにおける項目プロファイル
C2.タプルを、ユーザidに関して(行1および3に関して)昇順にソートする420。2つのidが等しい場合は、タプルフラグすなわち各タプル内の3番目の要素を比較することによって均衡を破る。したがって、ソートの後には、各「ユーザプロファイル」タプルは、同じidを有する「入力」タプルによって後続される。
(a)s1,k:[n]におけるユーザ識別子
(b)s2,k:[m]における項目識別子
(c)s3,k:タプルが「プロファイル」または「入力」タプルであるかを示す2進フラグ
(d)s4,k:「入力」タプルにおける評点
(e)s5,k:Rdにおけるユーザプロファイル
(f)s6,k:Rdにおける項目プロファイル
C2.タプルを、ユーザidに関して(行1および3に関して)昇順にソートする420。2つのidが等しい場合は、タプルフラグすなわち各タプル内の3番目の要素を比較することによって均衡を破る。したがって、ソートの後には、各「ユーザプロファイル」タプルは、同じidを有する「入力」タプルによって後続される。
C3.ユーザプロファイルをコピーする(左パス)430。
s5,k←s3,k*s5,k-1+(1−s3,k)*s5,k、 k=2,...,M+n
C4.タプルを、項目idに関して(行2および3に関して)昇順にソートする440。2つのidが等しい場合は、タプルフラグすなわち各タプル内の3番目の要素を比較することによって均衡を破る。
C4.タプルを、項目idに関して(行2および3に関して)昇順にソートする440。2つのidが等しい場合は、タプルフラグすなわち各タプル内の3番目の要素を比較することによって均衡を破る。
C5.項目プロファイルをコピーする(左パス)450。
s6,k←s3,k*s6,k-1+(1−s3,k)*s6,k、 k=2,...,M+m
C6.勾配寄与を計算する460 ∀k<M。
C6.勾配寄与を計算する460 ∀k<M。
、∀k<M
C7.項目プロファイルを更新する(右パス)470。
C7.項目プロファイルを更新する(右パス)470。
s6,k←s6,k+s3,k+1*s6,k+1+(1−s3,k)*2γμs6,k、 k=M+n−1,・・・,1
C8.行1および3に関してタプルをソートする475。
C8.行1および3に関してタプルをソートする475。
C9.ユーザプロファイルを更新する(右パス)480。
s5,k←s5,k+s3,k+1*s5,k+1+(1−s3,k)*2γμs5,k、 k=M+n−1,・・・,1
C10.反復数がK未満の場合はC3へ行く485。
C10.反復数がK未満の場合はC3へ行く485。
C11.行3および2に関してタプルをソートする490。
C12.k=1,...,mに対して項目プロファイルs6,kを出力し495、出力は少なくとも1つの項目プロファイルに制限され得る。
勾配降下反復は、以下の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)に対応する各「入力」タプルは、最後の反復において計算されたのに従って、評点ri,j(s4,kにおける)、ならびにプロファイルuiおよびvj(それぞれs5,kおよびs6,kにおける)を記憶する。これらから以下の量vj(ri,j−<ui,vj>)およびui(ri,j−<ui,vj>)が計算され、これらは(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はJavaベースのオープンソースフレームワークであり、基本的なXOR、OR、およびANDゲートを用いた回路定義を可能にする。回路が構築された後に、フレームワークは、ガーブル化、紛失通信、およびガーブル回路の完全な評価を取り扱う。しかしながら、回路をガーブル化および実行する前に、FastGCは、メモリにおいてガーブル化されない回路全体を、Javaオブジェクトの組として表す。いずれの時点においてもゲートのサブセットのみがガーブル化および/または実行されるので、これらのオブジェクトは、ガーブル化されない回路が提供するべきメモリフットプリントに対してかなりのメモリオーバヘッドを招く。さらに、FastGCは、上述のように実行プロセスと並列にガーブル化を実行するが、両方の動作は順次的なやり方で生じ、ゲートは、それらの入力が準備できた後に、一時に1つずつ処理される。この実装は並列化の適用ができないことを当業者は明らかに認識するであろう。
結果として、フレームワークは、FastGCのメモリフットプリントを低減するが、複数のプロセッサーにわたる並列化されたガーブル化および計算を可能にして、上記2つの問題に対処するように修正された。特に、我々は、それぞれ1つが、並列に実行され得る垂直な「スライス」の組を備える、順次的な「レイヤ」に回路を水平に分割する能力を導入した。レイヤは、すべてのその入力が準備できたときにのみ、メモリ内に生成される。ガーブル化され評価された後にレイヤ全体がメモリから除去され、次のレイヤが構築されることができ、したがってメモリフットプリントを、最も大きなレイヤのサイズに制限する。レイヤの実行は、そのスライスをスレッドに割り当てるスケジューラを用いて行われ、それらが並列に実行することを可能にする。並列化は複数のコアを有する単一のマシン上に実装されたが、スライス間で共有される状態は想定されないので、実装は異なるマシンにわたって実行するように直接的なやり方で拡張され得る。
最後に、アルゴリズムにおいて概要が示された数値演算を実施するために、FastGCは、ソーティングに加えて、固定小数点数表示を有する実数にわたる加算および乗算をサポートするように拡張された。ソーティングのために、Batcherのソーティングネットワークが用いられた。固定小数点数表示は、打ち切りから結果として生じる精度低下と、回路のサイズとのトレードオフを提供した。さらに、アルゴリズムの実装は、複数の方法で最適化され、特に、
(a)回路の実行の始めにおいて計算された比較を再利用することによってソーティングのコストを低減した。
(a)回路の実行の始めにおいて計算された比較を再利用することによってソーティングのコストを低減した。
ソーティングネットワークのビルディングブロックは、2つの項目を比較し、出力対が順序付けられるように必要に応じてそれらを交換する比較交換回路である。行列因数分解アルゴリズムのソーティング演算(行C4およびC8)は、K回の勾配降下反復のそれぞれにおいて、反復ごとに全く同じ入力を用いて、タプル間の同一の比較を実行する。実際、各ソーティングは、各反復において全く同じやり方で配列S内のタプルを並べ換える。この特性は、これらのソーティングのそれぞれに対して比較演算を1回だけ実行することによって活用される。特に、(i,j,フラグ,評点)の形のタプルのソーティングは、例えば最初iとフラグ、jとフラグ、戻ってiとフラグに関して、計算の最初に(ユーザまたは項目プロファイルのペイロードなしに)行われる。その後に、これらのソーティングのそれぞれにおいて、比較回路の出力は、勾配降下の間に用いられる交換回路への入力として再利用される。結果として、各反復において適用される「ソーティング」ネットワークは、比較を行わずに単にタプルを並べ換える(すなわち、これは「並べ換え」ネットワークである)。
(b)配列Sのサイズを低減した。
すべての比較を予め計算することはまた、S内のタプルのサイズを大幅に低減することを可能にする。まず始めに、ユーザまたは項目idに対応する行は、ソーティング時の比較への入力として、行列因数分解アルゴリズムにおいてのみ用いられることを当業者は認めることができる。フラグおよび評点は、コピーおよび更新段階の間に用いられるが、各反復においてそれらの相対位置は同一である。さらに、これらの位置は、我々の計算の始めにおいて、タプル(i,j,フラグ,評点)のソーティングの出力として計算され得る。したがって、各反復において行われる「並べ換え」演算は、ユーザおよび項目プロファイルに適用される必要があるだけで、すべての他の行は配列Sから除去され得る。もう1つの改善は、1組のプロファイル、例えばユーザを固定すること、項目プロファイルのみを並べ換えることの2つの付加的要因により、並べ換えのコストを低減する。次いで項目プロファイルは2つの状態の間で循環し、それぞれ一方は並べ換えを通して他方から到達可能であり、1つにおいてそれらはユーザプロファイルと整列され、部分的勾配が計算され、1つにおいては項目プロファイルが更新されコピーされる。
(c)XORを用いることによって交換演算を最適化した。
XOR演算は「無償」で実行され得るということを前提として、可能な場合は常にXORを用いることによって、比較、交換、更新、およびコピー演算の最適化が行われる。当業者は、無償XORが、関連するガーブル化されたテーブルおよび対応するハッシュまたは対称鍵演算なしに、ガーブル化されることができ、計算および通信における著しい改善になることを理解するであろう。
(d)計算を並列化した。
ソーティングおよび勾配計算は、行列因数分解回路における計算の大部分を構成し(コピーおよび更新の寄与は実行時間の3%以下であり、非XORゲートの0.4%である)、これらの演算は、FastGCのこの拡張により並列化される。勾配計算は明らかに並列化可能であり、ソーティングネットワークも高度に並列化可能である(並列化は彼等の開発の主要な動機である)。さらに、各ソートにおける並列スライスの多くは同一であるので、回路スライスを定義する同じFastGCオブジェクトは、異なる入力を有して再利用され、メモリにおいてオブジェクトを繰り返し生成および破棄する必要性を大幅に低減する。
本原理は、ハードウェア、ソフトウェア、ファームウェア、専用プロセッサー、またはそれらの組み合わせの様々な形で実装され得ることが理解されるべきである。本原理はハードウェアおよびソフトウェアの組み合わせとして実装されることが好ましい。さらにソフトウェアは、プログラム記憶装置上に有形に具体化されたアプリケーションプログラムとして実装されることが好ましい。アプリケーションプログラムは、任意の適切なアーキテクチャを備えたマシンにアップロードされ、それによって実行され得る。マシンは、1または複数の中央処理装置(「CPU」)、ランダムアクセスメモリ(RAM)、および入力/出力(I/O)インターフェースなどのハードウェアを有する、コンピュータプラットフォーム上に実装されることが好ましい。コンピュータプラットフォームはまた、オペレーティングシステムおよびマイクロ命令コードを含む。本明細書で述べられた様々なプロセスおよび機能は、オペレーティングシステムによって実行される、マイクロ命令コードの一部もしくはアプリケーションプログラムの一部(またはそれらの組み合わせ)とすることができる。さらに追加のデータ記憶装置および印刷装置などの様々な他の周辺装置が、コンピュータプラットフォームに接続され得る。
図6は、本原理を実装するために用いられる、最小のコンピューティング環境600のブロック図を示す。コンピューティング環境600は、プロセッサー610、および少なくとも1つ(および好ましくは2つ以上)のI/Oインターフェース620を含む。I/Oインターフェースは有線または無線とすることができ、無線での実装においては、例えばエンドユーザに遠隔に提供される「サービスとしてのソフトウェア」(SAAS)機能として本原理が提供されることを可能にするために、コンピューティング環境600がグローバルネットワーク(例えばインターネット)上で動作し、他のコンピュータまたはサーバー(例えばクラウドベースのコンピューティングまたはストレージサーバー)と通信することを可能にするように、適切な無線通信プロトコルによって予め構成される。1または複数のメモリ630および/または記憶装置(HDD)640も、コンピューティング環境600内に提供される。コンピューティング環境600または複数のコンピュータ環境600は、本原理の一実施形態による行列因数分解C1〜C12(図4)のためのプロトコルP1〜P17(図3)を実装することができる。特に本原理の実施形態では、コンピューティング環境600はRecSys230を実装することができ、別のコンピューティング環境600はCSP250を実装することができ、ソースは1または複数のコンピュータ環境600を含むことができ、それぞれはRecSys230およびCSP250と通信するために用いられる、非限定的にデスクトップコンピュータ、携帯電話、スマートフォン、フォンウォッチ、タブレットコンピュータ、携帯情報端末(PDA)、ノートブック、およびラップトップコンピュータを含み、互いに異なるユーザ210に関連付けられる。さらにCSP250はソースに含まれることができ、または等価的にソースの各ユーザ210のコンピュータ環境に含められ得る。
さらに、添付の図に示される、構成するシステム構成要素および方法ステップのいくつかは、ソフトウェアにおいて実装されることが好ましいので、システム構成要素(またはプロセスステップ)の間の実際の接続は、本原理がプログラムされるやり方に応じて異なり得ることが理解されるべきである。本明細書の教示に鑑みて、当業者は本原理のこれらのおよび同様な実装または構成を検討することができるであろう。
例示的実施形態について本明細書において添付の図を参照して述べてきたが、本原理はそれらの正確な実施形態に限定されず、本原理の範囲および趣旨から逸脱せずに、当業者によってそれらに様々な変更および修正を提供し得ることが理解されるべきである。すべてのこのような変更および修正は、添付の特許請求の範囲に記載された本原理の範囲に含まれるものである。
Claims (32)
- 行列因数分解によって推薦を安全に生成するための方法であって、前記方法は、
レコードの組(220)を受け取るステップであって、各レコードは、それぞれのユーザから受け取られ、トークンの組および項目の組を備え、各レコードは、前記それぞれのユーザ以外のパーティに秘密に保たれる、ステップと、
要求ユーザから少なくとも1つの特定の項目に対する要求を受け取るステップ(330)と、
行列因数分解に基づいてガーブル回路を用いることによって、リコメンダ(RecSys)(230)において前記レコードの組を評価するステップ(355)であって、前記ガーブル回路の出力は、前記少なくとも1つの特定の項目に対するマスクされた項目プロファイルと、1つの前記要求ユーザに対するマスクされたユーザプロファイルと、を備える、ステップと、
前記少なくとも1つの特定の項目について前記要求ユーザに対する推薦を生成するために、前記要求ユーザと、前記RecSysと、暗号サービスプロバイダ(CSP)との間で、前記マスクされた項目プロファイルおよび前記マスクされたユーザプロファイルを共同で評価するステップ(360〜385)であって、前記要求ユーザに対する各推薦およびユーザプロファイルは、前記要求ユーザ以外のパーティには秘密に保たれ、前記少なくとも1つの特定の項目に対する前記項目プロファイルは、すべてのパーティに秘密に保たれ、ユーザプロファイルおよび項目プロファイルは、それぞれの前記マスクされた項目プロファイルおよびマスクされたユーザプロファイルのマスク解除されたバージョンである、ステップと、
を含む、前記方法。 - 前記レコードの組に対して行列因数分解を実行するために前記CSPにおいて前記ガーブル回路を設計するステップ(340)であって、前記ガーブル回路の出力は、前記少なくとも1つの特定の項目に対するマスクされた項目プロファイルおよび前記1つの要求ユーザに対するマスクされたユーザプロファイルを含む、ステップと、
前記ガーブル回路を前記RecSysに伝送するステップ(345)と、
をさらに含む、請求項1に記載の方法。 - 設計する前記ステップは、行列因数分解演算をブール回路として設計するステップ(3402)を含む、請求項2に記載の方法。
- 行列因数分解回路を設計する前記ステップは、
前記レコードの組の配列を構築するステップと、前記配列に対して、ソートし(420、440、470、490)、コピーし(430、450)、更新し(470、480)、比較し(480)、勾配寄与を計算する(460)、動作を実行するステップと、を含む、請求項3に記載の方法。 - 前記レコードの組を暗号化して、暗号化されたレコードを生成する、暗号化するステップ(315)をさらに含み、前記暗号化するステップは、レコードの組を受け取るステップの前に実行される、請求項2に記載の方法。
- 前記CSPにおいて公開暗号化鍵を生成するステップと、
前記鍵を前記それぞれのユーザに送るステップと、
をさらに含む、請求項5に記載の方法。 - 前記暗号化は、部分的準同型暗号化であり(310)、前記方法は、
前記RecSysにおいて前記暗号化されたレコードをマスクして、マスクされたレコードを生成するステップ(320)と、
前記CSPにおいて前記マスクされたレコードを復号して、復号済みのマスクされたレコードを生成するステップと、
を含む、請求項5に記載の方法。 - 設計する前記ステップ(340)は、
それらを処理する前に前記ガーブル回路内で前記復号済みのマスクされたレコードをマスク解除するステップを含む、請求項7に記載の方法。 - 前記CSPと前記RecSysとの間(3502)で、紛失通信を実行するステップ(350)であって、前記RecSysは、前記復号済みのマスクされたレコードのガーブル値を受け取り、前記レコードは、前記RecSys及び前記CSPには秘密に保たれる、ステップをさらに含む、請求項7に記載の方法。
- 共同で評価する前記ステップは、
前記マスクされたユーザプロファイルを第1のマスクでマスク解除して前記ユーザプロファイルを取得するステップ(360)と、
前記ユーザプロファイルを暗号化して、暗号化されたユーザプロファイルを生成するステップ(360)と、
前記RecSysにおいて、前記少なくとも1つの特定の項目に対する前記暗号化されたユーザプロファイルとマスクされた項目プロファイルとの第1の積を計算するステップ(370)と、
前記CSPにおいて、前記少なくとも1つの特定の項目に対する前記暗号化されたユーザプロファイルと少なくとも第2のマスクとの少なくとも1つの第2の積を計算するステップ(375)と、
前記RecSysにおいて、前記第1の積から前記少なくとも1つの第2の積を減算して、前記少なくとも1つの特定の項目に対する少なくとも1つの暗号化された推薦を生成するステップ(380)と、
前記少なくとも1つの特定の項目に対する前記少なくとも1つの暗号化された推薦を復号するステップ(385)と、
をさらに含む、請求項1に記載の方法。 - 前記第1のマスクは、前記要求ユーザによって選択され(315)、前記少なくとも1つの第2のマスクは、前記CSPによって選択される(340)、請求項10に記載の方法。
- 暗号化および復号する前記ステップは、前記要求ユーザによって選択された加法的準同型暗号方式を用いる(360)、請求項10に記載の方法。
- 各レコードのトークンおよび項目の数を受け取るステップ(220、305)をさらに含む、請求項1に記載の方法。
- 各レコードのトークンの数が最大値を表す値より小さいときに、前記値に等しいトークンの数を有するレコードを生成するために、ヌルエントリで各レコードをパッディングするステップ(3052)をさらに含む、請求項1に記載の方法。
- 前記レコードの組のソースは、データベースとすることができる、請求項1に記載の方法。
- 前記CSPによる前記ガーブル回路の前記設計のためのパラメータの組を受け取るステップであって、前記パラメータは、前記RecSysによって送られた(335)、ステップをさらに含む、請求項2に記載の方法。
- 行列因数分解によって推薦を安全に生成するためのシステムであって、前記システムは、レコードのそれぞれの組を提供するユーザの組と、安全な行列因数分解回路を提供する暗号サービスプロバイダ(CSP)と、各レコードがそれぞれのユーザ以外のパーティに秘密に保たれるように前記レコードを評価するRecSysと、を備え、各ユーザ、前記CSP、および前記RecSysはそれぞれ、
少なくとも1つの入力/出力(604)を受け取るためのプロセッサー(602)と、
前記プロセッサーと信号通信する少なくとも1つのメモリ(606、608)と、を含み、前記RecSysのプロセッサーは、
レコードの組を受け取ることであって、各レコードは、トークンの組および項目の組を含み、各レコードは、前記それぞれのユーザ以外のパーティに秘密に保たれる、レコードの組を受け取ることと、
要求ユーザから少なくとも1つの特定の項目に対する要求を受け取ることと、
行列因数分解に基づいてガーブル回路によって前記レコードの組を評価することであって、前記ガーブル回路の出力は、前記少なくとも1つの特定の項目に対するマスクされた項目プロファイルおよび1つの前記要求ユーザに対するマスクされたユーザプロファイルを備える、評価することと、を実行するように構成され、
前記要求ユーザ、RecSys、およびCSPのプロセッサーは、前記少なくとも1つの特定の項目について前記要求ユーザに推薦を生成するために、前記マスクされた項目プロファイルおよび前記マスクされたユーザプロファイルを共同で評価するように構成され(360〜385)、
前記要求ユーザに対する各推薦およびユーザプロファイルは、前記要求ユーザ以外のパーティには秘密に保たれ、前記少なくとも1つの特定の項目に対する前記項目プロファイルはすべてのパーティに秘密に保たれ、ユーザプロファイルおよび項目プロファイルは、それぞれの前記マスクされた項目プロファイルおよびマスクされたユーザプロファイルのマスク解除されたバージョンである、前記システム。 - 前記CSPのプロセッサーは、前記レコードの組に対して行列因数分解を実行するために前記ガーブル回路を設計することであって、前記ガーブル回路の出力は、前記少なくとも1つの特定の項目に対するマスクされた項目プロファイルと、前記1つの要求ユーザに対するマスクされたユーザプロファイルと、を含む、設計することと、
前記ガーブル回路を前記RecSysに伝送することと、
を実行するように構成される、請求項17に記載のシステム。 - 前記CSPのプロセッサーは、行列因数分解演算をブール回路として設計するように構成されることによって前記ガーブル回路を設計するように構成される、請求項18に記載のシステム。
- 前記CSPのプロセッサーは、
前記レコードの組の配列を構築し、
前記配列に対して、ソートし、コピーし、更新し、比較し、および勾配寄与を計算する動作を実行ように構成されることによって前記行列因数分解回路を設計するように構成される、請求項19に記載のシステム。 - 各ユーザのプロセッサーは、前記レコードを提供する前に、前記それぞれのレコードを暗号化して、暗号化されたレコードを生成するように構成される、請求項18に記載のシステム。
- 前記CSPのプロセッサーは、
前記CSPにおいて公開暗号鍵を生成し、
前記鍵を前記ユーザの組に送る
ようにさらに構成される、請求項21に記載のシステム。 - 前記暗号化は、部分的準同型暗号化であり、
前記RecSysのプロセッサーは、前記暗号化されたレコードをマスクして、マスクされたレコードを生成するようにさらに構成され、
前記CSPのプロセッサーは、前記マスクされたレコードを復号して、復号済みのマスクされたレコードを生成するようにさらに構成される、請求項21に記載のシステム。 - 前記CSPのプロセッサーは、前記復号済みのマスクされたレコードを、それらを処理する前に、前記ガーブル回路内部でマスク解除するようにさらに構成されることによって、前記ガーブル回路を設計するように構成される、請求項23に記載のシステム。
- 前記RecSysのプロセッサーおよび前記CSPのプロセッサーは、紛失通信を実行するようにさらに構成され、前記RecSysは、前記復号済みのマスクされたレコードの前記ガーブル化された値を受け取り、前記レコードは、前記RecSysおよび前記CSPに秘密に保たれる、請求項23に記載のシステム。
- 前記要求ユーザのプロセッサーは、
前記マスクされたユーザプロファイルを第1のマスクでマスク解除して、前記ユーザプロファイルを取得し、
前記ユーザプロファイルを暗号化して、暗号化されたユーザプロファイルを生成し、
前記少なくとも1つの特定の項目に対する少なくとも1つの暗号化された推薦を復号する
ようにさらに構成され、前記RecSysのプロセッサーは、
前記少なくとも1つの特定の項目に対する前記暗号化されたユーザプロファイルと前記マスクされた項目プロファイルとの第1の積を計算し、
前記第1の積から少なくとも1つの第2の積を減算して、前記少なくとも1つの特定の項目に対する少なくとも1つの暗号化された推薦を生成する
ようにさらに構成され、前記CSPのプロセッサーは、
前記CSPにおいて、前記少なくとも1つの特定の項目に対する前記暗号化されたユーザプロファイルと少なくとも1つの第2のマスクとの少なくとも1つの第2の積を計算するようにさらに構成される、請求項17に記載のシステム。 - 前記第1のマスクは、前記要求ユーザによって選択され、前記少なくとも1つの第2のマスクは前記CSPによって選択される、請求項26に記載のシステム。
- 前記要求ユーザのプロセッサーは、前記要求ユーザによって選択された加法的準同型暗号方式を用いるように構成される、請求項26に記載のシステム。
- 前記RecSysのプロセッサーは、各レコードのトークンの数を受け取るようにさらに構成され、前記トークンの数はソースによって送られた、請求項17に記載のシステム。
- 各ユーザのプロセッサーは、各レコードのトークンの数が最大値を表す値より小さいときに、前記値に等しいトークンの数を有するレコードを生成するために、ヌルエントリで前記各レコードをパッディングするように構成される、請求項17に記載のシステム。
- 前記レコードの組のソースは、データベースとすることができる、請求項17に記載のシステム。
- 前記CSPのプロセッサーは、前記ガーブル回路の前記設計のためのパラメータの組を受け取るようにさらに構成され、前記パラメータは前記RecSysによって送られた、請求項18に記載のシステム。
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361864085P | 2013-08-09 | 2013-08-09 | |
US201361864094P | 2013-08-09 | 2013-08-09 | |
US201361864098P | 2013-08-09 | 2013-08-09 | |
US201361864088P | 2013-08-09 | 2013-08-09 | |
US61/864,088 | 2013-08-09 | ||
US61/864,085 | 2013-08-09 | ||
US61/864,094 | 2013-08-09 | ||
US61/864,098 | 2013-08-09 | ||
USPCT/US2013/076353 | 2013-12-19 | ||
PCT/US2013/076353 WO2014137449A2 (en) | 2013-03-04 | 2013-12-19 | A method and system for privacy preserving counting |
PCT/US2014/036359 WO2014138753A2 (en) | 2013-03-04 | 2014-05-01 | A method and system for privacy-preserving recommendation to rating contributing users based on matrix factorization |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016517069A true JP2016517069A (ja) | 2016-06-09 |
Family
ID=49955504
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015561771A Pending JP2016510913A (ja) | 2013-08-09 | 2014-05-01 | 行列因子分解とリッジ回帰に基づくプライバシー保護リコメンデーションの方法及びシステム |
JP2015561769A Pending JP2016510912A (ja) | 2013-08-09 | 2014-05-01 | プライバシーを保護する行列因子分解のための方法及びシステム |
JP2015561770A Pending JP2016517069A (ja) | 2013-08-09 | 2014-05-01 | 行列因数分解に基づいたユーザに寄与する評点に対するプライバシー保護推薦のための方法およびシステム |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015561771A Pending JP2016510913A (ja) | 2013-08-09 | 2014-05-01 | 行列因子分解とリッジ回帰に基づくプライバシー保護リコメンデーションの方法及びシステム |
JP2015561769A Pending JP2016510912A (ja) | 2013-08-09 | 2014-05-01 | プライバシーを保護する行列因子分解のための方法及びシステム |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3031165A2 (ja) |
JP (3) | JP2016510913A (ja) |
KR (1) | KR20160041028A (ja) |
CN (3) | CN105103487A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022554058A (ja) * | 2020-08-14 | 2022-12-28 | グーグル エルエルシー | オンラインプライバシー保護技法 |
JP2023514947A (ja) * | 2020-12-13 | 2023-04-12 | グーグル エルエルシー | コンテンツ選択および配信のためのプライバシー保存技法 |
JP7448686B2 (ja) | 2021-06-03 | 2024-03-12 | グーグル エルエルシー | プライバシーを守るドメインをまたがる実験群区分および監視 |
US12052227B2 (en) | 2020-12-13 | 2024-07-30 | Google Llc | Privacy-preserving techniques for content selection and distribution |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10437953B2 (en) * | 2016-07-08 | 2019-10-08 | efabless corporation | Systems for engineering integrated circuit design and development |
EP3319001A1 (en) * | 2016-11-02 | 2018-05-09 | Skeyecode | Method for securely transmitting a secret data to a user of a terminal |
CN106548207B (zh) * | 2016-11-03 | 2018-11-30 | 北京图森未来科技有限公司 | 一种基于神经网络的图像处理方法及装置 |
CN107135061B (zh) * | 2017-04-17 | 2019-10-22 | 北京科技大学 | 一种5g通信标准下的分布式隐私保护机器学习方法 |
CN107302498B (zh) * | 2017-06-21 | 2019-08-27 | 安徽大学 | 一种SDN网络中支持隐私保护的多域QoS路径计算方法 |
EP4002754A1 (en) | 2017-08-31 | 2022-05-25 | Visa International Service Association | Single node multi-party encryption |
JP6759168B2 (ja) * | 2017-09-11 | 2020-09-23 | 日本電信電話株式会社 | 難読化回路生成装置、難読化回路計算装置、難読化回路生成方法、難読化回路計算方法、プログラム |
CN109756442B (zh) * | 2017-11-01 | 2020-04-24 | 清华大学 | 基于混淆电路的数据统计方法、装置以及设备 |
WO2019126030A1 (en) * | 2017-12-18 | 2019-06-27 | Mythic, Inc. | Systems and methods for mapping matrix calculations to a matrix multiply accelerator |
JP7177849B2 (ja) * | 2017-12-18 | 2022-11-24 | ユニバーシティ オブ セントラル フロリダ リサーチ ファウンデーション,インコーポレイテッド | パブリックコンピューターにおいて暗号化データに作用するコードを安全に実行する方法 |
CN110909356B (zh) * | 2018-09-18 | 2022-02-01 | 百度在线网络技术(北京)有限公司 | 安全多方计算方法、装置、设备及计算机可读介质 |
EP3881263A1 (en) | 2018-11-15 | 2021-09-22 | Ravel Technologies Sarl | Cryptographic anonymization for zero-knowledge advertising methods, apparatus, and system |
CN109992979B (zh) * | 2019-03-15 | 2020-12-11 | 暨南大学 | 一种岭回归训练方法、计算设备、介质 |
CN110209994B (zh) * | 2019-04-25 | 2022-12-23 | 广西师范大学 | 基于同态加密的矩阵分解推荐方法 |
CN110086717B (zh) * | 2019-04-30 | 2021-06-22 | 创新先进技术有限公司 | 用于进行数据安全匹配的方法、装置和系统 |
CN110196944B (zh) * | 2019-05-07 | 2021-06-01 | 深圳前海微众银行股份有限公司 | 一种序列化信息的推荐方法及装置 |
CN110363000B (zh) * | 2019-07-10 | 2023-11-17 | 深圳市腾讯网域计算机网络有限公司 | 识别恶意文件的方法、装置、电子设备及存储介质 |
CN110795631B (zh) * | 2019-10-29 | 2022-09-06 | 支付宝(杭州)信息技术有限公司 | 一种基于因子分解机的推送模型优化、预测方法和装置 |
CN110990871B (zh) * | 2019-11-29 | 2023-04-07 | 腾讯云计算(北京)有限责任公司 | 基于人工智能的机器学习模型训练方法、预测方法及装置 |
CN111125517B (zh) * | 2019-12-06 | 2023-03-14 | 陕西师范大学 | 一种基于差分隐私和时间感知的隐式矩阵分解推荐方法 |
CN111259260B (zh) * | 2020-03-30 | 2023-06-02 | 九江学院 | 一种基于排序分类的个性化推荐中的隐私保护方法 |
CN111552852B (zh) * | 2020-04-27 | 2021-09-28 | 北京交通大学 | 基于半离散矩阵分解的物品推荐方法 |
CN111553126B (zh) * | 2020-05-08 | 2022-05-24 | 北京华大九天科技股份有限公司 | 一种基于机器学习训练模型获取矩阵分解时间的方法 |
CN111857649B (zh) * | 2020-06-22 | 2022-04-12 | 复旦大学 | 一种用于隐私保护机器学习的定点数编码及运算系统 |
CN112528303B (zh) * | 2020-12-11 | 2024-01-26 | 重庆交通大学 | 一种基于ntru加密算法的多用户隐私推荐方法 |
CN112311546B (zh) * | 2020-12-25 | 2021-04-09 | 鹏城实验室 | 数据保密判定方法、装置、设备及计算机可读存储介质 |
IL280056A (en) | 2021-01-10 | 2022-08-01 | Google Llc | Using secure mpc and vector computations to protect access to information in content distribution |
US11113707B1 (en) | 2021-01-22 | 2021-09-07 | Isolation Network, Inc. | Artificial intelligence identification of high-value audiences for marketing campaigns |
IL281328A (en) | 2021-03-08 | 2022-10-01 | Google Llc | Flexible content selection processes through multi-sided secure calculation |
CN113051587B (zh) * | 2021-03-10 | 2024-02-02 | 中国人民大学 | 一种隐私保护智能交易推荐方法、系统和可读介质 |
KR20220140759A (ko) | 2021-04-09 | 2022-10-18 | 구글 엘엘씨 | 분류 정확도를 향상시키기 위한 기계 학습 모델링 데이터의 처리 |
CN113779500B (zh) * | 2021-08-23 | 2024-01-30 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN114564742B (zh) * | 2022-02-18 | 2024-05-14 | 北京交通大学 | 一种基于哈希学习的轻量化联邦推荐方法 |
CN114817999B (zh) * | 2022-06-28 | 2022-09-02 | 北京金睛云华科技有限公司 | 一种基于多密钥同态加密的外包隐私保护方法和设备 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1864171A (zh) * | 2003-08-08 | 2006-11-15 | 皇家飞利浦电子股份有限公司 | 处理数据的系统及其方法 |
EP1683298B1 (en) * | 2003-11-03 | 2008-09-17 | Koninklijke Philips Electronics N.V. | Method and device for efficient multiparty multiplication |
US8131732B2 (en) * | 2008-06-03 | 2012-03-06 | Nec Laboratories America, Inc. | Recommender system with fast matrix factorization using infinite dimensions |
US8972742B2 (en) * | 2009-09-04 | 2015-03-03 | Gradiant | System for secure image recognition |
US8676736B2 (en) * | 2010-07-30 | 2014-03-18 | Gravity Research And Development Kft. | Recommender systems and methods using modified alternating least squares algorithm |
CN102129463A (zh) * | 2011-03-11 | 2011-07-20 | 北京航空航天大学 | 一种融合项目相关性的基于pmf的协同过滤推荐系统 |
CN102129462B (zh) * | 2011-03-11 | 2014-06-18 | 北京航空航天大学 | 一种通过聚合对协同过滤推荐系统进行优化的方法 |
US20140180760A1 (en) * | 2011-03-18 | 2014-06-26 | Telefonica, S.A. | Method for context-aware recommendations based on implicit user feedback |
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 |
US8478768B1 (en) * | 2011-12-08 | 2013-07-02 | Palo Alto Research Center Incorporated | Privacy-preserving collaborative filtering |
US8880439B2 (en) * | 2012-02-27 | 2014-11-04 | Xerox Corporation | Robust Bayesian matrix factorization and recommender systems using same |
CN102982107B (zh) * | 2012-11-08 | 2015-09-16 | 北京航空航天大学 | 一种融合用户、项目和上下文属性信息的推荐系统优化方法 |
-
2014
- 2014-05-01 JP JP2015561771A patent/JP2016510913A/ja active Pending
- 2014-05-01 CN CN201480012517.0A patent/CN105103487A/zh active Pending
- 2014-05-01 KR KR1020157023839A patent/KR20160041028A/ko not_active Application Discontinuation
- 2014-05-01 EP EP14731436.3A patent/EP3031165A2/en not_active Withdrawn
- 2014-05-01 JP JP2015561769A patent/JP2016510912A/ja active Pending
- 2014-05-01 CN CN201480021770.2A patent/CN105144625A/zh active Pending
- 2014-05-01 JP JP2015561770A patent/JP2016517069A/ja active Pending
- 2014-05-01 CN CN201480012048.2A patent/CN105009505A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022554058A (ja) * | 2020-08-14 | 2022-12-28 | グーグル エルエルシー | オンラインプライバシー保護技法 |
JP7354427B2 (ja) | 2020-08-14 | 2023-10-02 | グーグル エルエルシー | オンラインプライバシー保護技法 |
US11968297B2 (en) | 2020-08-14 | 2024-04-23 | Google Llc | Online privacy preserving techniques |
JP2023514947A (ja) * | 2020-12-13 | 2023-04-12 | グーグル エルエルシー | コンテンツ選択および配信のためのプライバシー保存技法 |
JP7457813B2 (ja) | 2020-12-13 | 2024-03-28 | グーグル エルエルシー | コンテンツ選択および配信のためのプライバシー保存技法 |
US12052227B2 (en) | 2020-12-13 | 2024-07-30 | Google Llc | Privacy-preserving techniques for content selection and distribution |
JP7448686B2 (ja) | 2021-06-03 | 2024-03-12 | グーグル エルエルシー | プライバシーを守るドメインをまたがる実験群区分および監視 |
Also Published As
Publication number | Publication date |
---|---|
CN105144625A (zh) | 2015-12-09 |
EP3031165A2 (en) | 2016-06-15 |
CN105009505A (zh) | 2015-10-28 |
KR20160041028A (ko) | 2016-04-15 |
CN105103487A (zh) | 2015-11-25 |
JP2016510912A (ja) | 2016-04-11 |
JP2016510913A (ja) | 2016-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2016517069A (ja) | 行列因数分解に基づいたユーザに寄与する評点に対するプライバシー保護推薦のための方法およびシステム | |
US20160012238A1 (en) | A method and system for privacy-preserving recommendation to rating contributing users based on matrix factorization | |
Giacomelli et al. | Privacy-preserving ridge regression with only linearly-homomorphic encryption | |
Nikolaenko et al. | Privacy-preserving matrix factorization | |
JP2016512611A (ja) | プライバシー保護リッジ回帰 | |
Niu et al. | Toward verifiable and privacy preserving machine learning prediction | |
Lu et al. | A control-theoretic perspective on cyber-physical privacy: Where data privacy meets dynamic systems | |
US11368296B2 (en) | Communication-efficient secret shuffle protocol for encrypted data based on homomorphic encryption and oblivious transfer | |
Gong et al. | Homomorphic evaluation of the integer arithmetic operations for mobile edge computing | |
JP7361928B2 (ja) | 勾配ブースティングを介したプライバシーを守る機械学習 | |
Jung et al. | PDA: semantically secure time-series data analytics with dynamic user groups | |
Wang et al. | Achieving private and fair truth discovery in crowdsourcing systems | |
Ren et al. | Lipisc: a lightweight and flexible method for privacy-aware intersection set computation | |
Hong et al. | FedHD: A Privacy-Preserving Recommendation System with Homomorphic Encryption and Differential Privacy | |
EdalatNejad et al. | Private Collection Matching Protocols | |
Wang et al. | A flexible and privacy-preserving federated learning framework based on logistic regression | |
Yu et al. | Hardening secure search in encrypted database: a KGA-resistance conjunctive searchable encryption scheme from lattice | |
Jung | Ensuring Security and Privacy in Big Data Sharing, Trading, and Computing | |
Bao et al. | Secure Multiparty Computation Protocol Based on Homomorphic Encryption and its application in blockchain | |
Bao | Privacy-Preserving Cloud-Assisted Data Analytics | |
Agrawal et al. | Calculation of complexity of NTRU and optimized NTRU using GA, ACO, and PSO algorithm | |
Mao et al. | FLSwitch: Towards Secure and Fast Model Aggregation for Federated Deep Learning with a Learning State-Aware Switch | |
Ertaul et al. | Implementation of Oblivious Bloom Intersection in Private Set Intersection Protocol (PSI) | |
Zou | Social computing for personalization and credible information mining using probabilistic graphical models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20161202 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20161202 |