(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-30
(45)【発行日】2024-08-07
(54)【発明の名称】ネットワーク属性および実体に基づくアクセス権限を使用するネットワークの匿名化
(51)【国際特許分類】
G06F 21/62 20130101AFI20240731BHJP
G16H 10/60 20180101ALI20240731BHJP
【FI】
G06F21/62 354
G16H10/60
(21)【出願番号】P 2022518015
(86)(22)【出願日】2020-09-17
(86)【国際出願番号】 EP2020075975
(87)【国際公開番号】W WO2021058368
(87)【国際公開日】2021-04-01
【審査請求日】2023-02-24
(32)【優先日】2019-09-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】チョウドハリー、オリヴィア
(72)【発明者】
【氏名】カランポニオティス、パナギオティス
(72)【発明者】
【氏名】パーク、ユンヨン
(72)【発明者】
【氏名】シラ、イッサ
(72)【発明者】
【氏名】ダス、アマレンドラ
【審査官】小林 秀和
(56)【参考文献】
【文献】特表2014-529785(JP,A)
【文献】米国特許出願公開第2014/0380489(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G16H 10/60
(57)【特許請求の範囲】
【請求項1】
システムであって、
コンピュータ実行可能コンポーネントを格納するメモリと、
前記メモリに格納された前記コンピュータ実行可能コンポーネントを実行するプロセッサとを備え、前記コンピュータ実行可能コンポーネントが
匿名化コンポーネントを含み、前記匿名化コンポーネントが、
匿名化されたネットワークのプライバシーのレベルを要求し且つネットワーク情報に基づいて生成されたプライバシー制約と匿名化されたネットワークの有用性制約とを使用して、匿名性手法を識別し、最適化基準に従って匿名性手法を選択し、ネットワークのネットワーク属性および前記ネットワークの第1のノードのノード属性に基づいてネットワークのネットワーク情報を
、前記選択された匿名性手法に従って匿名化することによって匿名化されたネットワークを生成する
、
前記システム。
【請求項2】
システムであって、
コンピュータ実行可能コンポーネントを格納するメモリと、
前記メモリに格納された前記コンピュータ実行可能コンポーネントを実行するプロセッサとを備え、前記コンピュータ実行可能コンポーネントが、
ネットワークのネットワーク属性および前記ネットワークの第1のノードのノード属性に基づいてネットワークのネットワーク情報を匿名化することによって匿名化されたネットワークを生成する匿名化コンポーネントを含
み、ここで、前記ネットワーク情報を匿名化することが、前記匿名化されたネットワークのプライバシーのレベルを要求するプライバシー制約にさらに基づき、
前記コンピュータ実行可能コンポーネントが、前記ネットワーク情報に基づいて前記プライバシー制約を生成する制約コンポーネントをさらに含む、
前記システム。
【請求項3】
前記第1のノードと第2のノードの間の接続に対応する接続情報が、エッジ属性を含み、前記ネットワーク情報を匿名化することが、前記エッジ属性にさらに基づく、請求項1
又は2に記載のシステム。
【請求項4】
前記ネットワーク情報を匿名化することが、前記匿名化されたネットワークのプライバシーのレベルを要求するプライバシー制約にさらに基づく、請求項1に記載のシステム。
【請求項5】
前記コンピュータ実行可能コンポーネントが、前記ネットワーク情報に基づいて前記プライバシー制約を生成する制約コンポーネントをさらに含む、請求項4に記載のシステム。
【請求項6】
前記制約コンポーネントが、前記第1のノードのアクセス権限をさらに決定し、前記制約コンポーネントが、前記アクセス権限にさらに基づいて前記プライバシー制約を生成する、請求項
2又は5に記載のシステム。
【請求項7】
前記ネットワーク情報を匿名化することが、前記匿名化されたネットワークの有用性制約にさらに基づいており、前記有用性制約が、コンシューマの要件に基づいて、前記匿名化されたネットワークの有用性の第1の尺度を含む、請求項
2又は4に記載のシステム。
【請求項8】
前記コンピュータ実行可能コンポーネントが、前記ネットワーク情報の前記匿名化の匿名化特性に基づいて、前記ネットワーク情報の前記匿名化を最適化するか、または前記ネットワーク情報の前記匿名化の最適性を向上させる前記有用性制約を選択する最適性コンポーネントをさらに含む、請求項
7に記載のシステム。
【請求項9】
前記匿名化特性が、前記ネットワーク情報の前記匿名化の間の情報の損失の第2の尺度を含む、請求項
8に記載のシステム。
【請求項10】
前記匿名化特性が、前記ネットワーク情報の前記匿名化の間に実行された前記ネットワークの編集の数を含む、請求項
8に記載のシステム。
【請求項11】
前記ネットワーク情報が、複数の患者の医療情報を含む、請求項1
~10のいずれか1項に記載のシステム。
【請求項12】
前記ネットワークが、複数のユーザのソーシャル・メディア・ネットワークを含む、請求項1
~11のいずれか1項に記載のシステム。
【請求項13】
コンピュータ実装方法であって、
プロセッサが、
ネットワークのネットワーク属性を生成することと、
前記ネットワークの前記ネットワーク属性および第1のノードのノード属性に基づいて前記ネットワークのネットワーク情報を匿名化することによって匿名化されたネットワークを生成することとを含み、
前記方法が、
前記プロセッサによって、接続されたノードのネットワーク情報に基づいてプライバシー制約を生成することであって、前記プライバシー制約が、匿名化されたネットワークのプライバシーのレベルを要求する、前記生成すること
をさらに含む、
前記コンピュータ実装方法。
【請求項14】
前記ネットワーク属性が、接続されたノードのネットワークに関するものであり、複数の前記接続されたノードのうちのノードがノード属性を含むことによって複数のノード属性をもたらし、前記ネットワーク属性を生成することが、前記複数のノード属性に基づいており、前記方法が、
前記ネットワーク属性、前記複数のノード属性、および前記プライバシー制約に基づいて、前記接続されたノードの前記ネットワーク情報を匿名化することによって、前記匿名化されたネットワークを生成することと
をさらに含む、請求項
13に記載のコンピュータ実装方法。
【請求項15】
ネットワーク情報の匿名化を容易にするコンピュータ・プログラムであって、
プロセッサに、
接続されたノードのネットワークのネットワーク属性を生成することであって、複数の前記接続されたノードのうちのノードがノード属性を含むことによって複数のノード属性をもたらし、前記ネットワーク属性を生成することが、前記複数のノード属性に基づく、前記生成することと、
前記接続されたノードのネットワーク情報に基づいてプライバシー制約を生成することであって、前記プライバシー制約が、匿名化されたネットワークのプライバシーのレベルを要求する、前記生成することと、
前記ネットワーク属性、前記複数のノード属性、および前記プライバシー制約に基づいて、前記接続されたノードの前記ネットワーク情報を匿名化することによって、前記匿名化されたネットワークを生成することと、を実行させるためのコンピュータ・プログラム。
【請求項16】
前記ネットワーク情報を匿名化することが、前記匿名化されたネットワークの有用性制約にさらに基づいており、前記有用性制約が、コンシューマの要件に基づいて、前記匿名化されたネットワークの有用性の第1の尺度を含む、請求項
15に記載のコンピュータ・プログラム。
【請求項17】
前記プロセッサに、
前記ネットワーク情報の前記匿名化の間の情報の損失の第2の尺度に基づいて、前記ネットワーク情報の前記匿名化を最適化するか、または前記ネットワーク情報の前記匿名化の最適性を向上させる前記有用性制約を選択することを、さらに実行させるための請求項
16に記載のコンピュータ・プログラム。
【請求項18】
ネットワーク情報の匿名化を容易にするコンピュータ実装方法であって、
プロセッサが、
接続されたノードのネットワークのネットワーク属性を生成することであって、複数の前記接続されたノードのうちのノードがノード属性を含むことによって複数のノード属性をもたらし、前記ネットワーク属性を生成することが、前記複数のノード属性に基づく、前記生成することと、
前記接続されたノードのネットワーク情報に基づいてプライバシー制約を生成することであって、前記プライバシー制約が、匿名化されたネットワークのプライバシーのレベルを要求する、前記生成することと、
前記ネットワーク属性、前記複数のノード属性、および前記プライバシー制約に基づいて、前記接続されたノードの前記ネットワーク情報を匿名化することによって、前記匿名化されたネットワークを生成することと
を実行する、前記コンピュータ実装方法。
【請求項19】
前記ネットワーク情報を匿名化することが、前記匿名化されたネットワークの有用性制約にさらに基づいており、前記有用性制約が、コンシューマの要件に基づいて、前記匿名化されたネットワークの有用性の第1の尺度を含む、請求項18に記載のコンピュータ実装方法。
【請求項20】
前記プロセッサが、
前記ネットワーク情報の前記匿名化の間の情報の損失の第2の尺度に基づいて、前記ネットワーク情報の前記匿名化を最適化するか、または前記ネットワーク情報の前記匿名化の最適性を向上させる前記有用性制約を選択すること
をさらに実行する、請求項19に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータ・ネットワークに関し、より詳細には、コンピュータ・ネットワークを匿名化することに関する。
【発明の概要】
【0002】
以下に、本発明の1つまたは複数の実施形態の基本的理解を可能にするための概要を示す。この概要は、主要な要素または重要な要素を特定するよう意図されておらず、特定の実施形態の範囲または特許請求の範囲を正確に説明するよう意図されていない。この概要の唯一の目的は、後で提示されるより詳細な説明のための前置きとして、概念を簡略化された形態で提示することである。本明細書に記載された1つまたは複数の実施形態では、ネットワーク属性、ノード属性、およびノード間の接続のエッジ属性を含む因子に基づいてネットワークを匿名化することを容易にすることができるデバイス、システム、方法、およびコンピュータ実装方法が説明される。
【0003】
実施形態によれば、システムは、コンピュータ実行可能コンポーネントを格納できるメモリ、およびメモリに格納されたコンピュータ実行可能コンポーネントを実行できるプロセッサを備えることができ、コンピュータ実行可能コンポーネントは、ネットワークのネットワーク属性およびネットワークの第1のノードのノード属性に基づいてネットワークのネットワーク情報を匿名化することによって匿名化されたネットワークを生成することができる匿名化コンポーネントを含む。前述の実施形態の変形によれば、第1のノードと第2のノードの間の接続に対応する接続情報は、エッジ属性を含むことができ、ネットワーク情報を匿名化することは、エッジ属性にさらに基づくことができる。前述の実施形態の別の変形によれば、ネットワーク情報を匿名化することは、匿名化されたネットワークのプライバシーのレベルを要求することができるプライバシー制約にさらに基づくことができる。
【0004】
前述のシステムの追加の実施形態では、システムのコンピュータ実行可能コンポーネントは、ネットワーク情報に基づいてプライバシー制約を生成することができる制約コンポーネントをさらに含むことができる。追加の実施形態の変形では、制約コンポーネントは、プライバシー・ルールにさらに基づいてプライバシー制約を生成することができ、プライバシー・ルールは第1のノードに適用される。さらなる実施形態では、制約コンポーネントは、第1のノードのアクセス権限をさらに決定することができ、制約コンポーネントは、アクセス権限にさらに基づいてプライバシー制約を生成することができる。
【0005】
前述のシステムのさらに別の変形では、ネットワーク情報を匿名化することは、匿名化されたネットワークの有用性制約(utility constraint)にさらに基づくことができ、有用性制約は、コンシューマ(consumer)の要件に基づいて、匿名化されたネットワークの有用性の第1の尺度を含む。この変形にさらに特徴を追加する別の実施形態では、システムのコンピュータ実行可能コンポーネントは、ネットワーク情報の匿名化を最適化するか、またはネットワーク情報の匿名化の最適性を向上させる有用性制約を選択できる最適性コンポーネントをさらに含むことができ、この最適化は、ネットワーク情報の匿名化の匿名化特性(anonymizing characteristic)に基づく。一部の実装では、匿名化特性は、ネットワーク情報の匿名化の間の情報の損失の第2の尺度を含むことができる。他の実装では、匿名化特性は、ネットワーク情報の匿名化の間に実行されたネットワークの編集の数を含むことができる。
【0006】
前述のシステムの実装では、ネットワーク情報は、複数の患者の医療情報を含むことができる。代替として、1つまたは複数の実施形態では、ネットワークは、複数のユーザのソーシャル・メディア・ネットワークを含むことができる。
【0007】
コンピュータ実装方法の1つまたは複数の実施形態は、プロセッサに動作可能に結合されたデバイスによって、ネットワークのネットワーク属性を生成することを含むことができる。さらに、この方法は、デバイスによって、ネットワークのネットワーク属性および第1のノードのノード属性に基づいてネットワークのネットワーク情報を匿名化することによって匿名化されたネットワークを生成することを含むことができる。
【0008】
前述の方法の変形では、第1のノードと第2のノードの間の接続に対応する接続情報は、エッジ属性を含むことができ、ネットワーク情報を匿名化することは、エッジ属性にさらに基づくことができる。この方法の追加の変形では、ネットワーク情報を匿名化することは、匿名化されたネットワークのプライバシーのレベルを要求することができるプライバシー制約にさらに基づくことができる。
【0009】
前述のコンピュータ実装方法の変形では、この方法は、プライバシー・ルールに基づいてプライバシー制約を生成することをさらに含むことができ、プライバシー・ルールは第1のノードに適用されることができる。追加の実施形態では、ネットワーク情報を匿名化することは、匿名化されたネットワークの有用性制約にさらに基づくことができ、有用性制約は、コンシューマの要件に基づいて、匿名化されたネットワークの有用性の尺度を含むことができる。追加の動作を含む方法の実施形態では、この方法は、ネットワーク情報の匿名化の匿名化特性に基づいて、ネットワーク情報の匿名化を最適化することができるか、またはネットワーク情報の匿名化の最適性を向上させることができる、有用性制約を選択することをさらに含むことができる。
【0010】
一連の追加の実施形態では、コンピュータ・プログラム製品は、ネットワーク情報の匿名化を容易にすることができ、コンピュータ・プログラム製品は、プログラム命令が具現化されているコンピュータ可読ストレージ媒体を備え、プログラム命令は、プロセッサに、接続されたノードのネットワークのネットワーク属性をプロセッサによって生成させるようにプロセッサによって実行可能であり、複数の接続されたノードのうちのノードが、ノード属性を含むことができ、複数のノード属性をもたらすことができる。さらに、ネットワーク属性を生成することは、複数のノード属性に基づくことができる。プロセッサは、プロセッサによって、接続されたノードのネットワーク情報に基づいてプライバシー制約を生成することをさらに引き起こされることができ、プライバシー制約は、匿名化されたネットワークのプライバシーのレベルを要求することができる。この実施形態では、プロセッサは、プロセッサによって、ネットワーク属性、複数のノード属性、およびプライバシー制約に基づいて、接続されたノードのネットワーク情報を匿名化することによって、匿名化されたネットワークを生成することを、さらに引き起こされることができる。
【0011】
上記の実施形態の変形では、ネットワーク情報を匿名化することは、匿名化されたネットワークの有用性制約にさらに基づくことができ、有用性制約は、コンシューマの要件に基づいて、匿名化されたネットワークの有用性の第1の尺度を含むことができる。上記のコンピュータ・プログラム製品に基づく別の実施形態では、命令は、プロセッサに、ネットワーク情報の匿名化の間の情報の損失の第2の尺度に基づいて、ネットワーク情報の匿名化を最適化するか、またはネットワーク情報の匿名化の最適性を向上させる有用性制約をプロセッサによって選択することを、さらに実行させる。
【0012】
1つの態様によれば、コンピュータ実行可能コンポーネントを格納するメモリと、メモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサとを備えているシステムが提供されており、コンピュータ実行可能コンポーネントは、ネットワークのネットワーク属性およびネットワークの第1のノードのノード属性に基づいてネットワークのネットワーク情報を匿名化することによって匿名化されたネットワークを生成する匿名化コンポーネントを含む。
【0013】
別の態様によれば、プロセッサに動作可能に結合されたデバイスによって、ネットワークのネットワーク属性を生成することと、デバイスによって、ネットワークのネットワーク属性および第1のノードのノード属性に基づいてネットワークのネットワーク情報を匿名化することによって匿名化されたネットワークを生成することとを含む、コンピュータ実装方法が提供されている。
【0014】
別の態様によれば、ネットワーク情報の匿名化を容易にするコンピュータ・プログラム製品が提供されており、コンピュータ・プログラム製品は、プログラム命令が具現化されているコンピュータ可読ストレージ媒体を備え、プログラム命令は、プロセッサに、プロセッサによって、接続されたノードのネットワークのネットワーク属性を生成することであって、複数の接続されたノードのうちのノードがノード属性を含むことによって複数のノード属性をもたらし、ネットワーク属性を生成することが、複数のノード属性に基づく、生成することと、プロセッサによって、接続されたノードのネットワーク情報に基づいてプライバシー制約を生成することであって、プライバシー制約が匿名化されたネットワークのプライバシーのレベルを要求する、生成することと、プロセッサによって、ネットワーク属性、複数のノード属性、およびプライバシー制約に基づいて、接続されたノードのネットワーク情報を匿名化することによって、匿名化されたネットワークを生成することとを実行させるように、プロセッサによって実行可能である。
【0015】
ここで、添付の図面を単に例として参照し、本発明の実施形態について説明する。
【図面の簡単な説明】
【0016】
【
図1】本明細書に記載された1つまたは複数の実施形態に従って、ネットワーク属性、ノード属性、およびノード間の接続を表すエッジ属性を含む因子に基づいてネットワークの匿名化を容易にすることができる非限定的なネットワーク匿名化システムの例のブロック図である。
【
図2】本明細書に記載された1つまたは複数の実施形態に従って、ネットワーク属性、ノードのデータ、およびノード間の接続を表すエッジ属性を含む因子に基づいてネットワークの匿名化を容易にすることができる例示的な非限定的なシステムのブロック図である。
【
図3】本明細書に記載された1つまたは複数の実施形態に従って、ネットワーク属性、ノード属性、およびノード間の接続を表すエッジ属性を含む因子に基づいてネットワークの匿名化を容易にすることができる非限定的なネットワーク匿名化システムの例のブロック図である。
【
図4】1つまたは複数の実施形態に従って、匿名化コンポーネントがコンシューマによる使用のために匿名化されたネットワークを公開することを容易にすることができる、例示的な非限定的システムのブロック図である。
【
図5】本明細書に記載された1つまたは複数の実施形態に従って、ネットワーク属性を含む因子に基づいて、ネットワークのノードからのプライバシー・データを使用して、ネットワークの匿名化を容易にすることができる非限定的なネットワーク匿名化システムの例のブロック図である。
【
図6】本明細書に記載された1つまたは複数の実施形態に従って、ネットワーク属性、ノード属性、およびノード間の接続を表すエッジ属性を含む因子に基づいてネットワークの匿名化を容易にすることができる例示的な非限定的システム600のブロック図である。
【
図7】1つまたは複数の実施形態に従って、異なる手法を使用して匿名化されるネットワークからのサンプル・データの表を示す図である。
【
図8A】1つまたは複数の実施形態に従って、
図7に示されたデータを匿名化するための代替手法を示す図である。
【
図8B】1つまたは複数の実施形態に従って、
図7に示されたデータを匿名化するための代替手法を示す図である。
【
図9】本明細書に記載された1つまたは複数の実施形態に従って、ネットワーク属性および実体に基づくアクセス権限を使用してネットワークの匿名化を容易にすることができる例示的な非限定的コンピュータ実装方法のフロー図である。
【
図10】本明細書に記載された1つまたは複数の実施形態を容易にすることができる例示的な非限定的動作環境のブロック図である。
【発明を実施するための形態】
【0017】
以下の詳細な説明は、例にすぎず、実施形態、または実施形態の適用もしくは使用、あるいはその両方を制限するよう意図されていない。さらに、先行する「背景技術」または「発明の概要」のセクション、あるいは「発明を実施するための形態」のセクションで提示された、いずれかの明示されたか、または暗示された情報によって制約されるという意図はない。
【0018】
ここで、図面を参照して1つまたは複数の実施形態が説明され、図面全体を通じて、類似する参照番号が、類似する要素を参照するために使用されている。以下の説明では、説明の目的で、1つまたは複数の実施形態を十分に理解できるように、多数の特定の詳細が示されている。しかし、これらの特定の詳細がなくても、さまざまな事例において、1つまたは複数の実施形態が実践され得るということは明らかである。本出願の図面が例示の目的でのみ提供されており、そのため、各図面が一定の縮尺で描かれていないということに注意する。
【0019】
本明細書で開示されたさまざまな図に示されている本開示の実施形態が、単に説明のためであり、そのため、そのような実施形態のアーキテクチャが本明細書に示されているシステム、デバイス、またはコンポーネント、あるいはその組み合わせに限定されないということが、理解されるべきである。
【0020】
本明細書では、1つまたは複数の実施形態が、その他の方法では制限されるアクセス・ネットワークからのある量のデータを共有する状況において説明される。本明細書に記載された一部の実施形態は、パブリックおよびプライベートな理由のために求められている何らかのデータを含んでいる制限されたネットワークに適用される。例示の目的で本明細書において頻繁に使用されるこの種類のネットワークの一例は、医療データ(例えば、病院、患者、治療、およびその他の関連する情報)を格納して提供するネットワークである。
【0021】
医療ネットワークは、法的制限および倫理的制限の対象になり、パブリックおよびプライベートな目的で求められてもいるデータを提供することができるため、これらのネットワークは、本明細書に記載された原理の適用のための例示的な状況(例えば、すべての法的要件および倫理的要件に従いながら、患者データを研究者と共有するために匿名化が使用されることができるネットワーク)を提供することができる。下でさらに説明されるように、多くの環境で、1つまたは複数の実施形態は、匿名化の手法、および使用する匿名化パラメータ(例えば、下で説明されるk-匿名性手法におけるk値)を選択するときに、プライバシー制約および有用性制約を評価することができる。
【0022】
本明細書では、実施形態の概念を説明するために医療ネットワークが使用されることがあるが、それらが非限定的な例であり、現在使用されている他の種類のネットワーク、および将来開発されるネットワークが、本明細書に記載された1つまたは複数の実施形態で使用されることができるということに注意するべきである。例えば、協会員ネットワーク、人材ネットワーク、トランザクション・データのネットワーク、およびソーシャル・ネットワークも、多くの環境で開示から保護される、求められているデータを含むことができる。
【0023】
一般的に言えば、本明細書に記載されているように、1つまたは複数の実施形態は、匿名化のためのさまざまな種類の属性(例えば、ノード属性、エッジ属性、およびネットワーク属性)を組み込むことができるネットワークの匿名化を容易にすることができる。さらに、1つまたは複数の実施形態は、例えば、プライバシー制約と有用性制約の間のトレードオフとして、オリジナルの個別のノードのプライバシー要件を満たしながら、匿名化されたネットワークの有用性が改善されるように、ネットワーク・データの匿名化を容易にすることができる。
【0024】
図1は、本明細書に記載された1つまたは複数の実施形態に従って、ネットワーク属性、ノード属性、およびノード間の接続を表すエッジ属性を含む因子に基づいてネットワークの匿名化を容易にすることができる非限定的なネットワーク匿名化システム102の例100のブロック図を示している。各実施形態で採用されている類似する要素またはプロセスあるいはその両方の説明の繰り返しは、簡潔にするために省略されている。一部の実施形態は、ネットワーク匿名化システム102を含むことができる。一部の実施形態では、ネットワーク匿名化システム102は、本明細書で開示されているように、属性コンポーネント108、匿名化コンポーネント107、およびネットワーク匿名化システム102に関連付けられた任意のその他のコンポーネントを備えることができる。
【0025】
本明細書で開示されたさまざまな図に示されている本開示の実施形態が、単に説明のためであり、そのため、そのような実施形態のアーキテクチャが本明細書に示されているシステム、デバイス、またはコンポーネント、あるいはその組み合わせに限定されないということが、理解されるべきである。例えば、一部の実施形態では、ネットワーク匿名化システム102は、動作環境1000および
図10を参照して本明細書において説明されるさまざまなコンピュータまたは計算に基づく要素あるいはその両方をさらに備えることができる。例えば、一部の実施形態では、ネットワーク匿名化システム102は、メモリ104、プロセッサ106、およびバス112をさらに備えることができる。複数の実施形態では、そのようなコンピュータまたは計算に基づく要素あるいはその両方は、本明細書で開示された
図1またはその他の図に関連して示され、説明されるシステム、デバイス、コンポーネント、またはコンピュータ実装動作、あるいはその組み合わせのうちの1つまたは複数を実装することに関連して、使用されることができる。
【0026】
複数の実施形態によれば、メモリ104は、1つまたは複数のコンピュータまたは機械あるいはその両方が読み取ることができるか、書き込むことができるか、または実行することができるか、あるいはその組み合わせが可能であるコンポーネントまたは命令あるいはその両方を格納することができ、これらのコンポーネントまたは命令あるいはその両方は、プロセッサ106によって実行された場合に、実行可能なコンポーネントおよび命令によって定義された動作の実行を容易にすることができる。例えば、メモリ104は、コンピュータおよびその他の機械が読み取ることができるか、書き込むことができるか、または実行することができるか、あるいはその組み合わせが可能であるコンポーネントまたは命令あるいはその両方を格納することができ、これらのコンポーネントまたは命令あるいはその両方は、本開示のさまざまな図を参照して、または参照せずに本明細書において説明されているように、プロセッサ106によって実行された場合に、ネットワーク匿名化システム102、属性コンポーネント108、匿名化コンポーネント107、およびネットワーク匿名化システム102に関連付けられた任意のその他のコンポーネントに関連する、本明細書に記載されたさまざまな機能の実行を容易にすることができる。
【0027】
一部の実施形態では、メモリ104は、1つまたは複数のメモリ・アーキテクチャを採用することができる、揮発性メモリ(例えば、ランダム・アクセス・メモリ(RAM:random access memory)、スタティックRAM(SRAM:static RAM)、ダイナミックRAM(DRAM:dynamic RAM)など)または不揮発性メモリ(例えば、読み取り専用メモリ(ROM:read only memory)、プログラマブルROM(PROM:programmable ROM)、消去可能プログラマブルROM(EPROM:erasible programmable ROM)、電気的消去可能プログラマブルROM(EEPROM:electrically erasable programmable ROM)など)あるいはその両方を含むことができる。メモリ104のさらに別の例が、システム・メモリ1016および
図10を参照して下で説明される。メモリ104のそのような例が、本開示のいずれかの実施形態を実装するために採用されることができる。
【0028】
複数の実施形態によれば、プロセッサ106は、1つまたは複数のコンピュータまたは機械あるいはその両方が読み取ることができるか、書き込むことができるか、または実行することができるか、あるいはその組み合わせが可能である、メモリ104に格納できるコンポーネントまたは命令あるいはその両方を実装できる、プロセッサまたは電子回路あるいはその両方の1つまたは複数の種類を含むことができる。例えば、プロセッサ106は、そのようなコンピュータまたは機械あるいはその両方が読み取ることができるか、書き込むことができるか、または実行することができるか、あるいはその組み合わせが可能であるコンポーネントまたは命令あるいはその両方によって指定され得る、論理、制御、入出力(I/O:input/output)、算術、または同様のもの、あるいはその組み合わせを含むが、これらに限定されない、さまざまな動作を実行することができる。一部の実施形態では、プロセッサ106は、さまざまな中央処理装置、マルチコア・プロセッサ、マイクロプロセッサ、デュアル・マイクロプロセッサ、マイクロコントローラ、システム・オン・チップ(SOC:System on a Chip)、アレイ・プロセッサ、ベクトル・プロセッサ、および任意のその他の種類のプロセッサのうちの1つまたは組み合わせを含むことができる。プロセッサ106のさらに別の例が、処理ユニット1014および
図10を参照して下で説明される。プロセッサ106のそのような例が、本開示のいずれかの実施形態を実装するために採用されることができる。
【0029】
一部の実施形態では、メモリ104、プロセッサ106、属性コンポーネント108、匿名化コンポーネント107、および本明細書に記載されたネットワーク匿名化システム102の任意のその他のコンポーネントを含むが、これらに限定されないネットワーク匿名化システム102の要素は、通信によって、電気的に、または動作可能に、あるいはその組み合わせで、バス112を介して互いに結合され、ネットワーク匿名化システム102およびそれに結合された任意のその他のコンポーネントの機能を実行することができる。複数の実施形態では、バス112は、メモリ・バス、メモリ・コントローラ、ペリフェラル・バス、外部バス、ローカル・バス、またはさまざまなバス・アーキテクチャを採用することができる別の種類のバスのうちの1つまたは複数を含むことができる。バス112のさらに別の例が、システム・バス1018および
図10を参照して下で説明される。バス112のそのような例が、本開示のいずれかの実施形態を実装するために採用されることができる。
【0030】
一部の実施形態では、ネットワーク匿名化システム102は、プロセッサを備えているか、または有線ネットワークもしくは無線ネットワークまたはその両方と効果的通信もしくは動作可能な通信またはその両方を実行することができるか、あるいはその両方である、任意の種類のコンポーネント、機械、デバイス、設備、装置、または機器、あるいはその組み合わせを備えることができる。そのようなすべての実施形態が想定される。例えば、ネットワーク匿名化システム102は、サーバ・デバイス、コンピューティング・デバイス、汎用コンピュータ、専用コンピュータ、量子コンピューティング・デバイス(例えば、量子コンピュータ、量子プロセッサなど)、タブレット・コンピューティング・デバイス、ハンドヘルド・デバイス、サーバ・クラス・コンピューティング・マシンまたはデータベースあるいはその両方、ラップトップ・コンピュータ、ノートブック・コンピュータ、デスクトップ・コンピュータ、携帯電話、スマートフォン、民生用装置または民生用機器あるいはその両方、工業用デバイスまたは商用デバイスあるいはその両方、デジタル・アシスタント、インターネットが有効化されたマルチメディア電話、マルチメディア・プレイヤー、または別の種類のデバイス、あるいはその組み合わせを備えることができる。
【0031】
一部の実施形態では、ネットワーク匿名化システム102は、データ・ケーブル(例えば、同軸ケーブル、高精細度マルチメディア・インターフェイス(HDMI(R):High-Definition Multimedia Interface)、勧告基準(RS:recommended standard)232イーサネット(R)・ケーブルなど)を介して、1つまたは複数の外部のシステム、ソース、またはデバイス(例えば、コンピューティング・デバイス、通信デバイスなど)、あるいはその組み合わせに(例えば、通信によって、電気的に、動作可能に、などで)結合されることができる。一部の実施形態では、ネットワーク匿名化システム102は、ネットワークを介して、1つまたは複数の外部のシステム、ソース、またはデバイス(例えば、コンピューティング・デバイス、通信デバイスなど)、あるいはその組み合わせに(例えば、通信によって、電気的に、動作可能に、などで)結合されることができる。
【0032】
複数の実施形態によれば、ネットワーク匿名化システム102は、1つまたは複数のコンピュータまたは機械あるいはその両方が読み取ることができるか、書き込むことができるか、または実行することができるか、あるいはその組み合わせが可能であるコンポーネントまたは命令あるいはその両方を備えることができ、これらのコンポーネントまたは命令あるいはその両方は、プロセッサ106によって実行された場合に、そのようなコンポーネントまたは命令あるいはその両方によって定義された動作の実行を容易にすることができる。さらに、多くの実施形態では、ネットワーク匿名化システム102に関連付けられたすべてのコンポーネントは、本開示のさまざまな図を参照して、または参照せずに本明細書において説明されているように、1つまたは複数のコンピュータまたは機械あるいはその両方が読み取ることができるか、書き込むことができるか、または実行することができるか、あるいはその組み合わせが可能であるコンポーネントまたは命令あるいはその両方を備えることができ、これらのコンポーネントまたは命令あるいはその両方は、プロセッサ106によって実行された場合に、そのようなコンポーネントまたは命令あるいはその両方によって定義された動作の実行を容易にすることができる。例えば、(例えば、通信によって、電気的に、もしくは動作可能に、またはその組み合わせでネットワーク匿名化システム102に結合されたか、またはネットワーク匿名化システム102によって採用されたか、あるいはその両方である)属性コンポーネント108、匿名化コンポーネント107、および本明細書で開示されるネットワーク匿名化システム102に関連付けられた任意のその他のコンポーネントは、そのようなコンピュータまたは機械あるいはその両方が読み取ることができるか、書き込むことができるか、または実行することができるか、あるいはその組み合わせが可能であるコンポーネントまたは命令あるいはその両方を備えることができる。したがって、多くの実施形態によれば、本明細書で開示されるネットワーク匿名化システム102またはネットワーク匿名化システム102に関連付けられた任意のコンポーネントあるいはその両方は、そのようなコンピュータまたは機械あるいはその両方が読み取ることができるか、書き込むことができるか、または実行することができるか、あるいはその組み合わせが可能であるコンポーネントまたは命令あるいはその両方を実行して、ネットワーク匿名化システム102またはネットワーク匿名化システム102に関連付けられた任意のそのようなコンポーネントあるいはその両方を参照して本明細書において説明された1つまたは複数の動作の実行を容易にするために、プロセッサ106を採用することができる。
【0033】
図1に示されたコンポーネントの動作に戻り、1つまたは複数の実施形態では、
図2でさらに説明されるように、ネットワークのノードのさまざまな属性が、匿名化プロセスを容易にするため、および匿名化されたネットワーク280の有用性を改善するために、使用されることができる。ネットワークのノードの異なるさまざまな属性は、医療ネットワークの場合、識別子、名前、診断、およびその他の同様のデータなどの患者データを含むことができるが、これらに限定されない。
図3~4でさらに説明されるように、使用されることができる別のノード属性は、特定のノードによって格納された実体の特性を含み、例えばノードは、ある種類の実体に基づくセキュリティ要件を有することができる。例えば、医療システムでは、患者データは、人材データおよびさまざまな医療施設に関する一般的なデータよりも制限的なアクセス要件を有することができる。
【0034】
匿名化のための既存のノード属性の使用に加えて、1つまたは複数の実施形態は、ネットワーク・データを分析し、ネットワーク・データに基づいて属性(例えば、ネットワーク属性)を識別することができる。例えば、1つまたは複数の実施形態では、属性コンポーネント108は、接続されたノードの分析に基づいて、ネットワークのネットワーク属性を生成することができる。1つまたは複数の実施形態では、ネットワーク属性とは、一般に、ネットワーク全体を表す属性、またはネットワークのノードと他のノードの間の関係のことを指す。本明細書に記載された1つまたは複数の実施形態によって使用されることができる例示的なネットワーク属性は、ノードの総数、接続の総数、ネットワーク内のノードの平均次数、およびノードのネットワーク中心性のさまざまな尺度を含むが、これらに限定されない。例示的なネットワーク中心性属性は、ノードの入次数および出次数の尺度(例えば、それぞれ、ノードに入るデータ・フローおよびノードから出るデータ・フローの数)を含むことができる。ネットワーク中心性のその他の例は、媒介中心性(例えば、ノード間の最短経路に基づくグラフ内のノードの中心性の尺度)を含む。
【0035】
ノードのネットワーク中心性を表すことができる別の例示的なネットワーク属性は、ネットワークのノードの近接中心性(例えば、ネットワークのノードと他のノードの間にあるノードの数)を含む。1つまたは複数の実施形態では、この値は、例えば、属性コンポーネント108によって、ネットワーク内のノードから他のすべてのノードまでの最短経路の長さの平均をとることによって生成されることができる。代替の実施形態では、ネットワーク属性を生成することとは対照的に、属性コンポーネント108が、匿名化に使用するために、前に生成されたネットワーク属性を検索することができるということが、理解されるべきである。
【0036】
図2に示された例示的な医療ネットワークを使用して下でさらに説明されるように、ネットワーク属性を匿名化プロセスに組み込むことによって、これらのネットワーク属性は、1つまたは複数の実施形態では、結果として得られる匿名化されたネットワークに問い合わせるコンシューマによって使用可能になることができる。下でさらに説明されるように、ネットワーク属性全体を匿名化プロセスに組み込むことによって、ノード属性およびエッジ属性がネットワーク分析に使用されることができるが、1つまたは複数の実施形態は、追加の種類のネットワーク分析データが匿名化されたネットワークから生成されるのを、容易にすることができる。
【0037】
例えば、1つまたは複数の実施形態では、ノードのネットワーク中心性の尺度が匿名化プロセスに組み込まれることができ、これによって、この中心性の値が、匿名化されたノード属性およびエッジ属性と共に、匿名化されたネットワーク290のコンシューマによって使用可能になることができる。当業者は、本明細書における説明を前提として、他の匿名化されたネットワーク・データとは無関係にコンシューマによって使用されることに加えて、一部の適用の場合、さまざまなネットワーク属性が、匿名化されたノード・データと有利に組み合わせられることができるということを理解するであろう。例えば、疫学研究者は、伝染性の条件を示す医療データを使用して匿名化されたノードを識別した後に、識別されたノードのネットワーク中心性の異なる尺度について、匿名化されたネットワークにさらに問い合わせ、例えば、匿名化されたネットワーク内の他のノードへの条件の拡散におけるノードの役割を分析することができる。
【0038】
下で説明される1つまたは複数の実施形態の他の態様に関して、
図2は、1つまたは複数の実施形態に従って、匿名化コンポーネント107、および前述したように属性コンポーネント108によって生成され得るネットワーク属性を使用して上で説明されたプロセスに類似するプロセスを使用することによって、ネットワークを匿名化されたネットワークに変換するためのプロセスを示している。
図3~4は、匿名化コンポーネント107で使用するための制約を生成するために1つまたは複数の実施形態によって使用されることができる制約コンポーネント310について説明している。
図5~6は、1つまたは複数の実施形態によって、コンシューマ515に提供される有用性および制約コンポーネント310によって生成される制約の両方に基づいてネットワークを匿名化するために使用されることができる最適性コンポーネント510について説明している。最適性コンポーネント510の例示的な実装の動作にさらに関連して、
図7~8Bは、匿名化されたデータに必要とされる制約を考慮して、コンシューマの要件に基づいて、匿名化されたネットワークの有用性が調整されることができる、例示的な方法を示している。
【0039】
図2は、本明細書に記載された1つまたは複数の実施形態に従って、ネットワーク属性277、ノード220A~220Dのデータ、およびノード間の接続225A~Bを含む因子に基づいてネットワーク280の匿名化275を容易にすることができる例示的な非限定的システム200のブロック図を示している。各実施形態で採用されている類似する要素またはプロセスあるいはその両方の説明の繰り返しは、簡潔にするために省略されている。
【0040】
一部の実施形態では、システム200は、匿名化されたネットワーク290への匿名化プロセス275によって変換されたネットワーク280を含むことができる。ネットワーク280は、1つまたは複数の実施形態では、接続225A~Bを含む接続によってさまざまに接続された複数のノード(例えば、ノード220A~220D)を含むことができる。1つまたは複数の実施形態では、匿名化されたネットワーク290は、ノード220A~220Dからそれぞれ匿名化されたノード222A~Dを含むことができる。
【0041】
1つの例では、ネットワーク280は、病院を含んでいる医療ネットワークであり、システム200内の各ノード220A~Dが病院を表し、2つのノード間の接続225A~Bが、病院ノード間の協調的リンクを表す。この例では、病院ノード220A~Dのノード属性は、病院の位置、病院の専門科、病院に公認されている専門科ごとの医師の数、病院内の患者の数、および病院の実績に対応する指標(例えば、再入院の数または治療ごとの平均費用)を含むことができる。1つまたは複数の実施形態では、ノード属性の詳細度は、微視的程度まで詳細であると言うことができる。匿名化プロセス275のより詳細な説明の後に、メゾスコピック・レベル(例えば、ネットワーク内の病院のクラスタに関するデータを提供できるエッジ属性)と巨視的レベル(例えば、ネットワークの要約データに加えて、ネットワーク内の個別のノードの配置および他のノードとの関係を表すデータを提供できるネットワーク属性277)の両方に関して、ネットワーク280の属性レベルが説明される。
【0042】
1つまたは複数の実施形態の一般的な説明を続けると、前述したように、さまざまな属性が、属性コンポーネント108によって生成されたか、またはその他の方法で1つまたは複数の実施形態によって識別された後に、匿名化プロセスに組み込まれることができる。例えば、1つまたは複数の実施形態では、匿名化コンポーネント107は、前述した属性(例えば、ノード属性、エッジ属性、およびネットワーク属性277を含むが、これらに限定されない属性の種類)に基づいてネットワークのネットワーク情報の匿名化を容易にすることができる。
【0043】
別の例では、ネットワーク280は、相互接続されたユーザのソーシャル・ネットワークであることができ、システム200内の各ノード220A~Dがユーザを表し、2つのノード間の接続225A~Bが、ユーザ・ノード間の接続を表す。この例では、ユーザ・ノード220A~Dのノード属性は、ユーザに関する位置、接続情報、投稿、年齢、およびその他のユーザ情報を含むことができる。当業者は、本明細書における説明を前提として、医療ネットワークの例に関して下で説明されるネットワーク属性277が、このソーシャル・ネットワークの例などの他のネットワークに適用され得る方法を理解するであろう。
【0044】
1つまたは複数の実施形態によって匿名化が何故使用され得るか、およびいつ使用され得るかの例に関して、本明細書における開示を前提として、提供されることを制限されているデータが、多くの場合、そのような制限を受けないように何らかの方法で変換され得るということが、当業者によって理解されるであろう。1つまたは複数の実施形態によって使用され得る変換の一種は、匿名性のレベル(例えば、公開されたデータを使用して、格納された特定のノードを個別に識別できないレベル)を満たす程度までデータを匿名化するプロセスである。例えば、患者データのセットが研究者に公開されることになっている場合、公開されるデータは、特定の患者を個別に識別できるべきではなく、例えば、患者識別子、社会保障番号、電話番号、電子メール・アドレス、およびその他の同様のデータなどの属性はすべて、多くの環境で、単一の個人を識別するために使用されることができる。1つまたは複数の実施形態では、このような種類のデータは、匿名化されたネットワークから除去されるか、または曖昧にされることができる。
【0045】
特定の種類のデータを保護するために使用され得る匿名化の別のレベルは、他の合理的に使用可能なデータと組み合わせて特定の可能性の範囲内で実体を識別できる情報の公開を禁止する。例えば、2つ以上の異なる種類のデータ(例えば、生年月日、郵便番号、性別)が匿名化された患者データに含まれている場合、これらの値は、公開されている生年月日、郵便番号、および性別のデータと組み合わせて、個別の患者を識別できる場合がある。
図7~8Bは、生年月日、郵便番号、および性別の組み合わせが組み合わさって個人を識別できる方法の例を示している。1つまたは複数の実施形態は、さまざまな匿名化手法と共に使用された場合に、匿名化されたデータにおいて、ノード・データが直接関係付けられて識別されるのを防ぐことができる。
【0046】
基礎になる匿名化技術は、1つまたは複数の実施形態にとって重要ではなく、したがって、1つまたは複数の実施形態は、k-匿名性、l-多様性などのさまざまな既存の方法に適用されることができる可能性がある。当業者は、本明細書における説明を前提として、1つまたは複数の実施形態と共に、これらの手法が使用され得る方法を理解し、将来開発される手法も使用され得るということを理解するであろう。
【0047】
1つまたは複数の実施形態によって使用されることができる例示的な匿名化手法は、k-匿名性手法である。一部の実装では、一般的に言えば、k-匿名性手法は、匿名化されたデータに関して、少なくともk個の実体が互いに識別され得ないほど十分に類似するように、さまざまな変換を使用してデータを匿名化することができる。例えば、k=3の値の場合、少なくとも3つのレコードが互いに識別され得ないように属性が除去または変換された状態で、少なくとも3つの実体が匿名化されたネットワーク内に存在する。したがって、k=3の値の場合、例えば、特定の郵便番号に関して、完全な生年月日が匿名化されたデータに含まれている場合、3つ以上のレコードが同じ組み合わせを含むように、データが匿名化されることができる。例えば、大きい(例えば、50,000人を超える人口を含む)郵便番号において、生年月日が同じである複数の個人を一貫して含むことは、可能である可能性が高いが、標準的なサイズの郵便番号の場合は、可能である可能性が低く、大きい郵便番号のすべての個人が、匿名化されるデータに含まれるとは限らない。
【0048】
以下では、k-匿名化プロセスの複数の例が
図7~8Bを使用して説明され、
図7に示されているデータセットが、例示的なk-匿名性手法によって変換されている。例えば、
図8Aは、k=3の場合のk-匿名性手法の例示的な使用を示しており、
図8Bは、k=4の場合の例を示している。1つまたは複数の実施形態によって使用されることができるその他の例示的なkの値は、3~15のk値、またはプロセスにとって有益であるように決定された任意のその他の値を含む。
【0049】
前述したように、1つまたは複数の実施形態は、ノード220Aのネットワーク属性277(例えば、ノードの中心性の尺度)を、匿名化されたネットワークのノード(例えば、ノード222A)の匿名化されたデータに組み込むことができる。匿名化されたネットワーク・データにおけるネットワーク属性277の組み込みが、例えばk-匿名性に関して前述したような、匿名化プロセスによって必要とされる匿名性の設定されたレベルを維持するように、前述の匿名化手法に基づいて、1つまたは複数の実施形態が、ネットワークを匿名化できるということに注意するべきである。
【0050】
図5を使用して下でさらに説明されるように、匿名化されたネットワークがサポートするように設計された問い合わせの種類(例えば、匿名化されたネットワークの有用性)を前提として、匿名化プロセスを最適化するか、または匿名化プロセスの最適性を向上させるように、匿名化プロセスの間に、1つまたは複数の実施形態が、匿名化手法によって使用される手法を自動的に調整できるということに注意するべきである。
【0051】
図2の医療ネットワーク280の説明に戻り、1つの例では、プライバシーを維持する方法でネットワーク分析を提供できるネットワーク280の匿名化されたバージョンが求められている。例示的な要件によれば、匿名化されたデータは、メゾスコピック・レベルで問い合わせをサポートするべきである。例えば、病院の協力の実行に伴う、より頻繁に協力する病院のコミュニティを識別できる問い合わせである。1つまたは複数の実施形態では、各接続によってリンクされた病院の対のエッジ属性(例えば、共有された患者の数、患者を共有する場合の平均的実績、および共有された患者の治療の実績指標)を生成して含むことによって、接続225A~Bの例示的なエッジ属性は、これらの要件をサポートすることができる。
【0052】
この例では、匿名化されたネットワーク290の追加の要件は、巨視的レベルで問い合わせをサポートするためのデータ(例えば、
図1を使用して前述したネットワーク属性)を含むことができる。1つまたは複数の実施形態では、全体的なネットワーク属性277をネットワーク280の匿名化プロセス275に組み込むことによって、匿名化されたネットワーク290において、ネットワークのより全体的な視野を提供し、一部の環境では、匿名化されたネットワークの全体的有用性を改善できる追加データが、使用可能になることができる。例えば、ネットワーク属性を使用して明らかにされ得る匿名化されたネットワークからの洞察は、他のノードの特性に影響を与えるネットワーク内の1つまたは複数のノードの特性を含むが、これに限定されない。
【0053】
追加の問い合わせは、病院の次数列に関連することができる(例えば、病院間の協力の負荷の分配)。巨視的レベルでのこれらの追加の要件のすべてについて、ネットワーク属性277が生成され、匿名化プロセス275に含められることができる。例えば、匿名化の間に媒介中心性およびクラスタ化係数などのネットワーク属性277を利用することによって、ネットワーク内で大きい影響力を持つ病院を強調できるデータを提供することができ、例えば、病院の高い媒介中心性は、影響力の大きい病院を通過する他の病院間のリンクのために発生することができる。
【0054】
巨視的レベルでのデータ分析をサポートすることができる別の例示的なネットワーク属性277は、病院の入次数中心性および出次数中心性を測定し、例えば、一部の環境では、病院の高い出次数中心性は、患者の多くの送り出す傾向がある病院を示すことができ、一方、高い入次数中心性は、移動された患者を受け入れる病院を示すことができる。
【0055】
ノード220A~Dが黒色または白色のいずれかとして示されており、これらの色が、ネットワーク280が異なるプライバシー・レベルを有することができるノード220A~Dを含んでいることを示しているということに注意するべきである。
図3~4を使用して下で説明されるように、1つまたは複数の実施形態は匿名化されたネットワーク290へのアクセスのために、実体に基づくアクセス権限を提供することができる。
【0056】
一部の実施形態では、ネットワーク匿名化システム102は、さまざまな技術に関連付けられることができる。例えば、ネットワーク匿名化システム102は、医療技術、データベース技術、コンピューティング技術、人工知能(AI:artificial intelligence)モデル技術、機械学習(ML:machinelearning)モデル技術、クラウド・コンピューティング技術、モノのインターネット(IoT:Internet-of-Things)技術、またはその他の技術、あるいはその組み合わせに関連付けられることができる。
【0057】
複数の実施形態によれば、ネットワーク280および匿名化されたネットワーク290などのネットワークは、ローカル・エリア・ネットワーク(LAN:local area network)、セルラー・ネットワーク、広域ネットワーク(WAN:wide area network)(例えば、インターネット)、またはストレージ・エリア・ネットワーク(SAN:storage area network)を含むが、これらに限定されない、有線ネットワークおよび無線ネットワークを含むことができる。例えば、ネットワーク匿名化システム102は、ワイヤレス・フィディリティ(Wi-Fi:wireless fidelity)、グローバル・システム・フォー・モバイル・コミュニケーションズ(GSM:global system for mobile communications)、ユニバーサル移動体通信システム(UMTS:universal mobile telecommunications system)、ワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス(WiMAX:worldwide interoperability for microwave access)、高速汎用パケット無線サービス(enhanced GPRS:enhanced general packet radio service)、第3世代パートナーシップ・プロジェクト(3GPP:third generation partnership project)ロング・ターム・エボリューション(LET:long term evolution)、第3世代パートナーシップ・プロジェクト2(3GPP2)ウルトラ・モバイル・ブロードバンド(UMB:ultra mobile broadband)、高速パケット・アクセス(HSPA:highspeed packet access)、Zigbeeおよびその他の802.XX無線技術もしくはレガシー通信技術またはその両方、BLUETOOTH(R)、セッション初期化プロトコル(SIP:Session Initiation Protocol)、ZIGBEE(R)、RF4CEプロトコル、WirelessHARTプロトコル、6LoWPAN(IPv6 over Low power Wireless Area Networks)、Z-Wave、ANT、超広帯域(UWB:ultra-wideband)標準プロトコル、またはその他の独自および非独自の通信プロトコル、あるいはその組み合わせを含むが、これらに限定されない、事実上任意の望ましい有線技術または無線技術を使用して、1つまたは複数の外部のシステム、ソース、またはデバイス(例えば、コンピューティング・デバイス)、あるいはその組み合わせと通信することができる(かつ、その逆向きに通信することができる)。したがって、そのような例では、ネットワーク匿名化システム102は、ネットワーク匿名化システム102と外部のシステム、ソース、またはデバイス(例えば、コンピューティング・デバイス、通信デバイスなど)との間での情報の伝達を容易にする、ハードウェア(例えば、中央処理装置(CPU:central processing unit)、トランシーバ、デコーダ)、ソフトウェア(例えば、一連のスレッド、一連のプロセス、実行中のソフトウェア)、またはハードウェアとソフトウェアの組み合わせを含むことができる。
【0058】
図3および4は、匿名化プロセスでのさまざまなコンポーネントの使用を強調するために、下で一緒に説明される。
図3は、本明細書に記載された1つまたは複数の実施形態に従って、ネットワーク属性、ノード属性、およびノード間の接続を表すエッジ属性を含む因子に基づいてネットワークの匿名化を容易にすることができる非限定的なネットワーク匿名化システムの例300のブロック図を示している。一部の実施形態では、ネットワーク匿名化システム102は、本明細書で開示されているように、属性コンポーネント108、匿名化コンポーネント107、制約コンポーネント310、およびネットワーク匿名化システム102に関連付けられた任意のその他のコンポーネントを備えることができる。
【0059】
図4は、1つまたは複数の実施形態に従って、匿名化コンポーネント107がコンシューマ450による使用のために匿名化されたネットワーク280を公開すること(406)を容易にすることができる、例示的な非限定的システム400のブロック図を示している。コンシューマ450にとっての匿名化されたネットワーク280の有用性は、有用性指標455によって定量化されることができる。制約コンポーネント310は、ネットワーク280全体に関するものであるか、またはネットワーク280の個別のノードに固有であることができるプライバシー・ルール428に基づいて、匿名化コンポーネント107のためのプライバシー制約を生成することができる。各実施形態で採用されている類似する要素またはプロセスあるいはその両方の説明の繰り返しは、簡潔にするために省略されている。
【0060】
上の
図2を使用して、データの追加の組み合わせの匿名化(例えば、ネットワーク属性277)が説明される。
図3を使用して、匿名化されたネットワーク290の作成において生成され、匿名化コンポーネント107を制限することができるプライバシー制約が説明される。1つまたは複数の実施形態では、これらのプライバシー制約は、例えば、匿名化コンポーネント107が前述のk-匿名性手法を使用するときにkの値を指定して、匿名化プロセス275が実行される方法を制限することができる。
【0061】
追加の実施形態では、制約コンポーネント310は、匿名化されたネットワーク290へのアクセスのために、実体に基づくアクセス権限を提供するのを容易にすることができる。1つまたは複数の実施形態では、この手法は、匿名化コンポーネント107が実体に基づくアクセス権限に基づいてプライバシーを強制することを可能にすることができ、それによって、許可されていないデータ・アクセスまたは推論を制限する。したがって、1つまたは複数の実施形態では、プライバシー制約は、各ノードまたはノードと共に格納された実体に対するデータ・アクセス権限に基づくことができ、これらのプライバシー制約は、匿名化されたネットワーク内で保護されている。
【0062】
1つまたは複数の実施形態では、各ノードまたはノードと共に格納された実体に対するデータ・アクセス権限に基づくことができるプライバシー制約を使用することは、さまざまな種類のデータに対するアクセス権限を処理するための柔軟性をもたらすことができる。例えば、1つまたは複数の実施形態のような多くの標準的な病院とは対照的に、一部の精神衛生病院は、ユーザに付与されたアクセス権限に基づくのではなく、異なるノードの種類に基づいてノードのプライバシーを保護する。これに関連して、アクセス権限が個別のノードのノード属性から受け取られるため、1つまたは複数の実施形態では、この手法は、匿名化コンポーネント107によって適用される匿名化のレベルを決定するために、データの要求者の役割を使用する必要がないということに注意するべきである。代替の実施形態では、ユーザおよび役割に基づくアクセス権限も、排他的に、または前述の実体に基づく手法と組み合わせて、使用されるということに注意するべきである。
【0063】
図5は、本明細書に記載された1つまたは複数の実施形態に従って、ネットワーク属性を含む因子に基づいて、ネットワークのノードからのプライバシー・データを使用して、ネットワークの匿名化を容易にすることができる非限定的なネットワーク匿名化システム102の例500のブロック図を示している。各実施形態で採用されている類似する要素またはプロセスあるいはその両方の説明の繰り返しは、簡潔にするために省略されている。一部の実施形態では、ネットワーク匿名化システム102は、本明細書で開示されているように、属性コンポーネント108、匿名化コンポーネント107、制約コンポーネント310、最適性コンポーネント510、およびネットワーク匿名化システム102に関連付けられた任意のその他のコンポーネントを備えることができる。
【0064】
1つまたは複数の実施形態では、匿名化コンポーネント107によってネットワーク280を匿名化することは、データの組み合わせにさらに基づくことができ、匿名化されたネットワークは、それらのデータの検索をサポートする必要がある。前述したように、1つまたは複数の実施形態は、データのオリジナルのバージョンまたは変更されたバージョンを匿名化プロセスに含めることによって、匿名化されたネットワーク290からのデータの検索をサポートする。さらに、匿名化されたネットワーク290から検索されるデータのこれらの組み合わせは、匿名化されたネットワークの要件において具現化されることができる。
【0065】
1つの例では、研究者の要求は、検索されるデータの粒度の特徴を指定することができ、このようにして、匿名化の間に格納されるデータの粒度を指定する。この例では、研究者は、ある人が生まれた年の季節に基づいて研究を行っている。前述したように、生年月日は、匿名化されたデータにオリジナルの形態でめったに含まれない特性を識別することができるため、1つまたは複数の匿名化手法は、さまざまなサイズのビンを使用して、曖昧さを生年月日属性に導入することができる。この例では、研究が誕生の季節に基づくため、匿名化されたデータの粒度は、季節の3か月の長さであることができる。したがって、下で説明される
図7~8Bに示された例と同様に、匿名化のために、研究者の要求に従って、正確な生年月日が、3か月の季節の間隔に対応するビンに分けられることができる。加えて、生年月日のこの集約のため、この例では、制約コンポーネント310の匿名性要件も満たされることができる。
【0066】
1つまたは複数の実施形態は、匿名化されたネットワークの全体的な有用性を評価し、その後、匿名化されたネットワーク290の能力の低下を制約することができる有用性制約を生成することができる。以下では、匿名化されたネットワークの有用性の低下の例が、例えば、制約コンポーネント310によって生成されたプライバシー制約を満たすために使用される代替の匿名化方針に基づいて、
図8Bを使用して説明される。
【0067】
追加の実施形態では、有用性制約およびプライバシー制約の両方を評価して調整するために、コンピュータ実行可能コンポーネントは、最適性コンポーネント510をさらに含むことができる。1つの手法では、一部の種類のデータのプライバシー制約が厳格である可能性があるため、最適性コンポーネント510は、匿名化プロセスの何らかの選択された匿名化特性に基づいて、匿名化コンポーネント107の匿名化プロセスを最適化するか、または匿名化プロセスの最適性を向上させることができる有用性制約を選択することができる。1つまたは複数の実施形態では、匿名化特性は、ネットワーク情報の匿名化の間に情報が失われる程度を含むことができるが、これに限定されない。例えば、例示的な匿名化手法では、例えば、区別できない必要がある実体の数(k)を増やすことが、匿名化されたネットワーク290におけるデータの損失の増加を必然的にもたらす可能性があるため、最適性コンポーネント510は、匿名化されるネットワークのプライバシー制約を満たすように決定される最小のk値を選択することができる。
【0068】
最適化に使用されるその他の匿名化特性は、匿名化プロセスの間に実行されるネットワークの編集(例えば、匿名化をサポートするためのオリジナルのネットワーク・データの構造に対する変更)の数を含むことができるが、これに限定されない。匿名化されたネットワークに対する例示的なグラフの編集は、エッジの追加/削除、任意の2つのノード間のエッジの交換、またはノードの追加/削除、エッジ属性の集約もしくは匿名化を含むことができるが、これらに限定されない。例えば、匿名性の必要なレベルに向かって反復を増やすことである。上記に加えて、ネットワークの編集は、前述し、
図8A~Bに示されているように、属性値をさまざまなビンに集約することによって、格納された匿名化されたデータの粒度を増やすことなどの、ノード属性の集約を含むことができる。
【0069】
図6は、本明細書に記載された1つまたは複数の実施形態に従って、ネットワーク属性、ノード属性、およびノード間の接続を表すエッジ属性を含む因子に基づいてネットワーク280の匿名化を容易にすることができる例示的な非限定的システム600のブロック図を示している。各実施形態で採用されている類似する要素またはプロセスあるいはその両方の説明の繰り返しは、簡潔にするために省略されている。
【0070】
一部の実施形態では、システム600は、匿名化コンポーネント107によって変換され、匿名化されたネットワーク290として公開された(406)ネットワーク280を含むことができる。ネットワーク280および匿名化されたネットワーク290は、1つまたは複数の実施形態では、例えば
図2を使用して前述したように、複数の接続されたノードを含むことができる。1つまたは複数の実施形態では、制約コンポーネント310は、匿名化コンポーネント107に通信によって接続されることができる。さらに、匿名化されたネットワークのコンシューマ450は、匿名化されたネットワーク290に通信によって結合されることができ、このアクセスの有用性が有用性指標455によって表されている。
【0071】
例示の目的で、以下の
図6の説明では、1つまたは複数の実施形態に従って、最適性コンポーネント510の動作のための別の手法について説明する。この例では、コンシューマ515からの要求に応答して匿名化されたネットワーク290によって提供される好ましい属性であるノード属性、エッジ属性、およびネットワーク属性のうちの1つまたは複数の組み合わせに基づいている、有用性制約(U)が使用されることができる。この例に関連して、プライバシー制約(P)は、例えば、さまざまなノードのユーザまたは実体によって定義されたアクセス権限に基づいてプライバシー制約を定義する、ネットワーク280内のノードの現在のプライバシー・レベルに基づくことができる。
【0072】
上記の制約に基づいて、最適性コンポーネント510は、ネットワーク280を分析し、例えばプライバシー制約が厳格な法的ルールまたは倫理的ルールであることが多いため、ハード制約としてPを使用し、ソフト制約としてUを使用して、さまざまな匿名性手法を識別することができる。目的関数などの基準(例えば、匿名化の間の情報の損失、グラフの編集、またはその他の最適化基準など)に従って、さまざまな匿名性手法が評価されることができる。
【0073】
最適性コンポーネント510による手法の評価中に、Uにおいて好ましい属性を維持することができない匿名性手法の選択の優先度を下げるために、ペナルティが使用されることができる。1つまたは複数の実施形態では、例えば、ノード属性、エッジ属性、およびネットワーク属性に対して、ペナルティ関数を使用することによって、プライバシーを侵害せずに、匿名化されたネットワーク290の全体的な有用性を体系的に改善することができる。一部の実施形態では、PとUの相互作用は、PとUの間のトレードオフとして表されることができる。
【0074】
最適性コンポーネント510の動作の別のより詳細な例では、1つまたは複数の実施形態において、VおよびEがノードのセットおよびエッジのセットをそれぞれ示す例示的なネットワークG=(V,E)の場合に、XV、XE、およびXNが、Gのノード属性、エッジ属性、およびネットワーク属性をそれぞれ示すとする。さらに、Aが、すべてのノードのアクセス権限のセットであり、Avがノードvによって定義されたアクセス権限であり、v∈Vであるとし、PおよびUを仮定する。XGを、維持されるネットワーク属性(例えば、前述したように、コンシューマの要件を満たすための好ましい属性)のセットとする。
【0075】
動作中に、実装の選択に基づいて、1つまたは複数の実施形態に従って、UがXV、XE、およびXGの順序付けられたリストに適用されることができ、v∈Vそれぞれについて、Avに基づいて、XVv、XEv、およびXNvの許容される属性を更新する。この例を引き続き使用し、アクセス権限Aのセットに基づいて、匿名化のために、制約コンポーネント310によってプライバシー制約Pが設定されることができる。U(例えば、ノードのセットの媒介中心性の、特定のネットワーク属性など)が、Gおよび匿名化されたG’においてできるだけ類似したままでありながら、Pをハード制約として満たすように、データを匿名化する。
【0076】
匿名化プロセスと共に、1つまたは複数の実施形態では、プライバシー制約を損なわずにノード属性、エッジ属性、またはネットワーク属性の特性を維持することができるペナルティ関数F(G)が実装されることができる。追加の手法では、本明細書に記載された最適性手法の一部は、有用性の維持の優先度を含むさまざまな因子に基づいて、重み属性を割り当てることができる。一部の実装では、各反復で上記の制約を達成するために、匿名化されたネットワーク290の構造における変更が決定されることができ、この変更は、一部の環境では、U(ノードのセットのネットワーク中心性特性など)に対する変更にペナルティを課しながら、匿名化の結果をPの達成に向かって移動する。
【0077】
図7は、1つまたは複数の実施形態に従って、異なる手法を使用して匿名化されるネットワークからのサンプル・データの表700を示している。表700は、ID、名前720、生年月日730、郵便番号740、および性別750に対応する属性をそれぞれ有する、11人の患者710A~710Kを含んでいる。
【0078】
データを分析すると、患者710A~710Kが、3つの異なる郵便番号740に属し、一意のIDおよび名前720を有していることに気付くことができる。
図8A~8Bの匿名化手法の説明における参照のために、生年月日730、郵便番号740、および性別750の組み合わせの識別を目立たせるように、属性の組み合わせ790が強調されている。
【0079】
図8A~8Bは、1つまたは複数の実施形態に従って、
図7に示されたデータを匿名化するための2つの代替手法を示している。各実施形態で採用されている類似する要素またはプロセスあるいはその両方の説明の繰り返しは、簡潔にするために省略されている。
【0080】
図8Aは、k=3の場合の、k-匿名性手法を使用する表700の匿名化を示している。例示の目的で、
図7~8Bの例が、人を直接識別できる属性(例えば、IDおよび名前720)、および公開されており、組み合わせて使用されて特定の人を識別できることがある属性という、2種類の属性を含んでいるということに注意するべきである。
【0081】
前述したように、さまざまな実施形態が、データの要求者の要求に基づいて、匿名化手法を調整することができる。この例では、患者712A~712Kの条件のさまざまな実例は、研究されることが求められており(示されていない)、研究に使用され得る人口統計データ(例えば、生年月日730から決定された年齢、住宅情報のための郵便番号740、および性別750)と共に、この条件に関する情報を含む。この例では、月単位の個人の年齢が要件になる。
【0082】
この例では、匿名化手法は、IDおよび名前720を、人を識別できる不必要なデータとして削除することを開始する。名前と同様に、生年月日も、システム内で患者に固有であるが、このデータは使用可能であることが要求されているため、1つまたは複数の実施形態によって、このデータを削除する必要のない匿名化のための異なる手法が使用されることができるということに注意するべきである。例えば、生年月日730に示されているように、この例では、年の月が、匿名化のための4つの月グループに配置される。
図8Aで強調されているように、このデータセットの場合、この手法は、k=3の要件を満たし、例えば、少なくともk人の患者712A~712K(例えば、712I~712K)が、互いに識別され得ないほど十分に類似している。
【0083】
図5~6を使用して説明された要件および有用性の説明を再び参照すると、この例では、月単位の年齢が有用性制約であり、k=3がプライバシー制約である。さらに、使用される生年月日730に対して3か月のグループ化手法を選択することによって、研究者にとって、有用性の値が減少した可能性があり、例えば、月単位の年齢が、使用される3か月の範囲内でのみ知られ得るということに注意するべきである。この不正確性の増大の重要性は、実行されている研究の詳細に依存することができる。現実のデータセットで多種多様な属性を使用して、生年月日が月および年によって表される匿名化の選択肢が使用可能であってよい。
【0084】
図8Bは、1つまたは複数の実施形態に従って、表700の別の例示的な匿名化を示している。この例では、プライバシー要件が、前の例よりも厳しい(例えば、k=4)。代替手法を選択することにおいて、1つまたは複数の実施形態は、2つの異なる郵便番号の接頭値(例えば、550および650)のみがデータに含まれるということを決定することができる。したがって、生年月日730をさらにグループ化し、それに応じて匿名化された年齢の有用性を減らす代わりに、郵便番号の接頭値の2つのグループが使用されることができる。
【0085】
したがって、図に示されているように、患者715A~715Dおよび患者715I~715Kは、異なる郵便番号740の値によって前は互いに区別できたが、これらの違いが郵便番号の接頭値に含まれていないため、この手法を使用することによって、グループが、区別できない7人の患者715A~Kのブロック890Dを形成する。レコード715E~715Hが区別できない4人の患者のレコードのブロック890Eを形成するため、表の新しいk値はk=4である。
【0086】
上で含まれていた匿名化手法の詳細な説明は、特に、要件およびプライバシー制限がデータの特定のセットにどのように関連することができるかを示すよう意図されており、例えば、生年が患者間で異なっているなど、データが異なっていた場合、異なる手法が使用される必要があるということに、注意するべきである。
【0087】
上記の説明に基づいて理解されるべきである別の概念は、小さい単純なデータのセットでも使用されることができる匿名化のための多種多様な手法である。1つまたは複数の実施形態では、最適性コンポーネント510は、一部の環境において、有用性要件およびプライバシー要件を満たすために使用され得る使用可能なさまざまな手法を用いて、匿名化されたネットワークの性能を改善することができるわずかな調整を行うことができる。
【0088】
本明細書に記載された1つまたは複数の実施形態が、人間の知性において再現され得ず、人間によって実行され得ない電気的コンポーネント、機械的コンポーネント、マス・ストレージ、および回路のさまざまな組み合わせを利用できるということが、理解されるべきである。例えば、関連する情報のネットワークを分析し、処理し、匿名化することは、人間の知性の能力を超えている。例えば、匿名化コンポーネント107の動作は、同じ期間にわたって人間の知性によって実行され得る速度よりも速く実行されることができる。
【0089】
複数の実施形態によれば、ネットワーク匿名化システム102は、本明細書に記載されたさまざまな動作も実行しながら、1つまたは複数の他の機能を実行すること(例えば、完全に電源が投入される、完全に実行されるなど)に向けて完全に動作可能であることもできる。そのような同時の複数の動作の実行が、人間の知性の能力を超えているということが、理解されるべきである。ネットワーク匿名化システム102が、人間のユーザなどの実体によって手動で取得し、分析し、処理することが不可能な情報を取得し、分析し、処理することができるということも、理解されるべきである。例えば、本明細書で開示された、ネットワーク匿名化システム102、属性コンポーネント108、匿名化コンポーネント107、およびネットワーク匿名化システム102に関連付けられた任意のその他のコンポーネントに含まれている情報の種類、量、または多様性、あるいはその組み合わせは、人間のユーザによって手動で取得され得る情報よりも複雑であることができる。
【0090】
図9は、本明細書に記載された1つまたは複数の実施形態に従って、ネットワーク属性227、ノード属性、およびノード220A~B間の接続225A~Bを含む因子に基づいてネットワーク280の匿名化を容易にすることができる例示的な非限定的コンピュータ実装方法900のフロー図を示している。各実施形態で採用されている類似する要素またはプロセスあるいはその両方の説明の繰り返しは、簡潔にするために省略されている。
【0091】
一部の実施形態では、902で、コンピュータ実装方法900は、プロセッサに動作可能に結合されたデバイスによって、ネットワークのネットワーク属性を生成することを含むことができる。例えば、1つまたは複数の実施形態は、プロセッサ(例えば、プロセッサ106)に動作可能に結合されたデバイス(例えば、ネットワーク匿名化システム102)によって、ネットワーク(例えば、ネットワーク280)のネットワーク属性(例えば、ネットワーク属性277)を生成することができる。
【0092】
一部の実施形態では、904で、コンピュータ実装方法900は、デバイスによって、ネットワークのネットワーク属性および第1のノードのノード属性に基づいてネットワークのネットワーク情報を匿名化することによって匿名化されたネットワークを生成することを含むことができ、接続情報が、エッジ属性を含んでいる第1のノードと第2のノードの間の接続に対応し、ネットワーク情報を匿名化することが、エッジ属性にさらに基づく。例えば、1つまたは複数の実施形態は、デバイス(例えば、ネットワーク匿名化システム102内の匿名化コンポーネント107)によって、ネットワーク(例えば、ネットワーク280)のネットワーク属性(例えば、ネットワーク属性277)および第1のノード(例えば、ノード220A)のノード属性に基づいてネットワーク(例えば、ネットワーク280)のネットワーク情報を匿名化することによって匿名化されたネットワーク(例えば、匿名化されたネットワーク290)を生成することができ、接続情報が、エッジ属性を含んでいる第1のノード(例えば、ノード220A)と第2のノード(例えば、ノード220B)の間の接続(例えば、接続225B)に対応し、ネットワーク情報を匿名化することが、エッジ属性にさらに基づく。
【0093】
説明を簡単にするために、一連の動作としてコンピュータ実装方法が示され、説明される。本革新技術が、示された動作によって、または動作の順序によって、あるいはその両方によって制限されず、例えば動作が、本明細書において提示されておらず、説明されていない他の動作と共に、さまざまな順序で、または同時に、あるいはその両方で発生できるということが、理解されるべきである。さらに、開示される対象に従ってコンピュータ実装方法を実装するために、示されているすべての動作が必要でなくてもよい。加えて、当業者は、コンピュータ実装方法が、代替として、状態図を介して相互に関連する一連の状態またはイベントとして表され得るということを理解するであろう。そのようなコンピュータ実装方法をコンピュータに輸送または転送するのを容易にするために、以下および本明細書全体を通じて開示されたコンピュータ実装方法を製品に格納できるということが、さらに理解されるべきである。製品という用語は、本明細書において使用されるとき、任意のコンピュータ可読デバイスまたはコンピュータ可読ストレージ媒体からアクセスできるコンピュータ・プログラムを包含するよう意図されている。
【0094】
図10は、開示される対象のさまざまな態様の例示的な背景を示しており、例えば、この図および以下の説明は、1つまたは複数の実施形態に従って、開示される対象のさまざまな態様が実装され得る適切な環境の概要を示すよう意図されている。各実施形態で採用されている類似する要素またはプロセスの説明の繰り返しは、簡潔にするために省略されている。
【0095】
図10は、本明細書に記載された1つまたは複数の実施形態を容易にすることができる例示的な非限定的動作環境のブロック図を示している。本明細書に記載の他の実施形態で使用している同様の要素の繰り返しの説明は、簡潔さのために省略する。
【0096】
図10を参照すると、本開示のさまざまな態様を実装するための適切な動作環境1000は、コンピュータ1012を含むこともできる。コンピュータ1012は、処理ユニット1014、システム・メモリ1016、およびシステム・バス1018を含むこともできる。システム・バス1018は、システム・メモリ1016を含むが、これに限定されないシステム・コンポーネントを、処理ユニット1014に結合する。処理ユニット1014は、さまざまな使用可能なプロセッサのいずれかであることができる。デュアル・マイクロプロセッサおよびその他のマルチプロセッサ・アーキテクチャが、処理ユニット1014として採用されてもよい。システム・バス1018は、ISA(Industry Standard Architecture)、MCA(Micro Channel Architecture)、EISA(Enhanced ISA)、IDE(Intelligent Drive Electronics)、VESAローカル・バス(VLB:VESA Local Bus)、PCI(Peripheral Component Interconnects)、カードバス、ユニバーサル・シリアル・バス(USB:Universal Serial Bus)、AGP(Advanced Graphics Port)、FireWire(IEEE 1394)、および小型コンピュータ・システム・インターフェイス(SCSI:Small Computer Systems Interface)を含むが、これらに限定されない、任意のさまざまな使用可能なバス・アーキテクチャを使用する、メモリ・バスもしくはメモリ・コントローラ、ペリフェラル・バスもしくは外部バス、またはローカル・バス、あるいはその組み合わせを含む、複数の種類のバス構造のいずれかであることができる。
【0097】
システム・メモリ1016は、揮発性メモリ1020および不揮発性メモリ1022を含むこともできる。起動中などにコンピュータ1012内の要素間で情報を転送するための基本ルーチンを含んでいる基本入出力システム(BIOS:basic input/output system)が、不揮発性メモリ1022に格納される。コンピュータ1012は、取り外し可能/取り外し不可能な揮発性/不揮発性のコンピュータ・ストレージ媒体を含むこともできる。例えば
図10は、ディスク・ストレージ1024を示している。ディスク・ストレージ1024は、磁気ディスク・ドライブ、フロッピー(R)・ディスク・ドライブ、テープ・ドライブ、Jazドライブ、Zipドライブ、LS-100ドライブ、フラッシュ・メモリ・カード、またはメモリ・スティックなどの、ただしこれらに限定されない、デバイスを含むこともできる。ディスク・ストレージ1024は、ストレージ媒体を、別々に、または他のストレージ媒体と組み合わせて、含むこともできる。システム・バス1018へのディスク・ストレージ1024の接続を容易にするために、インターフェイス1026などの、取り外し可能または取り外し不可能なインターフェイスが通常は使用される。
図10は、ユーザと、適切な動作環境1000において説明された基本的なコンピュータ・リソースとの間の仲介として機能するソフトウェアも示している。そのようなソフトウェアは、例えば、オペレーティング・システム1028を含むこともできる。ディスク・ストレージ1024に格納できるオペレーティング・システム1028は、コンピュータ1012のリソースを制御し、割り当てるように動作する。
【0098】
システムのアプリケーション1030は、例えばシステム・メモリ1016またはディスク・ストレージ1024のいずれかに格納されたプログラム・モジュール1032およびプログラム・データ1034を介して、オペレーティング・システム1028によるリソースの管理を利用する。さまざまなオペレーティング・システムまたはオペレーティング・システムの組み合わせを使用して本開示が実装され得るということが、理解されるべきである。ユーザは、入力デバイス1036を介して、コマンドまたは情報をコンピュータ1012に入力する。入力デバイス1036は、マウス、トラックボール、スタイラス、タッチ・パッド、キーボード、マイクロホン、ジョイスティック、ゲーム・パッド、衛星放送受信アンテナ、スキャナ、TVチューナー・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、Webカメラなどのポインティング・デバイスを含むが、これらに限定されない。これらおよびその他の入力デバイスは、インターフェイス・ポート1038を介してシステム・バス1018を通り、処理ユニット1014に接続する。インターフェイス・ポート1038は、例えば、シリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス(USB)を含む。出力デバイス1040は、入力デバイス1036と同じ種類のポートの一部を使用する。このようにして、例えば、USBポートを使用して、入力をコンピュータ1012に提供し、コンピュータ1012から出力デバイス1040に情報を出力できる。出力アダプタ1042は、特殊なアダプタを必要とする出力デバイス1040の中でも特に、モニタ、スピーカ、およびプリンタのような何らかの出力デバイス1040が存在することを示すために提供される。出力アダプタ1042の例としては、出力デバイス1040とシステム・バス1018の間の接続の手段を提供するビデオ・カードおよびサウンド・カードが挙げられるが、これらに限定されない。リモート・コンピュータ1044などの、その他のデバイスまたはデバイスのシステムあるいはその両方が、入力機能および出力機能の両方を提供するということに、注意するべきである。
【0099】
コンピュータ1012は、リモート・コンピュータ1044などの1つまたは複数のリモート・コンピュータへの論理接続を使用して、ネットワーク環境内で動作できる。リモート・コンピュータ1044は、コンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサベースの機器、ピア・デバイス、またはその他の一般的なネットワーク・ノードなどであることができ、通常は、コンピュータ1012に関連して説明された要素の多くまたはすべてを含むこともできる。簡潔にするために、メモリ・ストレージ・デバイス1046のみが、リモート・コンピュータ1044と共に示されている。リモート・コンピュータ1044は、ネットワーク・インターフェイス1048を介してコンピュータ1012に論理的に接続されてから、通信接続1050を介して物理的に接続される。ネットワーク・インターフェイス1048は、ローカル・エリア・ネットワーク(LAN:local-area networks)、広域ネットワーク(WAN:wide-areanetworks)、セルラー・ネットワークなどの、有線通信ネットワークまたは無線通信ネットワークあるいはその両方を包含する。LAN技術は、光ファイバ分散データ・インターフェイス(FDDI:Fiber Distributed Data Interface)、銅線分散データ・インターフェイス(CDDI:Copper Distributed Data Interface)、イーサネット(R)、トークン・リングなどを含む。WAN技術は、ポイントツーポイント・リンク、総合デジタル通信網(ISDN:Integrated Services Digital Networks)およびその変形などの回路交換網、パケット交換網、およびデジタル加入者回線(DSL:Digital Subscriber Lines)を含むが、これらに限定されない。通信接続1050は、ネットワーク・インターフェイス1048をシステム・バス1018に接続するために採用されたハードウェア/ソフトウェアのことを指す。通信接続1050は、説明を明確にするために、コンピュータ1012内に示されているが、コンピュータ1012の外部に存在することもできる。ネットワーク・インターフェイス1048に接続するためのハードウェア/ソフトウェアは、単に例示の目的で、通常の電話の等級のモデム、ケーブル・モデム、およびDSLモデムを含むモデム、ISDNアダプタ、ならびにイーサネット(R)・カードなどの、内部および外部の技術を含むこともできる。
【0100】
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、装置、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読ストレージ媒体を含むことができる。コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであることができるが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含むこともできる。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【0101】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えることができる。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであることができる。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われ得る。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行することができる。
【0102】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するように、コンピュータ実装プロセスを生成すべく、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれ、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で一連の操作可能な動作を実行させるものであってもよい。
【0103】
図内のフロー図およびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能な命令を含んでいる、命令のモジュール、セグメント、または部分を表すことができる。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生することができる。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、指定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0104】
上記では、コンピュータで実行されるコンピュータ・プログラム製品のコンピュータ実行可能命令との一般的な関連において、対象が説明されたが、当業者は、本開示がその他のプログラム・モジュールと組み合わせて実装され得るということを認識するであろう。通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するか、あるいはその両方を行うルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、当業者は、本発明のコンピュータ実装方法が、シングルプロセッサ・コンピュータ・システムまたはマルチプロセッサ・コンピュータ・システム、ミニコンピューティング・デバイス、メインフレーム・コンピュータ、コンピュータ、ハンドヘルド・コンピューティング・デバイス(例えば、PDA、電話)、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品または産業用電子機器などを含む、その他のコンピュータ・システム構成を使用して実践され得るということを理解するであろう。示された態様は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境内で実践されることもできる。ただし、本開示の態様の全部ではないとしても一部は、スタンドアロン・コンピュータ上で実践され得る。分散コンピューティング環境において、プログラム・モジュールは、ローカルおよびリモートの両方のメモリ・ストレージ・デバイスに配置され得る。
【0105】
本出願において使用されるとき、「コンポーネント」、「システム」、「プラットフォーム」、「インターフェイス」などの用語は、1つまたは複数の特定の機能を含むコンピュータ関連の実体または操作可能なマシンに関連する実体を指すことができるか、またはそれらの実体を含むことができるか、あるいはその両方が可能である。本明細書で開示された実体は、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかであることができる。例えば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラム、またはコンピュータ、あるいはその組み合わせであることができるが、これらに限定されない。例として、サーバ上で実行されるアプリケーションおよびサーバの両方が、コンポーネントであることができる。1つまたは複数のコンポーネントが、プロセス内または実行のスレッド内あるいはその両方に存在することができ、コンポーネントは、1つのコンピュータ上に局在するか、または2つ以上のコンピュータ間で分散されるか、あるいはその両方が可能である。別の例では、各コンポーネントは、さまざまなデータ構造が格納されているさまざまなコンピュータ可読媒体から実行できる。コンポーネントは、1つまたは複数のデータ・パケット(例えば、ローカル・システム内または分散システム内の別のコンポーネントと情報をやりとりするか、またはインターネットなどのネットワークを経由して、信号を介して他のシステムと情報をやりとりするか、あるいはその両方によって情報をやりとりする、1つのコンポーネントからのデータ)を含んでいる信号などに従って、ローカルまたはリモートあるいはその両方のプロセスを介して通信できる。別の例として、コンポーネントは、電気または電子回路によって操作される機械的部品によって提供される特定の機能を有する装置であることができ、プロセッサによって実行されるソフトウェア・アプリケーションまたはファームウェア・アプリケーションによって操作される。そのような場合、プロセッサは、装置の内部または外部に存在することができ、ソフトウェア・アプリケーションまたはファームウェア・アプリケーションの少なくとも一部を実行できる。さらに別の例として、コンポーネントは、機械的部品を含まない電子コンポーネントを介して特定の機能を提供する装置であることができ、それらの電子コンポーネントは、電子コンポーネントの機能の少なくとも一部を与えるソフトウェアまたはファームウェアを実行するためのプロセッサまたはその他の手段を含むことができる。1つの態様では、コンポーネントは、例えばクラウド・コンピューティング・システム内で、仮想マシンを介して電子コンポーネントをエミュレートすることができる。
【0106】
加えて、「または」という用語は、排他的論理和ではなく、包含的論理和を意味するよう意図されている。すなわち、特に指定されない限り、または文脈から明らかでない限り、「XがAまたはBを採用する」は、自然な包含的順列のいずれかを意味するよう意図されている。すなわち、XがAを採用するか、XがBを採用するか、またはXがAおよびBの両方を採用する場合、「XがAまたはBを採用する」が、前述の事例のいずれかにおいて満たされる。さらに、本明細書および添付の図面において使用される冠詞「a」および「an」は、単数形を対象にすることが特に指定されない限り、または文脈から明らかでない限り、「1つまたは複数」を意味すると一般に解釈されるべきである。本明細書において使用されるとき、「例」または「例示的」あるいはその両方の用語は、例、事例、または実例となることを意味するために使用される。誤解を避けるために、本明細書で開示された対象は、そのような例によって制限されない。加えて、「例」または「例示的」あるいはその両方として本明細書に記載された任意の態様または設計は、他の態様または設計よりも好ましいか、または有利であると必ずしも解釈されず、当業者に知られている同等の例示的な構造および技術を除外するよう意図されていない。
【0107】
本明細書において使用されるとき、「プロセッサ」という用語は、シングルコア・プロセッサと、ソフトウェアのマルチスレッド実行機能を備えるシングルプロセッサと、マルチコア・プロセッサと、ソフトウェアのマルチスレッド実行機能を備えるマルチコア・プロセッサと、ハードウェアのマルチスレッド技術を備えるマルチコア・プロセッサと、並列プラットフォームと、分散共有メモリを備える並列プラットフォームとを含むが、これらに限定されない、実質的に任意の計算処理ユニットまたはデバイスを指すことができる。さらに、プロセッサは、集積回路、特定用途向け集積回路(ASIC:application specific integrated circuit)、デジタル信号プロセッサ(DSP:digital signal processor)、フィールド・プログラマブル・ゲート・アレイ(FPGA:field programmable gate array)、プログラマブル・ロジック・コントローラ(PLC:programmable logic controller)、複合プログラム可能論理デバイス(CPLD:complex programmable logic device)、個別のゲートまたはトランジスタ論理、個別のハードウェア・コンポーネント、あるいは本明細書に記載された機能を実行するように設計されたこれらの任意の組み合わせを指すことができる。さらに、プロセッサは、空間利用を最適化し、ユーザ機器の性能を向上するために、分子および量子ドットベースのトランジスタ、スイッチ、およびゲートなどの、ただしこれらに限定されない、ナノスケール・アーキテクチャを利用することができる。プロセッサは、計算処理ユニットの組み合わせとして実装されてもよい。
【0108】
本開示では、コンポーネントの動作および機能に関連する「ストア」、「ストレージ」、「データ・ストア」、「データ・ストレージ」、「データベース」、および実質的に任意のその他の情報格納コンポーネントなどの用語は、「メモリ・コンポーネント」、「メモリ」内に具現化された実体、またはメモリを備えているコンポーネントを指すために使用される。本明細書に記載されたメモリまたはメモリ・コンポーネントあるいはその両方が、揮発性メモリまたは不揮発性メモリのいずれかであることができ、あるいは揮発性メモリおよび不揮発性メモリの両方を含むことができるということが、理解されるべきである。不揮発性メモリの例としては、読み取り専用メモリ(ROM:read only memory)、プログラマブルROM(PROM:programmableROM)、電気的プログラマブルROM(EPROM:electrically programmable ROM)、電気的消去可能ROM(EEPROM:electrically erasable ROM)、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ(RAM:random access memory)(例えば、強誘電体RAM(FeRAM:ferroelectric RAM))が挙げられるが、これらに限定されない。揮発性メモリは、例えば外部キャッシュ・メモリとして機能できる、RAMを含むことができる。例えばRAMは、シンクロナスRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM:synchronous DRAM)、ダブル・データ・レートSDRAM(DDR SDRAM:double data rate SDRAM)、拡張SDRAM(ESDRAM:enhanced SDRAM)、シンクリンクDRAM(SLDRAM:Synchlink DRAM)、ダイレクト・ラムバスRAM(DRRAM:direct Rambus RAM)、ダイレクト・ラムバス・ダイナミックRAM(DRDRAM:direct Rambus dynamic RAM)、およびラムバス・ダイナミックRAM(RDRAM:Rambus dynamic RAM)などの、ただしこれらに限定されない、多くの形態で利用可能である。さらに、本明細書において開示されたシステムまたはコンピュータ実装方法のメモリ・コンポーネントは、これらおよび任意のその他の適切な種類のメモリを含むが、これらに限定されない、メモリを含むよう意図されている。
【0109】
前述した内容は、システムおよびコンピュータ実装方法の単なる例を含んでいる。当然ながら、本開示を説明する目的で、コンポーネントまたはコンピュータ実装方法の考えられるすべての組み合わせについて説明することは不可能であるが、当業者は、本開示の多くのその他の組み合わせおよび並べ替えが可能であるということを認識できる。さらに、「含む」、「有する」、「所有する」などの用語が、発明を実施するための形態、特許請求の範囲、付録、および図面において使用される範囲では、それらの用語は、「備えている」が特許請求における暫定的な用語として使用されるときに解釈されるような、用語「備えている」と同様の方法で、包含的であるよう意図されている。
【0110】
さまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に制限されない。記載された実施形態の範囲および思想を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかであろう。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。