(58)【調査した分野】(Int.Cl.,DB名)
前記データ処理システム上で実行する暗号化モジュールによって、前記第1の識別子、前記複数の第1のパラメータ、および前記複数の第2のパラメータを、第一者の暗号化に基づいて暗号化するステップと、
前記第一者の暗号化に基づいた、前記第1の識別子、前記複数の第1のパラメータ、および前記複数の第2のパラメータの暗号化に応答して、前記データ処理システムによって、前記第1の識別子ベクトルを送信するステップと
を含む、請求項1に記載の方法。
前記暗号化モジュールによって、前記第2の識別子ベクトルの、前記第2の識別子、前記複数の第3のパラメータ、および前記複数の第4のパラメータを、前記第一者の暗号化に基づいて暗号化するステップと、
前記第2の識別子、前記複数の第3のパラメータ、および前記複数の第4のパラメータの暗号化に応答して、前記マッピングモジュールによって、前記第1の識別子ベクトルと第2の識別子ベクトルとの間の前記相関計数を決定するステップと
を含む、請求項2に記載の方法。
前記データ処理システムによって、前記第三者のサーバからの前記第2の識別子ベクトル、第1のタイプのパラメータである前記複数の第3のパラメータおよび前記複数の第1のパラメータ、ならびに第2のタイプのパラメータである前記複数の第4のパラメータおよび前記複数の第2のパラメータを受信するステップ
を含む、請求項1から3のいずれか一項に記載の方法。
前記データ処理システムによって、前記第2の識別子ベクトル、位置識別子を含む前記第1のタイプのパラメータ、およびタイムスタンプを含む前記第2のタイプのパラメータを受信するステップであって、前記位置識別子およびタイムスタンプの各々は、記録された相互作用の位置および時間を識別する、ステップ
を含む、請求項4に記載の方法。
前記マッピングモジュールによって、前記複数の第1のパラメータのうちのいくつかが前記複数の第3のパラメータのうちのいくつかから閾値距離内にあり、前記複数の第2のパラメータのうちのいくつかが前記複数の第4のパラメータのうちのいくつかから時間窓内にあることに基づいて、前記相関計数を決定するステップ
を含む、請求項5に記載の方法。
前記データ処理システムによって、前記第1の識別子ベクトルを送信するステップであって、前記複数の第1のパラメータのいくつかおよび前記複数の第2のパラメータのいくつかの各々がダミーデータを含む、ステップ
を含む、請求項1から6のいずれか一項に記載の方法。
前記データ処理システムによって、前記第1の識別子、および前記複数の第1のパラメータと前記複数の第2のパラメータとの複数の第1の組合せを含む、前記第1の識別子ベクトルを送信するステップと、
前記データ処理システムによって、前記第2の識別子、および前記複数の第3のパラメータと前記複数の第4のパラメータとの複数の第2の組合せを含む、前記第2の識別子ベクトルを受信するステップと
を含む、請求項1から7のいずれか一項に記載の方法。
前記複数の第1のパラメータおよび前記複数の第3のパラメータが第1のタイプのパラメータであり、前記複数の第2のパラメータおよび前記複数の第4のパラメータが第2のタイプのパラメータである、請求項11から13のいずれか一項に記載のシステム。
前記第1のタイプのパラメータが位置識別子を含み、前記第2のタイプのパラメータがタイムスタンプを含み、前記位置識別子およびタイムスタンプの各々が、記録された相互作用の位置および時間を識別する、請求項14に記載のシステム。
前記複数の第1のパラメータのうちのいくつかが前記複数の第3のパラメータのうちのいくつかから閾値距離内にあり、前記複数の第2のパラメータのうちのいくつかが前記複数の第4のパラメータのうちのいくつかから時間窓内にあることに基づいて、前記相関計数を決定するように前記データ処理システムが構成される、請求項15に記載のシステム。
前記複数の第1のパラメータのうちのいくつかおよび前記複数の第2のパラメータのうちのいくつかの各々がダミーデータを含む、請求項11から16のいずれか一項に記載のシステム。
前記第1の識別子ベクトルが、前記第1の識別子、および前記複数の第1のパラメータと前記複数の第2のパラメータとの複数の第1の組合せを含み、前記第2の識別子ベクトルが、前記第2の識別子、および前記複数の第3のパラメータと前記複数の第4のパラメータとの複数の第2の組合せを含む、請求項11から17のいずれか一項に記載のシステム。
前記第1のパラメータのそれぞれの値に基づいて、前記複数の第1のパラメータを複数の第1のカテゴリ値に分類し、前記第1の識別子ベクトルおよび前記複数の第1のカテゴリ値を含む前記第1の識別子ベクトルを送信するように前記データ処理システムが構成される、請求項11から18のいずれか一項に記載のシステム。
前記1つの識別子キーを生成してから所定の時間が経過したと決定し、前記所定の時間が経過したとの決定に応答して、前記第1の識別子ベクトルおよび前記第2の識別子ベクトルを削除するように前記データ処理システムが構成される、請求項11から19のいずれか一項に記載のシステム。
【発明を実施するための形態】
【0008】
様々な図面中の同様の参照番号および記号は、同様の要素を示す。
【0009】
以下は、異なるデータセット間の識別子を一致させる方法、装置、およびシステムに関係する様々な概念、ならびに方法、装置、およびシステムの実装形態のより詳細な記載である。同じ実体によるオンラインおよびオフラインの相互作用が、様々な当事者によって異なるやり方でログ記録される場合がある。たとえば、様々な当事者の各々が、異なる識別子および暗号化技法を使用して、これらの相互作用を管理することができる。
【0010】
本明細書に記載されるシステムおよび方法は、異なる識別子および暗号化技法を使用して、様々な当事者が記憶した異なるデータセット間の識別子をマッピングすることができる。たとえば、コンピューティングデバイスは、コンテンツアイテム(たとえば、広告)を含むオンライン文書(たとえば、ウェブページ)にアクセスすることができ、コンピューティングデバイスのユーザは、コンテンツアイテム上をクリックするまたはコンテンツアイテムを変換して、コンテンツアイテムにより示されるまたはコンテンツアイテムに関連するランディングページにアクセスすることができる。コンテンツ発行元のコンピューティングデバイスは、発行元自体の識別子および暗号化技法を使用して、この相互作用を識別することができる。コンテンツアイテムプロバイダのコンピューティングデバイスもやはり、コンテンツアイテムプロバイダ自体の識別子および暗号化技法を使用してトランザクションを識別することができる。そのため、ウェブページまたは他のコンテンツ発行元は、コンテンツアイテムプロバイダがどのようにしてコンピューティングデバイスを識別するのかを示す情報を持たない場合があり、逆も同様である。さらに、コンテンツ発行元の実体(たとえば、ウェブサイトの所有者)およびコンテンツアイテムプロバイダの実体(たとえば、広告主)は、予防策を講じることなく、所有権を主張できる情報または機密情報を送信することを望まない場合がある。
【0011】
たとえばブラインド暗号化技法を使用して、本明細書に記載されるシステムおよび方法は、様々な当事者が、異なる暗号化技法を使用して暗号化された当事者それぞれの識別子間の相関を決定することを可能にすることができる。第一者のサーバ(First Party Server)および第三者のサーバ(Third Party Server)(たとえば、1つまたは複数のプロセッサを有するコンピューティングシステム)は、コンピューティングデバイスの相互作用のログデータを含有する受け取った識別子ベクトルを暗号化して、暗号化した識別子ベクトルを交換することができる。コンピューティングデバイスの相互作用としては、たとえば、サーバからのオンラインコンテンツの要求、ウェブサイトへの訪問、およびコンピューティングデバイスの識別子認証、またはコンピューティングデバイスとサーバとの間の任意の他の活動が挙げられる。交換および暗号化した識別子ベクトルを使用して、第一者のサーバまたは第三者のサーバは、他の識別子のどれが自身の識別子に対応するのかを決定し、各自の識別子の各々について識別子キーを生成することができる。
【0012】
たとえば、第一者のサーバが、第三者のサーバに識別子ベクトルを送信することができる。第一者の識別子ベクトルは、第一者の識別子の暗号化、第1のパラメータの組、および第2のパラメータの組を含むことができる。第一者の識別子ベクトルは、第一者の識別子の暗号化、およびそれぞれの第1のパラメータとそれぞれの第2のパラメータの組合せに基づいたキーの組も含むことができる。第一者の識別子は、特定のクライアントデバイスに関連するデバイス識別子、およびたとえばプロファイル、アドレス、またはアカウントに関連するアカウント識別子を含むことができる。それぞれの第1のパラメータとそれぞれの第2のパラメータの組合せに基づくキーは、ハッシュ関数によって生成することができる。第1のパラメータと第2のパラメータの各々は、たとえば、対応するログ記録されたコンピューティングデバイスの相互作用の場所および時間を指定する、ログ行エントリの一部であってよい。
【0013】
第一者のサーバから第一者の識別子ベクトルを送信した後で、第一者のサーバは、第三者のサーバから戻される第三者のサーバの暗号化アルゴリズムにより暗号化した第一者の識別子ベクトルを受信することができる。加えて、第一者のサーバは、第三者のサーバのログデータに基づいて、第三者のサーバから別の識別子ベクトルを受信することができる。第三者の識別子ベクトルは、第三者の識別子の暗号化、第3のパラメータの組、および第4のパラメータの組を含むことができる。第三者の識別子ベクトルは、第三者の識別子の暗号化、およびそれぞれの第3のパラメータとそれぞれの第4のパラメータの組合せに基づいたキーの組をやはり含むことができる。第三者により使用される識別子は、第一者のサーバにより使用される識別子と異なってよい。第三者のサーバにより適用される暗号化は、第一者のサーバにより適用される暗号化と異なってよい。第3のパラメータは、第1のパラメータと同じタイプのログ情報に対応することができる。第4のパラメータは、第3のパラメータと同じタイプのログ情報に対応することができる。第3のパラメータと第4のパラメータの各々は、たとえば、対応するログ記録されたコンピューティングデバイスの相互作用の場所および時間を指定する、ログ行エントリも含むことができる。
【0014】
第三者のサーバのログデータに基づいた識別子ベクトルを受信した後で、第一者のサーバは、自身の暗号化アルゴリズムを受信した識別子ベクトルに適用することができる。これで識別子ベクトルの両方の組を得たことにより、第一者のサーバは、第1のパラメータと第3のパラメータとの間、および第2のパラメータと第4のパラメータとの間の一致に基づいて、識別子の相関またはマッピングを決定することができる。たとえば、第1のパラメータおよび第3のパラメータは、ユーザ相互作用についての位置情報を含み、第2のパラメータおよび第4のパラメータは、ユーザ相互作用についての時間情報を含む。この例では、第一者のサーバは、それぞれのパラメータが所定の閾値距離および時間枠内にあるときに、それぞれのパラメータ間が一致すると決定することができる。第一者のサーバは、そのような一致の数が所定の閾値を超えるときに、識別子が互いに対応すると決定することができる。この対応関係を使用して、第一者のサーバは、ブリッジまたは一致識別子キーを生成することができる。ブリッジまたは一致識別子キーは、その後多くの用途で使用することができる。たとえば、コンテンツプロバイダのコンピューティングデバイスまたはコンテンツ発行元のコンピューティングデバイスは、キーを使用して、様々なオンラインおよびオフラインの相互作用間のコンバージョン率を決定することができる。
【0015】
図1は、例示の実装形態に従う、異なるデータセット間の識別子を一致させるための、一例のコンピュータネットワーク環境100を描くブロック図である。ネットワーク105としては、インターネット、ローカルネットワーク、ワイドネットワーク、メトロネットワークまたは他の地域ネットワーク、イントラネット、衛星ネットワーク、音声またはデータのモバイルフォン通信ネットワークなどの他のコンピュータネットワーク、およびそれらの組合せといったコンピュータネットワークが挙げられる。システム100は、たとえばプロセッサを有するコンピューティングデバイスまたはサーバなどの少なくとも1つの論理デバイスといった少なくとも1つのデータ処理システム110も含み、たとえば、少なくとも1つのコンテンツプロバイダのコンピューティングデバイス115、少なくとも1つのコンテンツ発行元のコンピューティングデバイス120、少なくとも1つのクライアントデバイス125、または少なくとも1つの第三者のサーバ130と、ネットワーク105を介して通信することができる。
【0016】
ネットワーク105は、任意のタイプまたは形式のネットワークであってよく、以下、すなわち、ポイントツーポイントネットワーク、放送網、ワイドエリアネットワーク、ローカルエリアネットワーク、通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ATM (Asynchronous Transfer Mode)ネットワーク、SONET (Synchronous Optical Network)ネットワーク、SDH (Synchronous Digital Hierarchy)ネットワーク、ワイヤレスネットワーク、および有線ネットワークのいずれをも含むことができる。ネットワーク105は、赤外線チャネルまたは衛星帯などのワイヤレスリンクを含むことができる。ネットワーク105のトポロジとしては、バス状、スター状、またはリング状ネットワークトポロジが挙げられる。ネットワークとしては、先進移動電話プロトコル(AMPS: Advanced Mobile Phone Protocol)、時分割多重アクセス(TDMA: Time Division Multiple Access)、符号分割多重アクセス(CDMA: Code-Division Multiple Access)、グローバルシステムフォーモバイルコミュニケーションズ(GSM(登録商標): Global System for Mobile Communication)、汎用パケット無線サービス(GPRS: General Packet Radio Services)、またはユニバーサルモバイルテレコミュニケーションシステム(UMTS: Universal Mobile Telecommunications System)を含む、モバイルデバイス間で通信するために使用される任意の1つまたは複数のプロトコルを使用するモバイル電話ネットワークが挙げられる。異なるタイプのデータを異なるプロトコルを介して送信することができ、または同じタイプのデータを異なるプロトコルを介して送信することができる。
【0017】
システム100は、少なくとも1つのデータ処理システム110および少なくとも1つの第三者のサーバ130を含むことができる。データ処理システム110および第三者のサーバ130は、各々が、ネットワーク105を介してたとえばクライアントデバイス125と通信するためのプロセッサを有するコンピューティングデバイスなどの少なくとも1つの論理デバイス、ウェブサイト事業者またはコンテンツ発行元のコンピューティングデバイス120、および少なくとも1つのコンテンツプロバイダのコンピューティングデバイス115を含むことができる。データ処理システム110および第三者のサーバ130は、各々が、少なくとも1つのサーバを含むことができる。たとえば、データ処理システム110または第三者のサーバ130は各々が、少なくとも1つのデータセンタに配置された複数のサーバを含むことができる。データ処理システム110および第三者のサーバ130は各々が、論理的にグループ化された複数のサーバを含み、分散コンピューティング技法を促進することができる。サーバの論理グループを、サーバファームまたはマシンファームと呼ぶ場合がある。サーバは地理的に分散することもできる。マシンファームを単一の実体として管理することができ、またはマシンファームが複数のマシンファームを含むことができる。各マシンファーム内のサーバは異種であってよい。サーバまたはマシンのうちの1つまたは複数は、オペレーティングシステムプラットフォームの1つまたは複数のタイプに従って動作することができる。第三者のサーバ130は、とりわけ、本明細書に記載されるデータ処理システム110と同じまたは同様の機能性およびモジュールの多くを含むことができる。
【0018】
マシンファーム中のサーバを、関連する記憶装置システムとともに高密度ラックシステム中に収納して、企業のデータセンタに配置することができる。たとえば、この方法でサーバを統合すると、局在化した高性能ネットワーク上にサーバおよび高性能記憶装置システムを配置することによって、システムの管理性、データ安全性、システムの物理的な安全性、およびシステム性能を改善することができる。サーバおよび記憶装置システムを集中化しそれらを先進的なシステム管理ツールで結合することによって、サーバ資源をより効率的に使用することが可能となる。
【0019】
データ処理システム110は、マッピングモジュール135、暗号化モジュール140、および少なくとも1つのデータベース145を含むことができる。マッピングモジュール135または暗号化モジュール140は、データベース145と通信するように構成される、プログラム可能論理アレイエンジンまたはモジュールなどの、少なくとも1つの処理ユニットまたは他の論理デバイスを含むことができる。マッピングモジュール135と暗号化モジュール140は、別個の構成要素、単一の構成要素、またはデータ処理システム110の部分であってよい。システム100およびデータ処理システムなどのシステム100の構成要素は、1つもしくは複数のプロセッサ、論理デバイス、または回路などのハードウェア要素を含むことができる。第三者のサーバ130の1つもしくは複数のモジュール、第三者のサーバ130と通信する1つもしくは複数のモジュール、または第三者のサーバ130と関連する1つもしくは複数のモジュールは、マッピングモジュール135または暗号化モジュール140と同じ機能性の多くを含むことができる。
【0020】
データ処理システム110および第三者のサーバ130は、各々が、複数のコンピューティングデバイス110に関連する匿名のコンピュータネットワーク活動情報を獲得することができる。クライアントデバイス125のユーザは、データ処理システム110がユーザのクライアントデバイス125に対応するネットワーク活動情報を獲得することを肯定的に認可することができる。たとえば、データ処理システム110は、地理的な位置情報などのネットワーク活動情報のうちの1つまたは複数のタイプを獲得するために、クライアントデバイス125のユーザに肯定的な承諾を促すことができる。クライアントデバイス125のユーザの識別情報は匿名のままとすることができ、クライアントデバイス125を固有の識別子(たとえば、ユーザ、またはデータ処理システムにより提供されるコンピューティングデバイス、またはコンピューティングデバイスのユーザについての固有の識別子)に関連付けることができる。データ処理システムは、各観察結果を対応する固有の識別子と関連付けることができる。
【0021】
本明細書で議論されるシステムがユーザについての個人情報を収集する、または個人情報を使用する可能性がある状況では、個人情報(たとえば、ユーザのソーシャルネットワーク、社会的行為もしくは活動、ユーザの好み、またはユーザの現在位置についての情報)を収集する可能性のあるプログラムもしくは機能を制御する機会、またはユーザにより関係する可能性があるコンテンツをコンテンツサーバから受信するかどうか、もしくはどのように受信するかを制御する機会をユーザに提供することができる。加えて、ある種のデータはそれが記憶または使用される前に1つまたは複数の方法で扱うことができ、その結果、ユーザについてのある種の情報は、パラメータ(たとえば、人口動態パラメータ)を生成するときに除去される。たとえば、ユーザについて識別情報を決定することができないようにユーザの識別情報を取り扱うことができる。または、ユーザの特定の位置を決定することができないように、(市、郵便番号、または州レベルなどの)位置情報が獲得されるユーザの地理的な位置を一般化することができる。こうして、ユーザについてどのように情報が収集され、コンテンツサーバにより使用されるのかを、ユーザが制御することができる。
【0022】
コンテンツプロバイダのコンピューティングデバイス115は、クライアントデバイス125における情報資源上で表示する広告などのコンテンツアイテムを提供するために、コンテンツプロバイダの実体により操作されるサーバまたは他のコンピューティングデバイスを含むことができる。コンテンツプロバイダのコンピューティングデバイス115により提供されるコンテンツは、たとえば、コンテンツ発行元のコンピューティングデバイス120により提供されるコンテンツといった主コンテンツを含む、ウェブサイトまたはウェブページなどの情報資源上で表示するための、第三者のコンテンツアイテム(たとえば、広告)を含むことができる。コンテンツアイテムは、検索結果のウェブページに表示することもできる。たとえば、ウェブページの主コンテンツが会社によって提供される会社のウェブページなどの、コンテンツウェブページのコンテンツスロット中で表示するため、または検索エンジンにより提供される検索結果ランディングページに表示するために、コンテンツプロバイダのコンピューティングデバイス115は、広告のソースもしくは他のコンテンツアイテムを提供することができ、または広告のソースもしくは他のコンテンツアイテムであってよい。コンテンツプロバイダのコンピューティングデバイス115に関連するコンテンツアイテムを、スマートフォンまたは他のクライアントデバイス125上のアプリケーションの実行の部分として表示されるコンテンツなどといった、ウェブページ以外の情報資源上に表示することができる。
【0023】
コンテンツ発行元のコンピューティングデバイス120は、ネットワーク105を介して表示するための主コンテンツを提供するために、コンテンツ発行実体が操作するサーバまたは他のコンピューティングデバイスを含むことができる。たとえば、コンテンツ発行元のコンピューティングデバイス120は、ウェブページ上で表示するために主コンテンツを提供するウェブページ事業者を含むことができる。主コンテンツは、コンテンツ発行元のコンピューティングデバイス120が提供する以外のコンテンツを含むことができ、ウェブページは、コンテンツプロバイダのコンピューティングデバイス115からの第三者のコンテンツアイテム(たとえば、広告)を表示するように構成されたコンテンツスロットを含むことができる。たとえば、コンテンツ発行元のコンピューティングデバイス120は、会社のウェブサイトを操作することができ、ウェブサイトのウェブページ上で表示するその会社についてのコンテンツを提供することができる。ウェブページは、コンテンツプロバイダのコンピューティングデバイス115の広告などの、第三者のコンテンツアイテムを表示するように構成されたコンテンツスロットを含むことができる。いくつかの実装形態では、コンテンツ発行元のコンピューティングデバイス120は、検索エンジンのウェブサイトを操作する検索エンジン事業者の、検索エンジンコンピューティングデバイス(たとえば、サーバ)を含む。検索エンジンのウェブページの主コンテンツ(たとえば、結果またはランディングウェブページ)は、検索の結果、ならびにコンテンツプロバイダのコンピューティングデバイス115からのコンテンツアイテムなど、コンテンツスロット中に表示される第三者のコンテンツアイテムを含むことができる。
【0024】
クライアントデバイス125は、コンテンツ発行元のコンピューティングデバイス120が提供したコンテンツ(たとえば、主ウェブページコンテンツまたは他の情報資源)、およびコンテンツプロバイダのコンピューティングデバイス115が提供したコンテンツ(たとえば、ウェブページのコンテンツスロット中に表示するように構成される広告などの第三者のコンテンツアイテム)などのデータを表示するために、ネットワーク105を介して通信するように構成されたコンピューティングデバイスを含むことができる。クライアントデバイス125、コンテンツプロバイダのコンピューティングデバイス115、およびコンテンツ発行元のコンピューティングデバイス120としては、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、携帯情報端末、モバイルデバイス、クライアントデバイス、家庭用コンピューティングデバイス、サーバ、クライアント、および他のコンピューティングデバイスが挙げられる。クライアントデバイス125、コンテンツプロバイダのコンピューティングデバイス115、およびコンテンツ発行元のコンピューティングデバイス120は、マイクロフォン、スピーカ、タッチスクリーン、キーボード、ポインティングデバイス、コンピュータマウス、タッチパッド、または他の入出力インターフェースなどのユーザインターフェースを含むことができる。
【0025】
データ処理システム110は、第1の識別子ベクトルを第三者のサーバ130に送信することができる。第1の識別子ベクトルは、第1の識別子、複数の第1のパラメータ、および複数の第2のパラメータを含むことができる。第1の識別子、複数の第1のパラメータ、および複数の第2のパラメータは、1つまたは複数のデータベース145に記憶され、1つまたは複数のデータベース145から獲得することができる。たとえば、第1の識別子ベクトルは、第1の識別子、複数の第1のパラメータ、および複数の第2のパラメータなどといった、ログ記録されたユーザ相互作用を記憶する、またはインデックス付けするのに好適な、インデックス付けしたタプル、1次元アレイもしくは多次元アレイ、コンテナ、リンクされたリスト、ツリー、または任意のデータ構造の形式であってよい。第1の識別子としては、特定のユーザまたはクライアントデバイス125を識別するための、たとえば、アカウント識別子、デバイス識別子、電話番号、またはそれらの組合せ、または任意の他の識別子が挙げられる。第1の識別子は、たとえば、とりわけ、英数字文字列、乱数的もしくは疑似乱数的に生成した数値、または文字列の形式であってよい。複数の第1のパラメータおよび複数の第2のパラメータは、各々が、1つまたは複数のクライアントデバイス125による、ネットワーク105を介した、データ処理システム110、コンテンツプロバイダのコンピューティングデバイス115、またはコンテンツ発行元のコンピューティングデバイス120との相互作用のログデータを目録に入れるまたはインデックス付けを行うことができる。1つまたは複数のクライアントデバイス125による相互作用のログデータは、1つまたは複数のデータベース145に記憶され、1つまたは複数のデータベース145から獲得することができる。複数の第1のパラメータは、関連する記録された相互作用の位置識別子を含むことができる。複数の第2のパラメータは、関連する記録された相互作用のタイムスタンプを含むことができる。複数の第1のパラメータおよび複数の第2のパラメータは、1つまたは複数のクライアントデバイス125による相互作用のログデータを目録に入れるまたは記録するために使用される、他のパラメータまたはデータを含むことができる。数学的に表すと、第1の識別子ベクトルは、たと
えば、次の形式であってよい。
【数1】
上式で、Xは第1の識別子ベクトルであり、ID
Xは第1の識別子であり、p
nはn番目に記録された相互作用についての第1のパラメータであり、q
nはn番目に記録された相互作用についての第2のパラメータである。たとえば、第1のパラメータは記録された相互作用の位置識別子であってよく、第2のパラメータは記録された相互作用のタイムスタンプであってよい。さらに、デバイス識別子「x345q$」を有するクライアントデバイス125が、カリフォルニア州サンノゼから2015年7月14日の時間15:34:11にウェブページについての要求を、次いで、カリフォルニア州フォルサムから2015年7月15日の時間9:12:34に別のウェブページについての別の要求を送信し、両方の要求が、1つまたは複数のデータベース145においてデータ処理システム110によって記録されたとする。この例では、ID
Aは「x345q$」となり、p
1は「San Jose, CA」となり、q
1は「July 14, 2015 15:34:11」となり、p
2は「Folsom, CA」となりq
2は「July 15, 2015 9:12:34」となる。
【0026】
暗号化モジュール140は、複数の第1のパラメータおよび複数の第2のパラメータを、複数の第1のパラメータのそれぞれの値または複数の第2のパラメータのそれぞれの値に基づいて、複数の第1のカテゴリへと分類することができる。暗号化モジュール140は、複数の第1のパラメータおよび複数の第2のパラメータを、複数の第1のパラメータの第1の量子化に基づいて、複数の第1のカテゴリへと分類することができる。暗号化モジュール140は、複数の第1のパラメータおよび複数の第2のパラメータを、複数の第2のパラメータの第2の量子化に基づいて、複数の第2のカテゴリへと分類することができる。第1の量子化は、複数の第1のパラメータのどれがそれぞれの第1のカテゴリへと分類されるのかを規定する、または指定することができる。第2の量子化は、複数の第2のパラメータのどれがそれぞれの第2のカテゴリへと分類されるのかを規定する、または指定することができる。第1の量子化および第2の量子化は、第1のパラメータと第2のパラメータをそれぞれ、より一般名称のカテゴリへと割り当てる、分類する、または区分するために使用することができる。暗号化モジュール140は、複数の第1のカテゴリ値および複数の第2のカテゴリ値を生成することができる。複数の第1のカテゴリの各々および複数の第2のカテゴリの各々を、たとえば、乱数的に生成された英数字の値などの、カテゴリ値またはインデックスに関連付けることができる。以前の例から、第1の量子化が市により行われ、第2の量子化が日付により行われる場合、暗号化モジュール140は、2015年7月14日の時間15:34:11におけるカリフォルニア州サンノゼからのウェブページについての要求を、2015年7月15日の時間9:12:34におけるカリフォルニア州フォルサムからの別のウェブページについての要求と異なるカテゴリに、それぞれのカテゴリについての量子化に基づいて分類することができる。加えて、これらのカテゴリの各々は、ここで、異なるランダムな英数字の値を割り当てることができる。数学的に表すと、第1の識別子ベクトルは、たとえば、次の形式であってよい。
【数2】
上式で、Xは第1の識別子ベクトルであり、ID
Xは第1の識別子であり、p
nはn番目に記録された相互作用についての第1のパラメータであり、q
nはn番目に記録された相互作用についての第2のパラメータであり、<...>
iは、第1のパラメータの値もしくは第2のパラメータの値、またはそれらの組合せに基づいて第1のパラメータp
nおよび第2のパラメータq
nが分類されたi番目のそれぞれのカテゴリ値を示す。データ処理システム110は、第1の識別子および複数の第1のカテゴリ値または複数の第2のカテゴリ値を含む第1の識別子ベクトルを、第三者のサーバ130に送信することができる。データ処理システム110は、第1の識別子および複数の第1のカテゴリまたは複数の第2のカテゴリを含む第1の識別子ベクトルを、第三者のサーバ130に送信することができる。
【0027】
暗号化モジュール140は、複数の第1のパラメータと複数の第2のパラメータの、複数の第1の組合せを生成することができる。複数の第1の組合せの各々は、たとえば、複数の第1のパラメータの各々および複数の第2のパラメータの各々のハッシュ関数または暗号関数に基づいて生成することができる。数学的に表すと、位置識別子のハッシュ関数を第1のパラメータとして使用し、タイムスタンプを第2のパラメータとして使用して、第1の識別子ベクトルは、たとえば、次の形式であってよい。
【数3】
上式で、Xは第1の識別子ベクトルであり、ID
Xは第1の識別子であり、l
nはn番目に記録された相互作用についての位置識別子であり、t
nはn番目に記録された相互作用についてのタイムスタンプであり、<...>
iは、位置識別子またはタイムスタンプに基づいて位置識別子l
nおよびタイムスタンプt
nが分類されたi番目のそれぞれのカテゴリ値を示し、h(・)はハッシュ関数である。データ処理システム110は、第1の識別子および複数の第1の組合せを含む第1の識別子ベクトルを、第三者のサーバ130に送信することができる。
【0028】
暗号化モジュール140は、第1の識別子、複数の第1のパラメータ、および複数の第2のパラメータを、第一者の暗号化に基づいて暗号化することができる。暗号化モジュール140は、第1の識別子、複数の第1のパラメータ、および複数の第1の組合せを暗号化することができる。第一者の暗号化の例としては、非対称暗号化アルゴリズム、暗号学的ハッシュ関数、指紋、または可換である任意の他の暗号化アルゴリズムが挙げられる。たとえば、暗号化モジュール140はRSA暗号方式技法を使用することができ、RSA暗号方式技法では、暗号化キーはあらゆるコンピューティングデバイスが知ることができ、秘密にしておくことができる解読キーとは異なることができる。この例では、非対称性は、2つの大きな素数の積を因数分解することが困難であることに基づくことができる。数学的に表すと、位置識別子のハッシュ関数を第1のパラメータとして使用し、タイムスタンプを第2のパラメータとして使用して、第一者の暗号化に基づいて暗号化される第1の識別子ベクトルは、たとえば、次の形式であってよい。
【数4】
上式で、
【数5】
は暗号化された第1の識別子ベクトルであり、Xは第1の識別子ベクトルであり、Aは第一者の暗号化行列であり、ID
Xは第1の識別子であり、l
nはn番目に記録された相互作用についての位置識別子であり、t
nはn番目に記録された相互作用についてのタイムスタンプであり、<...>
iは、位置識別子l
nおよびタイムスタンプt
nが分類されたi番目のそれぞれのカテゴリ値を示し、h(・)はハッシュ関数である。この例では、第一者の暗号化行列Aを使用して、暗号化モジュール140が、第1の識別子および複数の第1のカテゴリのそれぞれのカテゴリ値および複数の第2のカテゴリのそれぞれのカテゴリ値の各々またはいくつかについて、異なる暗号化アルゴリズムを適用することができる。データ処理システム110は、第1の識別子、複数の第1のパラメータ、および複数の第2のパラメータを、第一者の暗号化に基づいて暗号化することに続いて、または暗号化に応答して、第一者の暗号化に基づいて暗号化された第1の識別子ベクトルを第三者のサーバ130に送信することができる。
【0029】
暗号化モジュール140は、複数の第1のパラメータおよび複数の第2のパラメータについてのダミーデータを生成することができる。複数の第1のパラメータのうちのいくつかおよび複数の第2のパラメータのうちのいくつかは、各々がダミーデータを含むことができる。ダミーデータは、相互作用について、乱数的に生成される第1のパラメータおよび第2のパラメータを含むことができる。ダミーデータは、たとえば、1つまたは複数のクライアントデバイス125が実際には実施しなかった可能性がある相互作用を示すことができる。暗号化モジュール140は、複数の第1のパラメータおよび複数の第2のパラメータの中にダミーデータを挿入することができる。データ処理システム110は、ダミーデータを含む第1の識別子ベクトルを第三者のサーバ130に送信することができる。
【0030】
データ処理システム110は、第三者のサーバ130から、第三者のサーバ130に関連する第三者の暗号化に基づいて暗号化された第1の識別子ベクトルを受信することができる。第三者のサーバ130が第1の識別子ベクトルを受信することによって、第三者のサーバ130または第三者のサーバ130に関連する1つもしくは複数の実体もしくはデバイスが、第三者の暗号化に基づいて、受信した第1の識別子ベクトルを暗号化することを引き起こす、またはトリガすることができる。第三者のサーバ130に第1の識別子ベクトルを送信した後、または送信すると同時に、データ処理システム110は、第1の識別子ベクトルを暗号化する要求を第三者のサーバ130に送信することもできる。第1の識別子ベクトルを暗号化する要求も、第三者のサーバ130または第三者のサーバ130に関連する1つもしくは複数の実体が、第三者の暗号化に基づいて、第1の識別子ベクトルを暗号化することを引き起こす、またはトリガすることができる。第三者の暗号化の例としては、非対称暗号化アルゴリズム、暗号学的ハッシュ関数、指紋、または可換である任意の他の暗号化アルゴリズムが挙げられる。数学的に表すと、位置識別子のハッシュ関数を第1のパラメータとして、タイムスタンプを第2のパラメータとして使用して、第三者の暗号化に基づいてさらに暗号化される第1の識別子ベクトルは、たとえば、次の形式であってよい。
【数6】
上式で、
【数7】
は第一者の暗号化および第三者の暗号化により2重に暗号化された第1の識別子ベクトルであり、
【数8】
は第一者の暗号化により暗号化された第1の識別子ベクトルであり、Xは第1の識別子ベクトルであり、Bは第三者の暗号化行列であり、Aは第一者の暗号化行列であり、ID
Xは第1の識別子であり、l
nはn番目に記録された相互作用についての位置識別子であり、t
nはn番目に記録された相互作用についてのタイムスタンプであり、<...>
iは、位置識別子またはタイムスタンプに基づいて位置識別子l
nおよびタイムスタンプt
nが分類されたi番目のそれぞれのカテゴリ値を示し、h(・)はハッシュ関数である。
【0031】
データ処理システム110は、第三者のサーバ130から、第三者のサーバ130に関連する第三者の暗号化に基づいて暗号化された第2の識別子ベクトルを受信することができる。第2の識別子ベクトルは、第2の識別子、複数の第3のパラメータ、および複数の第4のパラメータを含むことができる。第2の識別子、複数の第3のパラメータ、および複数の第4のパラメータは、第三者のサーバ130におけるまたは第三者のサーバ130に関連する1つまたは複数のデータベースに記憶され、1つまたは複数のデータベースから獲得することができる。複数の第3のパラメータおよび複数の第1のパラメータは第1のタイプのパラメータであってよい。複数の第4のパラメータおよび複数の第2のパラメータは第2のタイプのパラメータであってよい。たとえば、それぞれ、複数の第1のパラメータが位置識別子であり、複数の第2のパラメータがタイムスタンプであり、各々が1つまたは複数のデータベース145により記憶された相互作用の位置および時間を識別する場合、やはり、複数の第3のパラメータは第三者のサーバ130により記録された相互作用の位置識別子であり、複数の第4のパラメータは第三者のサーバ130により記録された相互作用のタイムスタンプであってよい。たとえば、第2の識別子ベクトルは、第2の識別子、複数の第3のパラメータ、および複数の第4のパラメータなどといった、ログ記録されたユーザ相互作用を記憶する、またはインデックス付けするのに好適な、インデックス付けしたタプル、1次元アレイもしくは多次元アレイ、コンテナ、リンクされたリスト、ツリー、または任意のデータ構造の形式であってよい。第2の識別子としては、特定のユーザまたはクライアントデバイス125を識別するための、たとえば、アカウント識別子、デバイス識別子、電話番号、またはそれらの組合せ、または任意の他の識別子が挙げられる。複数の第3のパラメータおよび複数の第4のパラメータは、各々が、1つまたは複数のクライアントデバイス125による、ネットワーク105を介した、第三者のサーバ130、コンテンツプロバイダのコンピューティングデバイス115、またはコンテンツ発行元のコンピューティングデバイス120との相互作用のログデータを目録に入れるまたはインデックス付けを行うことができる。1つまたは複数のクライアントデバイ
ス125による相互作用のログデータは、第三者のサーバ130におけるまたは第三者のサーバ130に関連する1つまたは複数のデータベースに記憶され、1つまたは複数のデータベースから獲得することができる。複数の第3のパラメータは、関連する記録された相互作用の位置識別子を含むことができる。複数の第4のパラメータは、関連する相互作用のタイムスタンプを含むことができる。複数の第3のパラメータおよび複数の第4のパラメータは、1つまたは複数のクライアントデバイス125による相互作用のログデータを目録に入れるまたは記録するために使用される、他のパラメータまたはデータを含むことができる。
【0032】
データ処理システム110は、第2の識別子ベクトルの要求を第三者のサーバ130に送信することができる。第三者のサーバ130への第2の識別子ベクトルの要求を受信することによって、第三者のサーバ130が、第2の識別子ベクトルを暗号化し、暗号化した第2の識別子ベクトルをデータ処理システム110に送信することを引き起こす、またはトリガすることができる。第三者のサーバ130が第1の識別子ベクトルを受信することによっても、第三者のサーバ130が、第2の識別子ベクトルを暗号化し、暗号化した第2の識別子ベクトルをデータ処理システム110に送信することを引き起こす、またはトリガすることができる。データ処理システム110は、第2の識別子ベクトルまたは第1の識別子ベクトルの要求を第三者のサーバ130に送信する前に、第三者のサーバ130から、第三者のサーバ130に関連する第三者の暗号化に基づいて暗号化された第2の識別子ベクトルを受信することもできる。第三者の暗号化の例としては、非対称暗号化アルゴリズム、暗号学的ハッシュ関数、指紋、または可換である任意の他の暗号化アルゴリズムが挙げられる。数学的に表すと、第三者の暗号化に基づいて暗号化される第2の識別子ベクトルは、たとえば、次の形式であってよい。
【数9】
上式で、
【数10】
は暗号化された第2の識別子ベクトルであり、Yは第2の識別子ベクトルであり、Bは第三者の暗号化行列であり、ID
Yは第2の識別子であり、r
mはm番目に記録された相互作用の第3のパラメータであり、s
mはm番目に記録された相互作用の第4のパラメータである。第三者の暗号化行列Bを使用して、第2の識別子、複数の第3のパラメータ、および複数の第4のパラメータの各々またはいくつかについて、異なる暗号化アルゴリズムを適用することができる。たとえば、第3のパラメータが記録された相互作用の位置識別子であってよく、第4のパラメータが記録された相互作用のタイムスタンプであってよい。さらに、アカウント識別子「cr3a1q@example_mail.com」に関連する1つまたは複数のクライアントデバイス125が、2015年7月15日の時間8:50:02にカリフォルニア州サンノゼにある物理的な店舗から買い物を行い、次いでカリフォルニア州フォルサムから、2015年7月15日の9:19:59にあるウェブページからユーザのクライアントデバイス125上で別の買い物の注文を行い、両方の買い物の注文が、第三者のサーバ130における1つまたは複数のデータベースに記録されたとする。この例では、ID
Yは「cr3a1q@example_mail.com」となり、r
1は「San Jose, CA」となり、s
1は「July 15, 2015 8:50:02」となり、r
2は「Folsom, CA」となり、s
2は「July 15, 2015 9:19:59」となる。
【0033】
データ処理システム110は、第2の識別子および複数の第3のカテゴリ値または複数の第4のカテゴリ値を含む第2の識別子ベクトルを、第三者のサーバ130から受信することができる。複数の第3のカテゴリ値または複数の第4のカテゴリ値は、複数の第3のカテゴリおよび複数の第4のカテゴリに基づくことができる。複数の第3のパラメータおよび複数の第4のパラメータを、複数の第3のパラメータのそれぞれの値、または複数の第4のパラメータのそれぞれの値、またはそれらの組合せに基づいて、複数の第3のカテゴリへと割り当てる、分類する、または区分することができる。複数の第3のパラメータおよび複数の第4のパラメータを、複数の第3のパラメータの第3の量子化に基づいて、複数の第3のカテゴリへと割り当てる、分類する、または区分することができる。複数の第3のパラメータおよび複数の第4のパラメータを、複数の第4のパラメータの第4の量子化に基づいて、複数の第4のカテゴリへと割り当てる、分類する、または区分することができる。第3の量子化は、複数の第3のパラメータのどれがそれぞれの第3のカテゴリへと分類されるのかを規定する、または指定することができる。第4の量子化は、複数の第4のパラメータのどれがそれぞれの第4のカテゴリへと分類されるのかを規定する、または指定することができる。複数の第3のカテゴリの各々および複数の第4のカテゴリの各々を、たとえば、乱数的に生成された英数字の値などの、カテゴリ値またはインデックスに関連付けることができる。以前の例を使用すると、7月15日の12:00:00以前になされた全ての買い物の注文が単一のカテゴリへと分類されると第4の量子化が指定する場合、2015年7月15日の8:50:02になされた買い物の注文および2015年7月15日の9:19:59になされた買い物の注文を同じカテゴリへと分類して、同じカテゴリインデックスに関連付けることができる。数学的に表すと、第3のパラメータとしての位置識別子および第4のパラメータとしてのタイムスタンプ、第2の識別子ベクトルは、たとえば、次の形式であってよい。
【数11】
上式で、
【数12】
は暗号化された第2の識別子ベクトルであり、Yは第2の識別子ベクトルであり、Bは第三者の暗号化行列であり、ID
Yは第2の識別子であり、r
mはm番目に記録された相互作用の第3のパラメータであり、s
mはm番目に記録された相互作用の第4のパラメータであり、<...>
jは、第3のパラメータの値、または第4のパラメータの値、またはそれらの組合せに基づいて第3のパラメータr
mおよび第4のパラメータs
mが分類されたj番目のそれぞれのカテゴリ値を示す。
【0034】
データ処理システム110は、第2の識別子および複数の第3のパラメータと複数の第4のパラメータとの複数の第2の組合せを含む第2の識別子ベクトルを、第三者のサーバ130から受信することができる。複数の第2の組合せの各々は、たとえば、複数の第1のパラメータの各々および複数の第2のパラメータの各々のハッシュ関数または暗号関数に基づいて生成することができる。数学的に表すと、位置識別子のハッシュ関数を第3のパラメータとして使用し、タイムスタンプを第4のパラメータとして使用して、第2の識別子ベクトルは、たとえば、次の形式であってよい。
【数13】
上式で、
【数14】
は暗号化された第2の識別子ベクトルであり、Yは第2の識別子ベクトルであり、ID
Yは第2の識別子であり、Bは第三者の暗号化行列であり、λ
mはm番目に記録された相互作用についての位置識別子であり、τ
mはm番目に記録された相互作用についてのタイムスタンプであり、<...>
jは、位置識別子またはタイムスタンプまたはそれらの組合せに基づいて第3のパラメータλ
mおよびタイムスタンプτ
mが分類されたj番目のそれぞれのカテゴリ値を示し、χ(・)はハッシュ関数である。第三者のサーバ130により適用されるハッシュ関数χ(・)は、暗号化モジュール140により適用されるハッシュ関数h(・)と同じであっても異なってもよい。データ処理システム110は、第2の識別子および複数の第2の組合せを含む第2の識別子ベクトルを、第三者のサーバ130から受信することができる。
【0035】
暗号化モジュール140は、第三者のサーバ130からの第2の識別子ベクトルの受信に応答して、第一者の暗号化に基づいて第2の識別子ベクトルを暗号化することができる。暗号化モジュール140は、第2の識別子、複数の第3のパラメータ、および複数の第4のパラメータを、第一者の暗号化に基づいて暗号化することができる。暗号化モジュール140は、暗号化モジュール140が第1の識別子、複数の第1のパラメータ、および複数の第2のパラメータを暗号化するために使用したのと同じ暗号化技法に基づいて、第2の識別子、複数の第3のパラメータ、および複数の第4のパラメータを暗号化することができる。数学的に表すと、位置識別子のハッシュ関数を第3のパラメータとして、タイムスタンプを第4のパラメータとして使用して、第一者の暗号化に基づいてさらに暗号化される第2の識別子ベクトルは、たとえば、次の形式であってよい。
【数15】
上式で、
【数16】
は第一者の暗号化および第三者の暗号化により2重に暗号化された第2の識別子ベクトルであり、
【数17】
は第一者の暗号化により暗号化された第2の識別子ベクトルであり、Yは第2の識別子ベクトルであり、Bは第三者の暗号化行列であり、Aは第一者の暗号化行列であり、ID
Yは第2の識別子であり、λ
mはm番目に記録された相互作用についての位置識別子であり、τ
mはm番目に記録された相互作用についてのタイムスタンプであり、<...>
jは位置識別子またはタイムスタンプまたはそれらの組合せに基づいて第3のパラメータλ
mおよびタイムスタンプτ
mが分類されたj番目のそれぞれのカテゴリ値を示し、χ(・)はハッシュ関数である。
【0036】
マッピングモジュール135は、複数の第1のパラメータのうちのいくつかと複数の第3のパラメータのうちのいくつかとの間、および複数の第2のパラメータのうちのいくつかと複数の第4のパラメータのうちのいくつかとの間の一致に基づいて、第1の識別子ベクトルと第2の識別子ベクトルの間の相関計数を決定することができる。マッピングモジュール135は、複数の第1のカテゴリと複数の第2のカテゴリの間に対する複数の第3のカテゴリと複数の第4のカテゴリの一致に基づいて、複数のカテゴリのうちのそれぞれのカテゴリについての相関計数を決定することができる。一致は、複数の第1のパラメータのうちのいくつかと複数の第3のパラメータのうちのいくつかとの間、および複数の第2のパラメータのうちのいくつかと複数の第4のパラメータのうちのいくつかとの間の、識別情報、類似性、相関、または対応を示すことができる。たとえば、第1の識別子ベクトルは、カリフォルニア州サンノゼから2015年7月15日の14:00:00から16:00:00の間に生じたウェブサイト要求についてのカテゴリに区分される、第1のパラメータとしての位置パラメータおよび第2のパラメータとしてのタイムスタンプを含むことができる。さらに、第2の識別子ベクトルは、カリフォルニア州サンノゼから2015年7月15日の14:00:00から16:00:00の間に生じた買い物の注文についてのカテゴリに区分される、第3のパラメータとしての位置パラメータおよび第4のパラメータとしてのタイムスタンプを含むことができる。この例では、第1の識別子ベクトルと第2の識別子ベクトルの両方が、同じ第一者の暗号化および同じ第三者の暗号化に基づいて2重に暗号化してあってよい。マッピングモジュール135は、カテゴリからの暗号が同一に一致することに基づいて、暗号化された第1のパラメータと暗号化された第3のパラメータの間および暗号化された第2のパラメータと暗号化された第4のパラメータの間が一致すると決定することができる。複数の暗号化された第1のパラメータと複数の暗号化された第3のパラメータの間および複数の暗号化された第2のパラメータと複数の暗号化された第4のパラメータの間が一致するとの決定に応答して、マッピングモジュール135は、相関計数を増分することができる。
【0037】
マッピングモジュール135は、複数の第1のパラメータのうちのいくつかが複数の第3のパラメータから第1のマージン内にあり、複数の第2のパラメータのうちのいくつかが複数の第4のパラメータから第2のマージン内にあることに基づいて、相関計数を決定することができる。マッピングモジュール135は、複数の第1のカテゴリ値のうちのいくつかが複数の第3のカテゴリ値からカテゴリマージン内にあり、複数の第2のカテゴリ値のうちのいくつかが複数の第4のパラメータから第2のマージン内にあることに基づいて、相関計数を決定することができる。マッピングモジュール135は、複数の第1のパラメータのうちのいくつかが複数の第3のパラメータのうちのいくつかから閾値距離内にあり、複数の第2のパラメータのうちのいくつかが時間窓内にあることに基づいて、相関計数を決定することができる。たとえば、第1の識別子ベクトルは、郵便番号95630から2015年7月15日の14:00:00から16:00:00の間に生じたウェブサイト要求についてのカテゴリに区分される、第1のパラメータとしての位置パラメータおよび第2のパラメータとしてのタイムスタンプを含むことができる。さらに、第2の識別子ベクトルは、郵便番号95763から2015年7月15日の16:00:00から18:00:00の間に生じた買い物の注文についてのカテゴリに区分される、第3のパラメータとしての位置パラメータおよび第4のパラメータとしてのタイムスタンプを含むことができる。第1の識別子ベクトルと第2の識別子ベクトルのそれぞれのカテゴリインデックスは、第一者の暗号化および第三者の暗号化により2重に暗号化してあってよい。この例では、閾値距離を隣接する郵便番号として指定することができ、タイムスタンプを連続する時間枠として指定することができる。マッピングモジュール130は、1つまたは複数のデータベース145にある郵便番号のリストにアクセスして、郵便番号95630と郵便番号95763が互いに隣接することを決定することができる。マッピングモジュール130は、時間枠14:00:00から16:00:00が16:00:00から18:00:00と連続していると決定することができる。これらの決定に応答して、マッピングモジュール135は、第1のパラメータと第3のパラメータの間および第2のパラメータと第4のパラメータの間が一致すると決定し、それぞれのカテゴリについて相関計数を増分することができる。
【0038】
マッピングモジュール135は、第1の識別子ベクトルと第2の識別子ベクトルの間の相関計数が判断閾値より上であることに基づいて、第1の識別子が第2の識別子に対応することを決定することができる。判断閾値は、とりわけ、整数、小数、または百分率に基づくことができる。判断閾値は、とりわけ、一定である、変動する、または乱数的に生成することもできる。マッピングモジュール135は、複数の第1のパラメータ、複数の第2のパラメータ、複数の第3のパラメータ、および複数の第4のパラメータの長さに基づいて判断閾値を決定することができる。たとえば、複数の第1のパラメータおよび複数の第2のパラメータの長さは、各々が15,000であってよい。さらに、複数の第3のパラメータおよび複数の第4のパラメータの長さは、各々が3,000であってよい。この例では、マッピングモジュール135は、複数の第1のパラメータおよび複数の第2のパラメータの長さに対する複数の第3のパラメータおよび複数の第4のパラメータの長さの比率を計算することができる。マッピングモジュール135は、次いで、それらの長さの間の比率の小数倍係数に基づいて、相関計数の判断閾値を決定することができる。この例では、マッピングモジュール135は、次いで、相関計数が判断閾値より上であることに基づいて、第1の識別子(たとえば、「x345q$」)が第2の識別子(たとえば、「cr3a1q@example_mail.com」)に対応することを決定することができる。
【0039】
マッピングモジュール135は、第1の識別子が第2の識別子に対応するとの決定に応答して、第1の識別子と第2の識別子の両方のための1つの識別子キーを生成することができる。この1つの識別子キーは、たとえば、とりわけ、英数字文字列、乱数的に生成した数値、または文字列の形式であってよい。この1つの識別子キーは、データ処理システム110の1つまたは複数のデータベース145に記憶された第1の識別子を含むことができる。たとえば、第1の識別子が電子メールアドレスなどのアカウント識別子である場合、マッピングモジュール135は、電子メールアドレスを1つの識別子キーとして設定することができる。
【0040】
マッピングモジュール135は、1つの識別子キーを生成してから所定の時間が経過したと決定することができる。マッピングモジュール135は、所定の時間が経過したとの決定に応答して、第1の識別子ベクトルおよび第2の識別子ベクトルを削除することができる。マッピングモジュール135は、1つの識別子キーの生成に応答して、第1の識別子ベクトルおよび第2の識別子ベクトルを削除することができる。マッピングモジュール135は、相関計数が判断閾値より下の許容範囲内であるとの決定に応答して、第1の識別子および第2の識別子についての1つの識別子キーを生成するために、1つまたは複数のデータベース145に第1の識別子ベクトルおよび第2の識別子ベクトルを記憶することができる。
【0041】
図2は、例示の実装形態に従う、異なるデータセット間の識別子を一致させるための、一例のコンピュータネットワーク環境200を描くブロック図である。環境200は、システム100の部分集合を含み、データ処理システム110と第三者のサーバ130の間のデータフロー205、210、および215の送受信に焦点を合わせることができる。この例では、データ処理システム110は、第三者のサーバ130に対して、暗号化された第1の識別子ベクトルAXを送信することができ、ここでAは第一者の暗号化行列であり、Xは第1の識別子ベクトルである(識別子205)。暗号化された第1の識別子ベクトルAXを送信することによって、第三者のサーバ130が、第三者の暗号化に基づいて、第1の識別子ベクトルをさらに暗号化することを引き起こす、またはトリガすることができる。データ処理システム110は、その後、第三者のサーバ130から、2重に暗号化された第1の識別子ベクトルBAXを受信することができ、ここで、Bは第三者の暗号化行列である(識別子210)。暗号化された第1の識別子ベクトルの送信とは独立に、または送信の後に、データ処理システム110は、第三者のサーバ130から、暗号化された第2の識別子ベクトルBYを受信することができ、ここで、Aは第二者の暗号化行列であり、Yは第1の識別子ベクトルである(識別子215)。第三者のサーバ130から、単独に暗号化された第2の識別子ベクトルを受信すると、データ処理システム110は、第一者の暗号化に基づいて、既に暗号化された第2の識別子ベクトルをさらに暗号化することができる(ABY)。データ処理システム110は、第1の識別子ベクトルのパラメータと第2の識別子ベクトルのパラメータの間の一致に基づいて、第1の識別子と第2の識別子が互いに対応するかを決定することができる。対応するとの決定に基づいて、データ処理システムは、第1の識別子と第2の識別子の両方について1つの識別子キーを生成することができる。
【0042】
図3は、例示の実装形態に従う、異なるデータセット間の識別子を一致させる例示の方法300を描く流れ図である。方法300に関して本明細書に記載される機能性は、
図1に示されるデータ処理システム110またはデータ処理システム110の様々なモジュールによって実施または実行することができる。方法300は、数秒または数分ごとに1回から所定の日数ごとに1回にわたる様々な時間間隔で実施または実行することができる。方法300は、たとえば、所定の数の複数の第1のパラメータおよび複数の第2のパラメータを蓄積することなどの、データ処理システム110により決定または受信される条件といった条件を満足すると、実施または実行することができる。方法300は、コンテンツプロバイダのコンピューティングデバイス115、コンテンツ発行元のコンピューティングデバイス120、1つまたは複数のクライアントデバイス125、または第三者のサーバ130からの要求に応答して実施することができる。
【0043】
方法300は、第1の識別子ベクトルを第三者のサーバ130に送信することができる(行為305)。たとえば、データ処理システム110は、ネットワーク105を介して、第1の識別子ベクトルを第三者のサーバ130に送信することができる。データ処理システム110は、第一者の暗号化に基づいて暗号化された第1の識別子ベクトルを送信することができる。第1の識別子ベクトルは、第1の識別子、複数の第1のパラメータ、および複数の第2のパラメータを含むことができる。複数の第1のパラメータの各々および複数の第2のパラメータの各々は、第1の識別子に関連する1つまたは複数のクライアントデバイス125による、データ処理システム110とのネットワーク活動または相互作用のログデータを含むことができる。
【0044】
方法300は、第三者のサーバにより暗号化された第1の識別子ベクトルを受信することができる(行為310)。たとえば、データ処理システム110は、ネットワーク105を介して、第三者のサーバ130により暗号化された第1の識別子ベクトルを受信することができる。第1の識別子ベクトルに適用される暗号化技法は、第三者のサーバ120に関連する第三者の暗号化であってよい。
【0045】
方法300は、第三者のサーバにより暗号化された第2の識別子ベクトルを受信することができる(行為315)。たとえば、データ処理システム110は、ネットワークを介して、第三者のサーバ130から第2の識別子ベクトルを受信することができる。第2の識別子ベクトルは、第2の識別子、複数の第3のパラメータ、および複数の第4のパラメータを含むことができる。複数の第3のパラメータの各々および複数の第4のパラメータの各々は、第2の識別子に関連する1つまたは複数のクライアントデバイス125による、第三者のサーバ130とのネットワーク活動または相互作用のログデータを含むことができる。第2の識別子ベクトルに適用される暗号化技法は、第三者のサーバ130に関連する第三者の暗号化であってよい。
【0046】
方法300は、第1の識別子ベクトルと第2の識別子ベクトルの間の相関計数を決定することができる(行為320)。たとえば、データ処理システム110は、複数の第1のパラメータのうちのいくつかと複数の第3のパラメータのうちのいくつかとの間、および複数の第2のパラメータのうちのいくつかと複数の第4のパラメータのうちのいくつかとの間が一致するかどうかの決定に基づいて、第1の識別子ベクトルと第2の識別子ベクトルの間の相関計数を決定することができる。データ処理システム110は、たとえば、複数の第1のパラメータのうちの1つが複数の第2のパラメータのうちの1つから第1のマージン内にあるとき、および複数の第3のパラメータのうちの1つが複数の第4のパラメータのうちの1つから第2のマージン内にあるときに、それぞれのパラメータ間が一致することを決定することができる。
【0047】
方法300は、相関計数に基づいて、第1の識別子が第2の識別子に対応することを決定することができる(行為325)。たとえば、データ処理システム110は、相関計数が判断閾値より上であることに基づいて、第1の識別子が第2の識別子に対応することを決定することができる。データ処理システム110は、複数の第1のパラメータ、複数の第2のパラメータ、複数の第3のパラメータ、および複数の第4のパラメータの長さに基づいて閾値を決定することができる。
【0048】
方法300は、第1の識別子と第2の識別子の両方のための1つの識別子キーを生成することができる(行為330)。たとえば、データ処理システム110は、第1の識別子が第2の識別子に対応するとの決定に応答して、第1の識別子と第2の識別子の両方のための1つの識別子キーを生成することができる。データ処理システム110は、第1の識別子を1つの識別子キーとして設定することができる。
【0049】
図4は、例示の実装形態に従う、本明細書に記載され図示されるシステムおよび方法の要素を実装するのに採用され得る、コンピュータシステム400のための一般的なアーキテクチャを図示するブロック図である。コンピュータシステムまたはコンピューティングデバイス400は、システム100、データ処理システム110、マッピングモジュール135、暗号化モジュール140、または第三者のサーバ130を含む、これらの一部である、またはこれらを実装するために使用することができる。コンピューティングシステム400は、情報を通信するためのバス405または他の通信構成要素、および情報を処理するためバス405に結合されたプロセッサ420または処理回路を含む。コンピューティングシステム400は、情報を処理するためバスに結合された1つまたは複数のプロセッサ420または処理回路も含むことができる。コンピューティングシステム400は、情報およびプロセッサ420が実行する命令を記憶するためにバス405に結合された、ランダムアクセスメモリ(RAM)または他の動的記憶デバイスなどの主メモリ425も含む。主メモリ425は、プロセッサ420が命令を実行する期間に、位置情報、一時的な変数、または他の中間的情報を記憶するために使用することもできる。コンピューティングシステム400は、プロセッサ420のための静的情報および命令を記憶するためにバス405に結合された読取り専用メモリ(ROM)420または他の静的記憶デバイスをさらに含むことができる。情報および命令を持続的に記憶するために、固体デバイス、磁気ディスク、または光学ディスクなどの記憶デバイス425がバス405に結合される。
【0050】
コンピューティングシステム400は、情報をユーザに表示するために、液晶ディスプレイまたはアクティブマトリクス型ディスプレイなどのディスプレイ435にバス405を介して結合することができる。プロセッサ420に情報およびコマンド選択を通信するために、英数字キーおよび他のキーを含むキーボードなどの入力デバイス415をバス405に結合することができる。入力デバイス415は、タッチスクリーンディスプレイ435を含むことができる。入力デバイス415は、プロセッサ420に方向情報およびコマンド選択を通信するため、およびディスプレイ435上のカーソルの動きを制御するために、マウス、トラックボール、またはカーソル方向キーなどのカーソル制御装置を含むこともできる。
【0051】
本明細書に記載されるプロセス、システム、および方法は、プロセッサ420が主メモリ425または読取り専用メモリROM420に含有される命令の配列を実行することに応じて、コンピューティングシステム400によって実装することができる。そのような命令は、記憶デバイス425などの別のコンピュータ可読媒体から主メモリ425へと読み出すことができる。主メモリ425中に含有される命令の配列の実行によって、コンピューティングシステム400に、本明細書に記載された例示的なプロセスを実施させる。多重処理装置中の1つまたは複数のプロセッサを、主メモリ425中に含有される命令を実行するために採用することもできる。代替実装形態では、例示的な実装形態を実現するために、ハードワイヤード回路をソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて使用することができる。したがって、実装形態は、ハードウェア回路とソフトウェアの何らかの特定の組合せに限定されない。
【0052】
例示のコンピューティングシステムが
図4に記載されているが、本明細書に記載される主題および機能的な動作の実装形態は、他のタイプのデジタル電子回路で、または本明細書に開示される構造およびそれらの構造的な等価物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェアで、またはそれらのうちの1つもしくは複数の組合せで実装することができる。
【0053】
本明細書に記載される主題および動作の実装形態は、デジタル電子回路で、または本明細書に開示される構造およびそれらの構造的な等価物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェアで、またはそれらのうちの1つもしくは複数の組合せで実装することができる。本明細書に記載される主題は、データ処理装置が実行するため、またはデータ処理装置の動作を制御するために、1つまたは複数のコンピュータ記憶媒体上に符号化される、たとえば、コンピュータプログラム命令の1つまたは複数の回路といった、1つまたは複数のコンピュータプログラムとして実装することができる。代替または追加として、プログラム命令は、データ処理装置が実行するために好適な受信装置へ送信するための情報を符号化するために生成される、たとえば機械生成した電気、光学、または電磁信号といった、人工的に生成した伝播信号上で符号化することができる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであってよく、または含まれてよい。さらに、コンピュータ記憶媒体は伝播信号ではないが、コンピュータ記憶媒体は、人工的に生成した伝播信号中に符号化されるコンピュータプログラム命令の発生源または行き先であってよい。コンピュータ記憶媒体は、1つもしくは複数の別個の構成要素もしくは媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であってもよく、または含まれてもよい。
【0054】
本明細書中に記載される動作は、1つもしくは複数のコンピュータ可読記憶デバイス上に記憶される、または他の発生源から受信されるデータ上に、データ処理装置が実施することができる。
【0055】
「データ処理装置」または「コンピューティングデバイス」という用語は、例として、プログラム可能プロセッサ、コンピュータ、システムオンチップもしくは多チップ上のシステム、または上記の組合せを含む、データを処理するための、様々な装置、デバイス、およびマシンを包含する。装置は、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)といった専用論理回路を含むことができる。装置は、ハードウェアに加えて、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想機械、またはそれらのうちの1つもしくは複数の組合せからなるコードといった、問題のコンピュータプログラムのための実行環境を作るコードを含むこともできる。装置および実行環境は、ウェブサービス、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルのインフラストラクチャを実現することができる。
【0056】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている)は、コンパイル言語もしくはインタープリタ言語、宣言型言語もしくは手続き型言語を含む、任意の形式のプログラミング言語で書くことができ、スタンドアロン型プログラムもしくは回路、構成要素、サブルーチン、オブジェクト、またはコンピューティング環境中で使用するのに好適な他のユニットを含む任意の形式で展開することができる。コンピュータプログラムは、ファイルシステム中のファイルに対応する場合があるが、必ずしも対応する必要はない。プログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語文書中に記憶される1つまたは複数のスクリプト)を保持するファイルの一部、問題のプログラム専用の単一のファイルの中、または複数の協調するファイル(たとえば、1つもしくは複数の回路、サブプログラム、またはコードの部分を記憶するファイル)の中に記憶することができる。コンピュータプログラムは、1つのコンピュータ上、または1つの場所に配置される、もしくは複数の場所に分散されて通信ネットワークによって相互接続される複数のコンピュータ上で実行するために展開することができる。
【0057】
コンピュータプログラムの実行に好適なプロセッサとしては、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサが挙げられる。一般的に、プロセッサは、読取り専用メモリまたはランダムアクセスメモリまたは両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令に従って行為を実施するためのプロセッサならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般的に、コンピュータは、たとえば、磁気ディスク、光磁気ディスク、または光ディスクといったデータを記憶するための1つまたは複数の大容量記憶デバイスも含む、または、1つもしくは複数の大容量記憶デバイスからデータを受信することまたは1つもしくは複数の大容量記憶デバイスにデータを送信することまたはその両方のために動作可能に結合されもする。しかし、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、ほんのいくつかの例を挙げれば、たとえば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオプレイヤもしくはモバイルビデオプレイヤ、ゲームコンソール、全地球測位システム(GPS)受信器、または携帯型記憶デバイス(たとえば、汎用シリアルバス(USB)フラッシュドライブ)といった、別のデバイス中に組み込むことができる。コンピュータプログラム命令およびデータを記憶するのに好適なデバイスは、例として、たとえばEPROM、EEPROM、およびフラッシュメモリデバイスといった半導体メモリデバイス、たとえば内蔵ハードディスクまたはリムーバブルディスクといった磁気ディスク、光磁気ディスク、ならびにCD ROMディスクおよびDVD-ROMディスクを含む、全ての形式の不揮発性メモリ、媒体、およびメモリデバイスが挙げられる。プロセッサおよびメモリは、専用論理回路で補助されるか、または専用論理回路中に組み込むことができる。
【0058】
ユーザとの相互作用を実現するために、本明細書に記載される主題の実装形態は、ユーザに情報を表示するための、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタといった表示デバイス、ならびに、ユーザがコンピュータに入力を提供できる、キーボードおよびたとえばマウスまたはトラックボールといったポインティングデバイスを有するコンピュータ上に実装することができる。ユーザとの相互作用を実現ために、他の種類のデバイスを、同様に使用することができる。たとえば、ユーザに提供されるフィードバックは、たとえば視覚的フィードバック、音響的フィードバック、または触覚的フィードバックといった任意の形式の感覚フィードバックであってよい。また、ユーザからの入力は、音響、音声、または触覚的入力を含む任意の形式で受信することができる。
【0059】
本明細書が多くの具体的な実装の詳細を含有する一方で、これらが、任意の発明または特許請求され得るものの範囲についての制限と見なされるべきではなく、むしろ、特定の発明の特定の実装形態に特有の特徴の記載と見なされるべきである。本明細書中で別個の実装形態の文脈で記載されるある種の特徴を、単一の実装形態で組み合わせて実装することもできる。逆に、単一の実装形態の文脈で記載される様々な特徴を、複数の実装形態で別個に、または任意の好適な部分的な組合せで実装することもできる。さらに、特徴は、ある種の組合せで働くと上では記載され、そのように最初に主張される場合さえあるが、特許請求される組合せからの1つまたは複数の特徴を、いくつかの場合に組合せから取り除くことができ、特許請求される組合せは、部分的な組合せまたは部分的な組合せの変形形態を対象にする場合がある。
【0060】
主題の特定の実装形態を記載してきた。他の実装形態は、以下の請求項の範囲内である。動作は、特定の順序で図面中に描かれているが、このことによって、そのような動作が示される特定の順序もしくは逐次的な順序で実施されるべきである、または全ての図示された動作を実施するのが必要であると要求していると理解されるべきではない。本明細書に記載する行為を、異なる順序で実施することができる。加えて、添付図面中に描かれているプロセスは、所望の結果を得るために、必ずしも、示された特定の順序または逐次的な順序を必要とするわけではない。特定の実装形態では、マルチタスクおよび並列処理が有利な場合がある。
【0061】
様々なシステム構成要素の区切りは、全ての実装形態における区切りを必要とせず、記載されるプログラム構成要素を、単一のハードウェアまたはソフトウェア製品中に含むことができる。たとえば、選択モジュール130または選択要因決定モジュール135が、単一のモジュール、1つもしくは複数の処理回路を有する論理回路、またはオンラインコンテンツアイテムの配置システムの部分であってよい。
【0062】
今までいくつかの例示的な実装形態を記載してきたが、上記は例示であって限定ではなく、例として呈示してきたことが明らかである。特に、本明細書に呈示した例の多くが方法の行為またはシステム要素の具体的な組合せを含むが、これらの行為およびこれらの要素は、同じ目的を達成するために、他の方法で組み合わせることができる。1つの実施形態に関して議論された行為、要素、および特徴が、他の1つまたは複数の実装形態中の同様の役割から除かれることは意図していない。
【0063】
本明細書で使用する言い回しおよび用語法は、説明のためであり、限定と考えるべきでない。「含む(including)」、「備える(comprising)」、「有する(having)」、「含有する(containing)」、「含む(involving)」、「によって特徴付けられる(characterized by)」、「ことを特徴とする(characterized in that)」およびそれらの変形形態の本明細書における使用は、その後にリスト化されるアイテム、それらの等価物、および追加アイテム、ならびにもっぱらその後にリスト化されるアイテムからなる代替実装形態を包含することを意味する。一実装形態では、本明細書に記載されるシステムおよび方法は、記載された要素、行為、もしくは構成要素の1つ、1つより多いものの各組合せ、または全てからなる。
【0064】
本明細書において単数形で言及される、システムおよび方法の実装形態または要素または行為に対する任意の言及は、複数のこれらの要素を含む実装形態も包含することができ、本明細書における、任意の実装形態または要素または行為に対する複数形の任意の言及は、単数の要素のみを含む実装形態も包含することができる。単数形または複数形での言及が、現在開示されるシステムもしくは方法、それらの構成要素、行為、または要素を、単数形または複数形の構成に限定することは意図していない。任意の情報、行為、または要素に基づく任意の行為または要素への言及は、行為または要素が少なくとも部分的に任意の情報、行為、または要素に基づく実装形態を含むことができる。
【0065】
本明細書に開示される任意の実装形態は、任意の他の実装形態または実施形態と組み合わせることができ、「実装形態」、「いくつかの実装形態」、「代替実装形態」、「様々な実装形態」、「一実装形態」などの言及は、必ずしも相互に排他的ではなく、実装形態に関して記載された具体的な特徴、構造、または特性を、少なくとも1つの実装形態または実施形態に含むことができることを示すことが意図される。本明細書で使用するそのような用語は、必ずしも全てが同じ実装形態を言及しているわけではない。任意の実装形態は、本明細書に開示される態様および実装形態と一致する任意の形態で、包括的または排他的に、任意の他の実装形態と組み合わせることができる。
【0066】
「または、もしくは(or)」という言及は、包括的であると考えることができ、したがって、「または、もしくは」を使用して記載される任意の用語は、記載される用語の単数、1つよりも多く、および全てのいずれかを示すことができる。
【0067】
図面、詳細な説明、または任意の請求項の中の技術的な特徴に参照符号が続く場合、参照符号は、図面、詳細な説明、および請求項の明瞭さを増すために含まれている。したがって、参照符号があってもなくても、任意の請求項要素の範囲に対し、何ら限定的な効果はない。
【0068】
本明細書に記載されるシステムおよび方法は、その特性から逸脱することなく、他の具体的な形式で具現化することができる。上記の実装形態は、記載されたシステムおよび方法の限定ではなく、例示である。本明細書に記載されるシステムおよび方法の範囲は、したがって、上記の記載ではなく添付される請求項によって示され、請求項の等価物の意味および範囲内に入る変更実施形態はそこに含まれる。