(57)【要約】  アイテム評価および推奨プラットフォームが複数のユーザに対する複数のアイテムのそれぞれの評価を有する評価データを識別し、複数のユーザに対する複数のアイテムのそれぞれの評価に寄与する数人のユーザ特徴を有するユーザ特徴データを識別し、ソーシャルネットワークデータおよび第1のいくつかの確率変数に基づいて計算された操作されたソーシャルネットワークデータを、信頼されたイニシャライザを用いない秘密分散法によりソーシャルネットワークプラットフォームから受信する。ソーシャルネットワークデータが、数人のユーザのうちの任意の2人の間の社会的関係を示す。信頼されたイニシャライザを用いない秘密分散法において、ソーシャルネットワークプラットフォームは、ソーシャルネットワークデータを開示することなく、操作されたソーシャルネットワークデータをアイテム評価および推奨プラットフォームと共有する。アイテム評価および推奨プラットフォームは、評価データおよび操作されたソーシャルネットワークデータに基づいて、ユーザ特徴データを更新する。
2021508064.tif 000002
【特許請求の範囲】
【請求項１】
複数のユーザに対する複数のアイテムのそれぞれの評価を有する評価データを、アイテム評価および推奨プラットフォームによって識別するステップと、
前記複数のユーザに対する前記複数のアイテムのそれぞれの評価に寄与する複数のユーザ特徴を有するユーザ特徴データを、前記アイテム評価および推奨プラットフォームによって識別するステップと、
ソーシャルネットワークデータおよび第1のいくつかの確率変数に基づいて計算された複数の操作されたソーシャルネットワークデータを、信頼されたイニシャライザを用いない秘密分散法により、前記アイテム評価および推奨プラットフォームによってソーシャルネットワークプラットフォームから受信するステップであって、前記ソーシャルネットワークデータが、前記複数のユーザのうちの任意の2人の間の社会的関係を示し、前記信頼されたイニシャライザを用いない秘密分散法において、前記ソーシャルネットワークプラットフォームは、前記ソーシャルネットワークデータを開示することなく、前記複数の操作されたソーシャルネットワークデータを前記アイテム評価および推奨プラットフォームと共有する、ステップと、
前記評価データおよび前記複数の操作されたソーシャルネットワークデータに基づいて、前記ユーザ特徴データを前記アイテム評価および推奨プラットフォームによって更新するステップと
を含む、コンピュータ実装方法。
【請求項２】
前記信頼されたイニシャライザを用いない秘密分散法において、前記アイテム評価および推奨プラットフォームが、前記ユーザ特徴データを開示することなく複数の操作されたユーザ特徴データを前記ソーシャルネットワークプラットフォームと共有し、前記複数の操作されたユーザ特徴データが、前記ユーザ特徴データおよび第2のいくつかの確率変数に基づいて計算される、請求項1に記載のコンピュータ実装方法。
【請求項３】
前記信頼されたイニシャライザを用いない秘密分散法において、
ユーザ特徴データのベクトルを、前記アイテム評価および推奨プラットフォームによって取得するステップと、
前記ユーザ特徴データのベクトルおよび前記第2のいくつかの確率変数に基づいて、第1の操作されたユーザ特徴データを、前記アイテム評価および推奨プラットフォームによって生成するステップと、
第1の操作されたユーザ特徴データを前記ソーシャルネットワークプラットフォームに前記アイテム評価および推奨プラットフォームによって送信するステップと、
前記ソーシャルネットワークデータおよび前記第1のいくつかの確率変数に基づいて計算された第1の操作されたソーシャルネットワークデータを、前記ソーシャルネットワークプラットフォームから前記アイテム評価および推奨プラットフォームによって受信するステップと、
前記第1の操作されたユーザ特徴データ、前記第1の操作されたソーシャルネットワークデータ、または前記第2のいくつかの確率変数のうちの２つ以上に基づいて、前記操作されたユーザ特徴データのうちの1つを、前記アイテム評価および推奨プラットフォームによって生成するステップと
をさらに含む、請求項2に記載のコンピュータ実装方法。
【請求項４】
前記ユーザ特徴データを更新するステップは、前記複数の操作されたユーザ特徴データの１つと前記複数の操作されたソーシャルネットワークデータの１つの合計に基づいて、前記ユーザ特徴データと前記ソーシャルネットワークデータの積を計算するステップを含む、請求項2に記載のコンピュータ実装方法。
【請求項５】
前記ソーシャルネットワークデータを用いずに、前記複数の操作されたユーザ特徴データの１つと前記複数の操作されたソーシャルネットワークデータの１つの合計を計算することによって前記ユーザ特徴データと前記ソーシャルネットワークデータとの積を計算するステップが、前記ユーザ特徴データと前記ソーシャルネットワークデータの積の各エントリに対して、前記ソーシャルネットワークデータを用いずに、前記複数の操作されたユーザ特徴データの１つおよび前記複数の操作されたソーシャルネットワークデータの１つを計算するステップを含む、請求項3に記載のコンピュータ実装方法。
【請求項６】
前記複数のユーザに対する前記複数のアイテムの前記それぞれの評価に寄与する複数のアイテム特徴を有するアイテム特徴データを識別するステップであって、前記ユーザ特徴データと前記アイテム特徴データとの積が前記評価データの推定をもたらす、ステップと、
前記評価データ、前記ユーザ特徴データ、および前記複数の操作されたソーシャルネットワークデータに基づいて前記アイテム特徴データを更新するステップと
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項７】
前記ユーザ特徴データとアイテム特徴データとの前記積に基づいて、前記複数のユーザに対する前記複数のアイテムの予測された評価データを生成するステップと、
前記予測された評価データに基づいて、特定の顧客に対する特定のアイテムの推奨を生成するステップと
をさらに含む、請求項5に記載のコンピュータ実装方法。
【請求項８】
前記ユーザ特徴データを更新するステップは、予測された評価データと前記評価データの間の差と、前記ソーシャルネットワークデータによって重み付けされた前記ユーザ特徴データと、およびオーバーフィットを回避するための項との重み付けされた合計を最小化するために最小化問題を解くステップを含む、請求項6に記載のコンピュータ実装方法。
【請求項９】
最小化問題を解くステップが、
【数１】
2021508064.tif 000017
を解くステップを含み、
ここで、
Uiは、ユーザiに対応する前記ユーザ特徴データのベクトルを表し、
Vjは、アイテムjに対応する前記アイテム特徴データのベクトルを表し、
Rijは、ユーザiによるアイテムjの評価を表し、
Sikは、ユーザiとユーザkとの間の社会的関係を表し、
λ1は、前記ソーシャルネットワークデータに関連付けられた定義済みの重みを表し、
λ2は、オーバーフィットを回避するための定義済みの重みを表す、請求項7に記載のコンピュータ実装方法。
【請求項１０】
動作を実行するためのコンピュータシステムによって実行可能な1つまたは複数の命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記動作が、
複数のユーザに対する複数のアイテムのそれぞれの評価を有する評価データを、アイテム評価および推奨プラットフォームによって識別するステップと、
前記複数のユーザに対する前記複数のアイテムのそれぞれの評価に寄与する複数のユーザ特徴を有するユーザ特徴データを、前記アイテム評価および推奨プラットフォームによって識別するステップと、
ソーシャルネットワークデータおよび第1のいくつかの確率変数に基づいて計算された複数の操作されたソーシャルネットワークデータを、信頼されたイニシャライザを用いない秘密分散法により、前記アイテム評価および推奨プラットフォームによってソーシャルネットワークプラットフォームから受信するステップであって、前記ソーシャルネットワークデータが、前記複数のユーザのうちの任意の2人の間の社会的関係を示し、前記信頼されたイニシャライザを用いない秘密分散法において、前記ソーシャルネットワークプラットフォームは、前記ソーシャルネットワークデータを開示することなく、前記複数の操作されたソーシャルネットワークデータを前記アイテム評価および推奨プラットフォームと共有する、ステップと、
前記評価データおよび前記複数の操作されたソーシャルネットワークデータに基づいて、前記ユーザ特徴データを前記アイテム評価および推奨プラットフォームによって更新するステップと
を含む、非一時的コンピュータ可読記憶媒体。
【請求項１１】
前記信頼されたイニシャライザを用いない秘密分散法において、前記アイテム評価および推奨プラットフォームが、前記ユーザ特徴データを開示することなく複数の操作されたユーザ特徴データを前記ソーシャルネットワークプラットフォームと共有し、前記複数の操作されたユーザ特徴データが、前記ユーザ特徴データおよび第2のいくつかの確率変数に基づいて計算され、
前記ユーザ特徴データを更新するステップは、前記複数の操作されたユーザ特徴データの１つと前記複数の操作されたソーシャルネットワークデータの１つの合計に基づいて、前記ユーザ特徴データと前記ソーシャルネットワークデータの積を計算するステップを含む、請求項10に記載の非一時的コンピュータ可読記憶媒体。
【請求項１２】
前記動作が、前記信頼されたイニシャライザを用いない秘密分散法において、
ユーザ特徴データのベクトルを、前記アイテム評価および推奨プラットフォームによって取得するステップと、
前記ユーザ特徴データのベクトルおよび前記第2のいくつかの確率変数に基づいて、第1の操作されたユーザ特徴データを、前記アイテム評価および推奨プラットフォームによって生成するステップと、
第1の操作されたユーザ特徴データを前記ソーシャルネットワークプラットフォームに前記アイテム評価および推奨プラットフォームによって送信するステップと、
前記ソーシャルネットワークデータおよび前記第1のいくつかの確率変数に基づいて計算された第1の操作されたソーシャルネットワークデータを、前記ソーシャルネットワークプラットフォームから前記アイテム評価および推奨プラットフォームによって受信するステップと、
前記第1の操作されたユーザ特徴データ、前記第1の操作されたソーシャルネットワークデータ、または前記第2のいくつかの確率変数のうちの２つ以上に基づいて、前記操作されたユーザ特徴データのうちの1つを、前記アイテム評価および推奨プラットフォームによって生成するステップと
をさらに含む、請求項11に記載の非一時的コンピュータ可読記憶媒体。
【請求項１３】
前記ソーシャルネットワークデータを用いずに、前記複数の操作されたユーザ特徴データの１つと前記複数の操作されたソーシャルネットワークデータの１つの合計を計算することによって前記ユーザ特徴データと前記ソーシャルネットワークデータとの積を計算するステップが、前記ユーザ特徴データと前記ソーシャルネットワークデータの積の各エントリに対して、前記ソーシャルネットワークデータを用いずに、前記複数の操作されたユーザ特徴データの１つおよび前記複数の操作されたソーシャルネットワークデータの１つを計算するステップを含む、請求項11に記載の非一時的コンピュータ可読記憶媒体。
【請求項１４】
前記動作が、
前記複数のユーザに対する前記複数のアイテムの前記それぞれの評価に寄与する複数のアイテム特徴を有するアイテム特徴データを識別するステップであって、前記ユーザ特徴データと前記アイテム特徴データとの積が前記評価データの推定をもたらす、ステップと、
前記評価データ、前記ユーザ特徴データ、および前記複数の操作されたソーシャルネットワークデータに基づいて前記アイテム特徴データを更新するステップと
をさらに含む、請求項10に記載の非一時的コンピュータ可読記憶媒体。
【請求項１５】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータと相互運用可能に結合されるとともに、命令を記憶した有形の非一時的機械可読媒体を有する1つまたは複数のコンピュータメモリデバイスとを備えるコンピュータ実装システムであって、
前記命令が、前記1つまたは複数のコンピュータによって実行されると、
複数のユーザに対する複数のアイテムのそれぞれの評価を有する評価データを、アイテム評価および推奨プラットフォームによって識別するステップと、
前記複数のユーザに対する前記複数のアイテムのそれぞれの評価に寄与する複数のユーザ特徴を有するユーザ特徴データを、前記アイテム評価および推奨プラットフォームによって識別するステップと、
ソーシャルネットワークデータおよび第1のいくつかの確率変数に基づいて計算された複数の操作されたソーシャルネットワークデータを、信頼されたイニシャライザを用いない秘密分散法により、前記アイテム評価および推奨プラットフォームによってソーシャルネットワークプラットフォームから受信するステップであって、前記ソーシャルネットワークデータが、前記複数のユーザのうちの任意の2人の間の社会的関係を示し、前記信頼されたイニシャライザを用いない秘密分散法において、前記ソーシャルネットワークプラットフォームは、前記ソーシャルネットワークデータを開示することなく、前記複数の操作されたソーシャルネットワークデータを前記アイテム評価および推奨プラットフォームと共有する、ステップと、
前記評価データおよび前記複数の操作されたソーシャルネットワークデータに基づいて、前記ユーザ特徴データを前記アイテム評価および推奨プラットフォームによって更新するステップと
を含む動作を実行する、コンピュータ実装システム。
【請求項１６】
前記信頼されたイニシャライザを用いない秘密分散法において、前記アイテム評価および推奨プラットフォームが、前記ユーザ特徴データを開示することなく複数の操作されたユーザ特徴データを前記ソーシャルネットワークプラットフォームと共有し、前記複数の操作されたユーザ特徴データが、前記ユーザ特徴データおよび第2のいくつかの確率変数に基づいて計算され、
前記ユーザ特徴データを更新するステップは、前記複数の操作されたユーザ特徴データの１つと前記複数の操作されたソーシャルネットワークデータの１つの合計に基づいて、前記ユーザ特徴データと前記ソーシャルネットワークデータの積を計算するステップを含む、請求項15に記載のコンピュータ実装システム。
【請求項１７】
前記ソーシャルネットワークデータを用いずに、前記複数の操作されたユーザ特徴データの１つと前記複数の操作されたソーシャルネットワークデータの１つの合計を計算することによって前記ユーザ特徴データと前記ソーシャルネットワークデータとの積を計算するステップが、前記ユーザ特徴データと前記ソーシャルネットワークデータの積の各エントリに対して、前記ソーシャルネットワークデータを用いずに、前記複数の操作されたユーザ特徴データの１つおよび前記複数の操作されたソーシャルネットワークデータの１つを計算するステップを含む、請求項16に記載のコンピュータ実装システム。
【請求項１８】
前記動作が、
前記複数のユーザに対する前記複数のアイテムの前記それぞれの評価に寄与する複数のアイテム特徴を有するアイテム特徴データを識別するステップであって、前記ユーザ特徴データと前記アイテム特徴データとの積が前記評価データの推定をもたらす、ステップと、
前記評価データ、前記ユーザ特徴データ、および前記複数の操作されたソーシャルネットワークデータに基づいて前記アイテム特徴データを更新するステップと
をさらに含む、請求項15に記載のコンピュータ実装システム。
【請求項１９】
前記動作が、
前記ユーザ特徴データとアイテム特徴データとの前記積に基づいて、前記複数のユーザに対する前記複数のアイテムの予測された評価データを生成するステップと、
前記予測された評価データに基づいて、特定の顧客に対する特定のアイテムの推奨を生成するステップと
をさらに含み、
前記ユーザ特徴データを更新するステップは、予測された評価データと前記評価データの間の差と、前記ソーシャルネットワークデータによって重み付けされた前記ユーザ特徴データと、およびオーバーフィットを回避するための項との重み付けされた合計を最小化するために最小化問題を解くステップを含む、請求項18に記載のコンピュータ実装システム。
【請求項２０】
最小化問題を解くステップが、
【数２】
2021508064.tif 000018
を解くステップを含み、
ここで、
Uiは、ユーザiに対応する前記ユーザ特徴データのベクトルを表し、
Vjは、アイテムjに対応する前記アイテム特徴データのベクトルを表し、
Rijは、ユーザiによるアイテムjの評価を表し、
Sikは、ユーザiとユーザkとの間の社会的関係を表し、
λ1は、前記ソーシャルネットワークデータに関連付けられた定義済みの重みを表し、
λ2は、オーバーフィットを回避するための定義済みの重みを表す、請求項19に記載のコンピュータ実装システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信頼されたイニシャライザを用いない秘密分散に関する。
【背景技術】
【０００２】
技術とデータ分析の発展により、多くのオンラインプラットフォームが様々なタイプのデータを収集する。例えば、映画評価プラットフォームはユーザから評価データを収集し、一方でソーシャルメディアプラットフォームはユーザからソーシャルネットワークデータを収集する。これらの収集されたデータは貴重であり、通常はそれぞれのプラットフォームによってプライベートな情報として保持される。プラットフォームはデータのプライバシーにますます注意を払い、少なくともそのオリジナルの形態でそれらの収集したデータを必ずしも共有したくない。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示は、例えば、ソーシャルな推奨を提供するための2つのプラットフォーム間で信頼されたイニシャライザ(trusted initializer)を用いない秘密分散のための方法およびシステムを説明する。
【０００４】
ある実施形態では、コンピュータ実装方法が、数人のユーザに対するいくつかのアイテムのそれぞれの評価を有する評価データを、アイテム評価および推奨プラットフォームによって識別するステップと、数人のユーザに対するいくつかのアイテムのそれぞれの評価に寄与する数人のユーザ特徴を有するユーザ特徴データを、アイテム評価および推奨プラットフォームによって識別するステップと、ソーシャルネットワークデータおよび第1のいくつかの確率変数に基づいて計算されたいくつかの操作されたソーシャルネットワークデータを、信頼されたイニシャライザを用いない秘密分散法により、アイテム評価および推奨プラットフォームによってソーシャルネットワークプラットフォームから受信するステップであって、ソーシャルネットワークデータが、数人のユーザのうちの任意の2人の間の社会的関係を示し、信頼されたイニシャライザを用いない秘密分散法において、ソーシャルネットワークプラットフォームは、ソーシャルネットワークデータを開示することなく、いくつかの操作されたソーシャルネットワークデータをアイテム評価および推奨プラットフォームと共有する、ステップと、評価データおよびいくつかの操作されたソーシャルネットワークデータに基づいて、ユーザ特徴データをアイテム評価および推奨プラットフォームによって更新するステップとを含む。
【０００５】
上述した実施形態は、コンピュータ実装方法、該コンピュータ実装方法を実行するためのコンピュータ可読命令を記憶した非一時的コンピュータ可読媒体、およびコンピュータ実装方法/非一時的コンピュータ可読媒体上に記憶された命令を実行するように構成されたハードウェアプロセッサに相互運用可能に結合されたコンピュータメモリを備えるコンピュータ実装システムを使用して実装可能である。
【０００６】
本明細書に説明される主題は、以下の利点の1つまたは複数を実現するように、特定の実施形態で実装され得る。第一に、説明される技術によって、異なるプラットフォームがプライベートなデータまたはセンシティブなデータを開示しない秘密分散により安全に協力できるようになり、それによりデータプライバシーに妥協することなくプラットフォーム間で統合と協力を促進する。第二に、秘密分散法を適用する前に異なるプラットフォームによって動作の大半が実行され得るので、説明される技術によって、より効率的な共通展開アクティビティ(時間に対する、プロセッササイクル、メモリ使用、およびネットワーク帯域/混雑など)または現在のオンラインプラットフォームによってサポートされないアクティビティが可能になる。第三に、説明される技術によって、アイテム評価および推奨プラットフォームの向上した推奨モデルを提供できるとともに、より的を絞った推奨(ソーシャルメディアプラットフォームから取得されたソーシャルネットワークデータを利用することによって、より的を絞った関連性のある推奨を提供する映画推奨プラットフォームなど)を提供できる。第四に、説明される技術によって、プラットフォームが信頼される権限のオーバーヘッドなく協力できる。他の利点は、当業者には明らかであろう。
【０００７】
本明細書に説明される主題の1つまたは複数の実施形態の詳細は、発明の詳細な説明、特許請求の範囲、および添付の図面に記載される。主題の他の特徴、態様、および利点は、その発明の詳細な説明、特許請求の範囲、および添付の図面から当業者に明らかになるであろう。
【図面の簡単な説明】
【０００８】
【図１】本開示の実施形態による、信頼されたイニシャライザを用いないプラットフォームAとプラットフォームBの間の秘密分散のための例示的なシステムを示すブロック図である。
【図２】本開示の実施形態による、プラットフォームAによって推奨を生成するための信頼されたイニシャライザを用いないプラットフォームAとプラットフォームBの間での例示的な秘密分散法を示すフローチャートである。
【図３】本開示の実施形態による、信頼されたイニシャライザを用いない秘密分散を使用して、行列Aと行列Bの行列積の要素Zijを計算するための、プラットフォームAとプラットフォームBの間の例示的な秘密分散法を示すフローチャートである。
【図４】本開示の実施形態による、信頼されたイニシャライザを用いない秘密分散を使用して、アイテム評価および推奨プラットフォームによって推奨を生成するための例示的な方法を示すフローチャートである。
【図５】本開示の実施形態による、本開示に説明されるような、アルゴリズム、方法、機能、プロセス、フロー、およびプロシージャに関連付けられた計算機能を提供するために使用される例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【０００９】
様々な図面における同様の参照番号および記号は、同じ要素を示す。
【００１０】
以下の詳細な説明は、例えば、ソーシャルネットワークデータに基づいてユーザに推奨を提供するための2つのプラットフォームの間で、信頼されたイニシャライザを用いない秘密分散を説明し、任意の当業者が1つまたは複数の特定の実施形態の文脈において、開示される主題を作成および使用できるように提示される。本開示の範囲から逸脱することなく、開示された実施形態の様々な修正、変更、および置換を行うことができ、それらは当業者には容易に明らかであり、本明細書に定義された一般原理は他の実施形態および用途に適用されてよい。いくつかの事例では、説明される主題の理解を得るのに不必要な詳細は、不必要な詳細により1つまたは複数の説明される実施形態を曖昧にしないように、およびそのような詳細が当業者の技術の範囲内である限り、省略され得る。本開示は、説明または図示された実施態様に限定されることを意図しないが、説明される原理および特徴と矛盾しない最も広い範囲を与えるように意図されている。
【００１１】
多くのオンラインプラットフォーム間で、様々なプラットフォームが様々なタイプのデータを蓄積できる。例えば、NETFLIXまたはIMDBなどの、アイテム評価および推奨プラットフォームは、映画およびテレビシリーズについてユーザからの評価データを蓄積する。FACEBOOK(登録商標)またはTWITTER(登録商標)などのソーシャルメディアまたはソーシャルネットワークプラットフォームは、ユーザおよびユーザの友人からのソーシャルネットワークデータを蓄積する。親密な友人が類似した選好をもつ傾向があるので、ソーシャルな情報は推奨システムの性能を向上させることができる。既存のソーシャルベースの推奨方法は、アイテムのユーザ評価データとユーザ間のソーシャルなデータとが共有されることを仮定している。しかしながら、データのプライバシーまたは他の懸念に起因して、オンラインプラットフォームは、通常は他の当事者とそれらのオリジナルのデータを共有しない。
【００１２】
説明する例示的な技法では、プラットフォームが各プラットフォームのプライベートデータを他方に開示することなく、評価データおよびソーシャルネットワークデータの両方に基づいて向上した推奨システムを構築することにセキュアに協力することができる。例えば、アイテム評価および推奨プラットフォームとソーシャルネットワークプラットフォームの間で秘密分散法により評価データとソーシャルネットワークデータの両方に基づいて、ソーシャル推奨モデルがトレーニングされ得る。秘密分散法の下では、プラットフォームの間で交換されるデータは、それらのオリジナルの形態ではなく操作された形態である。交換されるデータは、操作されたデータからオリジナルのデータを復元または復号できないように操作されている。
【００１３】
秘密分散法は、送信前にデータソースがオリジナルのデータを符号化された形態に符号化または暗号化し、対象受信者が、例えば、既知のセキュリティキー、または対応する復号アルゴリズムに基づいて、受信した符号化されたデータからオリジナルのデータを復号または復元できるセキュアなデータ送信のための符号化、暗号化、または他の方法とは異なる。秘密分散法は、オリジナルのデータを、対象受信者によってさえも知られることから保護する。そうして、データソースはオリジナルのデータのプライバシーを保つ。
【００１４】
故に、秘密分散法は、データプライバシーに妥協することなく、異なるプラットフォーム間の協力を促進するとともに、相互の利益を達成することに役に立ち得る。例えば、開示される秘密分散法を用いて、アイテム評価および推奨プラットフォームは、ソーシャルネットワークプラットフォームからのソーシャルネットワーク情報を、より良いユーザニーズの予測およびユーザへの的を絞った推奨の提供に利用でき、アイテム評価および推奨プラットフォームにユーザーエクスペリエンスの向上と潜在的な利益リターンをもたらす。
【００１５】
図1は、本開示の実施形態による、プラットフォームA102とプラットフォームB104の間の秘密分散のための例示的なシステム100を示すブロック図である。プラットフォームA102は、限定ではなく、ユーザが製品、サービス、または他のアイテムを評価する、娯楽、小売、サービス、および他の産業または部門におけるアイテム評価および推奨プラットフォームを含むことができる。アイテム評価および推奨プラットフォームの例として、例えば、AMAZON、NETFLIX、またはIMDBが含まれる。プラットフォームA102は、そのユーザからの評価データRを収集できる。評価データRは、ユーザによって与えられた1つまたは複数のアイテム(例えば、製品またはサービス)の1つまたは複数の実際の評価、またはアイテムに対するユーザのクリック、購入、検索、または他の履歴アクティビティ基づく1つまたは複数のマップされた評価を含むことができる。評価は、アイテムについてのユーザのニーズ、好感度、または選好を反映できる。評価は、具体的な範囲(例えば、[0,1]または[1,5])を有し得る。いくつかの実施形態では、評価データRは、M*N次元を有する行列で表すことができ、ここで、Mは、ユーザの数を表し、Nは、アイテムの数を表し、エントリRijは、ユーザiによるアイテムiの評価を表す。
【００１６】
プラットフォームA102はまた、例えば、ユーザの名前、年齢、性別、住所、または任意の他のアカウントまたはプロフィール情報を含み得るユーザデータ、プラットフォームA102での購入履歴、閲覧履歴、またはユーザの検索履歴を含むことができる。プラットフォームA102はまた、例えば、名称、カテゴリ、価格、キーワード、インストラクションなどを含み得る、アイテムに関連するアイテムデータを含むことができる。
【００１７】
いくつかの実施形態では、エントリRijの少数(M*Nに比べて)のみが、アイテムに関連する既存のユーザアクティビティに基づいて評価またはマップされた評価を有するので、収集された評価データRはスパース行列であることがある。いくつかの実施形態では、プラットフォームA102は、アイテムの的を絞った推奨をユーザに提供するためにアイテムの既知の評価を予測できる。いくつかの実施形態では、プラットフォームA102は、例えば、機械学習または統計アルゴリズムにしたがってユーザデータおよびアイテムデータに基づいて、アイテムの既知の評価を予測できる。一例として、プラットフォームA102は、行列分解法または他の技法にしたがって、ユーザ特徴データU(ユーザ要因データとも呼ばれる)とアイテム特徴データV(アイテム要因データとも呼ばれる)とに基づいて、アイテムの推奨を提供できる。具体的には、各ユーザ(例えば、ユーザi)は、年齢、性別、地理的な場所、訪問パターンなど、ユーザ特徴のベクトル(例えば、Ui)によって特徴付けられ得る。各アイテム(例えば、アイテムj)は、カテゴリ、キーワード、トピック、価格などのアイテム特徴のベクトル(例えば、Vj)によって特徴付けられ得る。ユーザ特徴およびアイテム特徴は、所与のアイテムについての、所与のユーザの評価、選択、または購入に影響を与える要因であり得る。いくつかの実施形態では、ユーザによって与えられたアイテムの評価は、ユーザ特徴のベクトルとアイテム特徴のベクトルの内積によって近似され得る。例えば、
【００１８】
【数１】
2021508064.tif 000003
【００１９】
ここで、Uiは、ユーザiに対応するユーザ特徴データのベクトルを表し、Vjは、アイテムjに対応するアイテム特徴データのベクトルを表し、Rijは、ユーザiによるアイテムjの評価を表す。
【００２０】
いくつかの実施形態では、ユーザ特徴ベクトル(例えば、Ui)およびアイテム特徴ベクトル(例えば、Vj)は、トレーニングデータ(例えば、既知の評価データ)から学習され得る潜在ベクトルである。
【００２１】
プラットフォームB104は、限定ではなく、ソーシャルメディアプラットフォーム(FACEBOOK(登録商標)、TWITTER(登録商標)、またはINSTAGRAMなど)を含み得る。プラットフォームB104は、そのユーザからソーシャルネットワークデータSを収集できる。ソーシャルネットワークデータは、例えば、名前、年齢、性別、住所、職業、人間関係、趣味、ステータス、コメント、ブログ、閲覧履歴、あるいはプラットフォームBでの他の人口統計、雇用、ユーザのレクリエーション情報、およびユーザの友人、家族、同僚などの対応する情報を含むことができる。そのようなソーシャルネットワークデータSは、ユーザのアイテムの評価の予測および推奨の提供のためにプラットフォームAにとって有益であることがある。
【００２２】
例えば、プラットフォームAは式(2)に示されるような最適化問題を解くことによってユーザの評価を予測できる。
【００２３】
【数２】
2021508064.tif 000004
【００２４】
ここで、Sikは、ソーシャルネットワークデータSにおけるユーザiとユーザkとの間の社会的関係を表し、λ1は、ソーシャルネットワークデータに関連付けられた定義済みの重みを表し、λ2は、オーバーフィットを避けるための定義済みの重みを表す。
【００２５】
この例では、式(2)の右辺の目的関数は、3つの項を含む。第1の項
【００２６】
【数３】
2021508064.tif 000005
【００２７】
は、ユーザ特徴データ(例えば、U=[U1, U2, ..., UM])およびアイテム特徴データ(例えば、V=[V1, V2, ..., VN])に基づいて計算された既知の評価データと近似された評価の間の誤差または距離を表す。第2の項
【００２８】
【数４】
2021508064.tif 000006
【００２９】
は、ユーザ特徴ベクトルに対するソーシャルネットワークデータSの影響を表す。例えば、2人のユーザがより親密または強力な社会的関係であれば、2つのユーザ特徴ベクトルがより類似する。いくつかの実施形態では、Sikがより大きければ、2人のユーザはより親密なまたは強力な社会的関係にある。第3の項
【００３０】
【数５】
2021508064.tif 000007
【００３１】
は、オーバーフィットを回避するために使用される。重みλ1およびλ2の値は、事前に決められ得る。より大きな重みは、目的関数の対応する項により大きな影響を与える。
【００３２】
目的関数を最小化するための上述の最適化問題は、例えば、勾配降下アルゴリズムまたは他のアルゴリズムによって解かれ得る。例えば、潜在ベクトルUおよびVの微分をとると、以下の2つの式になる。
【００３３】
【数６】
2021508064.tif 000008
【００３４】
上の式(3)および(4)のUおよびVについて解くために、個別のUおよびSの既知の値を必要とせずに、U・diag(S・IM)とU・Sの行列積の結果で十分である。そうして、U・diag(S・IM)とU・Sの行列積の結果を取得するために、プラットフォームAおよびBによって秘密分散法が使用され得る。秘密分散法の下では、プラットフォームAは、プラットフォームBにオリジナルのUを開示することなく、操作されたUをプラットフォームBに開示でき、プラットフォームBは、プラットフォームAにオリジナルのSを開示することなく、操作されたSをプラットフォームAに開示できる。
【００３５】
いくつかの実施形態では、秘密分散法は信頼されたイニシャライザを用いてまたは用いずに実装され得る。信頼されたイニシャライザを用いる場合、共通の開始点が信頼されたイニシャライザによって確立され、2つのプラットフォームのデータ交換を支援するために2つのプラットフォームに送られる。信頼されたイニシャライザを用いない場合、2つのプラットフォームはそれぞれ、2つのプラットフォームのデータの交換を支援するために、それぞれの開始点として乱数を生成する。各プラットフォームは、センシティブなプライベート情報を共有せずに協力により利益を得ることができる。
【００３６】
図2は、本開示の実施形態による、プラットフォームAによって推奨を生成するために、信頼されたイニシャライザを用いないプラットフォームAとプラットフォームBの間の例示的な秘密分散法200を示すフローチャートである。プラットフォームAは、図1に示されたプラットフォームAであってよく、プラットフォームBは、図1に示されたプラットフォームBであってよい。いくつかの実施形態では、例示的な秘密分散法は、反復アルゴリズムによって実装され得る。反復数Tは、例えば、事前に決定された値であるか、または一定の基準(例えば、アルゴリズムが収束または更新して異なる反復の後のUまたはVの差分がしきい値より小さくなるかどうか)に基づいて決定されてよい。202において、プラットフォームAは、ユーザ評価データR、初期のユーザ特徴データUおよびアイテム特徴データV、および反復数Tを識別する。204において、プラットフォームBは、ソーシャルネットワークデータSを識別する。t回の反復(t<T)に対して、208において、プラットフォームAおよびプラットフォームBは、行列積U・diag(S・IM)とU・Sを取得するために信頼されたイニシャライザを用いずに秘密分散法を実行できる。206において、プラットフォームAは、例えば式(3)および(4)にしたがって、行列積U・diag(S・IM)とU・Sに基づいてUおよびVを更新する。T回の反復の後、210において、プラットフォームAは、更新したユーザ特徴データUとアイテム特徴データVに基づいて推奨を生成する。
【００３７】
いくつかの実施形態では、行列Zを行列Aと行列Bとの積とする。すなわち、Z=A・Bである。Zijは、Zのi番目の行とj番目の列のエントリ/要素を表す。Zijは、例えば、式(5)にしたがって計算され得る。行列積U・diag(S・IM)とU・Sは、例えば、
【００３８】
【数７】
2021508064.tif 000009
【００３９】
であり、ここにおいて、
【００４０】
【数８】
2021508064.tif 000010
【００４１】
は、行列Aのi番目の行を表し、Bjは行列Bのj番目の列を表す。
【００４２】
図3は、本開示の実施形態による、信頼されたイニシャライザを用いない秘密分散法を使用して、行列Aと行列Bとの積の要素Zijを計算するためのプラットフォームAとプラットフォームBの間の例示的な秘密分散法300を示すフローチャートである。信頼されたイニシャライザを用いない秘密分散法では、両プラットフォームは、信頼されたイニシャライザの必要性に代わる一連のステップおよび計算において乱数を生成する。
【００４３】
304において、プラットフォームA302は、行列Aのi番目の行
【００４４】
【数９】
2021508064.tif 000011
【００４５】
であり得る、初期ベクトルx=(x1,x2,...,x_2k)を取得する。324において、プラットフォームB322は、行列Bのj番目の列を表し得る初期ベクトルy=(y1,y2,...,y_2k)を取得する。ベクトルxとyは、同じ次元2kを有し得る。ベクトルxとyは、例えば、確率変数、オールゼロ、事前に決定された値、または他の初期値を含むことができる。
【００４６】
いくつかの実施形態では、プラットフォームAとBの両方は、k回のループにより出力350を計算する。k回目の反復では、306において、プラットフォームA302は、ランダムな値ajおよびcjを生成し、aj+cjの合計は0ではない。例えば、ランダムに生成される値ajおよびcjは、308に示されるように、aj+cjが0に等しくなくなるまで、繰り返し生成され得る。0に等しくないaj+cjが見つかると、プラットフォームA302は、操作されて後にプラットフォームB322に送られることになる値を計算する。プラットフォームA302について算出された値は、限定ではなく、310に示されるような、pj=aj+cj、x’[2j-1]=x[2j-1]+a、およびx’[2j]=x[2j]+cjを含むことができる。311において、値{pj, x’[2j-1], x’[2j]}は、計算のためにプラットフォームB322に送られる。同様に、326において、プラットフォームB322は、ランダムな値bjおよびdjを生成し、bj+djの合計は0ではない。例えば、ランダムに生成される値bjおよびdjは、328に示されるように、bj+djが0に等しくなくなるまで、繰り返し生成され得る。プラットフォームB322について算出された値は、限定ではなく、330に示されるような、qj=bj+dj、y’[2j-1]=y[2j-1]+bj、およびy’[2j]=y[2j]+djを含むことができる。331において、値{qj, y’[2j-1], y’[2j]}が計算のためにプラットフォームA302に送られる。
【００４７】
両プラットフォームが操作したデータを互いに送った後、まだk回のループにおいて、両プラットフォームは出力値に最終的に加算する値を計算する。プラットフォームA302は、312に示されるように、hj = y’[2j-1] (x[2j-1] + 2aj) + y’[2j] (x[2j] + 2cj) + qj (aj + 2cj)を計算する。プラットフォームB322は、332に示されるように、gj= x’[2j-1] (2y’[2j-1] - bj)+ x’[2j] (2y[2j] - dj) + pj (dj - 2bj)を計算する。314において、プラットフォームA302は、314に示されるように、すべてのhjを合計すること、すなわち、
【００４８】
【数１０】
2021508064.tif 000012
【００４９】
によって、値hを取得する。332において、プラットフォームB322は、334に示されるように、すべてのgjを合計すること、すなわち、
【００５０】
【数１１】
2021508064.tif 000013
【００５１】
によって、値gを取得する。
【００５２】
315において、プラットフォームAは、プラットフォームBから値gを受信できる。hとgの合計は、ベクトルxとyの積に等しい。すなわち、xy=h+gである。そうして、315において、プラットフォームAは、プラットフォームBから値gを受信する。335において、プラットフォームAはプラットフォームBに値hを送る。316において、プラットフォームAは、ベクトルxとyの操作されたデータであるhとgの合計を計算することによってベクトルxとyの積を計算できる。同様にして、336において、プラットフォームBはまた、hとgの合計を計算することによってベクトルxとyの積を計算できる。
【００５３】
xが行列Aのi番目の行である
【００５４】
【数１２】
2021508064.tif 000014
【００５５】
であり、yが行列Bのj番目の列Bjであるとすれば、行列Aと行列Bとの積の要素Zijは、
【００５６】
【数１３】
2021508064.tif 000015
【００５７】
として取得され得る。したがって、行列Aと行列Bの行列積Zを取得できる。
【００５８】
行列UをAに置換し、diag(S・IM)をBに置換することによって、行列積S・diag(S・IM)を取得できる。同様にして、行列UをAに置換し、SをBに置換することによって、行列積U・Sを取得できる。行列積U・diag(S・IM)とU・Sの場合、プラットフォームAは、図2の206に関して説明したように、例えば、式(3)および(4)にしたがってUまたはVを更新できる。
【００５９】
故に、プラットフォームA302は、更新されたユーザ特徴データおよびアイテム特徴データに基づいて、予測される評価データを生成できる。いくつかの実施形態では、プラットフォームA302は、とりわけ、予測された評価データに基づいて、特定の顧客に対して特定のアイテムのための推奨を生成できる。上述した技法および計算は、オーバーヘッドとなる信頼された権限の必要なしに達成され得る。
【００６０】
図4は、実施形態による、信頼されたイニシャライザを用いない秘密分散法を使用してアイテム評価および推奨プラットフォームによりユーザへの推奨を生成するための例示的な方法400のフローチャートである。提示を明快にするために、以下の説明は、本明細書の他の図面の文脈において方法400を概略的に説明する。例えば、アイテム評価および推奨プラットフォームは、図1〜図3に関して説明したプラットフォームAであってよい。しかしながら、方法400は、例えば、任意の適切なシステム、環境、ソフトウェア、およびハードウェア、または必要に応じて、システム、環境、ソフトウェア、およびハードウェアの組み合わせによって実行されてよいことが理解されるであろう。いくつかの実施形態では、方法400の様々なステップは、並列に、組み合わせて、ループして、または任意の順序で実行され得る。
【００６１】
402において、評価データは、限定ではなく、数人のユーザに対するいくつかのアイテムのそれぞれの評価を含み、アイテム評価および推奨プラットフォームによって識別される。評価データを識別することは、(例えば別のデバイスから)受信すること、メモリから読み取りまたはロードすること、あるいは方法400への1つまたは複数の入力に基づいて評価データを決定することを含む。評価データは、図1〜図3に関して説明した評価データRを含むことができる。例えば、評価データは、実際の評価またはアイテムに対する既存のユーザアクティビティに基づいてマップされた評価を含むことができる。方法400は、402から404に進む。
【００６２】
404において、ユーザ特徴データは、数人のユーザに対するいくつかのアイテムのそれぞれの評価に寄与するいくつかのユーザの特徴を含み、アイテム評価および推奨プラットフォームによって識別される。ユーザ特徴データを識別することは、(例えば別のデバイスから)受信すること、メモリから読み取りまたはロードすること、あるいは方法400への1つまたは複数の入力に基づいてユーザ特徴データを決定することを含む。いくつかの実施形態では、ユーザ特徴データは、行列Uによって表され得る。ユーザ特徴データは、図1〜図3に関して説明したユーザ特徴データUを含むことができる。方法400は、404から406に進む。
【００６３】
406において、アイテム特徴データは、数人のユーザに対するいくつかのアイテムのそれぞれの評価に寄与するいくつかのアイテムの特徴を含み、アイテム評価および推奨プラットフォームによって識別される。いくつかの実施形態では、アイテム特徴データを識別することは、(例えば別のデバイスから)受信すること、メモリから読み取りまたはロードすること、あるいは方法400への1つまたは複数の入力に基づいてアイテム特徴データを決定することを含む。アイテム特徴データは、図1〜図3に関して説明したアイテム特徴データVを含むことができる。方法400は、406から408に進む。
【００６４】
408において、アイテム評価および推奨プラットフォームは、ソーシャルネットワークプラットフォームからの信頼されたイニシャライザを用いない秘密分散法によって、ソーシャルネットワークプラットフォームからのソーシャルネットワークデータ(例えば、ソーシャルネットワークデータ行列Sのベクトルy)に基づいて計算された、いくつかの操作されたソーシャルネットワークデータ(例えば、図3に関して説明したg)を受信する。さらに、ソーシャルネットワークデータは、数人のユーザのうちの任意の2人の間の社会的関係を示す。信頼されたイニシャライザを用いない秘密分散法では、ソーシャルネットワークプラットフォームは、ソーシャルネットワークデータ(例えば、y)を開示することなく、いくつかの操作されたソーシャルネットワークデータ(例えば、g)をアイテム評価および推奨プラットフォームと共有し、ここで、操作されたソーシャルネットワークデータは、ソーシャルネットワークデータと第1のいくつかの確率変数(例えば、bj、dj)に基づいて計算される。いくつかの実施形態では、信頼されたイニシャライザを用いない秘密分散法では、アイテム評価および推奨プラットフォームは、ユーザ特徴データ(例えば、ユーザ特徴データ行列Uのベクトルであるx)を開示することなく、いくつかの操作されたユーザ特徴データ(例えば、h)をソーシャルネットワークプラットフォームと共有し、ここで、いくつかの操作されたユーザ特徴データは、ユーザ特徴データと第2のいくつかの確率変数(例えば、aj、cj)に基づいて計算される。いくつかの実施形態では、操作されたソーシャルネットワークデータは、操作されたソーシャルネットワークデータからオリジナルのソーシャルネットワークデータを復元できないように操作されている。
【００６５】
いくつかの実施形態では、信頼されたイニシャライザを用いない秘密分散法は、例えば図3に関して説明したように、式(2)に関して説明したような最適化問題を解くことに使用される。例えば、信頼されたイニシャライザを用いない秘密分散法では、アイテム評価および推奨プラットフォームは、ユーザ特徴データのベクトル(例えば、x)を取得し、ユーザ特徴データのベクトル(例えば、x)と、第2のいくつかの確率変数(例えば、aj、cj)に基づいて、第1の操作されたユーザ特徴データ(例えば、x’)を生成する。アイテム評価および推奨プラットフォームは、第1の操作されたユーザ特徴データ(例えば、x’)をソーシャルネットワークプラットフォームに送信し、ソーシャルネットワークプラットフォームから、ソーシャルネットワークデータ(例えば、y)および第1のいくつかの確率変数(例えば、bj、dj)に基づいて算出された第1の操作されたソーシャルネットワークデータ(例えば、y’)を受信する。
【００６６】
アイテム評価および推奨プラットフォームは、第1の操作されたユーザ特徴データ(例えば、x’)、第1の操作されたソーシャルネットワークデータ(例えば、y’)、または第2のいくつかの確率変数(例えば、aj、cj)のうちの2つ以上に基づいて、操作されたユーザ特徴データ(例えば、h)の1つを生成できる。同様に、ソーシャルネットワークプラットフォームは、第1の操作されたユーザ特徴データ(例えば、x’)、第1の操作されたソーシャルネットワークデータ(例えば、y’)、または第1のいくつかの確率変数(例えば、bj、dj)のうちの2つ以上に基づいて算出された操作されたソーシャルネットワークデータ(例えば、g)の1つを生成できる。方法400は、408から410に進む。
【００６７】
410において、例えば、図3に関して説明したように、アイテム評価および推奨プラットフォームは、ユーザ特徴データ(例えば、xまたはUの任意のベクトル)を開示することなく、いくつかの操作されたユーザ特徴データ(例えば、いくつかのh)をソーシャルネットワークプラットフォームに送信する。方法400は、410から412に進む。
【００６８】
412において、アイテム評価および推奨プラットフォームは、評価データおよびいくつかの操作されたソーシャルネットワークデータに基づいてユーザ特徴データを更新する。いくつかの実施形態では、ユーザ特徴データを更新することは、いくつかの操作されたユーザ特徴データ(例えば、h)のうちの1つといくつかの操作されたソーシャルネットワークデータ(例えば、g)のうちの1つの合計を計算することによってユーザ特徴データとソーシャルネットワークデータとの積を計算することを含む。さらに、記載された計算は、ソーシャルネットワークデータを用いずに、ユーザ特徴データとソーシャルネットワークデータとの積における各エントリについて計算すること、いくつかの操作されたユーザ特徴データのうちの1つといくつかの操作されたソーシャルネットワークデータのうちの1つを計算することを含むことができる。いくつかの実施形態では、ユーザ特徴データは、例えば、式(2)に示されたように、予測された評価データと評価データの間の差と、ソーシャルネットワークデータによって重み付けされたユーザ特徴データと、およびオーバーフィットを回避するための項との重み付けされた合計を最小化する最適化問題を解くことを含む。いくつかの実施形態では、ユーザ特徴データを更新することは、図3に関して説明した例示的な技法にしたがってユーザ特徴データを更新することを含む。方法400は、412から414に進む。
【００６９】
414において、アイテム評価および推奨プラットフォームは、図3に関して説明した例示的な技法にしたがって評価データおよびユーザ特徴データに基づいてアイテム特徴データを更新する。方法400は、414から416に進む。
【００７０】
416において、ユーザ特徴データとアイテム特徴データとの積に基づく数人のユーザに対するいくつかのアイテムの予測された評価データが生成される。いくつかの実施形態では、予測された評価データは、式(1)にしたがって、例えば、ユーザ特徴データとアイテム特徴データとの積に基づいて生成され得る。いくつかの実施形態では、生成された評価はソーシャルネットワークを組み込んだことにより、ユーザのニーズまたは選好により良く沿ったものであり得る。方法400は、416から418に進む。
【００７１】
418において、予測された評価データに基づく特定のユーザに対する特定のアイテムの推奨が生成される。いくつかの実施形態では、特定のユーザに対する最高の予測された評価をもつ1つまたは複数のアイテムが、特定のユーザに推奨され得る。特定のアイテムの推奨は、映画またはショッピングアイテムの推奨であってよい。例えば、ソーシャルネットワークデータに基づいて、NETFLIXは、より良く映画を推奨でき、AMAZONはより良くアイテムを推奨できる。いくつかの実施形態では、特定のアイテムに対する特定のアイテムの推奨は、例えばユーザインターフェース(UI)を介して出力され得る。いくつかの実施形態では、選択したトピックが、グラフィックユーザインターフェース(GUI)またはユーザのレビューおよび検討のための他のUIにおいて、チャットボックス、ポップウィンドウなどに表示され得る。方法400は、418で終了する。
【００７２】
図9は、本開示の実施形態による、例示的な開示に説明された、説明されたアルゴリズム、方法、機能、プロセス、フロー、およびプロシージャに関連付けられたコンピュータ機能を提供するために使用される例示的なコンピュータシステム500を示すブロック図である。図示されたコンピュータ502は、コンピューティングデバイスの物理インスタンスまたは仮想インスタンス(または両方)を含む、サーバ、デスクトップコンピュータ、ラップトップ/ノートブックコンピュータ、ワイヤレスデータポート、スマートフォン、携帯情報端末(PDA)、タブレットコンピューティングデバイス、これらのデバイス内の一つまたは複数のプロセッサ、または任意の別のコンピューティングデバイスなど、任意のコンピューティングデバイスを包含することを意図している。加えて、コンピュータ502は、キーパッド、キーボード、タッチスクリーン、またはユーザ情報を受け入れることのできる他の入力デバイスなどの、入力デバイスと、デジタルデータ、視覚情報、聴覚情報(あるいは情報の組み合わせ)を含む、コンピュータ502の動作に関連付けられた情報をグラフィカルタイプユーザインターフェース(UI)(またはGUI)に伝達する出力デバイスとを含むことができる。
【００７３】
コンピュータ502は、クライアント、ネットワークコンポーネント、サーバ、データベースまたは他の永続的機能、または本開示に説明された主題を実行するためのコンピュータシステムの任意の他の構成要素(または役割の組み合わせ)において役割を機能できる。図示されたコンピュータ502は、ネットワーク530に通信可能に結合される。いくつかの実施形態では、コンピュータ502の1つまたは複数の構成要素が、クラウドコンピューティングベースの環境、ローカル環境、グローバル環境、または他の環境(または環境の組み合わせ)を含む、環境の中で動作するように構成され得る。
【００７４】
高いレベルでは、コンピュータ502は、説明された主題に関連付けられたデータおよび情報を、受信、送信、処理、記憶、または管理するように動作可能な電子コンピューティングデバイスである。いくつかの実施形態によれば、コンピュータ502はまた、アプリケーションサーバ、電子メールサーバ、Webサーバ、キャッシュサーバ、データストリーミングサーバ、または他のサーバ(またはサーバの組み合わせ)を含むサーバを含むことができ、あるいはサーバに通信可能に結合され得る。
【００７５】
コンピュータ502は、ネットワーク530を介して(例えば、別のコンピュータ502上で実行されている)クライアントアプリケーションから要求を受信することができ、ソフトウェアアプリケーションを使用して受信した要求を処理することによって受信した要求に応答できる。加えて、要求はまた、内部ユーザ(例えば、コマンドコンソールから、または別の適切なアクセス方法によって)、外部またはサードパーティ、他の自動アプリケーション、並びに他の適切なエンティティ、個人、システム、またはコンピュータから、コンピュータ502に送られ得る。
【００７６】
コンピュータ502の各構成要素は、システムバス503を使用して通信できる。いくつかの実施形態では、ハードウェアまたはソフトウェア(またはハードウェアとソフトウェアの組み合わせ)を含むコンピュータ502の構成要素の一部または全部は、アプリケーションプログラミングインターフェース(API)512またはサービスレイヤ513(またはAPI512とサービスレイヤ513の組み合わせ)を使用して、システムバス503を介して互いにまたはインターフェース504(または両方の組み合わせ)とインターフェースしてよい。API512は、ルーチン、データ構造、およびオブジェクトクラスのための仕様を含んでよい。API512は、コンピュータ言語に依存しないものでも依存するものでもよく、完全なインターフェース、単一の機能、またはAPIのセットさえも指すものであってよい。サービスレイヤ513は、コンピュータ502またはコンピュータ502に通信可能に結合される他の構成要素(図示されているかどうかにかかわらず)に、ソフトウェアサービスを提供する。コンピュータ502の機能は、このサービスレイヤを使用するすべてのサービス消費者にとってアクセス可能であってよい。サービスレイヤ513によって提供されるものなどのソフトウェアサービスは、規定のインターフェースを通じて、再使用可能な定義された機能を提供する。例えば、インターフェースは、JAVA(登録商標)、C++、拡張マークアップ言語(XML)フォーマットまたは別の適切なフォーマットにおいてデータを提供する他の適切なコンピューティング言語で書かれたソフトウェアであってよい。コンピュータ502の統合された構成要素として示されているが、代替の実施形態では、API512またはサービスレイヤ513は、コンピュータ502の他の構成要素またはコンピュータ502に通信可能に結合される他の構成要素(図示されているかどうかにかかわらず)に対してスタンドアロン構成要素として示されてよい。さらに、API512またはサービスレイヤ513の一部または全部は、本開示の範囲から逸脱することなく、別のソフトウェアモジュール、企業アプリケーション、またはハードウェアモジュールの子モジュールまたはサブモジュールとして実装されてよい。
【００７７】
コンピュータ502は、インターフェース504を含む。図5に単一のインターフェース504として示されているが、特定のニーズ、要望、またはコンピュータ502の特定の実装にしたがって、2つ以上のインターフェース504が使用され得る。インターフェース504は、分散環境におけるネットワーク530に通信可能にリンクされている他のシステム(図示されているかどうかにかかわらず)と通信するためにコンピュータ502によって使用される。一般に、インターフェース504は、ソフトウェアまたはハードウェア(またはソフトウェアとハードウェアの組み合わせ)で符号化されたロジックを含み、ネットワーク530と通信するように動作可能である。より具体的には、インターフェース504は、ネットワーク530またはインターフェースのハードウェアが図示されたコンピュータ502の内外で物理的信号を通信するように動作可能であるように、通信に関連付けられた1つまたは複数の通信プロトコルをサポートするソフトウェアを含んでよい。
【００７８】
コンピュータ502は、プロセッサ505を含む。図5に単一のプロセッサ505として示されているが、特定のニーズ、要望、またはコンピュータ502の特定の実装にしたがって、2つ以上のプロセッサが使用され得る。一般に、プロセッサ505は命令を実行し、データを操作するとともに、コンピュータ502の動作、および本開示に説明されているような任意のアルゴリズム、方法、機能、プロセス、フロー、およびプロシージャを実行する。
【００７９】
コンピュータ502はまた、コンピュータ502、またはネットワーク530に通信可能にリンクされた他の構成要素(図示されているかどうかにかかわらず)(または両方の組み合わせ)のためのデータを保持できるデータベース506を含む。例えば、データベース506は、本開示に矛盾しないデータを記憶するインメモリの、従来の、または他のタイプのデータベースであってよい。いくつかの実装形態では、データベース506は、特定のニーズ、要望、またはコンピュータ502の特定の実装、および説明された機能にしたがって、2つ以上の異なるデータベースのタイプ(例えば、ハイブリッドインメモリデータベースおよび従来のデータベース)の組み合わせであってよい。図5に単一のデータベース506として示されているが、特定のニーズ、要望、またはコンピュータ502の特定の実装、および説明された機能にしたがって、(同じタイプまたは異なるタイプの)2つ以上のデータベースが使用され得る。データベース506はコンピュータ502の統合された構成要素として示されているが、代替の実施形態では、データベース506はコンピュータ502の外部にあってよい。示されるように、データベース506は、上述の評価データ516、ユーザ特徴データ518、アイテム特徴データ526、およびソーシャルネットワークデータ528を保持する。
【００８０】
コンピュータ502はまた、コンピュータ502、またはネットワーク530に通信可能にリンクされた別の構成要素(図示されているかどうかにかかわらず)(または両方の組み合わせ)のためのデータを保持できるメモリ507を含む。メモリ507は、本開示に矛盾しない任意のデータを記憶できる。いくつかの実装形態では、メモリ507は、特定のニーズ、要望、またはコンピュータ502の特定の実装、および説明された機能にしたがって、2つ以上の異なるタイプのメモリの組合せ(例えば、半導体ストレージと磁気ストレージの組合せ)であり得る。図5に単一のメモリ507として示されているが、特定のニーズ、要望、またはコンピュータ502の特定の実装、および説明された機能にしたがって、(同じタイプまたはタイプの組み合わせの)2つ以上のメモリ507が使用され得る。メモリ507はコンピュータ502の統合された構成要素として示されているが、代替の実装形態では、メモリ507はコンピュータ502の外部にあってよい。
【００８１】
アプリケーション508は、特に本開示で説明されている機能に関して、特定のニーズ、要望、またはコンピュータ502の特定の実装にしたがって、機能を提供するアルゴリズムソフトウェアエンジンである。例えば、アプリケーション508は、1つまたは複数の構成要素、モジュール、またはアプリケーションとして機能することができる。さらに、単一のアプリケーション508として図示されているが、アプリケーション508はコンピュータ502上で複数のアプリケーション508として実装されてよい。加えて、コンピュータ502に統合されるように図示されているが、代替の実装において、アプリケーション508はコンピュータ502の外部にあってよい。
【００８２】
コンピュータ502はまた、電源514を含むことができる。電源514は、ユーザ交換可能にあるいはユーザが交換できないように構成され得る充電式または非充電式のバッテリを含むことができる。いくつかの実施形態では、電源514は、電力変換または管理回路(再充電、スタンバイ、または別の電力管理機能を含む)を含むことができる。いくつかの実装形態では、電源514は、例えばコンピュータ502に電力を供給するため、または充電式バッテリを充電するために、コンピュータ502を壁のコンセントまたは他の電力源に差し込むことを可能にするための電源プラグを含むことができる。
【００８３】
コンピュータ502を含むコンピュータシステムに関連付けられた、またはコンピュータシステムの外部に、任意の数のコンピュータ502が存在することができ、各コンピュータ502はネットワーク530を介して通信する。さらに、「クライアント」、「ユーザ」という用語、および他の適切な用語は、本開示の範囲から逸脱することなく、必要に応じて交換可能に使用され得る。さらに、本開示は、多数のユーザが1つのコンピュータ502を使用できること、または1人のユーザが複数のコンピュータ502を使用できることを意図する。
【００８４】
主題の詳細な実施形態は、単独でまたは組み合わせて、1つまたは複数の特徴を含むことができる。
【００８５】
例えば、第1の実施形態では、数人のユーザに対するいくつかのアイテムのそれぞれの評価を有する評価データを、アイテム評価および推奨プラットフォームによって識別するステップと、数人のユーザに対するいくつかのアイテムのそれぞれの評価に寄与するいくつかのユーザ特徴を有するユーザ特徴データを、アイテム評価および推奨プラットフォームによって識別するステップと、ソーシャルネットワークデータおよび第1のいくつかの確率変数に基づいて計算されたいくつかの操作されたソーシャルネットワークデータを、信頼されたイニシャライザを用いない秘密分散法により、アイテム評価および推奨プラットフォームによってソーシャルネットワークプラットフォームから受信するステップであって、ソーシャルネットワークデータが、数人のユーザのうちの任意の2人の間の社会的関係を示し、信頼されたイニシャライザを用いない秘密分散法において、ソーシャルネットワークプラットフォームは、ソーシャルネットワークデータを開示することなく、いくつかの操作されたソーシャルネットワークデータをアイテム評価および推奨プラットフォームと共有する、ステップと、評価データおよびいくつかの操作されたソーシャルネットワークデータに基づいて、ユーザ特徴データをアイテム評価および推奨プラットフォームによって更新するステップとを含む。
【００８６】
第2の実施形態では、動作を実行するためのコンピュータシステムによって実行可能な1つまたはいくつかの命令を記憶した非一時的コンピュータ可読記憶媒体であって、動作が、数人のユーザに対するいくつかのアイテムのそれぞれの評価を有する評価データを、アイテム評価および推奨プラットフォームによって識別するステップと、数人のユーザに対するいくつかのアイテムのそれぞれの評価に寄与するいくつかのユーザ特徴を有するユーザ特徴データを、アイテム評価および推奨プラットフォームによって識別するステップと、ソーシャルネットワークデータおよび第1のいくつかの確率変数に基づいて計算されたいくつかの操作されたソーシャルネットワークデータを、信頼されたイニシャライザを用いない秘密分散法により、アイテム評価および推奨プラットフォームによってソーシャルネットワークプラットフォームから受信するステップであって、ソーシャルネットワークデータが、数人のユーザのうちの任意の2人の間の社会的関係を示し、信頼されたイニシャライザを用いない秘密分散法において、ソーシャルネットワークプラットフォームは、ソーシャルネットワークデータを開示することなく、いくつかの操作されたソーシャルネットワークデータをアイテム評価および推奨プラットフォームと共有する、ステップと、評価データおよびいくつかの操作されたソーシャルネットワークデータに基づいて、ユーザ特徴データをアイテム評価および推奨プラットフォームによって更新するステップとを含む。
【００８７】
第3の実施形態では、1つまたは複数のコンピュータと、1つまたは複数のコンピュータと相互運用可能に結合されるとともに、命令を記憶した有形の非一時的機械可読媒体を有する1つまたは複数のコンピュータメモリデバイスとを備えるコンピュータ実装システムであって、命令が、1つまたは複数のコンピュータによって実行されると、数人のユーザに対するいくつかのアイテムのそれぞれの評価を有する評価データを、アイテム評価および推奨プラットフォームによって識別するステップと、数人のユーザに対するいくつかのアイテムのそれぞれの評価に寄与するいくつかのユーザ特徴を有するユーザ特徴データを、アイテム評価および推奨プラットフォームによって識別するステップと、ソーシャルネットワークデータおよび第1のいくつかの確率変数に基づいて計算されたいくつかの操作されたソーシャルネットワークデータを、信頼されたイニシャライザを用いない秘密分散法により、アイテム評価および推奨プラットフォームによってソーシャルネットワークプラットフォームから受信するステップであって、ソーシャルネットワークデータが、数人のユーザのうちの任意の2人の間の社会的関係を示し、信頼されたイニシャライザを用いない秘密分散法において、ソーシャルネットワークプラットフォームは、ソーシャルネットワークデータを開示することなく、いくつかの操作されたソーシャルネットワークデータをアイテム評価および推奨プラットフォームと共有する、ステップと、評価データおよびいくつかの操作されたソーシャルネットワークデータに基づいて、ユーザ特徴データをアイテム評価および推奨プラットフォームによって更新するステップとを含む動作を実行する。
【００８８】
前述のおよび他の説明された実装形態はそれぞれ、随意に以下の特徴のうちの1つまたは複数を含むことができる。
【００８９】
第1の特徴は、後述の特徴のいずれかと組み合わせることができ、信頼されたイニシャライザを用いない秘密分散法において、アイテム評価および推奨プラットフォームが、ユーザ特徴データを開示することなくいくつかの操作されたユーザ特徴データをソーシャルネットワークプラットフォームと共有し、いくつかの操作されたユーザ特徴データが、ユーザ特徴データおよび第2のいくつかの確率変数に基づいて計算される、
【００９０】
第2の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、ユーザ特徴データを更新するステップは、いくつかの操作されたユーザ特徴データの１つといくつかの操作されたソーシャルネットワークデータの１つの合計に基づいて、ユーザ特徴データとソーシャルネットワークデータの積を計算するステップを含む。
【００９１】
第3の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、ソーシャルネットワークデータを用いずに、いくつかの操作されたユーザ特徴データの１つといくつかの操作されたソーシャルネットワークデータの１つの合計を計算することによってユーザ特徴データとソーシャルネットワークデータとの積を計算するステップが、ユーザ特徴データとソーシャルネットワークデータの積の各エントリに対して、ソーシャルネットワークデータを用いずに、いくつかの操作されたユーザ特徴データの１つおよびいくつかの操作されたソーシャルネットワークデータの１つを計算するステップを含む。
【００９２】
第4の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、方法または動作が、数人のユーザに対するいくつかのアイテムのそれぞれの評価に寄与するいくつかのアイテム特徴を有するアイテム特徴データを識別するステップであって、ユーザ特徴データとアイテム特徴データとの積が評価データの推定をもたらす、ステップと、評価データ、ユーザ特徴データ、およびいくつかの操作されたソーシャルネットワークデータに基づいてアイテム特徴データを更新するステップとをさらに含む。
【００９３】
第5の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、方法または動作が、ユーザ特徴データとアイテム特徴データとの積に基づいて、数人のユーザに対するいくつかのアイテムの予測された評価データを生成するステップと、予測された評価データに基づいて、特定の顧客に対する特定のアイテムの推奨を生成するステップとをさらに含む。
【００９４】
第6の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、ユーザ特徴データを更新するステップは、予測された評価データと評価データの間の差と、ソーシャルネットワークデータによって重み付けされたユーザ特徴データと、およびオーバーフィットを回避するための項との重み付けされた合計を最小化するために最小化問題を解くステップを含む。
【００９５】
第7の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、最小化問題を解くステップが、
【００９６】
【数１４】
2021508064.tif 000016
【００９７】
を解くステップを含み、ここで、Uiは、ユーザiに対応するユーザ特徴データのベクトルを表し、Vjは、アイテムjに対応するアイテム特徴データのベクトルを表し、Rijは、ユーザiによるアイテムjの評価を表し、Sikは、ユーザiとユーザkとの間の社会的関係を表し、λ1は、ソーシャルネットワークデータに関連付けられた定義済みの重みを表し、λ2は、オーバーフィットを回避するための定義済みの重みを表す。
【００９８】
第8の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、方法または動作が、信頼されたイニシャライザを用いない秘密分散法において、  ユーザ特徴データのベクトルを、アイテム評価および推奨プラットフォームによって取得するステップと、ユーザ特徴データのベクトルおよび第2のいくつかの確率変数に基づいて、第1の操作されたユーザ特徴データを、アイテム評価および推奨プラットフォームによって生成するステップと、第1の操作されたユーザ特徴データをソーシャルネットワークプラットフォームにアイテム評価および推奨プラットフォームによって送信するステップと、ソーシャルネットワークデータおよび第1のいくつかの確率変数に基づいて計算された第1の操作されたソーシャルネットワークデータを、ソーシャルネットワークプラットフォームからアイテム評価および推奨プラットフォームによって受信するステップと、第1の操作されたユーザ特徴データ、第1の操作されたソーシャルネットワークデータ、または第2のいくつかの確率変数のうちの２つ以上に基づいて、操作されたユーザ特徴データのうちの1つを、アイテム評価および推奨プラットフォームによって生成するステップとをさらに含む。
【００９９】
本明細書に説明された主題の実施形態および機能的動作は、本明細書に開示された構造およびそれらの構造上の均等物を含む、デジタル電子回路、有形の具現化されたコンピュータソフトウェアまたはファームウェア、コンピュータハードウェア、またはそれらの1つまたは複数の組み合わせで実装され得る。説明された主題のソフトウェア実施形態は、1つまたは複数のコンピュータプログラムとして、すなわち、データ処理装置によって実行されるための、あるいはデータ処理装置の動作を制御するための、有形の非一時的コンピュータ可読なコンピュータ記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替または追加で、プログラム命令は、人工的に生成された伝搬信号、例えば、データ処理装置による実行のために適切な受信装置に送信するための情報を符号化するように生成された、機械生成された電気信号、光信号、または電磁信号の中に/上に符号化され得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、またはコンピュータ記憶媒体の組み合わせであってよい。1つまたは複数のコンピュータを構成することは、ソフトウェアが1つまたは複数のコンピュータによって実行されるときに特定の計算動作が実行されるように、1つまたは複数のコンピュータがハードウェア、ファームウェア、またはソフトウェア(またはハードウェア、ファームウェア、およびソフトウェアの組合せ)をインストールしていることを意味する。
【０１００】
「リアルタイム(real-time)」、「リアルタイム(real time)」、「リアルタイム(realtime)」、「リアル(ファスト)タイム(real (fast) time (RFT))」、「ほぼリアルタイム(near(ly) real-time (NRT))」、「準リアルタイム(quasi real-time)」という用語、または(当業者には理解されるような)同様の用語は、アクションおよび応答が実質的に同時に起こることを個人が知覚するように、アクションおよび応答が時間的に近いことを意味する。例えば、データへのアクセスに対する個人のアクションに続いてデータを表示するための応答(または表示の開始)にかかる時間差は、1ms未満、1秒未満、または5秒未満であってよい。要求されたデータは瞬時に表示される(または表示を開始される)必要はないが、説明されたコンピューティングシステムの処理限界と、例えばデータを収集、正確に測定、分析、処理、保存、または送信するのに必要な時間とを考慮して、意図的な遅延なしに表示(または表示のために開始)される。
【０１０１】
用語「データ処理装置」、「コンピュータ」、または「電子コンピュータデバイス」(または当業者によって理解されるような同等のもの)は、データ処理ハードウェアを指すとともに、例として、プログラム可能なプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含め、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、例えば、中央処理装置(CPU)、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)などの特殊用途論理回路でもよく、またはさらに特殊用途論理回路を含んでもよい。いくつかの実装形態では、データ処理装置または専用論理回路(またはデータ処理装置または専用論理回路の組み合わせ)は、ハードウェアベースまたはソフトウェアベース(またはハードウェアベースとソフトウェアベースの両方の組み合わせ)とすることができる。装置は、コンピュータプログラムの実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、または実行環境の組み合わせを構成するコードを任意に含むことができる。本開示は、従来のオペレーティングシステム、例えば、LINUX、UNIX(登録商標)、WINDOWS(登録商標)、MAC OS、ANDROID(登録商標)、IOS、任意の他の適切な従来のオペレーティングシステムを用いてまたは用いずにデータ処理装置の使用を意図する。
【０１０２】
プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、あるいはコードと呼ばれるまたは説明され得るコンピュータプログラムは、プログラム言語の任意の形式で書くことができ、プログラム言語は、コンパイル言語またはインタプリタ言語、あるいは宣言型言語または手続き型言語を含み、コンピュータプログラムは、スタンドアロンプログラムとして、あるいはコンピューティング環境で使用するための適切なモジュール、コンポーネント、サブルーチン、または他のユニットとして任意の形式で展開され得る。コンピュータプログラムは、必ずしもそうである必要はないが、ファイルシステム内のファイルに対応できる。プログラムは、他のプログラムまたはデータを保持するファイルの一部、例えば、マークアップ言語文書に記憶された1つまたは複数のスクリプトは、対象のプログラム専用の単一ファイル、または複数の協調ファイル、例えば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を保持するファイルなどに記憶できる。コンピュータプログラムは、1つのサイトに配置されているかまたは複数のサイトにわたって分散され、通信ネットワークによって相互接続されている1つのコンピュータまたは複数のコンピュータ上で実行されるように展開され得る。
【０１０３】
様々な図に示されたプログラムの部分は、様々なオブジェクト、方法、または他のプロセスを介して説明された特徴および機能を実装する、個々のモジュールとして示すことができ、プログラムは代わりに、必要に応じて、いくつかのサブモジュール、サードパーティのサービス、コンポーネント、ライブラリなどを含むことができる。対照的に、様々な構成要素の特徴および機能を組み合わせて、必要に応じて単一の構成要素にすることができる。コンピュータでの判定を行うために使用されるしきい値は、静的に、動的に、または静的かつ動的に決定できる。
【０１０４】
本明細書に説明された方法、プロセス、または論理フローは、入力データに基づき動作して出力データを生成することによって機能を実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能コンピュータによって実行され得る。方法、プロセス、または論理フローは、特殊用途論理回路、例えば、CPU、FPGA、またはASICによって実行することができ、特殊用途論理回路として装置が実装されてよい。
【０１０５】
コンピュータプログラムを実行するために適切なコンピュータは、汎用または特殊用途のマイクロプロセッサ、その両方、または任意の他のタイプのCPUに基づくことができる。一般に、CPUはメモリから命令およびデータを受信し、メモリに書き込む。コンピュータの必須要素は、命令を行うまたは実行するためのCPU、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、例えば磁気ディスク、光磁気ディスク、または光ディスクなど、データを記憶するための1つまたは複数の大容量記憶デバイスを含む、または1つまたは複数の大容量記憶デバイスに動作可能に結合され、1つまたは複数の大容量記憶デバイスからデータを受信するか、または1つまたは複数の大容量記憶デバイスにデータを転送するか、またはその両方を行う。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えば携帯電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、例えば、数例を挙げるとユニバーサルシリアルバス(USB)フラッシュドライブに組み込まれ得る。
【０１０６】
コンピュータプログラム命令およびデータを記憶するための非一時的コンピュータ可読媒体は、例として半導体メモリデバイス、磁気デバイス、光磁気ディスクおよび光メモリデバイスを含む、あらゆる形態の永久的/非永久的または揮発性/不揮発性メモリ、媒体、およびメモリデバイスを含むことができ、半導体メモリデバイスは、例えば、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、相変化メモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、およびフラッシュメモリデバイスであり、磁気デバイスは、例えば、テープ、カートリッジ、カセット、内蔵/取り外し可能ディスクであり、光メモリデバイスは、例えば、デジタルビデオディスク(DVD)、CD ROM、DVD+/-R、DVD-RAM、DVD-ROM、HD-DVD、およびBLURAY、ならびに他の光メモリ技術である。メモリは、キャッシュ、クラス、フレームワーク、アプリケーション、モジュール、バックアップデータ、ジョブ、ウェブページ、ウェブページテンプレート、データ構造、データベーステーブル、動的情報を記憶するリポジトリ、または任意のパラメータ、変数、アルゴリズム、命令、規則、制約、または参照を含む任意の他の適切な情報を含む様々なオブジェクトまたはデータを記憶できる。さらに、メモリは、ログ、ポリシー、セキュリティデータまたはアクセスデータ、報告ファイルなどの任意の他の適切なデータを含むことができる。プロセッサおよびメモリは、特殊用途論理回路によって補完されるか、またはその中に組み込まれることができる。
【０１０７】
ユーザとの対話を提供にするために、本明細書に記載の主題の実施形態は、ユーザに情報を表示するための、例えば、CRT(陰極線管)、LCD(液晶ディスプレイ)、LED(発光ダイオード)、またはプラズマモニタなどの表示デバイスと、ユーザがそれによってコンピュータに入力を提供できるマウス、トラックボール、またはトラックパッドなどのキーボードおよびポインティングデバイスとを具備するコンピュータ上に実装され得る。圧力感知のタブレットコンピュータ表面、静電容量式または電気式感知を使用したマルチタッチスクリーン、または他のタイプのタッチスクリーンなどのタッチスクリーンを使用してコンピュータに入力を提供してもよい。他の種類のデバイスがユーザとの対話を提供するために同様に使用され、例えば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック、例えば、視覚的フィードバック、聴覚的フィードバック、触覚的フィードバックであり、ユーザからの入力は、音声、会話、または触覚入力を含む任意の形式で受信される。さらに、コンピュータは、ユーザによって使用されるデバイスとドキュメントを送受信することによって、例えば、ウェブブラウザから受信した要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話できる。
【０１０８】
「グラフィカルユーザインターフェース」または「GUI」という用語は、単数形または複数形で使用され、1つまたは複数のグラフィカルユーザインターフェースおよび特定のグラフィカルユーザインターフェースの各ディスプレイを記述する。したがって、GUIは、限定ではなく、情報を処理するとともに情報結果を効率的にユーザに提示するウェブブラウザ、タッチスクリーン、またはコマンドラインインターフェース(CLI)を含む任意のグラフィカルユーザインターフェースを表すことができる。一般に、GUIは、インタラクティブフィールド、プルダウンリスト、およびボタンなど、ウェブブラウザのいくつかまたはすべてに関連付けられたいくつかのユーザインターフェース(UI)要素を含むことができる。これらのUI要素および他のUI要素は、ウェブブラウザの機能に関連するかまたはそれを表すことができる。
【０１０９】
本明細書に記載の主題の実施形態は、例えばデータサーバとしてのバックエンド構成要素を含む、または例えばアプリケーションサーバなどのミドルウェア構成要素を含む、または例えばグラフィカルユーザインターフェースを有するクライアントコンピュータ、またはユーザがそれを介して本明細書に記載の主題の実施形態と対話できるウェブブラウザなどのフロントエンド構成要素を含む、またはそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の1つまたは複数の組み合わせを含むコンピューティングシステムで実装され得る。システムの構成要素は、例えば通信ネットワークなどの有線または無線デジタルデータ通信(またはデータ通信の組み合わせ)の任意の形態または媒体によって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、WIMAX(Worldwide Interoperability for Microwave Access)、例えば、802．11a/b/g/nまたは802．20(または802.11xと802.20の組み合わせ、または本開示に矛盾しない他のプロトコル)を使用する無線ローカルエリアネットワーク(WLAN)、インターネットの全部または一部、あるいは1つまたは複数の場所における任意の他の通信システム(通信ネットワークの組み合わせ)を含む。ネットワークは、例えば、インターネットプロトコル(IP)パケット、フレームリレーフレーム、非同期転送モード(ATM)セル、音声、ビデオ、データ、またはネットワークアドレス間の他の適切な情報(または通信タイプの組み合わせ)と通信できる。
【０１１０】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバは一般に互いに離れており、通常は通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【０１１１】
本明細書は多くの具体的な実施形態の詳細を含むが、これらはいかなる発明の範囲または特許請求され得るものの範囲に対する限定として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。別々の実施形態の文脈で本明細書に説明されているいくつかの特徴は、組み合わせて、単一の実施形態で実装されてよい。対照的に、単一の実施形態の文脈で説明されている様々な特徴は、複数の実施形態で別々に、または任意のサブコンビネーションで実装されてよい。さらに、前述の特徴は特定の組み合わせで作用するものとして説明され、最初はそのように請求することさえされ得るが、場合によっては、請求する組み合わせからの1つまたは複数の特徴をその組み合わせから切り取ることができ、請求する組み合わせは、サブコンビネーションまたはサブコンビネーションの変形に向けられてよい。
【０１１２】
主題の特定の実施形態が説明された。説明された実施形態の他の実施形態、変形、および置換は、添付の特許請求の範囲の範囲内であり、このことは、当業者には明らかであろう。動作は図面または特許請求の範囲に特定の順序で描かれているが、これは、望ましい結果を達成するために、そのような動作が示された特定の順序またはシーケンシャルな順序に実行されること、または図示されたすべての動作(いくつかの動作は任意とされ得る)が実行されることを必要とすると理解されるべきではない。特定の状況では、マルチタスク処理または並列処理(またはマルチタスク処理と並列処理の組み合わせ)が有利であり、必要に応じて実行され得る。
【０１１３】
さらに、前述の実装形態における様々なシステムモジュールおよび構成要素の分離または統合は、すべての実装形態においてそのような分離または統合を必要とすると理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは、概して単一のソフトウェアアイテムに統合され得る、または複数のソフトウェアアイテムにパッケージ化され得ると理解すべきである。
【０１１４】
したがって、前述の例示的な実装形態は、本開示を定義または制限するものではない。本開示の精神および範囲から逸脱することなく、他の変更、置換、および変形もまた可能である。
【０１１５】
さらに、特許請求の範囲に記載された実施形態は、少なくともコンピュータ実装方法、コンピュータ実装方法を実行するためのコンピュータ可読命令を記憶する非一時的コンピュータ可読媒体、およびコンピュータ実装方法または非一時的コンピュータ可読媒体に記憶された命令を実行するように構成されたハードウェアプロセッサと相互運用可能に結合されたコンピュータメモリを備えるコンピュータシステムに適用可能であると考えられる。
【符号の説明】
【０１１６】
503  システムバス
504  インターフェース
505  プロセッサ
506  データベース
507  メモリ
508  アプリケーション
512  API
513  サービスレイヤ
514  電源
516  評価データ
518  ユーザ特徴データ
526  アイテム特徴データ
528  操作されたソーシャルネットワークデータ
530  ネットワーク
【図１】
2021508064.tif 000019
【図２】
2021508064.tif 000020
【図３】
2021508064.tif 000021
【図４】
2021508064.tif 000022
【図５】
2021508064.tif 000023
【手続補正書】
【提出日】令和2年7月3日(2020.7.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のユーザに対する複数のアイテムのそれぞれの評価を有する評価データを、アイテム評価および推奨プラットフォームによって識別するステップと、
前記複数のユーザに対する前記複数のアイテムのそれぞれの評価に寄与する複数のユーザ特徴を有するユーザ特徴データを、前記アイテム評価および推奨プラットフォームによって識別するステップと、
ソーシャルネットワークデータおよび第1のいくつかの確率変数に基づいて計算された複数の操作されたソーシャルネットワークデータを、信頼されたイニシャライザを用いない秘密分散法により、前記アイテム評価および推奨プラットフォームによってソーシャルネットワークプラットフォームから受信するステップであって、前記ソーシャルネットワークデータが、前記複数のユーザのうちの任意の2人の間の社会的関係を示し、前記信頼されたイニシャライザを用いない秘密分散法において、前記ソーシャルネットワークプラットフォームは、前記ソーシャルネットワークデータを開示することなく、前記複数の操作されたソーシャルネットワークデータを前記アイテム評価および推奨プラットフォームと共有する、ステップと、
前記評価データおよび前記複数の操作されたソーシャルネットワークデータに基づいて、前記ユーザ特徴データを前記アイテム評価および推奨プラットフォームによって更新するステップであって、前記ユーザ特徴データを更新するステップは、複数の操作されたユーザ特徴データの１つと前記複数の操作されたソーシャルネットワークデータの１つの合計に基づいて、前記ユーザ特徴データと前記ソーシャルネットワークデータの積を計算するステップを含む、ステップと
を含む、コンピュータ実装方法。
【請求項２】
前記信頼されたイニシャライザを用いない秘密分散法において、前記アイテム評価および推奨プラットフォームが、前記ユーザ特徴データを開示することなく前記複数の操作されたユーザ特徴データを前記ソーシャルネットワークプラットフォームと共有し、前記複数の操作されたユーザ特徴データが、前記ユーザ特徴データおよび第2のいくつかの確率変数に基づいて計算される、請求項1に記載のコンピュータ実装方法。
【請求項３】
前記信頼されたイニシャライザを用いない秘密分散法において、
ユーザ特徴データのベクトルを、前記アイテム評価および推奨プラットフォームによって取得するステップと、
前記ユーザ特徴データのベクトルおよび前記第2のいくつかの確率変数に基づいて、第1の操作されたユーザ特徴データを、前記アイテム評価および推奨プラットフォームによって生成するステップと、
第1の操作されたユーザ特徴データを前記ソーシャルネットワークプラットフォームに前記アイテム評価および推奨プラットフォームによって送信するステップと、
前記ソーシャルネットワークデータおよび前記第1のいくつかの確率変数に基づいて計算された第1の操作されたソーシャルネットワークデータを、前記ソーシャルネットワークプラットフォームから前記アイテム評価および推奨プラットフォームによって受信するステップと、
前記第1の操作されたユーザ特徴データ、前記第1の操作されたソーシャルネットワークデータ、または前記第2のいくつかの確率変数のうちの2つ以上に基づいて、前記操作されたユーザ特徴データのうちの1つを、前記アイテム評価および推奨プラットフォームによって生成するステップと
をさらに含む、請求項2に記載のコンピュータ実装方法。
【請求項４】
前記複数の操作されたユーザ特徴データの１つと前記複数の操作されたソーシャルネットワークデータの１つの合計を計算することによって前記ユーザ特徴データと前記ソーシャルネットワークデータとの積を計算するステップが、前記ユーザ特徴データと前記ソーシャルネットワークデータの積の各エントリに対して、前記ソーシャルネットワークデータを用いずに、前記複数の操作されたユーザ特徴データの１つおよび前記複数の操作されたソーシャルネットワークデータの１つを計算するステップを含む、請求項1に記載のコンピュータ実装方法。
【請求項５】
前記複数のユーザに対する前記複数のアイテムの前記それぞれの評価に寄与する複数のアイテム特徴を有するアイテム特徴データを識別するステップであって、前記ユーザ特徴データと前記アイテム特徴データとの積が前記評価データの推定をもたらす、ステップと、
前記評価データ、前記ユーザ特徴データ、および前記複数の操作されたソーシャルネットワークデータに基づいて前記アイテム特徴データを更新するステップと
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項６】
前記ユーザ特徴データとアイテム特徴データとの前記積に基づいて、前記複数のユーザに対する前記複数のアイテムの予測された評価データを生成するステップと、
前記予測された評価データに基づいて、特定の顧客に対する特定のアイテムの推奨を生成するステップと
をさらに含む、請求項5に記載のコンピュータ実装方法。
【請求項７】
前記ユーザ特徴データを更新するステップは、予測された評価データと前記評価データの間の差と、前記ソーシャルネットワークデータによって重み付けされた前記ユーザ特徴データと、およびオーバーフィットを回避するための項との重み付けされた合計を最小化するために最小化問題を解くステップを含む、請求項6に記載のコンピュータ実装方法。
【請求項８】
最小化問題を解くステップが、
【数１】
2021508064.tif 000024
を解くステップを含み、
ここで、
Uiは、ユーザiに対応する前記ユーザ特徴データのベクトルを表し、
Vjは、アイテムjに対応する前記アイテム特徴データのベクトルを表し、
Rijは、ユーザiによるアイテムjの評価を表し、
Sikは、ユーザiとユーザkとの間の社会的関係を表し、
λ1は、前記ソーシャルネットワークデータに関連付けられた定義済みの重みを表し、
λ2は、オーバーフィットを回避するための定義済みの重みを表す、請求項6に記載のコンピュータ実装方法。
【請求項９】
動作を実行するためのコンピュータシステムによって実行可能な1つまたは複数の命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記動作が、
複数のユーザに対する複数のアイテムのそれぞれの評価を有する評価データを、アイテム評価および推奨プラットフォームによって識別するステップと、
前記複数のユーザに対する前記複数のアイテムのそれぞれの評価に寄与する複数のユーザ特徴を有するユーザ特徴データを、前記アイテム評価および推奨プラットフォームによって識別するステップと、
ソーシャルネットワークデータおよび第1のいくつかの確率変数に基づいて計算された複数の操作されたソーシャルネットワークデータを、信頼されたイニシャライザを用いない秘密分散法により、前記アイテム評価および推奨プラットフォームによってソーシャルネットワークプラットフォームから受信するステップであって、前記ソーシャルネットワークデータが、前記複数のユーザのうちの任意の2人の間の社会的関係を示し、前記信頼されたイニシャライザを用いない秘密分散法において、前記ソーシャルネットワークプラットフォームは、前記ソーシャルネットワークデータを開示することなく、前記複数の操作されたソーシャルネットワークデータを前記アイテム評価および推奨プラットフォームと共有する、ステップと、
前記評価データおよび前記複数の操作されたソーシャルネットワークデータに基づいて、前記ユーザ特徴データを前記アイテム評価および推奨プラットフォームによって更新するステップであって、前記ユーザ特徴データを更新するステップは、複数の操作されたユーザ特徴データの１つと前記複数の操作されたソーシャルネットワークデータの１つの合計に基づいて、前記ユーザ特徴データと前記ソーシャルネットワークデータの積を計算するステップを含む、ステップと
を含む、非一時的コンピュータ可読記憶媒体。
【請求項１０】
前記信頼されたイニシャライザを用いない秘密分散法において、前記アイテム評価および推奨プラットフォームが、前記ユーザ特徴データを開示することなく前記複数の操作されたユーザ特徴データを前記ソーシャルネットワークプラットフォームと共有し、前記複数の操作されたユーザ特徴データが、前記ユーザ特徴データおよび第2のいくつかの確率変数に基づいて計算される、請求項9に記載の非一時的コンピュータ可読記憶媒体。
【請求項１１】
前記動作が、前記信頼されたイニシャライザを用いない秘密分散法において、
ユーザ特徴データのベクトルを、前記アイテム評価および推奨プラットフォームによって取得するステップと、
前記ユーザ特徴データのベクトルおよび前記第2のいくつかの確率変数に基づいて、第1の操作されたユーザ特徴データを、前記アイテム評価および推奨プラットフォームによって生成するステップと、
第1の操作されたユーザ特徴データを前記ソーシャルネットワークプラットフォームに前記アイテム評価および推奨プラットフォームによって送信するステップと、
前記ソーシャルネットワークデータおよび前記第1のいくつかの確率変数に基づいて計算された第1の操作されたソーシャルネットワークデータを、前記ソーシャルネットワークプラットフォームから前記アイテム評価および推奨プラットフォームによって受信するステップと、
前記第1の操作されたユーザ特徴データ、前記第1の操作されたソーシャルネットワークデータ、または前記第2のいくつかの確率変数のうちの２つ以上に基づいて、前記操作されたユーザ特徴データのうちの1つを、前記アイテム評価および推奨プラットフォームによって生成するステップと
をさらに含む、請求項10に記載の非一時的コンピュータ可読記憶媒体。
【請求項１２】
前記複数の操作されたユーザ特徴データの１つと前記複数の操作されたソーシャルネットワークデータの１つの合計に基づいて、前記ユーザ特徴データと前記ソーシャルネットワークデータとの積を計算するステップが、前記ユーザ特徴データと前記ソーシャルネットワークデータの積の各エントリに対して、前記ソーシャルネットワークデータを用いずに、前記複数の操作されたユーザ特徴データの１つおよび前記複数の操作されたソーシャルネットワークデータの１つを計算するステップを含む、請求項10に記載の非一時的コンピュータ可読記憶媒体。
【請求項１３】
前記動作が、
前記複数のユーザに対する前記複数のアイテムの前記それぞれの評価に寄与する複数のアイテム特徴を有するアイテム特徴データを識別するステップであって、前記ユーザ特徴データと前記アイテム特徴データとの積が前記評価データの推定をもたらす、ステップと、
前記評価データ、前記ユーザ特徴データ、および前記複数の操作されたソーシャルネットワークデータに基づいて前記アイテム特徴データを更新するステップと
をさらに含む、請求項9に記載の非一時的コンピュータ可読記憶媒体。
【請求項１４】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータと相互運用可能に結合されるとともに、命令を記憶した有形の非一時的機械可読媒体を有する1つまたは複数のコンピュータメモリデバイスとを備えるコンピュータ実装システムであって、
前記命令が、前記1つまたは複数のコンピュータによって実行されると、
複数のユーザに対する複数のアイテムのそれぞれの評価を有する評価データを、アイテム評価および推奨プラットフォームによって識別するステップと、
前記複数のユーザに対する前記複数のアイテムのそれぞれの評価に寄与する複数のユーザ特徴を有するユーザ特徴データを、前記アイテム評価および推奨プラットフォームによって識別するステップと、
ソーシャルネットワークデータおよび第1のいくつかの確率変数に基づいて計算された複数の操作されたソーシャルネットワークデータを、信頼されたイニシャライザを用いない秘密分散法により、前記アイテム評価および推奨プラットフォームによってソーシャルネットワークプラットフォームから受信するステップであって、前記ソーシャルネットワークデータが、前記複数のユーザのうちの任意の2人の間の社会的関係を示し、前記信頼されたイニシャライザを用いない秘密分散法において、前記ソーシャルネットワークプラットフォームは、前記ソーシャルネットワークデータを開示することなく、前記複数の操作されたソーシャルネットワークデータを前記アイテム評価および推奨プラットフォームと共有する、ステップと、
前記評価データおよび前記複数の操作されたソーシャルネットワークデータに基づいて、前記ユーザ特徴データを前記アイテム評価および推奨プラットフォームによって更新するステップであって、前記ユーザ特徴データを更新するステップは、複数の操作されたユーザ特徴データの１つと前記複数の操作されたソーシャルネットワークデータの１つの合計に基づいて、前記ユーザ特徴データと前記ソーシャルネットワークデータの積を計算するステップを含む、ステップと
を含む動作を実行する、コンピュータ実装システム。
【請求項１５】
前記信頼されたイニシャライザを用いない秘密分散法において、前記アイテム評価および推奨プラットフォームが、前記ユーザ特徴データを開示することなく前記複数の操作されたユーザ特徴データを前記ソーシャルネットワークプラットフォームと共有し、前記複数の操作されたユーザ特徴データが、前記ユーザ特徴データおよび第2のいくつかの確率変数に基づいて計算される、請求項14に記載のコンピュータ実装システム。
【請求項１６】
前記複数の操作されたユーザ特徴データの１つと前記複数の操作されたソーシャルネットワークデータの１つの合計に基づいて、前記ユーザ特徴データと前記ソーシャルネットワークデータとの積を計算するステップが、前記ユーザ特徴データと前記ソーシャルネットワークデータの積の各エントリに対して、前記ソーシャルネットワークデータを用いずに、前記複数の操作されたユーザ特徴データの１つおよび前記複数の操作されたソーシャルネットワークデータの１つを計算するステップを含む、請求項15に記載のコンピュータ実装システム。
【請求項１７】
前記動作が、
前記複数のユーザに対する前記複数のアイテムの前記それぞれの評価に寄与する複数のアイテム特徴を有するアイテム特徴データを識別するステップであって、前記ユーザ特徴データと前記アイテム特徴データとの積が前記評価データの推定をもたらす、ステップと、
前記評価データ、前記ユーザ特徴データ、および前記複数の操作されたソーシャルネットワークデータに基づいて前記アイテム特徴データを更新するステップと
をさらに含む、請求項14に記載のコンピュータ実装システム。
【請求項１８】
前記動作が、
前記ユーザ特徴データとアイテム特徴データとの前記積に基づいて、前記複数のユーザに対する前記複数のアイテムの予測された評価データを生成するステップと、
前記予測された評価データに基づいて、特定の顧客に対する特定のアイテムの推奨を生成するステップと
をさらに含み、
前記ユーザ特徴データを更新するステップは、予測された評価データと前記評価データの間の差と、前記ソーシャルネットワークデータによって重み付けされた前記ユーザ特徴データと、およびオーバーフィットを回避するための項との重み付けされた合計を最小化するために最小化問題を解くステップを含む、請求項17に記載のコンピュータ実装システム。
【請求項１９】
最小化問題を解くステップが、
【数２】
2021508064.tif 000025
を解くステップを含み、
ここで、
Uiは、ユーザiに対応する前記ユーザ特徴データのベクトルを表し、
Vjは、アイテムjに対応する前記アイテム特徴データのベクトルを表し、
Rijは、ユーザiによるアイテムjの評価を表し、
Sikは、ユーザiとユーザkとの間の社会的関係を表し、
λ1は、前記ソーシャルネットワークデータに関連付けられた定義済みの重みを表し、
λ2は、オーバーフィットを回避するための定義済みの重みを表す、請求項18に記載のコンピュータ実装システム。
【国際調査報告】
2021508064.tif 000026
2021508064.tif 000027