以下、図面を参照しつつ、本発明の様々な実施形態について説明する。ただし、本発明の技術的範囲はそれらの実施形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
本実施形態の匿名化処理装置は、携帯端末を所有する複数のユーザに関するパラメータを匿名化する。匿名化されるパラメータは、位置情報及び個人の属性情報等である。匿名化とは、位置情報及び個人の属性情報等に加工を施すことにより、その情報が誰に関するものであるか分からないよう(特定の個人を識別できないよう)にすることである。例えば、匿名化処理として、年齢が近いことや居住地が近いこと等の、近い値を有する複数のパラメータが一つのグループにまとめられ、そのグループ内の複数のパラメータの代表値が匿名化データとして算出される。位置情報は、携帯端末の位置を特定する情報であり、例えば緯度及び経度、複数のアクセスポイントからの相対位置、又は建物内の位置等である。
匿名化処理装置は、それぞれが複数のパラメータを有する複数のデータについて、特定のパラメータに基づいて匿名化パラメータを作成する匿名化処理を行う。複数のデータは、例えば、携帯電話に係るユーザに関する個人データを含むデータである。携帯電話に係るユーザに関する個人データには、携帯電話に係るユーザの電話番号、氏名、住所、郵便番号等のユーザに関するパラメータと、携帯電話が位置する緯度経度及びその緯度経度を取得した日及び時刻等の携帯電話に関するパラメータとがある。携帯電話に関するパラメータは、一定時間毎に逐次取得される情報であり、ユーザに関するパラメータと逐次取得された携帯電話に関するパラメータとが、互いに関連付けられて、移動通信事業者が有するサーバ等に記憶される。また、匿名化処理を行う際には、各パラメータを標準化処理する。標準化することにより、後述するパラメータ空間における距離が、各パラメータに応じた表現形式に影響されないようになる。
まず、匿名化処理装置は、複数のデータの内の一つのデータ(以下、特定データと称する場合がある。)に関して、特定データ以外の他のデータの内、所定数のデータを複数の選択データとしてランダムに選択する選択工程を実行する。
次に、匿名化処理装置は、ランダムに選択した複数の選択データのそれぞれについて、複数のデータの中から、パラメータ空間内で近傍にある複数の中間データを抽出する抽出工程を実行する。パラメータ空間は、匿名化する各パラメータを座標軸としたユークリッド空間等であり、匿名化するパラメータが2つである場合は、2次元の平面となる。パラメータ空間内における近傍とは、ユークリッド空間内において、複数のデータのそれぞれが有するパラメータを座標とした複数の点が配置された場合に、当該複数の点の内、任意の2点間のユークリッド距離が一定距離以内であることをいう。
パラメータ空間内において近傍関係にある2点に対応するデータのパラメータは、同一のグループに含まれる蓋然性が高いと想定される。例えば、24歳と26歳という年齢は、同年代のグループに含まれると想定されるが、24歳と65歳という年齢は、同年代のグループには含まれないと想定される。
次に、匿名化処理装置は、パラメータ空間内で、複数の中間データのそれぞれと特定データとの距離を計算し、計算結果に基づいて、複数の中間データの内、特定データの近傍に存在する複数の近傍データを決定する決定工程を実行する。
次に、匿名化処理装置は、決定工程で決定された複数の近傍データを、上述した選択工程の選択データとして置き換えるようにして、上述した、選択工程、抽出工程及び決定工程を繰り返し複数回実行する実行工程を実行する。選択工程、抽出工程及び決定工程が、繰り返し複数回実行されることにより、最初にランダムに選択された選択データが、特定データに対して、より近傍に存在するデータに置き換えられることになる。
次に、匿名化処理装置は、実行工程後の複数の選択データ及び特定データに基づいてグループ化を行うグループ化工程を実行する。グループ化は、特定データに関する選択データの内、ユークリッド空間内で近傍に存在するデータを、同一のグループに含める処理である。
そして、匿名化処理装置は、データが有するパラメータごとに、グループ化された複数のデータが有するそれぞれのパラメータに基づいて、グループ化された複数のデータの匿名化パラメータを作成するパラメータ作成工程を実行し、作成された匿名化パラメータを出力する出力工程を実行する。匿名化パラメータは、グループ化された複数のデータのパラメータを代表する値であり、例えば、グループ化された複数のデータのパラメータの平均値(重心値)である。
このように、匿名化処理装置は、所定数のデータを複数の選択データとして用いて匿名化処理を実行する。そして、匿名化処理装置は、実行工程において、選択工程、抽出工程及び決定工程を実行することで、特定データから、より近傍に存在する選択データを決定する。これにより匿名化処理装置は、全てのデータに対して近傍関係を判定する必要がなくなる。
従来の匿名化処理では、データ全数の二乗に比例する匿名化処理時間が必要であったが、本実施形態における匿名化処理装置の匿名化処理に要する匿名化処理時間は、(選択データ数×N)に比例する時間である。そのため、所定数をデータ全数よりも小さく設定することで、匿名化処理装置の計算負荷が軽減し、匿名化処理装置において、匿名化処理を高速に実行することが可能となる。
図1は、個人データ管理システム1の概略構成の一例を示す図である。
個人データ管理システム1は、少なくとも複数の携帯端末2と、匿名化処理装置3とを有する。携帯端末2と匿名化処理装置3とは、通信ネットワークを介して相互に接続され、例えば、アクセスポイント4、バックボーンネットワーク5、ゲートウェイ6、及びインターネット7を介して相互に接続される。
携帯端末2は、例えば携帯電話(所謂「フィーチャーフォン」)、多機能携帯電話(所謂「スマートフォン」)、携帯情報端末(Personal Digital Assistant, PDA)、携帯ゲーム機、携帯音楽プレーヤ、タブレットPC等である。
アクセスポイント4は、携帯端末2同士の接続、又は、携帯端末2とバックボーンネットワーク5との接続を行う無線機器である。例えば、携帯端末2は、Wi−Fi(Wireless Fidelity)(登録商標)のアクセスポイント4に接続することで、バックボーンネットワーク5を経由して匿名化処理装置3と通信できる。
図2は、匿名化処理装置3の概略構成の一例を示す図である。
匿名化処理装置3は、例えばパーソナルコンピュータ、サーバ等であり、取得したデータの匿名化処理を実行する。匿名化処理装置3は、通信部31と、記憶部32と、処理部33とを備える。
通信部31は、匿名化処理装置3をインターネット7に接続するための通信インターフェース回路を有する。通信部31は、携帯端末2から受信したデータを処理部33に供給する。
記憶部32は、例えば、半導体メモリ、磁気ディスク装置、及び光ディスク装置の内の少なくとも一つを有する。記憶部32は、処理部33による処理に用いられるドライバプログラム、オペレーティングシステムプログラム、アプリケーションプログラム、データ等を記憶する。例えば、記憶部32は、ドライバプログラムとして、通信部31を制御する通信デバイスドライバプログラム等を記憶する。コンピュータプログラムは、例えばCD−ROM、DVD−ROM等のコンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて記憶部32にインストールされてもよい。
また、記憶部32は、データとして、携帯端末2に係るユーザに関する個人データを管理する個人データ管理テーブルを記憶する。また、記憶部32は、データとして、個人データの一部又は全部に対し、後述する標準化処理によって生成されるデータを管理する対象データ管理テーブルを記憶する。また、記憶部32は、データとして、後述する近傍リスト作成処理によって作成される近傍テーブル、逆近傍テーブル、全近傍テーブル、逆全近傍テーブル、及び近傍候補テーブルを記憶する。また、記憶部32は、データとして、後述するグラフテーブル作成処理によって作成されるグラフテーブルを記憶する。また、記憶部32は、後述する分類処理によって作成されるグループテーブルを記憶する。また、記憶部32は、匿名化パラメータを含む匿名化データテーブルを記憶する。
図3(a)は、個人データ管理テーブルのデータ構造の一例を示す図である。
図3(a)に示すように、個人データ管理テーブルには、対象データIDに対して、携帯端末2に係る個人データが関連付けられて登録される。図3(a)に示す例では、個人データとして、携帯端末ID、その携帯端末2を所有するユーザの年齢、性別及び住所の郵便番号、その携帯端末2の位置を示す緯度及び経度、並びに、その緯度及び経度を取得した日及び時刻の各パラメータが、互いに関連付けられて登録される。
対象データIDは、携帯端末2に係る個人データを一意に識別するための識別情報である。携帯端末IDは、携帯端末を一意に識別するための識別情報であれば、どのような情報であってもよい。ユーザの年齢、性別及び郵便番号は、ユーザが携帯端末2を所有する際に移動通信事業者に登録される情報である。なお、年齢、性別及び郵便番号の一部又は全部が登録されていない携帯端末2に係る個人データは、匿名化処理装置3の処理対象とならない。
緯度及び経度は、携帯端末2の実際の緯度及び経度ではなく、仮想の緯度及び経度が用いられる。なお、将来の法改正に応じて、Wi−Fi位置情報及び/又はCDR(Call Detail Record)を利用して取得される緯度及び経度が用いられてもよい。ここで、Wi−Fi位置情報は、携帯端末2がWi−Fiのアクセスポイント4に接続した際に、携帯端末2が送信するプローブリクエストに応じて取得されるアクセスポイント4の緯度及び経度である。また、CDRは、携帯端末2が通話及びメール送受信等の携帯電話通信網の通信を行った際に記録される通信詳細記録であり、携帯端末2と通信を行った携帯電話の基地局(不図示)にて測定された携帯端末2の緯度及び経度を含んでいる。
図3(b)は、対象データ管理テーブルのデータ構造の一例を示す図である。
図3(b)に示すように、対象データ管理テーブルには、対象データIDに対して、個人ID、並びに、標準化された年齢、性別、緯度、経度、日及び時刻が互いに関連付けられて登録される。個人IDは、携帯端末IDに基づいて作成された、携帯端末を一意に識別するための識別データである。標準化された年齢、性別、緯度、経度、日及び時刻は、対象データID毎に、個人データ管理テーブルに登録された年齢、性別、緯度、経度、日及び時刻を標準化したデータである。なお、以下では、標準化された年齢、性別、緯度、経度、日及び時刻を、それぞれ標準化パラメータと称する場合がある。
図4(a)は、近傍テーブルのデータ構造の一例を示す図である。
図4(a)に示すように、近傍テーブルは、各対象データについて、各対象データの対象データIDに関連付けられた近傍リストを有する。近傍リストには、所定数の他の対象データの対象データIDが含まれる。図4(a)に示される例では、所定数は「4」である。近傍リストには、各対象データIDに対応する対象データの近傍にある他の対象データの対象データIDが含まれる。近傍リストには、各対象データIDに対応する対象データに対して近傍に位置する順に所定数の対象データの対象データIDが記憶される。以下、最も近傍に位置する対象データの対象データIDを第1近傍の対象データIDと称し、2番目に近傍に位置する対象データの対象データIDを第2近傍の対象データIDと称し、3番目に近傍に位置する対象データの対象データIDを第3近傍の対象データIDと称し、4番目に近傍に位置する対象データの対象データIDを第4近傍の対象データIDと称する。
図4(b)は、逆近傍テーブルのデータ構造の一例を示す図である。
図4(b)に示すように、逆近傍テーブルは、各対象データについて、各対象データの対象データIDに関連付けられた逆近傍リストを有する。各対象データIDに関連付けられた逆近傍リストには、各対象データIDが含まれている近傍テーブルに関連付けられた対象データIDが含まれる。
図4(c)は、全近傍テーブルのデータ構造の一例を示す図である。
図4(c)に示すように、全近傍テーブルは、各対象データについて、各対象データの対象データIDに関連付けられた全近傍リストを有する。各対象データIDに関連付けられた全近傍リストには、各対象データに関連付けられた近傍リスト及び逆近傍リストに含まれる対象データIDが含まれる。
図5(a)は、逆全近傍テーブルのデータ構造の一例を示す図である。
図5(a)に示すように、逆全近傍テーブルは、各対象データについて、各対象データの対象データIDに関連付けられた逆全近傍リストを有する。各対象データIDに関連付けられた逆全近傍リストには、各対象データに関連付けられた全近傍リストに含まれる対象データIDに関連付けられた逆近傍リストに含まれる対象データIDが含まれる。逆全近傍リストに含まれる対象データIDは、重複が排除されている。
図5(b)は、近傍候補テーブルのデータ構造の一例を示す図である。
図5(b)に示すように、近傍候補テーブルは、各対象データについて、各対象データの対象データIDに関連付けられた近傍候補リストを有する。各対象データIDに関連付けられた近傍候補リストには、各対象データIDに関連付けられた近傍リスト及び逆全近傍テーブルに含まれる対象データIDが含まれる。近傍候補リストに含まれる対象データIDは、重複が排除されている。
図6(a)は、グラフテーブルのデータ構造の一例を示す図である。
図6(a)に示すように、グラフテーブルは、各エッジIDに関連付けられたノードリストを有する。ノードリストには、両端の対象データIDが含まれる。ノードリストに含まれる両端の対象データIDの組は、近傍テーブルが有する各近傍リストに含まれる対象データIDと、各近傍リストに関連付けられた対象データIDとの組である。ノードテーブルが有するノードリストは、重複が排除されている。エッジIDは、複数のノードリストのそれぞれを一意に識別するための識別情報である。
図6(b)は、グループテーブルのデータ構造の一例を示す図である。
図6(b)に示すように、グループテーブルは、各グループIDに関連付けられたグループリストを有する。グループリストには、各グループに属する対象データIDが含まれる。グループリストに含まれる対象データIDは、一以上の標準化パラメータを座標軸としたユークリッド空間内において、各対象データIDに対応する標準化パラメータを座標とした各点間のユークリッド距離が短い複数の点のそれぞれに対応する。
図7は、匿名化データテーブルのデータ構造の一例を示す図である。
図7に示すように、匿名化データテーブルは、各グループに関して、匿名化された年齢、緯度、経度、日及び時刻が,各グループのグループIDに関連付けられて登録される。なお、以下では、匿名化された年齢、緯度、経度、日及び時刻を、それぞれ匿名化パラメータと称する場合がある。
図2に戻って、処理部33は、一又は複数個のプロセッサ及びその周辺回路を有する。処理部33は、匿名化処理装置3の全体的な動作を統括的に制御するものであり、例えば、CPU(Central Processing Unit)である。処理部33は、匿名化処理装置3の各種処理が記憶部32に記憶されているプログラム等に応じて適切な手順で実行されるように、通信部31等の動作を制御する。処理部33は、記憶部32に記憶されているプログラム(ドライバプログラム、オペレーティングシステムプログラム、アプリケーションプログラム等)に基づいて処理を実行する。また、処理部33は、複数のプログラム(アプリケーションプログラム等)を並列に実行できる。
処理部33は、データ取得部331と、標準化処理部332と、選択部333と、抽出部334と、決定部335と、実行部336と、グラフテーブル作成部337と、グループ化部338と、パラメータ作成部339と、出力部340とを有する。処理部33が有するこれらの各部は、処理部33が有するプロセッサ上で実行されるプログラムによって実装される機能モジュールである。あるいは、処理部33が有するこれらの各部は、独立した集積回路、マイクロプロセッサ、又はファームウェアとして匿名化処理装置3に実装されてもよい。
図8は、匿名化処理装置3による匿名化処理の動作シーケンスの一例を示す。
以下に説明する動作シーケンスは、匿名化処理装置3において予め記憶部32に記憶されているプログラムに基づき主に匿名化処理装置3の処理部33により匿名化処理装置3の各要素と協働して実行される。図8の動作シーケンスは、匿名化処理装置3の操作部(不図示)を用いたユーザの指示に従って、又は、定期的に実行される。
最初に、匿名化処理装置3のデータ取得部331は、記憶部32から個人データ管理テーブルを取得する(ステップS101)。なお、データ取得部331は、個人データ管理テーブルに代えて、ユーザが作成したデータテーブル(csv形式のデータレコード等)を取得してもよい。
次に、データ取得部331は、取得した個人データ管理テーブルに含まれる対象データIDと関連付けられたパラメータの内、匿名化処理の対象とするパラメータを匿名化処理装置3の標準化処理部332に渡す。標準化処理部332は、パラメータ毎に、標準化処理を実行し、標準化処理によって変換された標準化パラメータを対象データIDに関連付けて、対象データ管理テーブルに記憶する(ステップS102)。以下、標準化処理部332が実行する標準化処理について説明する。
まず、標準化処理部332は、取得した個人データ管理テーブルに含まれる匿名化処理の対象となる特定のパラメータにおいて、全ての対象データIDと関連付けられたパラメータを抽出する。例えば、年齢のパラメータを標準化する場合は、個人データ管理テーブルに含まれる全ての対象データIDに対応付けられた年齢を抽出する。
次に、標準化処理部332は、抽出した特定のパラメータの平均値及び標準偏差を算出する。そして、標準化処理部332は、標準化パラメータ=(パラメータ値−平均値)/標準偏差の変換式により、パラメータ値を標準化パラメータに変換する。
なお、標準化処理部332は、標準化処理によって変換された標準化パラメータを対象データIDに関連付けて、対象データ管理テーブルに記憶するとともに、各パラメータの平均値mを、対象データ管理テーブルに記憶する。
図11は、パラメータ1101と、標準化パラメータ1102と、標準化パラメータを座標軸としたユークリッド空間1103との一例を示す模式図である。
図11に示すように、例えば、年齢、緯度及び経度が匿名化処理の対象である場合、個人データ管理テーブルに含まれる、年齢、緯度及び経度のパラメータ1101が標準化される。パラメータ1101は、上述の変換式に基づいて標準化パラメータ1102に変換される。
図11に示すように、年齢、緯度及び経度の各標準化パラメータ1102を座標軸としたユークリッド空間1103を想定した場合、各対象データIDに対応する各標準化パラメータを座標とした点Vがマッピングされる。後述する近傍リスト作成処理及び分類処理において用いられる距離として、各点間のユークリッド距離が用いられる。なお、ユークリッド空間1103は、パラメータ空間の一例である。
図8に戻って、標準化処理部332は、標準化パラメータを匿名化処理装置3の選択部333に渡す。選択部333が標準化パラメータを受け取ると、選択部333、抽出部334、決定部335及び実行部336は、近傍リスト作成処理を実行する(ステップS103)。
図9は、図8のステップS103において実行される近傍リスト作成処理の一例を示すフローチャートである。
最初に、選択部333は、各対象データIDについて、各対象データID以外の所定数の対象データIDを対象データ管理テーブルからランダムに選択する。選択された対象データIDのデータは、選択データとなる。ここで、選択される対象データIDの数は「4」である。次に、選択部333は、各対象データIDについて、選択した4つの対象データIDを含む近傍リストを各対象データIDに関連付けて近傍テーブルに記憶する(ステップS201)。近傍リストは、第1リストの一例であり、選択される対象データIDの数が少ないほど、匿名化処理装置3の匿名化処理の処理負荷は低減する。
図12は、2つの標準化パラメータを座標軸としたユークリッド空間1201及び近傍リスト1202,1203の一例を示す模式図である。
図12に示す例では、2つの標準化パラメータa,bを座標軸としたユークリッド空間1201に、各対象データIDに対応する標準化パラメータを座標とした点V1〜15がマッピングされている。
まず、選択部333は、点V1以外の点V2〜V15からランダムに4点を抽出して、抽出した4点に対応する対象データIDを、点V1に対応する対象データIDに関連付けられた近傍リスト1202に含ませる。
同様に、選択部333は、点V2以外の点V1及びV3〜V15からランダムに4点を抽出し、抽出した4点に対応する対象データIDを、点V2に対応する対象データIDに関連付けられた近傍リスト1203に含ませる。さらに、選択部333は、点V3〜V15に対応する対象データIDに関連付けられた近傍リストについても、近傍リストを作成する。なお、この時点で、各近傍リストに含まれる4つの対象データIDはランダムに抽出されているため、各近傍リストに含まれる対象データIDに対応する点Vは、各近傍リストに関連付けられた対象データIDに対応する点Vの近傍とは限らない。また、各近傍リストに含まれる対象データIDに対応する点Vは、各近傍リストに関連付けられた対象データIDに対応する点Vに対する近傍順に格納されてもいない。
図9に戻って、S201の処理の実行後、抽出部334は、逆近傍リストを作成する(ステップS202)。まず、抽出部334は、各対象データIDについて、近傍テーブルに含まれる各近傍リストを参照し、各対象データIDが含まれている近傍リストに関連付けられた対象データIDを抽出する。次に、抽出部334は、各対象データIDについて、各対象データIDに関連付けられた逆近傍リストに、抽出した対象データIDを含ませ、逆近傍リストを作成する。そして、抽出部334は、作成した逆近傍リストを各対象データIDと関連付けて逆近傍テーブルに記憶する。逆近傍リストは、第2リストの一例であり、逆近傍リストに関連付けられた対象データIDと逆近傍リストに含まれる各対象データIDとは、近傍関係にあると想定される。
図13は、ユークリッド空間1301及び逆近傍リスト1305の作成処理の一例を示す模式図である。
図13に示す例では、ユークリッド空間1301に、図12で示したユークリッド空間1201と同様に点V1〜15がマッピングされている。
まず、抽出部334は、点V2〜15に対応する対象データIDに関連付けられた近傍リストの内、点V1に対応する対象データIDを含む近傍リストを参照する。図13に示す例では、点V1に対応する対象データIDが含まれている近傍リスト1302,1303及び1304が参照される。次に、抽出部334は、近傍リスト1302,1303及び1304に関連付けられた点V4,点V6及び点V10に対応する対象データIDを、点V1に対応する対象データIDに関連付けられた逆近傍リスト1305に含ませる。点V2〜15についても、同様にして逆近傍リストが作成される。
図9に戻って、次に、抽出部334は、各対象データIDについて、近傍テーブル及び逆近傍テーブルから近傍リスト及び逆近傍リストを抽出し、抽出した近傍リスト及び逆近傍リストに含まれる対象データIDを含む全近傍リストを作成する(ステップS203)。なお、近傍リストに含まれる対象データIDと同じ対象データIDが逆近傍リストに含まれる場合は、重複を排除して全近傍リストが作成される。全近傍リストは、第3リストの一例であり、全近傍リストに関連付けられた対象データIDの近傍関係にあると想定される対象データIDを含めるためのものである。
次に、抽出部334は、作成した全近傍リストに含まれる対象データIDと近傍リストに含まれる対象データIDに基づいて近傍候補リストを作成する(ステップS204)。まず、抽出部334は、作成した全近傍リストに含まれる対象データIDに関連付けられた逆近傍リストを逆近傍テーブルから抽出する。次に、抽出部334は、各対象データIDについて、抽出した逆近傍リストに含まれる対象データIDを中間データとして抽出する。次に、抽出部334は、各対象データIDについて、中間データとして抽出された対象データIDを含む逆全近傍リストを作成する。なお、逆全近傍リストに含まれる対象データIDが重複する場合は、重複を排除して逆全近傍リストが作成される。逆全近傍リストは、第4リストの一例である。
次に、抽出部334は、各対象データIDについて、近傍リストに含まれる対象データIDと逆全近傍リストに含まれる対象データIDとを抽出し、抽出した対象データIDを含む近傍候補リストを作成する。なお、近傍候補リストに含まれる対象データIDが重複する場合は、重複を排除して近傍候補リストが作成される。近傍候補リストは、第5リストの一例であり、近傍リストに含める候補となる対象データIDを含むリストである。
次に、決定部335は、各対象データIDについて、各対象データIDに関連付けられた近傍リストを更新する(ステップS205)。まず、決定部335は、各対象データIDについて、各対象データIDと近傍候補リストに含まれる対象データIDとに対応する標準化パラメータを対象データ管理テーブルから抽出する。次に、決定部335は、各対象データIDについて、各対象データIDに対応する標準化パラメータと近傍候補リストに含まれる対象データIDに対応する標準化パラメータとの距離を算出する。例えば、決定部335は、標準化パラメータの種類毎に標準化パラメータの差の二乗の値を算出し、算出した複数の二乗の値の総和の平方根を標準化パラメータ間の距離として算出する。この場合の距離は、各種類の標準化パラメータを座標軸としたユークリッド空間における、各種類の標準化パラメータを座標とした2点間のユークリッド距離に相当する。
次に、決定部335は、各対象データIDについて、近傍候補リストに含まれる対象データIDの内、各対象データIDに対応する標準化パラメータとの距離が小さい上位4位までの標準化パラメータに対応する対象データIDを決定する。
次に、決定部335は、各対象データIDに関連付けられた近傍リストにおいて、決定した対象データIDを、算出した距離の小さい順に、第1近傍の対象データID、第2近傍の対象データID、第3近傍の対象データID及び第4近傍の対象データIDとして、置き換える。そして、選択部333は、置き換えた近傍リストを有する近傍テーブルを各対象データIDに関連付けて記憶部32に記憶する。
図14は、全近傍リスト1401の作成処理及び全近傍リスト1401に含まれる対象データIDに関連付けられた逆近傍リスト1402,1403の抽出処理の一例を示す模式図である。
抽出部334は、まず、点V1に対応する対象データIDに関連付けられた近傍リスト1202及び逆近傍リスト1305を抽出する。次に、抽出部334は、抽出した近傍リスト1202に含まれる点V14,V5,V8及びV10に対応する対象データIDと逆近傍リスト1305に含まれる点V4,V6及びV10に対応する対象データIDとを含む全近傍リスト1401を作成する。なお、点V10に対応する対象データIDが、近傍リスト1202と逆近傍リスト1305に重複して含まれているため、全近傍リスト1401には、1つの点V10に対応する対象データIDのみが含まれる。
そして、抽出部334は、全近傍リスト1401に含まれる点V14,V5,V8,V10,V4及びV6のそれぞれに対応する対象データIDに関連付けられた逆近傍リストを、逆近傍テーブルから抽出する。図14に示す例では、点V14に対応する対象データIDに関連付けられた逆近傍リスト1402と点V5に対応する対象データIDに関連付けられた逆近傍リスト1403が、それぞれ抽出されていることが示されている。
図15は、近傍候補リスト1502の作成処理及び近傍リスト1503の更新処理の一例を示す模式図である。
抽出部334は、最初に、点V1に対応する対象データIDに関連付けられた近傍リスト1202に含まれる点V14,V5,V8及びV10に対応する対象データIDを抽出する。
次に、抽出部334は、全近傍リスト1401に含まれる点V14,V5,V8,V10,V4及びV6のそれぞれに関連付けられた逆近傍リストに含まれる点V12,V10,V3,V6,V2,V11,・・・に対応する対象データIDを中間データとして抽出し、中間データとして抽出した各対象データIDを含む逆全近傍リスト1501が作成される。なお、逆全近傍リスト1501において、対象データIDが重複する場合は、重複が排除され、1つの対象データIDが逆全近傍リスト1501に含ませられる。
次に、抽出部334は、近傍リスト1202に含まれる対象データID、及び、逆全近傍リスト1501に含まれる対象データIDを抽出し、抽出した対象データIDを含む近傍候補リスト1502を作成する。
次に、決定部335は、近傍候補リスト1502に含まれる対象データIDの内、点V1に対応する対象データIDに対応する標準化パラメータとの距離の小さい標準化パラメータに対応する対象データIDを順に4つ決定する。この例では、決定部335は、点V2,V3,V4及びV8に対応する対象データIDを決定する。そして、決定部335は、近傍リスト1202を、点V2,V3,V4及びV8に対応する対象データIDを含む近傍リスト1503に置き換え更新処理を終了する。そして、選択部333は、置き換えた近傍リスト1503を、点V1に対応する対象データIDに関連付けて記憶部32に記憶する。
図9に戻って、実行部336は、S205の処理の実行後、近傍リストの更新処理を終了するか否か判定をする(ステップS206)。実行部336は、更新処理を終了すると判定した場合(ステップS206−Yes)、近傍リスト作成処理の一連のステップを終了する。また、実行部336は、更新処理を終了しないと判定した場合(ステップS206−NO)、ステップS202に処理を戻し、次のステップの処理を実行する。
ステップS206における更新処理の終了条件は、予め定められた更新処理回数(パラメータの全数N×所定数×P)に到達することである。ここで、Pは、0<P<1を満たす値である。また、更新処理の終了条件を、予め定められた更新処理時間に到達することとしても、又は、更新された近傍リストの全てが、それぞれ更新前の近傍リストと同一になることとしてもよい。
図8に戻って、次に、グラフテーブル作成部337は、グラフテーブルを作成するグラフテーブル作成処理を実行する(ステップS104)。まず、グラフテーブル作成部337は、記憶部32から近傍テーブルを取得する。次に、グラフテーブル作成部337は、取得した近傍テーブルが有する、各対象データIDに関連付けられた近傍リストを抽出する。グラフテーブル作成部337は、各対象データIDについて、各対象データIDと、各対象データIDに関連付けられた近傍リストに含まれる対象データIDとの全ての組み合わせを、重複を除いて抽出する。グラフテーブル作成部337は、抽出した各対象データIDの組み合わせをノードリストとして、各ノードリストの識別情報であるエッジIDと関連付けて、グラフテーブルに記憶する。
次に、グループ化部338は、分類処理を実行する(ステップS105)。
図10は、図8のステップS105において実行される分類処理の一例を示すフローチャートである。
最初に、グループ化部338は、記憶部32からグラフテーブルを取得する(ステップS301)。次に、グループ化部338は、取得したグラフテーブルが有するノードリストに含まれる対象データIDの内、ランダムに1つの対象データIDを特定する(ステップS302)。
次に、グループ化部338は、グラフテーブルが有するノードリストに含まれる対象データIDの内、ステップS302で特定した対象データIDに対応する標準化パラメータとの距離が最も大きい標準化パラメータに対応する対象データIDを決定する(ステップS303)。決定した対象データIDは、初期データの一例であり、グラフテーブルに含まれる対象データIDの内、ユークリッド空間内で最も外縁に位置するパラメータに対応する対象データIDである。
次に、グループ化部338は、決定した対象データIDを含むグループリストを新たに作成し(ステップS304)、各ループリストの識別情報であるグループIDを関連付けて、グループテーブルに記憶する。
図16(a)は、分類処理の一例を示す模式図である。
図16(a)に示す例では、ユークリッド空間1601に、図12で示したユークリッド空間1201と同様に点V1〜15がマッピングされている。
図16(a)に示す点V1〜15の内、直線で結ばれた2点は、グラフテーブルが有する各ノードリストに係る2つの対象データIDに対応する標準化パラメータを座標とした点である。まず、グループ化部338は、ユークリッド空間1601にマッピングされた点V1〜15の内の1点を、ランダムに選択する。図16(a)に示す例では、点V12がランダムに選択される。そして、グループ化部338は、点V12から最も遠い距離の点V1を決定し、点V1に対応する対象データIDを含むグループリストを作成する。
図10に戻って、グループ化部338は、S301で取得したグラフテーブルが有するノードリストに含まれる対象データIDの組み合わせの内、S303で決定した対象データIDに対応する標準化パラメータとの距離が最も小さい標準化パラメータに対応する対象データIDがあるか否かを判定する(ステップS305)。まず、グループ化部338は、S301で取得したグラフテーブルの中に、S303で決定した対象データIDを含むノードリストがあるか否か判定する。グループ化部338は、取得したグラフテーブルの中に、S303で決定した対象データIDを含むノードリストがない場合、S303で決定した対象データIDに対応する標準化パラメータとの距離が最も小さい標準化パラメータに対応する対象データIDがないと判定する。グループ化部338は、取得したグラフテーブルの中に、S303で決定した対象データIDを含むノードリストがある場合、S303で決定した対象データIDを含むノードリストから、S303で決定した対象データIDと組み合わされた対象データIDを抽出する。そして、グループ化部338は、S303で決定した対象データIDと抽出した対象データIDに対応する標準化パラメータとの距離が最も小さい標準化パラメータに対応する対象データIDを決定する。
グループ化部338は、S303で決定した対象データIDに対応する標準化パラメータとの距離が最も小さい標準化パラメータに対応する対象データIDがないと判定した場合(ステップS305−No)、ステップS304で作成したグループリストに対して対象データIDを含ませる処理を終了してステップS310に処理を進める。
グループ化部338は、S303で決定した対象データIDに対応する標準化パラメータとの距離が最も小さい標準化パラメータに対応する対象データIDがあると判定した場合(ステップS305−Yes)、グループテーブル及びグラフテーブルを更新する(ステップS306)。グループ化部338は、グループテーブルにおいてステップS303で決定した対象データIDを含むグループリストに、ステップS305で判定した対象データIDをさらに含ませ、このグループリストを含むグループテーブルを記憶部32に記憶する。また、グループ化部338は、グラフテーブルから、ステップS303で決定した対象データID及びステップS305で判定した対象データIDとの組のノードリストを削除し、ノードリストを削除したグラフテーブルを記憶部32に記憶する。
図16(b)は、分類処理の一例を示す模式図である。
図16(b)に示すユークリッド空間1611は、図16(a)で示したユークリッド空間1601と同様である。グループ化部338は、点V1に対応する対象データIDをグループ1のグループリストに含ませ、さらに、点V1から最も近い距離に存在する点V2に対応する対象データIDをグループ1のグループリストに含ませる。
図10に戻って、グループ化部338は、グラフテーブルに残っているノードリストに含まれる対象データIDの内、グループリストに含まれる対象データIDに対応する標準化パラメータとの距離が最も小さい標準化パラメータに対応する対象データIDがあるか否かを判定する(ステップS307)。まず、グループ化部338は、グラフテーブルを取得し、グラフテーブルの中に、グループリストに含まれる複数の対象データIDを含むノードリストがあるか否か判定する。グループ化部338は、取得したグラフテーブルの中に、グループリストに含まれる複数の対象データIDを含むノードリストがない場合、グループリストに含まれる対象データIDに対応する標準化パラメータとの距離が最も小さい標準化パラメータに対応する対象データIDがないと判定する。グループ化部338は、取得したグラフテーブルの中に、グループリストに含まれる複数の対象データIDを含むノードリストがある場合、グループリストに含まれる複数の対象データIDを含むノードリストから、グループリストに含まれる複数の対象データIDと組み合わされた対象データIDを抽出する。
そして、グループ化部338は、グループリストに含まれている複数の対象データIDのそれぞれに対応する標準化パラメータの平均値を算出する。そして、グループ化部338は、抽出された対象データIDから、算出した平均値との距離が最も小さい標準化パラメータに対応する対象データIDを判定する。
グループ化部338は、グラフテーブルが有するノードリストに含まれる対象データIDの内、グループリストに含まれる対象データIDに対応する標準化パラメータとの距離が最も小さい標準化パラメータに対応する対象データIDがないと判定した場合(ステップS307−No)、このグループリストに対して対象データIDを含ませる処理を終了してステップS310に処理を進める。
グループ化部338は、グラフテーブルが有するノードリストに含まれる対象データIDの内、グループリストに含まれる対象データIDに対応する標準化パラメータとの距離が最も小さい標準化パラメータに対応する対象データIDがあると判定した場合(ステップS307−Yes)、判定した対象データIDに基づいて、グループテーブル及びグラフテーブルを更新する(ステップS308)。グループ化部338が実行するステップS308の更新処理は、ステップS306の更新処理と同じである。
次に、グループ化部338は、グループテーブルが含むグループリスト内の対象データID数が所定数以上であるか否かを判定する(ステップS309)。グループ化部338は、グループリスト内の対象データID数が所定数以上であると判定した場合(ステップS309−Yes)、ステップS310に処理を進める。一方、グループ化部338は、グループリスト内の対象データID数が所定数以上でないと判定した場合(ステップS309−No)、ステップS307に処理を戻る。なお、ステップS309における所定数の値は、ステップS201において選択される対象データIDの所定数の値と同じ値であっても、異なる値であってもよい。
次に、グループ化部338は、グラフテーブルを更新する(ステップS310)。グループ化部338は、所定数以上の対象データIDを含ませたグループリストに含まれる対象データIDを含む全てのノードリストをグラフテーブルから削除し、ノードリストを削除したグラフテーブルを記憶部32に記憶する。
次に、グループ化部338は、記憶部32からグラフテーブルを取得し、グラフテーブル内に対象データIDが含まれるか否かを判定する(ステップS311)。グループ化部338は、グラフテーブル内に対象データIDが含まれる場合(ステップS311−Yes)、ステップS301に処理を戻る。なお、ステップS301に処理が戻ることにより、今まで更新されていたグループリストの作成は終了し、新たなグループリストの作成が開始されることになる。一方、グループ化部338は、グラフテーブル内に対象データIDが含まれない場合(ステップS311−No)、一連のステップを終了する。
図17(a)及び(b)は、分類処理の一例を示す模式図である。
図17(a)及び(b)に示すユークリッド空間1701及び1711は、図16(b)で示したユークリッド空間1611と同様である。図17(a)に示すように、グループ化部338は、対象データV2をグループ1のグループリストに含ませた後、点V1及びV2から最も近い点V3に対応する対象データIDをグループ1のグループリストに含ませる。なお、点V1及びV2の重心座標から最も距離が近い点を点V1及びV2から最も近い点として決定する。次に、グループ化部338は、点V1〜V3から最も近い点V4に対応する対象データIDをグループ1のグループリストに含ませる。グループ1のグループリストに含まれる対象データIDの数が、所定数(例えば、「4」)以上となった場合、グループ1のグループリストが完成する。
その後、図17(b)に示すように、グループ化部338は、点V5〜V15に対して、分類処理を繰り返し実行し、全ての点Vを何れかのグループのグループリストに分類する。
図8に戻って、次に、パラメータ作成部339は、各グループの匿名化パラメータを作成する(ステップS106)。まず、パラメータ作成部339は、グループテーブルが有する各グループのグループリストに含まれる対象データIDに対応する標準化パラメータを対象データ管理テーブルから抽出する。次に、パラメータ作成部339は、抽出した各対象データIDに対応する標準化パラメータの平均値(重心値)を算出する。次に、パラメータ作成部339は、各パラメータの標準化処理で行った演算の逆演算を行うことにより、算出した各標準化パラメータの平均値(重心値)から各匿名化パラメータを算出する。そして、パラメータ作成部339は、各グループIDと関連付けて匿名化パラメータを含む匿名化データテーブルを作成する。
次に、出力部340は、グループIDに対応するグループ毎に匿名化パラメータを、匿名化処理装置3のディスプレイ装置(不図示)に表示し(ステップS107)、匿名化処理の一連のステップを終了する。なお、出力部340は、匿名化パラメータをディスプレイ装置に表示する処理に限らず、外部装置への送信等の出力処理を実行してもよい。
以上説明してきたように、匿名化処理装置3は、所定数のデータを複数の選択データとして用いて匿名化処理を実行することで、全てのパラメータに対して近傍関係を判定する必要がなくなる。そのため、匿名化処理装置3の計算負荷が軽減し、匿名化処理装置3において、匿名化処理を高速に実行することが可能となる。また、本実施形態の匿名化処理装置3により、k匿名化法におけるクラスタリング(グループ化)の精度を保ったまま、匿名化処理を高速に実行することが可能となる。
例えば、匿名化処理装置3が全てのパラメータに対して近傍関係を判定する場合、パラメータの全数Nの二乗に比例した組合せパターンにより、匿名化処理時間が発生する。一方、匿名化処理装置3による匿名化処理時間は、匿名化処理時間に対しておよそ(選択データ数×N)に比例する時間にまで減少する。したがって、選択データの数をNに対して極めて小さく設定した場合、匿名化処理装置3が実行工程による処理を繰り返したとしても、匿名化処理を高速に実行することが可能となる。
なお、本発明は、本実施形態に限定されるものではない。例えば、本実施形態では、標準化処理部332は、標準化パラメータ=(パラメータ値−平均値)/標準偏差の変換式を用いるものとしたが、変換式は、上述した例に限られず、様々な変換式を用いることができる。例えば、日及び時刻を標準化する場合、ユーザが活発に活動しない夜間の範囲の時刻は、変換後の標準化された時刻の範囲を小さくなるように変換する。これにより、ユーザが活発に活動する昼間の時間帯の時刻間の距離ほど、夜間の時間体の時刻間の距離よりも大きな値となるため、詳細なグループを作成することができる。同様に、緯度及び経度を標準化する場合、人口密度の低い範囲は、数値範囲を小さくなるように変換することで、ユーザが多く活動する地域ほど、詳細なグループを作成することができる。
また、本実施形態では、グループ化部338は、グループテーブルが含むグループリスト内の対象データID数が所定数以上であると判定した場合(ステップS309−Yes)、ステップS310及びS311を経て、新たなグループリストを作成し(ステップS301に処理を戻る)、グラフテーブル内に対象データIDが含まれない場合(ステップS311−No)、一連のステップを終了するが、この一連のステップを、複数設定された所定数の値毎に複数回実行するようにしてもよい。例えば、最初に、グループ化部338は、所定数を2に設定してからステップS301を実行する。この際に、グループ化部338は、取得したグラフテーブルを初期グラフテーブルとして記憶部32に記憶する。そして、グループ化部338は、ステップS311においてNOの場合に、一連のステップを終了する。この際に、グループ化部338は、作成したグラフテーブルに対して、所定数が2の場合のグラフテーブルであることを識別するための情報、匿名化処理の開始時間及び終了時間、使用したパラメータ等の各種情報、並びに、グループ化の精度情報を関連付けて記憶部32に記憶する。その後、グループ化部338は、所定数を3に設定してからステップS301を実行する。この際に、グループ化部338が取得するグラフテーブルは、記憶部32に記憶された初期グラフテーブルである。そして、グループ化部338は、ステップS311においてNOの場合に、一連のステップを終了する。このように、グループ化部338は、所定数の値を任意に複数設定して、この一連のステップを複数回実行することができる。このように構成することで、どの所定数の値の場合に、最も好適なグループが作成されるかを判断することが可能となる。
また、本実施形態において、匿名化処理装置3の処理部33が、データ削除部341を有するように構成してもよい。データ削除部341は、携帯端末2を所有するユーザより削除依頼があった場合、削除依頼とともに取得した携帯端末IDに対応する個人IDに関連するデータレコードを対象データ管理テーブルから削除する。また、データ削除部341は、グループテーブルに含まれるグループリスト中から個人IDに対応する対象データIDを削除する。このように構成することで、携帯端末2を所有するユーザからの削除依頼に応じて、このユーザの個人データを匿名化処理の対象外とすることが可能となる。
当業者は、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。