JP2016510912A - プライバシーを保護する行列因子分解のための方法及びシステム - Google Patents

プライバシーを保護する行列因子分解のための方法及びシステム Download PDF

Info

Publication number
JP2016510912A
JP2016510912A JP2015561769A JP2015561769A JP2016510912A JP 2016510912 A JP2016510912 A JP 2016510912A JP 2015561769 A JP2015561769 A JP 2015561769A JP 2015561769 A JP2015561769 A JP 2015561769A JP 2016510912 A JP2016510912 A JP 2016510912A
Authority
JP
Japan
Prior art keywords
record
item
recommender
records
processor
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
Application number
JP2015561769A
Other languages
English (en)
Inventor
ヨアニディス,エフストラティオス
ヴァインスベルグ,エフード
タフト,ニーナ,アン
ジョイエ,マルク
ニコラエンコ,ヴァレリア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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
Priority claimed from PCT/US2013/076353 external-priority patent/WO2014137449A2/en
Application filed by Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of JP2016510912A publication Critical patent/JP2016510912A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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

Abstract

レコメンデーションシステムで使用されるように行列因子分解によりアイテムをセキュアにプロファイルする方法及びシステムは、如何なる個々のレコードのコンテンツも学習することなしに、トークンとアイテムとを含むレコードの組を入力として受け取り、レコードの組に対する行列因子分解に基づきGarbled回路を設計及び評価して、如何なる個々のレコードのコンテンツ又はアイテムプロファイル以外のレコードから取り出された如何なる情報も学習することなしに、少なくとも1つのアイテムに関してプライバシーを保護する様にアイテムプロファイルを生成することによって、開始する。システムは、3つのパーティ、すなわち、複数のユーザ又はレコードのためのソースに相当するデータベース、Garbled回路を設計する暗号サービスプロバイダ、及び回路を評価するレコメンダシステムを含み、それにより、レコード及び、アイテムプロファイル以外の、レコードから取り出された如何なる情報も、それらのソース以外のパーティから秘密にされる。

Description

本原理は、プライバシーを保護するレコメンデーションシステム及びセキュアな分散計算法(Secure Multiparty Computation)に関し、特に、アイテムをプロファイルするためにプライバシーを保護する様に、行列因子分解として知られている協調フィルタリング技術をセキュアに実行することに関する。
この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年(非特許文献1)及び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年(非特許文献2)などの先の研究は、レコメンダがそのような情報を悪用したり、あるいは、ユーザをプライバシーの脅威にさらしたりし得る多くの方法を特定してきた。レコメンダは、利益のためにデータを転売したり、更には、ユーザによって意図的に明らかにされるものを越えて情報を取り出したりする気にしばしばなる。例えば、通常は機密でないと見なされるユーザ嗜好の記録、例えば映画の評価又はある個人のテレビ視聴履歴などさえも、ユーザの所属政党、性別、などを推測するのに使用され得る。レコメンデーションシステムにおいてデータから推測され得る個人情報は、新しいデータマイニングとして絶えず進化しており、推測方法は、悪意のある又は害のない目的のために、開発される。極端に、ユーザ嗜好の記録は、ユーザを一意的に識別するためにさえ使用され得る。A. Naranyan及びV. Shmatikovは、“Robust de-anonymization of large sparse datasets”、IEEE S&P、2008年(非特許文献3)において、Netflixデータセットで匿名性を奪うことによって、このことを明白に実証した。そのようなものとして、たとえレコメンダに悪意がないとしても、そのようなデータの意図しない漏えいは、ユーザを、リンケージアタック(linkage attacks)、すなわち、1つのデータベースを、別のデータベースでのプライバシーを危うくするように補助情報として使用する攻撃、を受けやすくする。
人は、将来の、推測の脅威、予想外の情報漏えい、又はインサイダーの脅威(目的のある漏えい)を常には見越すことができないので、ユーザが自身の個人データを平文で明らかにしないレコメンデーションシステムを構築することに関心が持たれている。暗号化されたデータに作用する実際的なレコメンデーションシステムは今日存在しない。加えて、ユーザが提供する評価、又はどのアイテムをユーザが評価したのかを学習することさえなしに、アイテムをプロファイルすることができるレコメンダを構築することに関心が持たれている。本原理は、そのようなセキュアなレコメンデーションシステムを提案する。
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年
本原理は、アイテムをプロファイルするためにプライバシーを保護する様に、行列因子分解として知られている協調フィルタリング技術をセキュアに実行する方法を提案する。特に、方法は、ユーザがアイテム(例えば、映画、本)に与えた評価を入力として受け取り、アイテムごとのプロファイルを生成する。プロファイルは、どのような評価をユーザが各アイテムに与える可能性があるのかを予測するためにその後に使用され得る。本原理は、行列因子分解に基づくレコメンダシステムが、ユーザの評価、又はどのアイテムをユーザが評価しているのかさえ学習することなしに、このタスクを実行することを可能にする。
本原理の一態様に従って、行列因子分解によりアイテムをセキュアにプロファイルする方法が提供される。方法は、トークンの組とアイテムの組とを有するレコードの組(220)をソースから受け取るステップであって、夫々のレコードは前記ソース以外のパーティから秘密に保たれる、ステップと、少なくとも1つの別のアイテムを受け取るステップ(360)と、行列因子分解に基づきGarbled回路を使用することによってレコメンダ(RecSys)(230)において前記レコードの組と前記少なくとも1つの別のアイテムとを評価するステップ(395)であって、前記Garbled回路の出力は前記少なくとも1つの別のアイテムについてのアイテムプロファイルを有する、ステップとを有する。方法は、前記レコードの組(380)と前記少なくとも1つの別のアイテム(360)とに対して行列因子分解を実行するように暗号サービスプロバイダ(Crypto-System Provider)(CSP)において前記Garbled回路を設計するステップであって、該Garbled回路の出力は前記少なくとも1つの別のアイテムについての前記アイテムプロファイルを有する、ステップと、前記Garbled回路を前記RecSysに渡すステップ(385)とを更に有することができる。方法における前記設計するステップは、行列因子分解演算をブール回路として設計するステップ(382)を有することができる。方法において行列因子分解回路を設計するステップは、前記レコードの組のアレイを構成するステップ(410)と、前記アレイに対してソーティング(420,440,470,490)、コピー(430,450)、更新(470,480)、比較(480)及び勾配寄与(gradient contributions)の計算(460)の動作を実行するステップとを有することができる。方法は、前記CSPによる前記Garbled回路の設計のための、前記RecSysによって送信されたパラメータの組を受け取るステップ(330)を更に有することができる。
本原理の一態様に従って、方法は、暗号化されたレコードを生成するように前記レコードの組を暗号化するステップ(330)を更に有することができ、前記暗号化するステップは、前記レコードの組を受け取るステップより前に実行される。方法は、公開暗号鍵が前記CSPにおいて生成されて前記ソースへ送信されるようにすることができる(320)。方法は、公開暗号鍵を前記CSPにおいて生成するステップと、前記鍵を前記ソースへ送るステップ(320)とを更に有することができる。前記暗号化のスキームは、部分準同型暗号(partially homomorphic encryption)(330)であることができ、方法は、マスキングをかけたレコードを生成するように前記RecSysにおいて前記暗号化されたレコードをマスキングするステップ(340)と、暗号解読されたマスキングをかけられたレコードを生成するように前記CSPにおいて前記マスキングをかけられたレコードを暗号解読するステップ(350)とを更に有することができる。方法における前記設計するステップ(380)は、前記Garbled回路内で前記暗号解読されたマスキングをかけられたレコードを、それらを処理するより前に、アンマスキングするステップを有することができる。方法は、前記CSPと前記RecSysとの間で紛失通信(oblivious transfer)(392)を実行するステップ(390)を有することができ、前記RecSysは、前記暗号解読されたマスキングをかけられたレコードのGarbled値を受け取り、前記レコードは、前記RecSys及び前記CSPから秘密にされる。
本原理の一態様に従って、方法は、夫々のレコードのトークン及びアイテムの数を受け取るステップ(220,310)を更に有することができる。更に、方法は、トークンの数が最大値に相当する値に等しいレコードを生成するために、夫々のレコードのトークンの数が前記値よりも小さい場合に夫々のレコードをnullエントリで埋めるステップ(312)を有することができる。方法における前記レコードの組の前記ソースは、データベース、及びユーザの組(210)のうちの1つであることができ、夫々のユーザは、1つのレコードのソースであり、該1つのレコードはその対応するユーザ以外のパーティから秘密に保たれる。
本原理の一態様に従って、行列因子分解によりアイテムをセキュアにプロファイルするシステムが提供される。システムは、レコードの組を提供するソースと、セキュアな行列因子分解回路を提供する暗号サービスプロバイダ(CSP)と、前記レコードが前記ソース以外のパーティから秘密にされるように前記レコードを評価するRecSysとを有し、前記ソース、前記CSP、及び前記RecSysは、夫々が少なくとも1つの入力/出力(604)を受けるプロセッサ(602)と、前記プロセッサとシグナル通信する少なくとも1つのメモリ(606,608)とを有し、前記RecSysのプロセッサは、夫々のレコードがトークンの組及びアイテムの組を有するレコードの組を受け取り、夫々のレコードが秘密に保たれ、少なくとも1つの別のアイテムを受け取り、行列因子分解に基づきGarbled回路により前記レコードの組及び前記少なくとも1つの別のアイテムを評価し、前記Garbled回路の出力が前記少なくとも1つの別のアイテムについてのアイテムプロファイルであるように構成される。システムにおける前記CSPのプロセッサは、前記レコードの組及び前記少なくとも1つの別のアイテムの行列因子分解を実行するように前記Garbled回路を設計し、該Garbled回路が前記少なくとも1つの別のアイテムについての前記アイテムプロファイルを出力し、前記Garbled回路を前記RecSysに渡すように構成され得る。システムにおける前記CSPのプロセッサは、行列因子分解演算をブール回路として設計するよう構成されることによって、前記Garbled回路を設計するよう構成され得る。システムにおける前記CSPのプロセッサは、前記レコードの組のアレイを構成し、前記アレイに対してソーティング、コピー、更新、比較及び勾配寄与の計算の動作を実行するよう構成されることによって、前記行列因子分解演算を設計するよう構成され得る。システムにおける前記CSPのプロセッサは更に、前記Garbled回路の設計のための、前記RecSysによって送信されたパラメータの組を受け取るよう構成され得る。
本原理の一態様に従って、システムにおける前記ソースのプロセッサは、前記レコードの組を提供するより前に、暗号化されたレコードを生成するように前記レコードの組を暗号化するよう構成され得る。システムにおける前記CSPのプロセッサは更に、公開暗号鍵を生成し、前記鍵を前記ソースへ送るよう構成され得る。前記暗号化のスキームは、部分準同型暗号であることができ、前記RecSysのプロセッサは更に、マスキングをかけたレコードを生成するように前記暗号化されたレコードをマスキングするよう構成され得、前記CSPのプロセッサは更に、暗号解読されたマスキングをかけられたレコードを生成するように前記マスキングをかけられたレコードを暗号解読するよう構成され得る。システムにおける前記CSPのプロセッサは、前記Garbled回路内で前記暗号解読されたマスキングをかけられたレコードを、それらを処理するより前に、アンマスキングするよう構成されることによって、前記Garbled回路を設計するよう構成され得る。前記RecSysのプロセッサ及び前記CSPのプロセッサは更に、紛失通信を実行するよう構成され得、前記RecSysは、前記暗号解読されたマスキングをかけられたレコードのGarbled値を受け取り、前記レコードは、前記レコメンダ及び前記暗号サービスプロバイダから秘密にされる。
本原理の一態様に従って、システムにおける前記RecSysのプロセッサは更に、前記ソースによって送信された夫々のレコードのトークンの数を受け取るよう構成され得る。システムにおける前記ソースのプロセッサは、トークンの数が最大値に相当する値に等しいレコードを生成するために、夫々のレコードのトークンの数が前記値よりも小さい場合に夫々のレコードをnullエントリで埋めるよう構成され得る。前記レコードの組の前記ソースは、データベース、及びユーザの組のうちの1つであることができ、前記ソースがユーザの組である場合に、夫々のユーザは、少なくとも1つの入力/出力(604)を受けるプロセッサ(602)と、少なくとも1つのメモリ(606,608)とを有し、夫々のユーザは、1つのレコードのソースであり、該1つのレコードはその対応するユーザ以外のパーティから秘密に保たれる。
本原理の更なる特徴及び利点は、添付の図を参照して進められる実例となる実施形態の以下の詳細な説明から明らかになるであろう。
本原理は、以下で簡単に記載される次の例図に従って、より良く理解され得る。
先行技術のレコメンデーションシステムの構成要素を表す。 本原理に従うレコメンデーションシステムの構成要素を表す。 本原理に従う、行列因子分解によりアイテムをプロファイルするプライバシー保護方法のフローチャートを表す。 本原理に従う、行列因子分解によりアイテムをプロファイルするプライバシー保護方法のフローチャートを表す。 本原理に従う、行列因子分解によりアイテムをプロファイルするプライバシー保護方法のフローチャートを表す。 本原理に従う行列因子分解アルゴリズムのフローチャートを表す。 本原理に従う行列因子分解アルゴリズムのフローチャートを表す。 本原理に従う行列因子分解アルゴリズムのフローチャートを表す。 本原理に従う行列因子分解アルゴリズムによって構成されるデータ構造Sを表す。 本原理を実施するのに利用されるコンピュータ環境のブロック図を表す。
本原理に従って、アイテムをプロファイルするためにプライバシーを保護する様に、行列因子分解として知られている協調フィルタリング技術をセキュアに実行する方法が、提供される。
本原理の方法は、夫々のレコードがトークン及びアイテムの組を有するレコードのコーパスにおいて少なくとも1つのアイテムをプロファイルするためのサービスとして働くことができる。レコードの組は1つよりも多いレコードを含み、トークンの組は少なくとも1つのトークンを含む。当業者は、上記の例において、レコードはユーザを表すことができ、トークンは、レコードに含まれる対応するアイテムに対するユーザの評価であることができると認識するであろう。トークンはまた、アイテムに関連するランク、重み、又は指標を表すこともでき、アイテムは、人、タスク、又はジョブを表すことができる。例えば、ランク、重み、又は指標は、個人の健康に関連付けられてよく、リサーチャーは、母集団の健康対策を相関させようと試みる。あるいは、それらは、個人の生産性と関連付けられてよく、企業は、それまでの履歴に基づき、特定のジョブについてのスケジュールを予測しようと試みる。なお、関連する個人のプライバシーを保証するために、サービスは、夫々のレコードのコンテンツ、又はアイテムプロファイル以外のレコードから取り出される如何なる情報も学習することなしに、そうすることを望む。特に、サービスは、(a)どのレコードにおいて夫々のトークン/アイテムが現れたか、又は(b)どのトークン/アイテムが夫々のレコードにおいて現れるのか及び(c)トークンの値さえ学習すべきでない。以下で、「プライバシー保護(privacy-preserving)」、「個人(private)」及び「セキュア(secure)」との用語は、ユーザ(レコード)によって私的であると見なされた情報がユーザによってしか知られないことを示すために同義的に使用される。
プライバシーを保護する様に行列因子分解を実行することに付随する幾つかの課題が存在する。第1に、プライバシーに対する懸念に対処するように、行列因子分解は、レコメンダがユーザの評価、又は彼らがどのアイテムを評価しているのかさえ学習することなしに、実行されるべきである。後者の要件は重要であり、先の研究は、どの映画をユーザが評価しているのかを知ることさえも、例えば彼らの性別を推測するために使用され得ることを示している。第2に、そのようなプライバシー保護アルゴリズムは、有効であって、ユーザによって提起される評価の数とともに率直に(例えば、線形に)増減すべきである。プライバシー要求は、行列因子分解アルゴリズムがデータ忘却型であるべきであり、その実行がユーザ入力に依存すべきでないことを暗示する。更に、行列因子分解によって実行される演算は非線形であり、よって、それら両方の制約の下で如何にして行列因子分解を有効に実施すべきかは先験的に明らかでない。最後に、実際の、現実世界のシナリオでは、ユーザは、限られた通信及び計算リソースを有し、彼らが自身のデータを供給した後に引き続きオンラインであり続けると期待されるべきではない。代わりに、レコメンデーションサービスからオンライン及びオフラインであることの間を行き来するユーザの存在下で動作することができる“応答不要送信(send and forget)”タイプの解決法を有することが望ましい。
行列因子分解の概要として、標準的な“協調フィルタリング(collaborative filtering)”設定において、n人のユーザはm個の可能なアイテム(例えば、映画)のサブセットを評価する。[n]:={1,…,n}のユーザの組と、[m]:={1,…,m}のアイテムの組について、評価が生成されたユーザ/アイテム対はM⊆[n]×[m]によって表され、評価の総数はM=[M]によって表される。最後に、(i,j)∈Mについて、アイテムjについてユーザiによって生成される評価はri,j∈Rによって表される。実際の設定において、n及びmはいずれも大きい数であり、通常は10から10の間の範囲に及ぶ。加えて、提供される評価は疎、すなわち、M=O(n+m)であり、潜在的な評価の総数n×mよりもずっと少ない。このことは、夫々のユーザが限られた数のアイテムしか評価し得ない(m、すなわち“カタログ”サイズに依存しない)ので、典型的なユーザ挙動と一致する。
Mにおける評価を考えると、レコメンダシステムは、[n]×[m]\Mにおけるユーザ/アイテム対についての評価を予測したいと望む。行列因子分解は、双一次モデルを既存の評価において適合させることによって、このタスクを実行する。特に、何らかの小さい次元d∈Nについて、

ri,j=<ui,vj>+εi,j (1)

であるように、ベクトルui∈Rd、i∈[n]、及びvj∈Rd、j∈[m]が存在するとする。ここで、εi,jは、i.i.d(independent and identically distributed)ガウスランダム変数である。ベクトルui及びvjは、夫々ユーザプロファイル及びアイテムプロファイルと呼ばれ、<ui,vj>は、ベクトルの内積である。使用されている表記法は、i番目の行がユーザiのプロファイルを有するn×d行列についてU=[ui T]i∈[n]∈Rn×dであり、j番目の行がアイテムjのプロファイルを有するm×d行列についてV=[vj T]j∈[m]∈Rm×dである。
評価R={ri,j:(i,j)∈M}を考えると、レコメンダは、通常は、何らかの正数λ,μ>0について、以下の公式化された最小二乗法による最小化を実行して、プロファイルU及びVを計算する:
Figure 2016510912
当業者は、プロファイルU及びVについてガウス事前分布を仮定して、(2)における最小化がU及びVの最大尤度推定に対応すると認識するであろう。ユーザプロファイル及びアイテムプロファイルによれば、レコメンダは、ユーザi及びアイテムjについて
Figure 2016510912
であるように、評価
Figure 2016510912
をその後に予測することができる点に留意されたい。
(2)における公式化された平均二乗誤差は、凸関数ではない。この最小化を実行する幾つかの方法が、文献において提案されてきた。本原理は、次のように記載される、実際に使用される一般的な手法である勾配降下に焦点を当てる。F(U,V)が(2)における公式化された平均二乗誤差を表すとすると、勾配降下は、適応ルールに従ってプロファイルU及びVを繰り返し適応させることによって動作する:

ui(t)=ui(t-1)-γ∇uiF(U(t-1),V(t-1))
(4)
vi(t)=vi(t-1)-γ∇viF(U(t-1),V(t-1))

ここで、γ>0はスモールゲイン係数である。そして:
Figure 2016510912
ここで、U(0)及びV(0)は、一様にランダムなノルム1の行から成る(すなわち、プロファイルは、ノルム1のボールからu.a.r.(uniformly at random)で選択される。)。
本原理の他の態様は、ソーティングネットワーク及びYaoのGarbled回路に基づく行列因子分解のためのセキュアな分散計算法(Multiparty Computation)(MPC)を提案している。セキュアな分散計算法(MPC)は、1980年代にA. Chi-Chih Yaoによって最初に提案された。Yaoのプロトコル(別名Garbled回路)は、セキュアな分散計算法のための一般的な方法である。V. Nikolaenko、U. Weinsberg、S. Ioannidis、M. Joye、D. Boneh、及びN. Taftによって2013年にIEEE S&Pにおいて“Privacy-preserving Ridge Regression on Hundreds of millions of records”から適応されたその変形において、プロトコルは、n個の入力オーナーの組(このとき、aiは、ユーザi(1≦i≦n)の個人入力を表す。)と、f(a1,…,an)を評価したいと望むエバリュエータと、サードパーティ、すなわち、暗号サービスプロバイダ(CSP)との間で実行される。プロトコルの終わりに、エバリュエータは、f(a1,…,an)の値を学習するが、パーティは、この出力値から明らかにされるもの以外は学習しない。プロトコルは、関数fがブール関数として、例えば、OR、AND、NOT及びXORのグラフとして、表現され得ることと、エバリュエータ及びCSPが共謀しないこととを求める。
近年、YaoのGarbled回路を実施する多くのフレームワークが存在する。汎用のMPCへの別のアプローチは秘密分散法(secret-sharing schemes)に基づき、他は、完全準同型暗号(fully-homomorphic encryption)(FHE)に基づく。秘密分散法は、様々な線形代数演算、例えば、線形システムを解くこと、線形回帰、及びオークションなどのために提案されてきた。秘密分散は、計算の仕事量を等しく共有し、複数のラウンドにわたって通信する少なくとも3つの共謀しないオンライン当局を必要とする。計算は、それらのうちの2つが共謀しない限りはセキュアである。Garbled回路は、唯2つの共謀しない当局及び極少ない通信を前提とする。そのような回路は、エバリュエータがクラウドサービスであり且つ暗号サービスプロバイダ(CSP)が信頼できるハードウェアコンポーネントにおいて実施されるシナリオにより良く適する。
使用される暗号プリミティブにかかわらず、セキュアな分散計算のための有効なアルゴリズムを構築することにおける主な課題は、データ忘却な様式において、すなわち、実行パスが入力に依存しないように、アルゴリズムを実施することにある。一般に、有界な時間Tにおいて実行可能な如何なるRAMプログラムも、O(T^3)チューリングマシン(Turing Machine)(TM)に変換され得る。これは、数学上の計算のための理想的なモデルとなるようにAlan Turingによって発明された理論計算機械である。O(T^3)は、複雑さがT3に比例することを意味する。加えて、如何なる有界なT時間のTMも、データ忘却型であるサイズO(T log T)の回路に変換され得る。このことは、如何なる有界なT時間の実行可能RAMプログラムも、O(T^3 log T)の複雑さを持ったデータ忘却型回路に変換され得ることを暗示する。そのような複雑さは高過ぎ、ほとんどの用途で手が出せない。有効なデータ忘却型実施が知られていないアルゴリズムの概況は、W. Du及びM. J. Atallah、“Secure multi-party computation problems and their applications: A review and open problems”、New Security Paradigms Workshop、2001年において見つけられ得る。行列因子分解の問題は、データマイニングの要約問題のカテゴリに入る。
ソーティングネットワークは、ソーティング並列化及び有効なハードウェア実装を可能にするようにそもそも開発された。それらのネットワークは、入力シーケンス(a1,a2,…,an)を、単調増大するシーケンス(a’1,a’2,…,a’n)にソートする回路である。それらは、それらの主たる基礎的要素であるコンペア・アンド・スワップ(Compare-and-Swap)回路をワイヤでつなぎ合わせることによって構成される。幾つかの作業は、暗号化のためにソーティングネットワークのデータ忘却性を利用する。しかし、暗号化は、プライバシーを保障するのに常に十分ではない。敵が、暗号化されたストレージへのあなたのアクセスパターンを監視することができる場合は、彼らは、あなたのアプリケーションが何を行っているのかに関する機密情報を依然として学習することができる。忘却型RAMは、メモリがアクセスされている場合にそのメモリを連続的に移し替えて、どのようなデータがアクセスされているのか、又はいつそのメモリが以前にアクセスされたのかさえ完全に隠すことによって、この問題を解決する。忘却型メモリにおいて、ソーティングは、データ忘却型ランダム置換を発生させる手段として使用される。より最近では、それは、凸包、全最近傍問題(all-nearest neighbors)、及び重み付き積集合のデータ忘却計算を実行するために使用されている。
本原理は、重み付き積集合に近いがGarbled回路を組み込むセキュアな分散ソーティングに基づく方法を提案する。図2は、本原理に従う、プライバシーを保護する行列因子分解における主体又は関係者を表す。それらは次のとおりである:
I.レコメンダシステム(RecSys)230。プライバシーを保護する行列因子分解演算を実行するエンティティ。特に、RecSysは、ユーザ評価に対する行列因子分解から取り出されるアイテムプロファイルV 240を、ユーザに関して有用であるか、又はアイテムプロファイル以外のユーザデータから取り出されるあらゆるものを学習することなしに、学習したいと望む。
II.暗号サービスプロバイダ(CSP)250。それは、ユーザに関して有用であるか、又はユーザデータから取り出されるあらゆるものを学習することを伴わないセキュアな計算を可能にする。
III.1つ以上のユーザ210から成るソース。夫々のユーザは、アイテムの組220に対する評価の組を有する。夫々のユーザi∈[n]は、行列因子分解を通じた彼らの評価ri,j:(i,j)∈Mに基づくアイテムのプロファイリングを承諾するが、彼らの評価、又は彼らがどのアイテムを評価しているのかさえ、レコメンダに明らかにすることは望まない。同等に、ソースは、1つ以上のユーザのデータを含むデータベースに相当してよい。
本原理に従って、プロトコルが提案される。プロトコルは、RecSysが行列因子分解を実行してアイテムプロトコルを提供することを可能にしながら、RecSysもCSPもアイテムプロファイル、すなわち、図2におけるRecSysの唯一の出力であるV以外に何も学習しないようにする。特に、どちらも、ユーザの評価、又はどのアイテムをユーザが実際に評価しているのかさえ、学習すべきでない。当業者には当然ながら、レコメンダがユーザプロファイル及びアイテムプロファイルの両方を学習することを可能にするプロトコルはさらしすぎであり、そのような設計では、レコメンダは、通常は、(3)における内積からユーザの評価を推測することができる。そのようなものとして、本原理は、レコメンダがアイテムプロファイルしか学習しないプライバシー保護プロトコルを提案する。
アイテムプロファイルは、ユーザ/レコードの組の評価の関数としてアイテムを定義するメトリックと見なされ得る。同様に、ユーザプロファイルは、ユーザ/レコードの組の評価の関数としてユーザを定義するメトリックと見なされ得る。この意味において、アイテムプロファイルは、アイテムの認否の指標、すなわち、アイテムの特徴又は特性の反映である。そして、ユーザプロファイルは、ユーザの好き嫌いの指標、すなわち、ユーザの性格の反映である。ユーザ/レコードの大きな組に基づき計算される場合に、アイテム又はユーザプロファイルは、夫々、アイテム又はユーザの独立した指標と見なされ得る。当業者は、アイテムプロファイルのみを学習することに有用性があると認識するであろう。第1に、行列因子分解によるRdにおけるアイテムの埋め込みは、レコメンダが類似性を推測(及び符号化)することを可能にする。ユークリッド距離が小さいプロファイルを持つアイテムは、ユーザによって同じように評価されるアイテムである。そのようなものとして、アイテムプロファイルを学習するタスクは、レコメンデーションの実際のタスクを越えてレコメンダにとって興味深い。特に、ユーザは、ソースがデータベースである場合にそうであるように、レコメンデーションを受け取る必要性又は要望がないことがある。第2に、アイテムプロファイルを取得すると、トリビアが存在する。レコメンダは、それらを使用して、ユーザによる如何なる追加のデータ公開もなしに、関連したレコメンデーションを提供することができる。レコメンダは、Vをユーザに送信する(又はそれを公開する)ことができる。アイテムごとの自身の評価を知ると、ユーザiは、uiに関して(2)を解くことによって、自身の(個人)プロファイルuiを推測することができる。所与のV(これは分離可能な問題である。)について、そして、夫々のユーザは、リッジ回帰を自身の評価に対して実行することによって、自身のプロファイルを得ることができる。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 RECOMMENDATION TO RATING CONTRIBUTING USERS BASED ON MATRIX FACTORIZATION”及び“A METHOD AND SYSTEM FOR PRIVACY-PRESERVING RECOMMENDATION BASED ON MATRIX FACTORIZATION AND RIDGE REGRESSION”と題して出願された本発明者による同時係属出願で記載されるように、ユーザが自身の予測される評価を学習し、一方、レコメンダが、ユーザに関して有用であるか、又はユーザデータから取り出されるあらゆるもの(Vでさえない。)を学習しないように、この設計を拡張する方法も存在する。
当業者は、一般に、プロファイルVの出力又はユーザについての評価予測が、他のユーザの評価に関する何かを明らかにし得ると理解するであろう。例えば2つのユーザしか存在しない異常な場合において、両方の発覚は、ユーザに夫々の他方の評価を見つけさせ得る。本原理は、そのような場合に焦点を当てない。アイテムプロファイル又は個々の評価のいずれかの発覚のプライバシー推測が許容されない場合に、例えば差分プライバシーなどの技術は、それらの出力にノイズを付加して、そのような漏れから守るために使用され得る。
本原理に従って、安全の保障は、正直であるが好奇心が強い脅威モデルの下にあるとする。言い換えると、RecSys及びCSPは上記のプロトコルに従うが、それらの当事者は、何らかの追加情報を推測するために、オフラインでさえ、プロトコルトランスクリプトを解析することに決めることがある。更に、レコメンダ及びCSPは共謀しないとする。
本原理の好適な実施形態は、図3におけるフローチャート300を満足し且つ以下のステップによって記載されるプロトコルを有する:
P1.ソースは、幾つのトークン(評価)及びアイテムの対が夫々の参加レコードについて提示されようとしているのかを、RecSysに報告する(310)。レコードの組は、1つよりも多いレコードを含み、レコードごとのトークンの組は、少なくとも1つのトークンを含む。
P2.CSPは、部分準同型方式のための公開暗号鍵ξを生成し、それを全てのユーザ(ソース)へ送信する(320)。当業者に明らかなように、準同型暗号化は、特定のタイプの計算が暗号文に対して実行され、暗号解読されたものが平文に対して実行された演算の結果と一致する暗号化結果を得ることを可能にする暗号化の形式である。例えば、1人は2つの暗号化された数字を加え、次いで、他者は、個々の数字の値を見つけることができなくても、その結果を暗号解読することができる。部分準同型暗号化は、平文に対する1つの演算(加算又は乗算)に関して準同型である。部分準同型暗号化は、スカラーに対する加算及び乗算に関して準同型であってよい。
P3.夫々のユーザは、そのデータをその鍵を用いて暗号化し、自身の暗号化されたデータをRecSysに送信する(330)。特に、jがアイテムIDであり且つri,jがユーザiがjに与えた評価であるとして、あらゆる対(j,ri,j)について、ユーザは、この対を、公開暗号鍵を用いて暗号化する。
P4.RecSysは、暗号化されたデータにマスクηを加え、マスキングされた暗号化されたデータをCSPへ送信する(340)。当業者は、マスクがデータ難読化の一形式であり、乱数発生器を加えること又は乱数によってごちゃ混ぜにすることと同じくらい簡単であり得ると理解するであろう。
P5.CSPは、マスキングされたデータを暗号解読する(350)。
P6.RecSysは、行列因子分解を計算すべきアイテムの別の組を受け取るか、又は決定する(360)。このアイテムの組は、コーパス内の全てのアイテム、全てのアイテムのサブセット、又はレコードに存在しないアイテムさえも含んでよい。
P7.RecSysは、ユーザプロファイル及びアイテムプロファイルの大きさ(すなわち、パラメータd)372と、評価の総数(すなわち、パラメータM)374と、ユーザ及びアイテムの総数376と、Garbled回路における実数の整数及び小数部分を表すのに使用されるビットの数378とを含む、Garbled回路を構築するのに必要な完全な仕様をCSPに送信する(370)。アイテムの別の組は、全てのアイテムがレコードに存在しない場合に、パラメータに含まれる。
P8.CSPは、アイテムの別の組に関してレコードに対して行列因子分解を実行するGarbled回路として当業者に知られるものを準備する(380)。難読化されている(Garbled)ために、回路は、最初に、ブール回路382として作成される。回路への入力は、RecSysがユーザデータをマスキングするために使用したマスクを有する。回路内で、マスクは、データをアンマスキングするために使用され、次いで、行列因子分解を実行する。回路の出力はV、すなわち、ユーザプロファイルである。如何なる個々のレコードの、及びアイテムプロファイル以外にレコードから取り出される如何なる情報のコンテンツに関しても認識は得られない。
P9.CSPは、行列因子分解のためのGarbled回路をRecSysへ送信する(385)。具体的に、CSPは、Garbled回路へのゲートを処理し、それらを、回路構造によって定義された順序において、RecSysへ送信する。
P10.RecSysとCSPとの間392の紛失通信390を通じて、RecSysは、それ自身又はCPSのいずれもが実際の値を学習することなしに、暗号解読されたマスキングされたレコードのGarbled値を学習する。当業者は、紛失通信が、送信側が潜在的に多数存在する情報片のうちの1つを受信側に転送し、(もしあれば)どのような片が転送されたのかに関して忘却したままである転送の一種である。
P11.RecSysは、アイテムプロファイルVを計算するGarbled回路を評価し、そのアイテムプロファイルVを出力する(395)。
通常は、このプロトコルは、Vを越えて更に、夫々のユーザによって与えられるトークンの数を漏らす。これは、簡単なプロトコル変更によって、例えば、予めセットされた最大数に達するまで、提示されたレコードを適切に“null”エントリにより“埋める(padding)”こと312によって、修正され得る。簡単のために、プロトコルは、この“埋める”動作なしで記載された。
Garbled回路が一度しか使用され得ないので、同じ評価に関する如何なる将来の計算も、ユーザが彼らのデータをプロキシ紛失通信を通じて再提示することを必要とする。プロキシ紛失通信は、3つ以上の当事者が関わる紛失通信である。このために、本原理のプロトコルは、公開鍵暗号化をGarbled回路と組み合わせる複合的なアプローチを導入した。
本原理において、公開鍵暗号化は、次のように使用される。夫々のユーザiは、意味的にセキュアな(semantically secure)暗号化アルゴリズムξpkCSPを持ったCSPによって提供される公開鍵pkCSPの下で、各自の入力(j,ri,k)を暗号化し、評価される夫々のアイテムjについて、ユーザは、c=ξpkCSP(j,ri,j)である対(i,c)をRecSysへ提示する。このとき、全部でM個の評価が提示される。自身の評価を提示したユーザはオフラインになることができる。
CSPの公開鍵暗号化アルゴリズムは、部分的に準同型である。定数は、対応する暗号解読鍵を知らずに、暗号化されたメッセージに適用され得る。明らかに、例えばPaillier又はRegevなどの加法準同型方式も定数を加えるために使用され得るが、部分的にしか準同型でないハッシュElGamalで十分であり、この場合に、より有効に実装され得る。
ユーザからM個の評価を受け取ると、暗号化が部分的に準同型であることを思い出して、RecSysは、ランダムマスク
Figure 2016510912
によりそれらを覆い隠す。ここで、ηは、ランダム又は疑似ランダム変数であり、丸で囲まれた+記号は、XOR演算である。RecSysは、それらを、Garbled回路を構築するのに必要とされる完全な仕様とともにCSPへ送信する。特に、RecSysは、ユーザ及びアイテムの大きさ(すなわち、パラメータd)と、評価の総数(すなわち、パラメータM)と、ユーザ及びアイテムの総数と、Garbled回路における実数の整数及び小数部分を表すのに使用されるビットの数とを特定する。アイテムの別の組は、全てのアイテムがレコードに存在しない場合に、パラメータに含まれる。
RecSysがM個の累積された評価に対して行列因子分解を実行したと望むときはいつでも、それはMをCSPへ報告する。CSPは、(a)入力を暗号解読し、次いで(b)行列因子分解を実行するGarbled回路をRecSysに提供してよい。V. Nikolaenko、U. Weinsberg、S. Ioannidis、M. Joye、D. Boneh、及びN. Taft、“Privacy-preserving ridge regression on hundreds of millions of records”、IEEE S&P、2013年において、その回路内での暗号解読は、マスク及び準同型暗号化を用いることによって回避される。本原理は、この考えを行列因子分解に対して利用するが、部分準同型暗号化法しか必要としない。
暗号化を受け取ると、CSPはそれらを暗号解読し、マスキングされた値
Figure 2016510912
を得る。次いで、行列因子分解を青写真として使用すると、CSPはYaoのGarbled回路を準備する。Garbled回路は:
(a)マスクηに対応するGarbled値を入力としてとり;
(b)対応するタプル(i,j,ri,j)を回復するようにマスクηを取り除き;
(c)行列因子分解を実行し;且つ
(d)アイテムプロファイルVを出力する。
(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であるインジケータδi,j=1(i,j)∈Mを計算する回路を生成する。
Q2.夫々の繰り返しで、それらの回路の出力を用いて、夫々のアイテム及びユーザ勾配を、夫々、m個及びn個の成果物にわたる合計として計算する。このとき:
Figure 2016510912
あいにく、この実施は効率的でない。勾配降下アルゴリズムの全ての繰り返しは、O(n×m)の回路複雑性を有する。通常は実際にそうであるように、M≪n×mの場合に、上記の回路は、平文において勾配降下よりも大々的にそれほど効率的でない。実際に、二次費用O(n×m)は、ほとんどのデータセットにとって手が出せない。単純な実施の効率の悪さは、データにおける内在的な疎性を利用する能力を軽減しながら、回路設計時点で、どれをユーザが評価するのか及びどのアイテムがユーザによって評価されるのかを特定することができないことに起因する。
反対に、本原理の好適な実施形態に従って、回路実施は、複雑さがO((n+m+M)log2(n+m+M))であるソーティングネットワークに基づき、すなわち、平文での実施の多対数因数(polylogarithmic factor)内で、提供される。要約すれば、タプル(i,j,ri,j)に対応する入力データと、ユーザプロファイル及びアイテムプロファイルの両方ためのプレースホルダー⊥とは両方とも、アレイ内に一緒に格納される。適切なソーティング動作を通じて、ユーザプロファイル又はアイテムプロファイルは、それらが識別子を共有する入力の近くに配置され得る。データを通じた線形パスは、勾配の計算と、プロファイルの更新とを可能にする。ソーティング時に、プレースホルダーは、+∞として、すなわち、あらゆる他の数よりも大きいものとして扱われる。
本原理の好適な実施形態に従う、図4におけるフローチャート400を満足する行列因子分解アルゴリズムは、次のステップによって記載され得る:
C1.行列Sを初期化する(410)。アルゴリズムは、入力として組Li={(j,ri,j):(i,j)∈M}、又は同等に、タプル{(i,j,ri,j):(i,j)∈M}を受け取り、タプルのn+m+Mを組み立てる。Sの最初のn個及びm個のタプルは、夫々、ユーザプロファイル及びアイテムプロファイルのためのプレースホルダーとなり、一方、残りのM個のタプルは入力Liを保持する。より具体的には、夫々のユーザi∈[n]について、アルゴリズムはタプル(i,⊥,0,⊥,ui,⊥)を組み立てる。このとき、ui∈Rdは、ランダムに選択されたユーザiの初期プロファイルである。夫々のアイテムj∈[m]について、アルゴリズムは、タプル(⊥,j,0,⊥,⊥,vj,⊥)を組み立てる。このとき、vj∈Rdは、やはりランダムに選択されたアイテムjの初期プロファイルである。最後に、夫々の対(i,j)∈Mについて、アルゴリズムは、対応するタプル(i,j,1,ri,j,⊥,⊥)を組み立てる。このとき、ri,jは、アイテムjに対するユーザiの評価である。結果として得られるアレイは図5(A)に示されるとおりである。k番目のタプルのl番目の要素をsl,kによって表すと、それらの要素は次の役割を果たす:
(a)s1,k:[n]におけるユーザ識別子;
(b)s2,k:[m]におけるアイテム識別子;
(c)s3,k:タプルが“プロファイル”又は“入力”タプルである場合を示すバイナリフラグ;
(d)s4,k:“入力”タプルにおける評価
(e)s5,k:Rdにおけるユーザプロファイル;
(f)s6,k:Rdにおけるアイテムプロファイル。
C2.ユーザ識別子に対して(行1及び3に関して)昇順にタプルをソートする(420)。2つの識別子が等しい場合は、タプルフラグ、すなわち、夫々のタプルにおける3番目の要素を比較することによって、均衡が破られる。よって、ソーティング後、夫々の“ユーザプロファイル”タプルは、同じ識別子を持った“入力”タプルが後に続く。
C3.ユーザプロファイルをコピーする(レフトパス)(430):

s5,k ← s3,k*S5,k-1+(1-s3,k)*S5,k (k=2,…,M+n)

C4.アイテム識別子に対して(行2及び3に関して)昇順にタプルをソートする(440)。2つの識別子が等しい場合に、タプルフラグ、すなわち、夫々のタプルにおける3番目の要素を比較することによって、均衡が破られる。
C5.アイテムプロファイルをコピーする(レフトパス)(450):

s6,k ← s3,k*S6,k-1+(1-s3,k)*S6,k (k=2,…,M+n)

C6.勾配寄与∀k<Mを計算する(460):
Figure 2016510912
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)。
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)。
C11.行3及び2に対してタプルをソートする(490)。
C12.k=1,…,mについて、アイテムプロファイルs6,kを出力する。このとき、出力は、少なくとも1つのアイテムプロファイルに制限されてよい。
勾配降下の繰り返しは、以下の3つの主要なステップを有する:
A.プロファイルのコピー:
夫々の繰り返しで、夫々の個別ユーザi及び夫々のアイテムjのプロファイルui及びvjは、i及びjが現れる夫々の“入力”タプルの対応する要素s5,k及びs6,kにコピーされる。これは、アルゴリズムのステップC2からC5で実施される。例えば、ユーザプロファイルをコピーするよう、Sは、主索引としてユーザ識別子(すなわち、s1,k)を、及び二次索引としてフラグ(すなわち、s3,k)を用いてソートされる。Sの初期状態に適用されるそのようなソーティングの例は、図5(B)において見つけられ得る。その後に、ユーザ識別子は、アルゴリズムのステップC3において形式的に記載されているように、左から右へアレイをトラバースすること(“レフト”パス)によって、コピーされる。これは、s5,kを夫々の“プロファイル”タプルからその隣接する“入力”タプルにコピーする。アイテムプロファイルは同様にコピーされる。
B.勾配寄与の計算:
プロファイルがコピーされた後、例えば(i,j)に対応する夫々の“入力”タプルは、最後の繰り返しにおいて計算されたプロファイルui及びvj(夫々、s5,k及びs6,kに含まれる。)並びに評価ri,j(s4,kに含まれる。)を格納する。それらから、次の量:vj(ri,j-<ui,vj>)及びui(ri,j-<ui,vj>)が計算される。これは、(5)によって与えられるui及びvjに対する勾配におけるタプルの“寄与”と見なされ得る。それらは、アルゴリズムのステップC6によって示されるように、タプルのs5,k及びs6,kを置換する。フラグの適切な使用を通じて、この演算は“入力”タプルのみに作用し、“プロファイル”タプルを不変なままとする。
C.プロファイルの更新:
最後に、ユーザプロファイル及びアイテムプロファイルは、アルゴリズムステップC7からC9において示されたように、更新される。適切なソーティングを通じて、“プロファイル”タプルは、それらが識別子を共有する“入力”タプルに再び隣接される。更新されたプロファイルは、アレイを右から左へトラバースすること(“ライトパス”)を通じて計算される。この演算は、それが“入力”タプルをトラバースする場合に、勾配の寄与を加える。“プロファイル”タプルにぶつかると、積算された勾配寄与が、適切に増減されながらプロファイルに加えられる。プロファイルを過ぎた後、勾配寄与の積算は、フラグs3,k,s3,k+1の使用を通じて、ゼロから再開する。
上記の演算はK回、すなわち、勾配公開の所望の繰り返しの回数、繰り返されるべきである。最終的に、最後の繰り返しの終了時に、アレイは、主索引としてのフラグ(すなわち、s3,k)、及び二次索引としてのアイテム識別子(すなわち、s2,k)に関して、ソートされる。これは、アレイ内の最初のm個の位置において全てのアイテムプロファイルタプルを引き込む。それから、アイテムプロファイルは出力され得る。更に、ユーザプロファイルを得るために、最後の繰り返しの終了時に、アレイは、主索引としてのフラグ(すなわち、s3,k)、及び二次索引としてのユーザ識別子(すなわち、s1,k)に関して、ソートされる。これは、アレイ内の最初のn個の位置において全てのユーザプロファイルタプルを引き込む。それから、ユーザプロファイルは出力され得る。
当業者は、上記の演算の夫々はデータ無効型であり、回路として実装され得ると認識するであろう。プロファイルをコピー及び更新することは、(n+m+M)個のゲートを必要とするので、全体の複雑さは、例えばBatcherの回路を用いてO((n+m+M)log2(n+m+M))費用をもたらすソーティングによって、決定される。アルゴリズムのステップC6におけるソーティング及び勾配計算は、最も計算集約的な演算であり、有り難いことに、両方とも大いに並列化可能である。加えて、ソーティングは、前に計算された比較を夫々の繰り返しで再利用することで、更に最適化され得る。特に、この回路は、ブール回路として(例えば、OR、AND、NOT及びXORゲートとして)実装され得る。このことは、先に説明されたように、実施が難読化されていることを可能にする。
本原理に従って、上記のプロトコルとともに上記の行列因子分解アルゴリズムを実施することは、プライバシーを保護する様に、行列因子分解のための新規な方法を提供する。加えて、この解決法は、ソーティングネットワークを用いることによって平文で実行される行列因子分解の多対数因数(polylogarithmic factor)内の複雑さを持った回路をもたらす。更に、この実施の更なる利点は、この回路の難読化(garbling)及び実行が大いに並列化可能である点である。
本原理に従うシステムの実施において、Garbled回路構成は、公然と利用可能なGarbled回路のフレームワークであるFastGCに基づいた。FastGCは、Java(登録商標)ベースのオープンソースフレームワークであり、基本のXOR、OR及びANDゲートによる回路定義を可能にする。回路が構成されると、フレームワークは、Garbled回路の難読化、紛失通信、及び徹底的な評価を扱う。回路を難読化及び実行する前に、FastGCは、Java(登録商標)オブジェクトの組として、メモリにおいて、難読化されていない回路の全体を表す。それらのオブジェクトは、ゲートのサブセットのみが如何なる時点でも難読化及び/又は実行される場合に、難読化されていない回路が導入すべきメモリフットプリントに対してかなりのメモリオーバーヘッドを招く。更に、たとえFastGCが、上述されたように、実行プロセスと並行して難読化を実行するとしても、両演算は順次的に起こる。すなわち、ゲートは、それらの入力が準備できると、一度に1つを処理される。当業者には当然に、この実施は並列化に従わない。
結果として、フレームワークは、FastGCのメモリフットプリントを低減しながら、複数のプロセッサにわたって並列化された難読化及び計算を可能にするという、それら2つの問題に対処するように変更された。特に、我々は、回路を水平方向に順次的な“レイヤ”に分割する能力を導入した。夫々のレイヤは、並行して実行され得る垂直な“スライス”の組を有する。レイヤは、全てのその入力が準備できる場合にのみメモリにおいて生成される。それが難読化及び評価されると、レイヤ全体がメモリから削除され、次のレイヤが構成され得る。よって、メモリフットプリントは、最大レイヤのサイズに制限される。レイヤの実行は、そのスライスをスレッドに割り当てて、それらが並行して実行されることを可能にするスケジューラにより実行される。たとえ並列化が複数のコアを備えた単一の機械において実施されたとしても、実施は、スライス間での共有状態が考えられないために、異なる機械にわたって率直に実行されるように拡張され得る。
最後に、アルゴリズムにおいて説明された多数の演算を実装するように、FastGCは、ソーティングに加えて、固定小数点表現による実数に対する加算及び乗算をサポートするように拡張された。ソーティングのために、Batcherのソーティングネットワークが使用された。固定小数点表現は、切り捨てにより生じる正確さの喪失と回路のサイズとの間のトレードオフを導入した。
更に、アルゴリズムの実施は、多数の方法において最適化された。特に:
(a)それは、回路の実行の開始において計算された比較を再利用することによって、ソーティングの費用を削減した:
ソーティングネットワークの基本的構成単位は、2つのアイテムを比較して、必要に応じてそれらを置換し、出力対が順序付けられるようにするコンペア・アンド・スワップ(Compare-and-Swap)回路である。行列因子分解アルゴリズムのソーティング動作(ラインC4及びC8)は、繰り返しごとに厳密に同じ入力を用いて、K回の勾配降下の繰り返しの夫々でタプル間での同じ比較を実行する。実際に、夫々のソーティングは、夫々の繰り返しで、厳密に同じように、アレイSにおいてタプルの順序を変える。この特性は、それらのソーティングの夫々について比較動作を一度だけ実行することによって、享受される。特に、フォーム(i,j,フラグ,評価)のタプルのソーティングは、計算の開始において(ユーザプロファイル又はアイテムプロファイルのペイロードなしで)、例えば、最初にi及びフラグ、j及びフラグ、そしてi及びフラグに帰って、実行される。その後に、比較(comparison)回路の出力は、勾配降下の間に使用される置換(swap)回路への入力として、それらのソーティングの夫々において再利用される。結果として、夫々の繰り返しで適用される“ソーティング”ネットワークは、如何なる比較も実行せず、単にタプルの順序を変える(すなわち、それは“置換”ネットワークである。)。
(b)それは、アレイSのサイズを削減した:
全ての比較を再計算することは、我々がSにおけるタプルのサイズを大々的に更に削減することを可能にする。まず第1に、当業者に明らかなように、ユーザ識別子又はプロファイル識別子に対応する行は、ソーティングの間に比較への入力としてのみ行列因子分解アルゴリズムにおいて使用される。フラグ及び評価は、コピー及び更新フェーズの間に使用されるが、それらの相対的な位置は夫々の繰り返しで同じである。更に、それらの位置は、我々の計算の開始時にタプル(i,j,フラグ,評価)のソーティングの出力として計算され得る。そのようなものとして、夫々の繰り返しで実行される“置換”動作は、ユーザプロファイル及びアイテムプロファイルにのみ適用される必要がある。全ての他の行はアレイSから削除され得る。1つの更なる改善は、ひと組のプロファイル、例えばユーザを固定し、アイテムプロファイルのみを置換するように、2の補助係数によって置換の費用を削減する。次いで、アイテムプロファイルは2つの状態の間で循環する。夫々の状態は、他方から置換を通じて到達可能である。アイテムプロファイルがユーザプロファイル及び部分勾配とアライメントされる状態と、アイテムプロファイルが更新されてコピーされる状態とがある。
(c)それは、XORを用いることによって置換動作を最適化した:
もしXOR演算が“フリー(free)”で実行されるならば、比較、置換、更新及びコピー動作の最適化は、可能ならばいつでもXORを用いることによって実行される。当業者に明らかなように、Free-XORゲートは、関連するGarbledテーブル及び対応するハッシング又は対称鍵動作によらずに難読化され得る。これは、計算及び通信における際だった改善を表す。
(d)それは、計算を並列化した:
ソーティング及び勾配計算は、行列因子分解回路における計算の大部分を構成する(ソーティング及び更新は、実行時間の3%及び非XORゲートの0.4%しか構成しない。)。それらの演算は、FastGCの当該実行を通じて並列化される。勾配計算は明らかに並列化可能であり、ソーティングネットワークも大いに並列化可能である(並列化は、それらの開発の背後にある主たる動機付けである。)。更に、夫々のソートにおける並列スライスの多くは同じであるから、回路スライスを定義する同じFastGCオブジェクトは異なる入力により再利用される。これは、メモリにおいてオブジェクトを繰り返し生成及び破棄する必要性を大幅に減らす。
本原理は、様々な形態のハードウェア、ソフトウェア、ファームウェア、特別目的のプロセッサ、又はそれらの組み合わせにおいて実装されてよい点が理解されるべきである。好適には、本原理は、ハードウェア及びソフトウェアの組み合わせとして実装される。更に、ソフトウェアは、好適には、プログラム記憶装置において有形に具現されるアプリケーションプログラムとして実装される。アプリケーションプログラムは、如何なる適切なアーキテクチャも有する機械にアップロードされ、それによって実行されてよい。好適には、機械は、例えば1つ以上の中央演算処理装置(CPU)、ランダムアクセスメモリ(RAM)、及び入出力(I/O)インタフェースなどのハードウェアを備えるコンピュータプラットフォームにおいて実装されてよい。コンピュータプラットフォームは、オペレーティングシステム及びマイクロ命令コードを更に有する。ここで記載される様々なプロセス及び機能は、オペレーティングシステムを介して実行されるマイクロ命令コードの部分又はアプリケーションプログラムの部分(あるいは、それらの組み合わせ)のいずれかであってよい。加えて、様々な他の周辺機器、例えば、追加のデータ記憶装置及び印刷装置などが、コンピュータプラットフォームに結合されてよい。
図6は、本原理を実施するために使用される最低限のコンピュータ環境600のブロック図を示す。コンピュータ環境600は、プロセッサ610と、少なくとも1つ(好適には1つ以上)のI/Oインタフェース620とを有する。I/Oインタフェースは、有線又は無線であることができ、無線実施では、本原理が、例えば、遠隔でエンドユーザに提供されるサース(Software as a Service)(SAAS)として提供されることを可能にするように、コンピュータ環境600がグローバルネットワーク(例えば、インターネット)上で動作して、他のコンピュータ又はサーバ(例えば、クラウドベースのコンピュータ又は記憶サーバ)と通信することを可能にするよう適切な無線通信プロトコルにより予め設定される。1つ以上のメモリ630及び/又は記憶装置(HDD)640が更にコンピュータ環境600内に設けられる。コンピュータ環境600又は複数のコンピュータ環境600は、本原理の一実施形態に従う行列因子分解C1〜C12(図4)のために、プロトコルP1〜P11(図3)を実施してよい。特に、本原理の実施形態において、コンピュータ環境600はRecSys230を実装してよく、別のコンピュータ環境600はCSP250を実装してよく、ソースは、RecSys230及びCSP250と通信するのに使用されるデスクトップコンピュータ、携帯電話機、スマートフォン、電話機能付き腕時計、タブレットコンピュータ、パーソナルデジタルアシスタント(PDA)、ネットブック及びラップトップコンピュータを含むがそれらに限られない、夫々が個別のユーザ210に関連付けられた1つ又は複数のコンピュータ環境600を含んでよい。加えて、CSP250は、ソースにおいて含まれるか、あるいは、同等に、ソースの各ユーザ210のコンピュータ環境に含まれてよい。
添付の図面において表されている構成するシステムコンポーネント及び方法ステップの一部は、好適にはソフトウェアにおいて実施されるので、システムコンポーネント(又はプロセスステップ)間の実際の接続は、本原理がプログラムされる様態に応じて異なってよい点が理解されるべきである。ここでの技術を鑑みて、当業者は、本原理のそれらの及びより簡単な実施又は構成を考えつくことができるであろう。
実例となる実施形態がここで添付の図面を参照して記載されてきたが、本原理はそれらの厳密な実施形態に制限されず、様々な変更及び改良が、本原理の適用範囲及び主旨から逸脱することなしに、それらにおいて当業者によって達成され得る点が理解されるべきである。全てのそのような変更及び改良は、添付の特許請求の範囲で挙げられている本原理の適用範囲内に含まれるよう意図される。
[関連出願の相互参照]
本願は、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/US13/76353号(発明の名称“A METHOD AND SYSTEM FOR PRIVACY PRESERVING COUNTING”)、及び2013年3月4日付けで出願された米国特許仮出願第61/772404号(発明の名称“PRIVACY-PRESERVING LINEAR AND RIDGE REGRESSION”)に基づく優先権の利益を享受するものである。これらの仮出願及び国際特許出願は、その全文を参照により本願に援用される。
実例となる実施形態がここで添付の図面を参照して記載されてきたが、本原理はそれらの厳密な実施形態に制限されず、様々な変更及び改良が、本原理の適用範囲及び主旨から逸脱することなしに、それらにおいて当業者によって達成され得る点が理解されるべきである。全てのそのような変更及び改良は、添付の特許請求の範囲で挙げられている本原理の適用範囲内に含まれるよう意図される。
上記の実施形態に加えて、以下の付記を開示する。
(付記1)
行列因子分解によりアイテムをセキュアにプロファイルする方法であって、
トークンの組とアイテムの組とを有するレコードの組をソースから受け取るステップであって、夫々のレコードは前記ソース以外のパーティから秘密に保たれる、ステップと、
少なくとも1つの別のアイテムを受け取るステップと、
行列因子分解に基づきGarbled回路を使用することによってレコメンダにおいて前記レコードの組と前記少なくとも1つの別のアイテムとを評価するステップであって、前記Garbled回路の出力は前記少なくとも1つの別のアイテムについてのアイテムプロファイルを有する、ステップと
を有する方法。
(付記2)
前記レコードの組と前記少なくとも1つの別のアイテムとに対して行列因子分解を実行するように暗号サービスプロバイダにおいて前記Garbled回路を設計するステップであって、該Garbled回路の出力は前記少なくとも1つの別のアイテムについての前記アイテムプロファイルを有する、ステップと、
前記Garbled回路を前記レコメンダに渡すステップと
を更に有する付記1に記載の方法。
(付記3)
前記設計するステップは、行列因子分解演算をブール回路として設計するステップを有する、
付記2に記載の方法。
(付記4)
前記行列因子分解演算を設計するステップは、
前記レコードの組のアレイを構成するステップと、
前記アレイに対してソーティング、コピー、更新、比較及び勾配寄与の計算の動作を実行するステップと
を有する、付記3に記載の方法。
(付記5)
暗号化されたレコードを生成するように前記レコードの組を暗号化するステップを更に有し、
前記暗号化するステップは、前記レコードの組を受け取るステップより前に実行される、
付記2に記載の方法。
(付記6)
公開暗号鍵を前記暗号サービスプロバイダにおいて生成するステップと、
前記鍵を前記ソースへ送るステップと
を更に有する付記5に記載の方法。
(付記7)
前記暗号化は、部分準同型暗号であり、当該方法は、
マスキングをかけたレコードを生成するように前記レコメンダにおいて前記暗号化されたレコードをマスキングするステップと、
暗号解読されたマスキングをかけられたレコードを生成するように前記暗号サービスプロバイダにおいて前記マスキングをかけられたレコードを暗号解読するステップと
を更に有する、付記5に記載の方法。
(付記8)
前記設計するステップは、前記Garbled回路内で前記暗号解読されたマスキングをかけられたレコードを、それらを処理するより前に、アンマスキングするステップを有する、
付記7に記載の方法。
(付記9)
前記暗号サービスプロバイダと前記レコメンダとの間で紛失通信を実行するステップを更に有し、
前記レコメンダは、前記暗号解読されたマスキングをかけられたレコードのGarbled値を受け取り、前記レコードは、前記レコメンダ及び前記暗号サービスプロバイダから秘密にされる、
付記7に記載の方法。
(付記10)
夫々のレコードのトークン及びアイテムの数を受け取るステップ
を更に有する付記1に記載の方法。
(付記11)
トークンの数が最大値に相当する値に等しいレコードを生成するために、夫々のレコードのトークンの数が前記値よりも小さい場合に夫々のレコードをnullエントリで埋めるステップ
を更に有する付記1に記載の方法。
(付記12)
前記レコードの組の前記ソースは、データベース、及びユーザの組のうちの1つであり、夫々のユーザは、1つのレコードのソースであり、該1つのレコードは前記夫々のユーザ以外のパーティから秘密に保たれる、
付記1に記載の方法。
(付記13)
前記暗号サービスプロバイダによる前記Garbled回路の設計のための、前記レコメンダによって送信されたパラメータの組を受け取るステップ
を更に有する付記2に記載の方法。
(付記14)
行列因子分解によりアイテムをセキュアにプロファイルするシステムであって、
レコードの組を提供するソースと、
セキュアな行列因子分解回路を提供する暗号サービスプロバイダと、
前記レコードが前記ソース以外のパーティから秘密にされるように前記レコードを評価するレコメンダと
を有し、
前記ソース、前記暗号サービスプロバイダ、及び前記レコメンダは、夫々が
少なくとも1つの入力/出力を受けるプロセッサと、
前記プロセッサとシグナル通信する少なくとも1つのメモリと
を有し、
前記レコメンダのプロセッサは、
夫々のレコードがトークンの組及びアイテムの組を有するレコードの組を受け取り、夫々のレコードが秘密に保たれ、
少なくとも1つの別のアイテムを受け取り、
行列因子分解に基づきGarbled回路により前記レコードの組及び前記少なくとも1つの別のアイテムを評価し、前記Garbled回路の出力が前記少なくとも1つの別のアイテムについてのアイテムプロファイルを有する
ように構成される、システム。
(付記15)
前記暗号サービスプロバイダのプロセッサは、
前記レコードの組及び前記少なくとも1つの別のアイテムの行列因子分解を実行するように前記Garbled回路を設計し、該Garbled回路の出力が前記少なくとも1つの別のアイテムについての前記アイテムプロファイルを有し、
前記Garbled回路を前記レコメンダに渡す
ように構成される、付記14に記載のシステム。
(付記16)
前記暗号サービスプロバイダのプロセッサは、行列因子分解演算をブール回路として設計するよう構成されることによって、前記Garbled回路を設計するよう構成される、
付記15に記載のシステム。
(付記17)
前記暗号サービスプロバイダのプロセッサは、
前記レコードの組のアレイを構成し、
前記アレイに対してソーティング、コピー、更新、比較及び勾配寄与の計算の動作を実行する
よう構成されることによって、前記行列因子分解演算を設計するよう構成される、
付記16に記載のシステム。
(付記18)
前記ソースのプロセッサは、前記レコードの組を提供するより前に、暗号化されたレコードを生成するように前記レコードの組を暗号化するよう構成される、
付記15に記載のシステム。
(付記19)
前記暗号サービスプロバイダのプロセッサは更に、
公開暗号鍵を生成し、
前記鍵を前記ソースへ送る
よう構成される、付記18に記載のシステム。
(付記20)
前記暗号化は、部分準同型暗号であり、
前記レコメンダのプロセッサは更に、マスキングをかけたレコードを生成するように前記暗号化されたレコードをマスキングするよう構成され、
前記暗号サービスプロバイダのプロセッサは更に、暗号解読されたマスキングをかけられたレコードを生成するように前記マスキングをかけられたレコードを暗号解読するよう構成される、
付記18に記載のシステム。
(付記21)
前記暗号サービスプロバイダのプロセッサは、前記Garbled回路内で前記暗号解読されたマスキングをかけられたレコードを、それらを処理するより前に、アンマスキングするよう構成されることによって、前記Garbled回路を設計するよう構成される、
付記20に記載のシステム。
(付記22)
前記レコメンダのプロセッサ及び前記暗号サービスプロバイダのプロセッサは更に、紛失通信を実行するよう構成され、前記レコメンダは、前記暗号解読されたマスキングをかけられたレコードのGarbled値を受け取り、前記レコードは、前記レコメンダ及び前記暗号サービスプロバイダから秘密にされる、
付記20に記載のシステム。
(付記23)
前記レコメンダのプロセッサは更に、前記ソースによって送信された夫々のレコードのトークンの数を受け取るよう構成される、
付記14に記載のシステム。
(付記24)
前記ソースのプロセッサは、トークンの数が最大値に相当する値に等しいレコードを生成するために、夫々のレコードのトークンの数が前記値よりも小さい場合に夫々のレコードをnullエントリで埋めるよう構成される、
付記14に記載のシステム。
(付記25)
前記レコードの組の前記ソースは、データベース、及びユーザの組のうちの1つであり、
前記ソースがユーザの組である場合に、夫々のユーザは、少なくとも1つの入力/出力を受けるプロセッサと、少なくとも1つのメモリとを有し、夫々のユーザは、1つのレコードのソースであり、該1つのレコードは前記夫々のユーザ以外のパーティから秘密に保たれる、
付記14に記載のシステム。
(付記26)
前記暗号サービスプロバイダのプロセッサは更に、前記Garbled回路の設計のための、前記レコメンダによって送信されたパラメータの組を受け取るよう構成される、
付記15に記載のシステム。

Claims (26)

  1. 行列因子分解によりアイテムをセキュアにプロファイルする方法であって、
    トークンの組とアイテムの組とを有するレコードの組をソースから受け取るステップであって、夫々のレコードは前記ソース以外のパーティから秘密に保たれる、ステップと、
    少なくとも1つの別のアイテムを受け取るステップと、
    行列因子分解に基づきGarbled回路を使用することによってレコメンダにおいて前記レコードの組と前記少なくとも1つの別のアイテムとを評価するステップであって、前記Garbled回路の出力は前記少なくとも1つの別のアイテムについてのアイテムプロファイルを有する、ステップと
    を有する方法。
  2. 前記レコードの組と前記少なくとも1つの別のアイテムとに対して行列因子分解を実行するように暗号サービスプロバイダにおいて前記Garbled回路を設計するステップであって、該Garbled回路の出力は前記少なくとも1つの別のアイテムについての前記アイテムプロファイルを有する、ステップと、
    前記Garbled回路を前記レコメンダに渡すステップと
    を更に有する請求項1に記載の方法。
  3. 前記設計するステップは、行列因子分解演算をブール回路として設計するステップを有する、
    請求項2に記載の方法。
  4. 前記行列因子分解演算を設計するステップは、
    前記レコードの組のアレイを構成するステップと、
    前記アレイに対してソーティング、コピー、更新、比較及び勾配寄与の計算の動作を実行するステップと
    を有する、請求項3に記載の方法。
  5. 暗号化されたレコードを生成するように前記レコードの組を暗号化するステップを更に有し、
    前記暗号化するステップは、前記レコードの組を受け取るステップより前に実行される、
    請求項2に記載の方法。
  6. 公開暗号鍵を前記暗号サービスプロバイダにおいて生成するステップと、
    前記鍵を前記ソースへ送るステップと
    を更に有する請求項5に記載の方法。
  7. 前記暗号化は、部分準同型暗号であり、当該方法は、
    マスキングをかけたレコードを生成するように前記レコメンダにおいて前記暗号化されたレコードをマスキングするステップと、
    暗号解読されたマスキングをかけられたレコードを生成するように前記暗号サービスプロバイダにおいて前記マスキングをかけられたレコードを暗号解読するステップと
    を更に有する、請求項5に記載の方法。
  8. 前記設計するステップは、前記Garbled回路内で前記暗号解読されたマスキングをかけられたレコードを、それらを処理するより前に、アンマスキングするステップを有する、
    請求項7に記載の方法。
  9. 前記暗号サービスプロバイダと前記レコメンダとの間で紛失通信を実行する更にステップを有し、
    前記レコメンダは、前記暗号解読されたマスキングをかけられたレコードのGarbled値を受け取り、前記レコードは、前記レコメンダ及び前記暗号サービスプロバイダから秘密にされる、
    請求項7に記載の方法。
  10. 夫々のレコードのトークン及びアイテムの数を受け取るステップ
    を更に有する請求項1に記載の方法。
  11. トークンの数が最大値に相当する値に等しいレコードを生成するために、夫々のレコードのトークンの数が前記値よりも小さい場合に夫々のレコードをnullエントリで埋めるステップ
    を更に有する請求項1に記載の方法。
  12. 前記レコードの組の前記ソースは、データベース、及びユーザの組のうちの1つであり、夫々のユーザは、1つのレコードのソースであり、該1つのレコードは前記夫々のユーザ以外のパーティから秘密に保たれる、
    請求項1に記載の方法。
  13. 前記暗号サービスプロバイダによる前記Garbled回路の設計のための、前記レコメンダによって送信されたパラメータの組を受け取るステップ
    を更に有する請求項2に記載の方法。
  14. 行列因子分解によりアイテムをセキュアにプロファイルするシステムであって、
    レコードの組を提供するソースと、
    セキュアな行列因子分解回路を提供する暗号サービスプロバイダと、
    前記レコードが前記ソース以外のパーティから秘密にされるように前記レコードを評価するレコメンダと
    を有し、
    前記ソース、前記暗号サービスプロバイダ、及び前記レコメンダは、夫々が
    少なくとも1つの入力/出力を受けるプロセッサと、
    前記プロセッサとシグナル通信する少なくとも1つのメモリと
    を有し、
    前記レコメンダのプロセッサは、
    夫々のレコードがトークンの組及びアイテムの組を有するレコードの組を受け取り、夫々のレコードが秘密に保たれ、
    少なくとも1つの別のアイテムを受け取り、
    行列因子分解に基づきGarbled回路により前記レコードの組及び前記少なくとも1つの別のアイテムを評価し、前記Garbled回路の出力が前記少なくとも1つの別のアイテムについてのアイテムプロファイルを有する
    ように構成される、システム。
  15. 前記暗号サービスプロバイダのプロセッサは、
    前記レコードの組及び前記少なくとも1つの別のアイテムの行列因子分解を実行するように前記Garbled回路を設計し、該Garbled回路の出力が前記少なくとも1つの別のアイテムについての前記アイテムプロファイルを有し、
    前記Garbled回路を前記レコメンダに渡す
    ように構成される、請求項14に記載のシステム。
  16. 前記暗号サービスプロバイダのプロセッサは、行列因子分解演算をブール回路として設計するよう構成されることによって、前記Garbled回路を設計するよう構成される、
    請求項15に記載のシステム。
  17. 前記暗号サービスプロバイダのプロセッサは、
    前記レコードの組のアレイを構成し、
    前記アレイに対してソーティング、コピー、更新、比較及び勾配寄与の計算の動作を実行する
    よう構成されることによって、前記行列因子分解演算を設計するよう構成される、
    請求項16に記載のシステム。
  18. 前記ソースのプロセッサは、前記レコードの組を提供するより前に、暗号化されたレコードを生成するように前記レコードの組を暗号化するよう構成される、
    請求項15に記載のシステム。
  19. 前記暗号サービスプロバイダのプロセッサは更に、
    公開暗号鍵を生成し、
    前記鍵を前記ソースへ送る
    よう構成される、請求項18に記載のシステム。
  20. 前記暗号化は、部分準同型暗号であり、
    前記レコメンダのプロセッサは更に、マスキングをかけたレコードを生成するように前記暗号化されたレコードをマスキングするよう構成され、
    前記暗号サービスプロバイダのプロセッサは更に、暗号解読されたマスキングをかけられたレコードを生成するように前記マスキングをかけられたレコードを暗号解読するよう構成される、
    請求項18に記載のシステム。
  21. 前記暗号サービスプロバイダのプロセッサは、前記Garbled回路内で前記暗号解読されたマスキングをかけられたレコードを、それらを処理するより前に、アンマスキングするよう構成されることによって、前記Garbled回路を設計するよう構成される、
    請求項20に記載のシステム。
  22. 前記レコメンダのプロセッサ及び前記暗号サービスプロバイダのプロセッサは更に、紛失通信を実行するよう構成され、前記レコメンダは、前記暗号解読されたマスキングをかけられたレコードのGarbled値を受け取り、前記レコードは、前記レコメンダ及び前記暗号サービスプロバイダから秘密にされる、
    請求項20に記載のシステム。
  23. 前記レコメンダのプロセッサは更に、前記ソースによって送信された夫々のレコードのトークンの数を受け取るよう構成される、
    請求項14に記載のシステム。
  24. 前記ソースのプロセッサは、トークンの数が最大値に相当する値に等しいレコードを生成するために、夫々のレコードのトークンの数が前記値よりも小さい場合に夫々のレコードをnullエントリで埋めるよう構成される、
    請求項14に記載のシステム。
  25. 前記レコードの組の前記ソースは、データベース、及びユーザの組のうちの1つであり、
    前記ソースがユーザの組である場合に、夫々のユーザは、少なくとも1つの入力/出力を受けるプロセッサと、少なくとも1つのメモリとを有し、夫々のユーザは、1つのレコードのソースであり、該1つのレコードは前記夫々のユーザ以外のパーティから秘密に保たれる、
    請求項14に記載のシステム。
  26. 前記暗号サービスプロバイダのプロセッサは更に、前記Garbled回路の設計のための、前記レコメンダによって送信されたパラメータの組を受け取るよう構成される、
    請求項15に記載のシステム。
JP2015561769A 2013-08-09 2014-05-01 プライバシーを保護する行列因子分解のための方法及びシステム Pending JP2016510912A (ja)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201361864088P 2013-08-09 2013-08-09
US201361864098P 2013-08-09 2013-08-09
US201361864094P 2013-08-09 2013-08-09
US201361864085P 2013-08-09 2013-08-09
US61/864,088 2013-08-09
US61/864,098 2013-08-09
US61/864,094 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/036357 WO2014138752A2 (en) 2013-03-04 2014-05-01 A method and system for privacy preserving matrix factorization

Publications (1)

Publication Number Publication Date
JP2016510912A true JP2016510912A (ja) 2016-04-11

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 (1)

Application Number Title Priority Date Filing Date
JP2015561771A Pending JP2016510913A (ja) 2013-08-09 2014-05-01 行列因子分解とリッジ回帰に基づくプライバシー保護リコメンデーションの方法及びシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2015561770A Pending JP2016517069A (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 (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019049641A (ja) * 2017-09-11 2019-03-28 日本電信電話株式会社 難読化回路生成装置、難読化回路計算装置、難読化回路生成方法、難読化回路計算方法、プログラム
CN111034117A (zh) * 2017-08-31 2020-04-17 维萨国际服务协会 单节点多方加密
JP2021507438A (ja) * 2017-12-18 2021-02-22 ユニバーシティ オブ セントラル フロリダ リサーチ ファウンデーション,インコーポレイテッド パブリックコンピューターにおいて暗号化データに作用するコードを安全に実行する方法
CN113779500A (zh) * 2021-08-23 2021-12-10 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
JP7397212B2 (ja) 2021-01-10 2023-12-12 グーグル エルエルシー コンテンツ配信における情報に対するアクセスを保護するためのセキュアなmpcおよびベクトル計算の使用
JP7422892B2 (ja) 2021-04-09 2024-01-26 グーグル エルエルシー 分類の正確さを改善するための機械学習モデリングデータの処理
JP7440667B2 (ja) 2021-03-08 2024-02-28 グーグル エルエルシー セキュアマルチパーティ計算を使用したフレキシブルなコンテンツ選択プロセス

Families Citing this family (29)

* Cited by examiner, † Cited by third party
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路径计算方法
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
CN110909356B (zh) * 2018-09-18 2022-02-01 百度在线网络技术(北京)有限公司 安全多方计算方法、装置、设备及计算机可读介质
JP2022507702A (ja) 2018-11-15 2022-01-18 ラヴェル テクノロジーズ エスアーエールエル ゼロ知識広告方法、装置、およびシステムのための暗号化匿名化
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 复旦大学 一种用于隐私保护机器学习的定点数编码及运算系统
CN114450919B (zh) * 2020-08-14 2023-12-19 谷歌有限责任公司 在线隐私保护方法和系统
CN112528303B (zh) * 2020-12-11 2024-01-26 重庆交通大学 一种基于ntru加密算法的多用户隐私推荐方法
IL279406A (en) 2020-12-13 2022-07-01 Google Llc Privacy-preserving techniques for selecting and sharing content
CN112311546B (zh) * 2020-12-25 2021-04-09 鹏城实验室 数据保密判定方法、装置、设备及计算机可读存储介质
US11113707B1 (en) 2021-01-22 2021-09-07 Isolation Network, Inc. Artificial intelligence identification of high-value audiences for marketing campaigns
CN113051587B (zh) * 2021-03-10 2024-02-02 中国人民大学 一种隐私保护智能交易推荐方法、系统和可读介质
IL283674A (en) 2021-06-03 2023-01-01 Google Llc Distribution and monitoring of cross-disciplinary experimental groups to maintain privacy
CN114817999B (zh) * 2022-06-28 2022-09-02 北京金睛云华科技有限公司 一种基于多密钥同态加密的外包隐私保护方法和设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005015462A1 (en) * 2003-08-08 2005-02-17 Koninklijke Philips Electronics N.V. System for processing data and method thereof
ATE408940T1 (de) * 2003-11-03 2008-10-15 Koninkl Philips Electronics Nv Verfahren und einrichtung zur effizienten mehrteilnehmer-vervielfachung
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 北京航空航天大学 一种融合用户、项目和上下文属性信息的推荐系统优化方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111034117A (zh) * 2017-08-31 2020-04-17 维萨国际服务协会 单节点多方加密
CN111034117B (zh) * 2017-08-31 2023-01-10 维萨国际服务协会 单节点多方加密
US11811923B2 (en) 2017-08-31 2023-11-07 Visa International Service Association Single node multi-party encryption
JP2019049641A (ja) * 2017-09-11 2019-03-28 日本電信電話株式会社 難読化回路生成装置、難読化回路計算装置、難読化回路生成方法、難読化回路計算方法、プログラム
JP2021507438A (ja) * 2017-12-18 2021-02-22 ユニバーシティ オブ セントラル フロリダ リサーチ ファウンデーション,インコーポレイテッド パブリックコンピューターにおいて暗号化データに作用するコードを安全に実行する方法
JP7177849B2 (ja) 2017-12-18 2022-11-24 ユニバーシティ オブ セントラル フロリダ リサーチ ファウンデーション,インコーポレイテッド パブリックコンピューターにおいて暗号化データに作用するコードを安全に実行する方法
JP7397212B2 (ja) 2021-01-10 2023-12-12 グーグル エルエルシー コンテンツ配信における情報に対するアクセスを保護するためのセキュアなmpcおよびベクトル計算の使用
JP7440667B2 (ja) 2021-03-08 2024-02-28 グーグル エルエルシー セキュアマルチパーティ計算を使用したフレキシブルなコンテンツ選択プロセス
JP7422892B2 (ja) 2021-04-09 2024-01-26 グーグル エルエルシー 分類の正確さを改善するための機械学習モデリングデータの処理
CN113779500A (zh) * 2021-08-23 2021-12-10 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN113779500B (zh) * 2021-08-23 2024-01-30 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置

Also Published As

Publication number Publication date
CN105103487A (zh) 2015-11-25
CN105144625A (zh) 2015-12-09
KR20160041028A (ko) 2016-04-15
EP3031165A2 (en) 2016-06-15
JP2016517069A (ja) 2016-06-09
CN105009505A (zh) 2015-10-28
JP2016510913A (ja) 2016-04-11

Similar Documents

Publication Publication Date Title
JP2016510912A (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
Pulido-Gaytan et al. Privacy-preserving neural networks with homomorphic encryption: C hallenges and opportunities
Hidano et al. Model inversion attacks for prediction systems: Without knowledge of non-sensitive attributes
Niu et al. Toward verifiable and privacy preserving machine learning prediction
Böhler et al. Secure multi-party computation of differentially private heavy hitters
CN112805769B (zh) 秘密s型函数计算系统、装置、方法及记录介质
Lin et al. A generic federated recommendation framework via fake marks and secret sharing
JP2023509589A (ja) 勾配ブースティングを介したプライバシーを守る機械学習
Soykan et al. A survey and guideline on privacy enhancing technologies for collaborative machine learning
Russo et al. Dare‐to‐Share: Collaborative privacy‐preserving recommendations with (almost) no crypto
Luo et al. A privacy preserving group recommender based on cooperative perturbation
Hong et al. FedHD: A Privacy-Preserving Recommendation System with Homomorphic Encryption and Differential Privacy
Jung Ensuring Security and Privacy in Big Data Sharing, Trading, and Computing
CN108475483B (zh) 隐匿决定树计算系统、装置、方法以及记录介质
Bao Privacy-Preserving Cloud-Assisted Data Analytics
Singh et al. Improved encryption and obfuscation process of lightweight secured auditable cloud storage with data dynamics
Wang Privacy-preserving recommender systems facilitated by the machine learning approach
Jin et al. Secure Federated Learning
Zou Social computing for personalization and credible information mining using probabilistic graphical models
CN117853194A (zh) 一种基于对抗网络和Byrd-SAGA的联邦推荐方法
Ertaul et al. Implementation of Oblivious Bloom Intersection in Private Set Intersection Protocol (PSI)
Demirağ Privacy-preserving data sharing and utilization between entities