(57)【要約】  本発明は、第１ソースの第１データを暗号化し、第２ソースの第２データを暗号化するステップと、前記暗号化された第１及び第２データを解読し、前記第１及び第２ソースの身元を互いに開示することを不可能とするサーバに、前記暗号化された第１及び第２データを提供するステップと、前記第１及び第２データが、それぞれ前記第２及び第１ソースに匿名とされるように、前記第１データと前記第２データとの間の類似性の指標を提供する類似度を取得するため、前記暗号化された第１及び第２データに対し計算を実行するステップとを有することを特徴とするデータ処理方法に関する。本方法はさらに、前記第１又は第２ソースに対するコンテンツアイテムの推奨を取得するため、前記類似度を利用するステップを有する。前記第１又は第２データは、コンテンツアイテムのユーザ格付け又はユーザプロファイルから構成されてもよい。本方法の１つの応用は、協調フィルタリングシステムに備えられてもよい。
2007501975.tif 000002
【特許請求の範囲】
【請求項１】
第１データを暗号化する第１ソース及び第２データを暗号化する第２ソースと、
前記暗号化された第１及び第２データを取得するよう構成され、前記暗号化された第１及び第２データの解読を不可能とし、前記第１及び第２ソースの身元を互いに開示することを不可能とするサーバと、
前記第１及び第２データが、それぞれ前記第２及び第１ソースに匿名となるように、前記第１データと前記第２データとの間の類似性の指標を提供する類似度を取得するため、前記暗号化された第１及び第２データに対し計算を実行する計算手段と、
を有することを特徴とするデータ処理システム。
【請求項２】
請求項１記載のシステムであって、
前記第２ソースは、前記第１データと前記第２データとの間の暗号化された内積を取得し、前記暗号化された内積を前記サーバを介し前記第１ソースに提供する計算手段を有し、
前記第１ソースは、前記類似度を取得するため、前記暗号化された内積を解読するよう構成される、
ことを特徴とするシステム。
【請求項３】
請求項１記載のシステムであって、
前記計算手段は、公開鍵共有方式を用いた閾値Ｐａｉｌｌｉｅｒ暗号化システム又はＰａｉｌｌｉｅｒ暗号化システムを用いて実現されることを特徴とするシステム。
【請求項４】
請求項１記載のシステムであって、
前記サーバは、前記第１データと前記第２データとの間の暗号化された内積、又は前記類似度における前記第１データと前記第２データの割当て部分の暗号化された和を取得する計算手段を有し、
前記サーバは、前記暗号化された内積又は前記割当て部分の和を解読し、前記類似度を取得する公開鍵解読サーバに結合される、
ことを特徴とするシステム。
【請求項５】
請求項１乃至４何れか一項記載のシステムであって、
前記類似度は、ピアソン相関又はκ統計量を用いて取得されることを特徴とするシステム。
【請求項６】
第１ソースの第１データを暗号化し、第２ソースの第２データを暗号化するステップと、
前記暗号化された第１及び第２データを解読し、前記第１及び第２ソースの身元を互いに開示することを不可能とするサーバに、前記暗号化された第１及び第２データを提供するステップと、
前記第１及び第２データが、それぞれ前記第２及び第１ソースに匿名とされるように、前記第１データと前記第２データとの間の類似性の指標を提供する類似度を取得するため、前記暗号化された第１及び第２データに対し計算を実行するステップと、
を有することを特徴とするデータ処理方法。
【請求項７】
請求項６記載の方法であって、
前記第１又は第２データは、それぞれ第１又は第２ユーザのユーザプロファイルを有し、
前記ユーザプロファイルは、前記第１又は第２ユーザのメディアコンテンツアイテムに対するユーザ嗜好を示す、
ことを特徴とする方法。
【請求項８】
請求項６記載の方法であって、
前記第１又は第２データは、各コンテンツアイテムのユーザ格付けを有することを特徴とする方法。
【請求項９】
請求項６記載の方法であって、さらに、
前記第１又は第２ソースに対するコンテンツアイテムの推奨を取得するため、前記類似度を利用するステップを有することを特徴とする方法。
【請求項１０】
請求項９記載の方法であって、
前記推奨は、協調フィルタリング技術を用いて実行されることを特徴とする方法。
【請求項１１】
データを処理するサーバであって、
第１ソースの暗号化された第１データと第２ソースの暗号化された第２データとを取得し、前記暗号化された第１及び第２データを解読し、前記第１及び第２ソースの身元を互いに開示することを不可能とし、
前記第１及び第２データが、それぞれ前記第２及び第１ソースに匿名とされるように、前記第１データと前記第２データとの間の類似性の指標を提供する類似度を取得するため、前記暗号化された第１及び第２データに対する計算を可能にするよう構成されることを特徴とするサーバ。
【請求項１２】
第１ソースの暗号化された第１データと第２ソースの暗号化された第２データとを、前記暗号化された第１及び第２データを解読し、前記第１及び第２ソースの身元を互いに開示することを不可能とするサーバにより取得するステップと、
前記第１及び第２データが、それぞれ前記第２及び第１ソースに匿名とされるように、前記第１データと前記第２データとの間の類似性の指標を提供する類似度を取得するため、前記暗号化された第１及び第２データに対する計算を可能にするステップと、
を有することを特徴とするデータ処理方法。
【請求項１３】
実行時に、プログラム可能な装置が請求項１記載のシステムとして機能することを可能にすることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１データを有する第１ソースと、第２データを有する第２ソースと、サーバとを有するデータ処理システムに関する。本発明はさらに、データ処理方法及びデータを処理するサーバに関する。
【背景技術】
【０００２】
メディアコンテンツに対するユーザの嗜好や購入などを表すユーザデータを格納するための複数のユーザ装置を有する情報システムが知られている。このような情報システムは、典型的には上記ユーザデータを収集するサーバを有する。ユーザデータは、ユーザデータ間の相関を判断し、特定のサービスを１以上のユーザに提供するため解析される。例えば、協調フィルタリング手法は、多数のユーザのグループの興味をまとめたコンテンツ推奨を行うための方法である。
【０００３】
メモリベース協調フィルタリング手法は、各ユーザの格付けが他の各ユーザの格付けと比較されるユーザ間の相関（類似性）を決定することに基づくものである。この類似性は、あるユーザがコンテンツのある部分をどの程度気に入っているか予測するのに利用される。予測ステップでは、様々な選択肢が存在する。ユーザ間の類似性を判断する代わりに、ユーザから受け取った格付けパターンに基づき、アイテム間の類似性を決定するようにしてもよい。
【０００４】
これに関する１つの問題点は、サーバや他のユーザに自らの興味を開示することを所望しないユーザのプライバシーの保護ということである。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の課題は、従来システムの問題点を回避し、ユーザプライバシーが保護されるデータ処理システムを提供することである。
【課題を解決するための手段】
【０００６】
上記課題は、
第１データを暗号化する第１ソース及び第２データを暗号化する第２ソースと、
前記暗号化された第１及び第２データを取得するよう構成され、前記暗号化された第１及び第２データの解読を不可能とし、前記第１及び第２ソースの身元を互いに開示することを不可能とするサーバと、
前記第１及び第２データが、それぞれ前記第２及び第１ソースに匿名となるように、前記第１データと前記第２データとの間の類似性の指標を提供する類似度を取得するため、前記暗号化された第１及び第２データに対し計算を実行する計算手段と、
を有することを特徴とするデータ処理システムにより実現される。
【０００７】
本発明の一実施例では、前記類似度は、ピアソン相関又はκ統計量を用いて取得される。他の実施例では、前記計算手段は、Ｐａｉｌｌｉｅｒ暗号化システム、又は公開鍵共有方式を用いた閾値Ｐａｉｌｌｉｅｒ暗号化システムを用いて実現される。
【０００８】
前記類似度を決定するのに必要とされる計算ステップは、例えば、ベクトルの内積及び割当て部分の和の計算を有する。当該計算後、暗号化技術がデータを保護するため適用される。ある意味では、このことは、暗号化された情報のみがサーバに送信され、すべての計算が暗号化された領域において実行されることを意味する。
【０００９】
本発明のさらなる実施例では、前記第１又は第２データは、それぞれ第１又は第２ユーザのユーザプロファイルを有し、当該ユーザプロファイルは、第１又は第２ユーザのメディアコンテンツアイテムに対するユーザ嗜好を示すものである。他の例では、前記第１又は第２データは、各コンテンツアイテムのユーザ格付けを有する。
【００１０】
本発明の効果は、ユーザ情報が保護されるということである。本発明は、音楽やテレビ番組の推奨などの各種推奨サービスにおいてだけでなく、プライバシーの保護が極めて重要な医療又は金融推奨アプリケーションにも利用可能である。
【００１１】
また、本発明の課題は、
第１ソースの第１データを暗号化し、第２ソースの第２データを暗号化するステップと、
前記暗号化された第１及び第２データを解読し、前記第１及び第２ソースの身元を互いに開示することを不可能とするサーバに、前記暗号化された第１及び第２データを提供するステップと、
前記第１及び第２データが、それぞれ前記第２及び第１ソースに匿名とされるように、前記第１データと前記第２データとの間の類似性の指標を提供する類似度を取得するため、前記暗号化された第１及び第２データに対し計算を実行するステップと、
を有することを特徴とするデータ処理方法により実現される。
【００１２】
本方法は、本発明のシステムの動作を記述するものである。
【００１３】
一実施例では、本方法はさらに、前記第１又は第２ソースに対するコンテンツアイテムの推奨を取得するため、前記類似度を利用するステップを有する。例えば、アクティブ状態にあるユーザａに対するアイテムｉのスコアを予測することを所望すると仮定する。
１．まず、ユーザａと他の各ユーザｘとの間の相関を計算する。これは、サーバを介したやりとりを通じて、ユーザａと他の各ユーザｘの格付けベクトルとの間の内積を計算することにより行われる。このようにして、ユーザａは、他の各ユーザｘ（＝１，２，．．．，ｎ）との相関値を知ることができるが、ユーザ１，２，．．．，ｎが誰であるかについては知ることができない。他方、サーバは、ユーザ１，２，．．．，ｎが誰であるかについては知っているが、相関値については知ることができない。
２．次に、アイテムｉに対するユーザ１，２，．．．，ｎの格付けの一種の加重平均をとることにより、ユーザａのアイテムｉに対する予測を計算する。このための手順は、ユーザが相関値を暗号化し、それをサーバに送信し、サーバが各ユーザ１，２，．．．，ｎに転送するというものである。各ユーザｘ（＝１，２，．．．，ｎ）は、受け取った暗号化された相関値とアイテムｉに対して与えた格付けとを掛け合わせ、結果をサーバに送り返す。サーバは、依然として何も解読することはできず、ユーザ１，２，．．．，ｎの暗号化された積を暗号化された和に合成し、この最終結果をユーザａに送り返し、ユーザａがそれを解読し所望の結果を取得することができる。
【００１４】
請求項６は、第１及び第２ソースと、サーバとを有するシステムの動作を記載している。請求項１２は、ユーザプライバシーを確保し、暗号化された領域において類似度の計算を可能にするサーバの動作に関するものである。何れの請求項も相互に関連し、実質的に同一の発明に関するものである。
【発明を実施するための最良の形態】
【００１５】
本発明の実施例によると、図１においてシステム１００が示される。当該システムは、第１装置（第１ソース）と、複数の第２装置１９０、１９１、．．．、１９９（第２ソース）とを有する。サーバ１５０が、第１装置と第２装置とに接続される。第１装置は、例えば、メディアコンテンツのユーザ格付け、販売される製品に関するユーザ嗜好データ、特定の食材に対する嗜好を提供するための処方箋を示すユーザの医療記録などの第１データを有する。第２装置は、例えば、第２ユーザの嗜好に関する第２データを有する。
【００１６】
一例として、第１装置はテレビ番組のユーザ格付けを格納するよう構成されるテレビセットトップボックスである。第１装置はさらに、各テレビ番組の放送時間、チャンネル、タイトルなどを示すＥＰＧ（電子番組ガイド）データを取得するよう構成される。第１装置は、各テレビ番組のユーザ格付けを格納するユーザプロファイルを格納するよう構成される。ユーザプロファイルは、必ずしもＥＰＧデータのすべての番組の対する格付けを有しなくてもよい。ユーザが格付けを行っていない番組を気に入るか判断するため、各種推奨手法が利用可能である。例えば、協調フィルタリング手法が利用される。このとき、第１装置は、第２プロファイルが第１プロファイルと類似しているか（類似度を用いて）求めるため、第２ユーザプロファイルを有する第２データを格納している第２装置と協調し、この特定番組の格付けを有する。第１プロファイルと第２プロファイルとの類似度が所定の閾値を超える場合、第２プロファイルに含まれる格付けを用いて、第１装置のユーザが当該番組を気に入るか否か判断する（予測ステップ）。
【００１７】
例えば、κ統計量又はピアソン相関が、第１プロファイルと第２プロファイルとの間の類似度を決定するのに利用されてもよい。
【００１８】
この類似度は、２つのプロファイルの間の距離、相関、又は２つのプロファイル間の等しい投票数であってもよい。予測の計算について、ユーザ間で同じ嗜好を有する場合には類似度は高くされ、反対の嗜好を有する場合には類似度は低くされる必要がある。例えば、上記距離は、ユーザ間の投票のトータルの差を計算する。ユーザ間で全く同一の嗜好となる場合には、当該距離はゼロとされる。ユーザ間で全く反対の振る舞いをする場合には、当該距離は高いものとされる。従って、ユーザが同一のものに投票する場合、ウェートが高くなるように調整を行う必要がある。単純な差は、既知のマンハッタン距離である。
【００１９】
一例では、第２プロファイルが第１プロファイルと十分類似する場合（類似度に基づき）、第１プロファイルでなく、第２プロファイルにおいて格付けされるすべてのコンテンツアイテム（テレビ番組）が検出される。上記アイテムは、第１プロファイルに係るユーザに推奨される。この推奨は、第２プロファイルのアイテムの格付け、第１プロファイルと第２プロファイルとの間の類似度に基づく第１プロファイルのユーザに対するアイテムの予測される格付けを計算する予測方法などに基づくものとされてもよい。
【００２０】
この類似度は、協調フィルタリング手法（コンテンツ推奨フィールドにおける）に関してだけでなく、一般にメディアコンテンツのカスタマイズ、ユーザターゲット宣伝、マッチメーキングサービス（ｍａｔｃｈｍａｋｉｎｇ  ｓｅｒｖｉｃｅ）及び他の用途に利用可能である。
【００２１】
従来システムでは、類似度の計算は、第１装置の第１データ及び／又は第２装置の第２データが、それぞれ第２装置及び第１装置又はサーバと通信されることを求めることから、ユーザプライバシーの問題が生ずる。
【００２２】
第１装置は第１データを暗号化し、第２装置は第２データを暗号化する。第１及び第２データはサーバに送信される。サーバは、暗号化された第１及び第２データを解読することはできない。さらに、サーバは、第２装置が暗号化された第１データを取得すると、第２装置が第１装置の身元を特定できないことを保証する。他方、第１装置は、それが第２データを受け取ると、暗号化された第２データが第２装置から生じたものであることを特定することはできない。従って、サーバは、暗号化された第１及び第２データを解読することはできず、第１及び第２ソースの身元を互いに明らかにすることができない。
【００２３】
例えば、サーバは、第１装置の第１識別子と第２装置の第２識別子とを有するデータベースを格納する。第１装置がサーバを介し暗号化された第１データを第２装置に送信するとき、サーバは暗号化された第１データに添付された第１識別子を取り除き、第１識別子なしの暗号化された第１データのみを第２装置に送信する。
【００２４】
暗号化された第１及び第２データに関する計算は、他の多数の方法により実行されてもよいということに留意すべきである。例えば、第１装置は、第１データを暗号化し、この暗号化された第１データをサーバを介し第２装置に送信する。第２装置は、暗号化された第１データと第２データとの間の暗号化された内積を計算する。第２装置は、この暗号化された内積をサーバを介し第１装置に送信する。第１装置は、暗号化された内積を解読し、第１データと第２データとの間の類似度を計算する。第１装置は類似度を取得するが、第２データのソースを特定することはできない。
【００２５】
あるいは、上記計算は、暗号化された第１データと暗号化された第２データを取得したサーバに対してのみ実行される。さらなる代替としては、上記計算は、一部をサーバで、一部を第２装置により実行される。第１装置のみが、内積を解読し、類似度を取得する。他の代替を導出することも可能である。
【００２６】
図２は、本発明の方法の実施例を示す。ステップ２１０では、第１ソースの第１データが暗号化され、第２ソースの第２データが暗号化される。ステップ２２０において、これら暗号化された第１及び第２データは、サーバ１５０に提供される。サーバは、これら暗号化された第１及び第２データを解読することはできず、第１及び第２ソースの身元を互いに明らかにすることもできない。ステップ２３０において、第１データと第２データがそれぞれ第２ソースと第１ソースに対して匿名とされるように、第１データと第２データとの間の類似度を取得するため、暗号化された第１及び第２データに対して計算が実行される。上記類似度は、第１データと第２データとの間の類似性の指標を提供する。任意的にステップ２４０において、類似度を利用して、第１又は第２ソースに対するコンテンツアイテムの推奨が取得される。次の段落において、ステップ２１０、２２０、２３０及び２４０のさらなる実施例が、詳細に説明される。
【００２７】
以下の２つの問題に対する方法が存在する。
１．各々が整数の秘密のベクトルを有する２つの主体が与えられると、各主体の何れもが特定情報を開示する必要なく、ベクトル間の内積を決定する。
２．各々が秘密の数字を有する主体群が与えられると、各主体の何れもが当該数字を開示する必要なく、数字の合計を決定する。
【００２８】
第１の問題は、例えば、Ｐａｉｌｌｉｅｒ暗号化システムにより解決される。第２の問題は、十分な数の主体が協調する場合に限って（そして、合計のみが開示され、詳細な情報は開示されない）、解読が実行可能となる鍵共有スキーム（また、Ｐａｉｌｌｉｅｒ）により処理される。
［メモリベース協調フィルタリング］
ほとんどのメモリベース協調フィルタリングアプローチは、まずユーザ間の類似性を判断し、各自の結合格付けされたアイテムを比較することにより行われる。次に、上記類似性を利用して、特定アイテムに対するユーザの格付けを、当該アイテムに対するその他のユーザの格付けの間を補間することにより予測する。典型的には、すべての計算は、推奨に対するユーザ要求に対して、サーバにより実行される。
【００２９】
ユーザベースアプローチと呼ばれる上記アプローチに続いて、アイテムベースアプローチに従うことも可能である。このとき、第１の類似性が、各ユーザから取得した格付けを比較することによりアイテム間で判断され、次に、あるアイテムに対するユーザの格付けが、当該ユーザがその他のアイテムに対して与えた格付けの間を補間することにより予測される。
【００３０】
両方のアプローチの基礎となる数式を説明する前に、まずいくつかの記号を導入する。ユーザの集合Ｕとアイテムの集合Ｉが仮定される。ＵのメンバーであるユーザｕがＩのメンバーである格付けされたアイテムｉを有するか否かは、有する場合には１とされ、有しない場合には０とされるブール変数ｂｕｉにより示される。前者の場合、例えば、１〜５のスケールによる格付けｒｕｉが与えられる。アイテムｉを格付けしたユーザの集合はＵｉにより示され、ユーザｕにより格付けされたアイテムの集合はＩｕにより示される。
［ユーザベースアプローチ］
ユーザベースアルゴリズムは、広範に利用される協調フィルタリングアルゴリズムである。上述のように、類似性の決定と予測の計算という２つの主要なステップが存在する。その両方について、共通に使用される数式を説明し、以降においてそのすべてが暗号化データに対して計算可能であることを示す。
［類似度］
相関測度、距離測度、計数測度など多数の類似度が、文献に紹介されている。
【００３１】
周知のピアソン相関係数は、
【００３２】
【数１】
2007501975.tif 000003
により与えられる。ただし、
【００３３】
【数２】
2007501975.tif 000004
は、ユーザｕが格付けしたアイテムに対するユーザｕの平均格付けを示す。上記等式の分子は、ユーザｕとｖの両方により平均以上に格付けさているか、あるいは、両方により平均以下に格付けされている各アイテムの正の貢献を得るものである。一方のユーザがあるアイテムを平均以上に格付けし、他方のユーザが平均以下に格付けした場合、負の貢献を得ることとなる。上記等式の分母は、類似度が区間［−１，１］の範囲内となるよう正規化するものである。ただし、１の値は完全一致を示し、―１の値は完全に反対の嗜好を示す。
【００３４】
関連する類似度は、式（１）の
【００３５】
【数３】
2007501975.tif 000005
を中間の格付け（例えば、１〜５のスケールを利用する場合には３など）又はゼロと置換することにより得られる。後者の場合、この類似度はベクトル類似度又はコサインと呼ばれ、すべての格付けが非負である場合、結果として得られる類似度は０〜１の範囲内のものとなる。
［距離測度］
他のタイプの測度は、２人のユーザの格付け間の距離により与えられ、例えば、
【００３６】
【数４】
2007501975.tif 000006
により与えられる平均平方差（ｍｅａｎ−ｓｑｕａｒｅ  ｄｉｆｆｅｒｅｎｃｅ）、あるいは、
【００３７】
【数５】
2007501975.tif 000007
により与えられる正規化マンハッタン距離などがあげられる。このような距離は、各ユーザが各自の重複したアイテムを同一に格付けする場合にはゼロとなり、双でない場合にはゼロ以上となる。簡単な変換により、距離を各ユーザの格付けが類似している場合には大きく、そうでない場合には小さくなる測度に変換することができる。
［計数測度］
計数測度は、２人のユーザが同一（近似）に格付けしたアイテムの個数を計数することに基づくものである。簡単な計数測度は、
【００３８】
【数６】
2007501975.tif 000008
により与えられる多数決測度である。ただし、
【００３９】
【数７】
2007501975.tif 000009
は、ｕとｖにより「同一」と格付けされたアイテムの個数を与え、
【００４０】
【数８】
2007501975.tif 000010
は、「異なる」と格付けされたアイテムの個数を与える。関係
【００４１】
【数９】
2007501975.tif 000011
は、正確に等しいことを定義するが、ほとんど等しい格付けも十分等しいものとみなされてもよい。
【００４２】
他の計数測度は、２人のユーザ間の観察された一致と可能な最大一致との間の比率として定義される加重κ統計量により与えられる。ただし、両者は偶然による同意に対して補正がなされる。
［予測式］
協調フィルタリングの第２のステップは、類似性を用いてあるユーザ−アイテムのペアに対する予測を計算することである。また、このステップについて、いくつかの変形が存在する。すべての式に対して、所与のアイテムを格付けしたユーザが存在すると仮定し、そうでない場合には、予測を行うことはできない。
・加重和
ここで示される最初の予測式は、
【００４３】
【数１０】
2007501975.tif 000012
により与えられる。
【００４４】
従って、当該予測は、ユーザｕの平均格付けと平均からの乖離の加重和を加えたものである。この和においては、アイテムｉを格付けしたすべてのユーザが考慮される。あるいは、ユーザｕと十分高い類似性を有するユーザに限定されてもよい。すなわち、ある閾値ｔに対し、
【００４５】
【数１１】
2007501975.tif 000013
に属するすべてのユーザに対する和とされる。
【００４６】
他のやや簡単な予測式は、
【００４７】
【数１２】
2007501975.tif 000014
により与えられる。
【００４８】
すべての格付けが正である場合、上記式は、非負の閾値を選ぶことにより実現される、すべての類似度が非負の場合に限って意味をなす。
［最大トータル類似性］
第２のタイプの予測式は、
【００４９】
【数１３】
2007501975.tif 000015
により与えられる多数決アプローチにおいて実行されるように、あるタイプのトータル類似性を最大化する格付けを選択することにより与えられる。ただし、
【００５０】
【数１４】
2007501975.tif 000016
は、アイテムｉにｘに類似する格付けを与えるユーザの集合である。再び、上記関係は、正確に等しいとして定義されてもよいが、またほとんど等しい格付けも許容されてもよい。また上記式では、十分類似したユーザに限定するため、Ｕｉの代わりにＵｉ（ｔ）を用いるようにしてもよい。
［タイムコンプレクシティ］
ユーザベース協調フィルタリングのタイムコンプレクシティは、
【００５１】
【数１５】
2007501975.tif 000017
である。ただし以下に示されるように、ｍ＝｜Ｕ｜はユーザ数であり、ｎ＝｜Ｉ｜はアイテム数である。第１ステップでは、各ユーザペア間の類似性が、
【００５２】
【数１６】
2007501975.tif 000018
により計算する必要がある。各ユーザはすべてのアイテムに対する実行するのに、
【００５３】
【数１７】
2007501975.tif 000019
を要する。すべてのユーザに対して、格付けのないすべてのアイテムに予測が与えられる場合、これは、
【００５４】
【数１８】
2007501975.tif 000020
の予測が計算される必要がある。各予測は、
【００５５】
【数１９】
2007501975.tif 000021
項の和を必要とする。
［アイテムベースアプローチ］
上述のように、アイテムベースアルゴリズムは、例えば、
【００５６】
【数２０】
2007501975.tif 000022
による類似度を利用することにより。アイテム間の類似性を計算する。
【００５７】
式（１）と比較して、ユーザとアイテムとのやりとりは、平均格付けｒｕが各格付けから差し引かれたものであるため完全ではないということに留意されたい。そのようにする理由は、一部のユーザが他のユーザより高い格付けを与えているという事実を上記減算が補償しているためであり、このようなアイテムに対する補正は必要ない。第２ステップに用いられる標準的なアイテムベース予測式は、
【００５８】
【数２１】
2007501975.tif 000023
により与えられる。
【００５９】
ユーザベースアプローチとしてここで与えられたその他の類似度及び予測式もまた、原則的にアイテムベースの変形に変えることが可能であるが、それらについてはここでは示していない。
【００６０】
また、アイテムベース協調フィルタリングのタイムコンプレクシティでは、予想されるように、ユーザベースアプローチと比較してユーザとアイテムの役割は置き換えられる。従って、タイムコンプレクシティは、
【００６１】
【数２２】
2007501975.tif 000024
の代わりに、
【００６２】
【数２３】
2007501975.tif 000025
により与えられる。ユーザ数ｍがアイテム数ｎよりはるかに大きい場合、アイテムベースアプローチのタイムコンプレクシティは、ユーザベース協調フィルタリングより望ましいものとなる。
【００６３】
このケースにおける他の効果は、類似性が一般により多くの要素に基づくものとなり、より信頼性の高い測度を与えることとなるということである。アイテムベース協調フィルタリングのさらなる効果は、アイテム間の相関がユーザ間の相関より安定的なものとなりうるということである。
［暗号化］
次のセクションでは、協調フィルタリングに関する与えられた式が、暗号化された格付けに対し計算可能であるということを示す。その前に、ここで利用される暗号化システムと、暗号化されたデータに対する計算を可能にする当該システムの具体的性質が与えられる。
［公開鍵暗号化システム］
ここで利用される暗号化システムは、Ｐａｉｌｌｉｅｒにより与えられる公開鍵暗号化システムである。ここで簡単に、データの暗号化方法が説明される。
【００６４】
まず、暗号鍵が生成される。このため、２つの大きな素数ｐとｑがランダムに選ばれ、
【００６５】
【数２４】
2007501975.tif 000026
が計算される。さらに、ジェネレータ（ｇｅｎｅｒａｔｏｒ）ｇが、ｐとｑから計算される（詳細については、Ｐ．Ｐａｉｌｌｉｅｒによる「Ｐｕｂｌｉｃ−ｋｅｙ  ｃｒｙｐｔｏｓｙｓｔｅｍｓ  ｂａｓｅｄ  ｏｎ  ｃｏｍｐｏｓｉｔｅ  ｄｅｇｒｅｅ  ｒｅｓｉｄｕｏｓｉｔｙ  ｃｌａｓｓｅｓ」（Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ−ＥＵＲＯＣＲＹＰＴ’９９，Ｌｅｃｔｕｒｅ  Ｎｏｔｅ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，１５９２：２２３−２３８，１９９９）を参照されたい）。ここで、ペア（ｎ，ｇ）は、すべての人に送られる暗号化システムの公開鍵を構成し、λは秘密に保たれる解読に用いられる秘密鍵を構成する。
【００６６】
次に、公開鍵（ｎ，ｇ）により受け手にメッセージ
【００６７】
【数２５】
2007501975.tif 000027
を送信したい送り手は、
【００６８】
【数２６】
2007501975.tif 000028
により暗号文ε（ｍ）を計算する。ただし、ｒは、
【００６９】
【数２７】
2007501975.tif 000029
からランダムに抽出される数である。
【００７０】
このｒは、単にｍのすべての可能性のある値を暗号化し（それが少数の値しか仮定しない場合には）、最終結果を比較することによる解読を防ぐためのものである。このため、Ｐａｉｌｌｉｅｒシステムは、ランダム化暗号化システムと呼ばれる。
【００７１】
暗号文ε（ｍ）の解読は、
【００７２】
【数２８】
2007501975.tif 000030
を計算することにより行われる。ただし、
【００７３】
【数２９】
2007501975.tif 000031
となる任意の
【００７４】
【数３０】
2007501975.tif 000032
に対し、
【００７５】
【数３１】
2007501975.tif 000033
である。解読中、乱数ｒが取り除かれる。
【００７６】
上記暗号化システムでは、メッセージｍは整数であることに留意されたい。しかしながら、それらと十分大きな数を掛け合わせ、丸め処理することによって、有理数も可能となる。例えば、２つの小数を有するメッセージを使用したい場合、単にそれらに１００を掛け、丸め処理する。通常、範囲Ｚｎはこの乗算を可能にするのに十分大きなものである。
［性質］
上記の暗号化方式は、以下の好ましい性質を有する。第１の性質は、
【００７７】
【数３２】
2007501975.tif 000034
が成り立つことであり、これにより、暗号化されたデータに対し和を計算することが可能となる。第２に、
【００７８】
【数３３】
2007501975.tif 000035
が成り立つことであり、これにより、暗号化されたデータに対し積を計算することが可能となる。これら２つの性質を有する暗号化方式は、準同型（ｈｏｍｏｍｏｒｐｈｉｃ）暗号化方式と呼ばれる。Ｐａｉｌｌｉｅｒシステムは、１つの準同型暗号化方式であるが、さらなるシステムも存在する。上記性質を利用して、
【００７９】
【数３４】
2007501975.tif 000036
を用いることにより、類似度及び予測に必要とされるような積の和を計算することが可能となる。
【００８０】
これを利用することにより、２人のユーザａとｂは、以下の方法により各ユーザのベクトル間の内積を計算することができる。まず、ユーザａが自らのエントリａｊを解読し、それをｂに送信する。その後、ユーザｂは式（１１）について、その左辺に与えられるものを計算し、その結果をａに送り返す。次にユーザａは、所望の内積を得るため当該結果を解読する。
【００８１】
ユーザａ及びｂの何れも、他方のユーザのデータを観察することはできず、ユーザａが知ることを所望しているは、内積であることに留意されたい。
【００８２】
ここで説明したい最後の性質は、
【００８３】
【数３５】
2007501975.tif 000037
が成り立つということである。
【００８４】
「（リ）ブラインディング（（ｒｅ）ｂｌｉｎｄｉｎｇ）」と呼ばれるこの処理を利用して、乱数
【００８５】
【数３６】
2007501975.tif 000038
により上述されるような「トライアル・アンド・エラー（ｔｒｉａｌ−ａｎｄ−ｅｒｒｏｒ）攻撃」を回避することができる。これについて、さらに説明する。
［暗号化ユーザベースアルゴリズム］
さらに、特定のユーザｕ及びアイテムｉについて予測
【００８６】
【数３７】
2007501975.tif 000039
を計算するため、ユーザベース協調フィルタリングが暗号化されたデータに対しどのように実行可能であるか説明される。図１に示されるように、第１装置１１０（ユーザｕ）が第２装置１９０、１９１及び１９９（他のユーザｖ）とサーバ１５０を介し通信する設定を考える。さらに、各ユーザは自らの鍵を生成しており、それの公開部分を公開している。ユーザｕに対する予測を計算したいとき、以下のステップはｕの鍵を利用するであろう。
［暗号化されたデータに対する類似性の計算］
まず、式（１）に与えられるピアソン相関から始めることにより類似性計算ステップを行う。暗号化されたデータに対する内積の計算方法についてはすでに説明したが、式（１）の和のイテレータ（ｉｔｅｒａｔｏｒ）ｉが、
【００８７】
【数３８】
2007501975.tif 000040
上でしか実行されず、この共通部分は何れのユーザにも知らされていないという問題を解消する必要がある。従って、まず、
【００８８】
【数３９】
2007501975.tif 000041
を導入し、式（１）を
【００８９】
【数４０】
2007501975.tif 000042
に書き換える。
【００９０】
ここで利用されるアイデアは、任意の
【００９１】
【数４１】
2007501975.tif 000043
が、上記３つの和の何れにも寄与していないということである。なぜなら、対応する項の要素の少なくとも１つがゼロとなるためである。このため、類似性を各々がｕとｖのベクトル間の３つの内積からなる式に書き換えている。
【００９２】
ここにおいて、当該プロトコルは以下のように実行される。まず、ユーザｕは、式（１０）を用いてすべての
【００９３】
【数４２】
2007501975.tif 000044
に対して、暗号化されたエントリ
【００９４】
【数４３】
2007501975.tif 000045
を計算し、それらをサーバに送信する。サーバは、これら暗号化されたエントリを他の各ユーザｖ１，．．．，ｖｍ−１に転送する。次に、各ユーザｖｊ（ｊ＝１，．．．，ｍ−１）は、式（１１）を用いて、
【００９５】
【数４４】
2007501975.tif 000046
を計算し、これら３つの結果をサーバに送り返し、サーバはそれらをユーザｕに転送する。ユーザｕは、３（ｍ−１）個の結果の合計を解読し、すべてのｊ（＝１，．．．，ｍ−１）に対して類似度ｓ（ｕ，ｖｊ）を計算することができる。ここで、ユーザｕはその他の（ｍ−１）人のユーザの類似度を知っているが、各ユーザｊ（＝１，．．．，ｍ−１）が誰であるかについては知る必要はないということに留意されたい。他方、サーバは、各ユーザｊ（＝１，．．．，ｍ−１）が誰であるかは知っているが、その類似度については知らない。
【００９６】
その他の類似度について、暗号化されたデータのみを利用した計算スキームを導くことができる。平均平方距離について、式（２）を
【００９７】
【数４５】
2007501975.tif 000047
に書き換えることができる。ただし、明確な値を得るため、さらにｂｕｉ＝０の場合、ｒｕｉ＝０を定義する。これにより、当該距離測度もまた、４つの内積により計算可能となる。正規化マンハッタン距離の計算は、やや複雑である。与えられる可能性のある格付けの集合をＸと仮定すると、まず、各格付け
【００９８】
【数４６】
2007501975.tif 000048
に対して、
【００９９】
【数４７】
2007501975.tif 000049
を定義する。
【０１００】
このとき、式（３）は、
【０１０１】
【数４８】
2007501975.tif 000050
に書き換えることができる。
【０１０２】
従って、正規化マンハッタン距離は、（｜Ｘ｜＋１）の内積から計算することができる。さらに、ユーザｕは、
【０１０３】
【数４９】
2007501975.tif 000051
を計算し、この結果を暗号化された分子と共にユーザｕに送信することができる。
【０１０４】
多数決測度もまた、
【０１０５】
【数５０】
2007501975.tif 000052
を定義することにより上述のように計算することができる。このとき、式（４）で使用されるｃｕｖは、
【０１０６】
【数５１】
2007501975.tif 000053
により与えられ、上述のように再び計算することができる。さらに、
【０１０７】
【数５２】
2007501975.tif 000054
となる。
【０１０８】
最後に、加重κ測度を考える。再び、οｕｖが、
【０１０９】
【数５３】
2007501975.tif 000055
を定義し、
【０１１０】
【数５４】
2007501975.tif 000056
を計算することにより求められる。
【０１１１】
さらに、ユーザｕがすべての
【０１１２】
【数５５】
2007501975.tif 000057
に対して、ｐｕ（ｘ）を暗号化し、他の各ユーザｖにそれらを送信する場合、ｅｕｖを暗号化された方法により計算することが可能であり、その後、ユーザｖは、
【０１１３】
【数５６】
2007501975.tif 000058
を計算し、これを解読のためｕに送り返すことができる。
［暗号化されたデータに対する予測の計算］
協調フィルタリングの第２ステップでは、ユーザｕは、以下の方法によりアイテムｉに対する予測を計算することができる。まず、式（５）の分数を
【０１１４】
【数５７】
2007501975.tif 000059
に書き換える。
【０１１５】
これにより、まずユーザｕは、他の各ユーザｖｊ（ｊ＝１，．．．，ｍ−１）に対し、ｓ（ｕ，ｖｊ）と｜ｓ（ｕ，ｖｊ）｜を暗号化し、それらをサーバに送る。その後、サーバは各ペア
【０１１６】
【数５８】
2007501975.tif 000060
を各ユーザｖｊに転送し、ユーザｖｊは、
【０１１７】
【数５９】
2007501975.tif 000061
を計算する。ただし、ユーザｖｊは、リブラインディングを利用して、サーバがいくつかの可能な値をトライすることにより、ユーザｖｊとのデータのやりとりから知識を得ることを防止する。次に、各ユーザｖｊは当該結果をサーバに送信し、その後、
【０１１８】
【数６０】
2007501975.tif 000062
を計算し、これらの結果をユーザｕに送り返す。その後、ユーザｕはこれらのメッセージを解読し、それを用いて予測を計算することができる。式（６）のシンプルな予測式は、同様に扱うことができる。式（７）により与えられるような最大トータル類似性予測は、以下のように扱うことができる。
【０１１９】
まず、
【０１２０】
【数６１】
2007501975.tif 000063
を書き換える。ただし、
【０１２１】
【数６２】
2007501975.tif 000064
は、式（１２）により定義されるものと同様である。次に、ユーザｕは、他の各ユーザｖｊ（ｊ＝１，．．．，ｍ−１）に対し、ｓ（ｕ，ｖｊ）を暗号化し、それらをサーバに送信する。その後、サーバは、各ε（ｓ（ｕ，ｖｊ））を各ユーザｖｊに転送し、当該ユーザｖｊは、リブラインディングを用いて各格付け
【０１２２】
【数６３】
2007501975.tif 000065
に対し、
【０１２３】
【数６４】
2007501975.tif 000066
を計算する。次に、各ユーザｖｊは、これら｜Ｘ｜個の結果をサーバに送り返し、その後、
【０１２４】
【数６５】
2007501975.tif 000067
のそれぞれに対し、
【０１２５】
【数６６】
2007501975.tif 000068
を計算し、｜Ｘ｜個の結果をユーザｕに送信する。最後に、ユーザｕはこれらの結果を解読し、最も高い結果を有する格付けｘを決定する。
［暗号化アイテムベースアルゴリズム］
また、アイテムベース協調フィルタリングが、Ｐａｉｌｌｉｅｒ暗号化システムの閾値システムを用いて暗号化データに対し実行可能である。このようなシステムでは、解読鍵がユーザに共有され、閾値ｔを超えるユーザが協調する場合にのみ、暗号文が解読可能である。このシステムでは、鍵の生成は、解読機構と共にやや複雑となる。閾値暗号化システムの解読手順では、まず、解読に関係する少なくとも（ｔ＋１）人のユーザが選択される。次に、これらのユーザのそれぞれは、暗号文を受け取り、自らの鍵の割当て部分を用いて解読割当て部分を計算する。最後に、これらの解読割当て部分は、もとのメッセージを計算するため合成される。少なくとも（ｔ＋１）人のユーザが各自の解読割当て部分を合成する限り、もとのメッセージを再構成することができる。
【０１２６】
アイテムベースアプローチの一般的動作は、まず、サーバがアイテム間の類似性を決定し、次に、それらを利用して予測するため、ユーザベースアプローチと若干異なっている。
【０１２７】
協調フィルタリングの既知の設定と比較して、本発明による協調フィルタリングの実現形態は、装置１１０、１９０、１９１及び１９９のよりアクティブな役割を必要とする。このことは、従来技術によるアルゴリズムを実行する（単一の）サーバの代わりに、すべてのノードがアルゴリズムの一部に積極的に関係する分散アルゴリズムを実行するシステムを有することとなる。当該アルゴリズムのタイムコンプレクシティは、類似度及び予測式に対する付加的要素｜Ｘ｜と、新たな設定がパラレル計算を可能にするという事実を除いて、基本的に同じである。
【０１２８】
各種コンピュータプログラムプロダクトが、本発明の装置及び方法の各機能を実現するようにしてもよく、いくつかの方法によりハードウェアと合成され、あるいは他の装置に配備されるようにしてもよい。
【０１２９】
説明された実施例の変形及び改良が、本発明のコンセプトの範囲内において可能である。例えば、図１のサーバ１５０は、第１データと第２データとの間の暗号化された内積、又は類似度の第１及び第２データの割当て部分の暗号化された和を取得するための計算手段を有するようにしてもよく、サーバは割当て部分の暗号化された内積又は和を解読し、類似度を取得する公開鍵解読サーバに接続される。他の例として、本発明の一般的コンセプトは、様々な方法により、値の連鎖、すなわち、最終的に消費者にサービスを提供することを可能にする各法的主体による相互に関連する商業的行為のビジネスモデルにマッピングすることが可能である。本発明の実施例は、インターネットなどのデータネットワークを介し消費者を表す識別子及び暗号化されたデータを消費者が提供することを可能にすることに関する。各消費者の暗号化されたデータと識別子との関係は、プライバシーを提供するため切断される。例えば、サーバは、暗号化されたデータをわたす前に、他の（一時的又はセッションに関連する）識別子を置換する。その後、消費者の暗号化されたデータが、何れも暗号化されたデータを解読不可な他の消費者又は専用サーバの何れかにおいて、類似度を計算するのに暗号化された領域において処理される。
【０１３０】
「有する」という動詞及びその派生語の使用は、請求項に規定した以外の要素又はステップの存在を排除するものではない。本発明は、複数の要素を有するハードウェア及び適切にプログラムされたコンピュータによって実現することができる。複数の手段を列挙したシステムクレームでは、上記手段のいくつかは、単一の同一のハードウェアにより実現することが可能である。
【０１３１】
「コンピュータプログラム」という用語は、フロッピー（登録商標）ディスクなどのコンピュータ可読媒体に格納され、インターネットなどのネットワークを介しダウンロード可能であり、あるいは他の何れかの方法により入手可能な任意のソフトウェアプロダクトを意味すると理解されるべきである。
【図面の簡単な説明】
【０１３２】
【図１】図１は、本発明によるシステムの実施例の機能ブロック図である。
【図２】図２は、本発明の方法の実施例である。
【図１】
2007501975.tif 000069
【図２】
2007501975.tif 000070
【国際調査報告】
2007501975.tif 000071
2007501975.tif 000072