【解決手段】 本発明の情報処理装置は、匿名化の対象データの属性の区分である階級の組合せであるセルを基に階級を跨がないように対象データを匿名化する匿名化実行手段と、匿名化済みデータにおける匿名化の程度を示すスコアを算出し、スコアが所定の基準値より大きなデータに対応する対象データのセルを含む分類に含まれるセルの中から対象データのセルに隣接する隣接セルを選択し、対象データのセルと隣接セルとを匿名化実行手段に送信して匿名化を指示する結合制御手段と
【背景技術】
【0002】
近年、ユーザのプライバシーを守りながら、企業又は医療機関が所有するパーソナル情報の二次利用を可能にするプライバシー保護技術が、注目されている。パーソナル情報の二次利用の一例として、病院が保持する診療情報のデータの二次利用を基にした医学分析がある。このような医学分析は、高度医療の確立に役立っている。
【0003】
パーソナル情報は、1つ又は複数の属性を含む。パーソナル情報に含まれる属性の中で単独で個人を特定できる属性は、「ユーザ識別子」となる。また、パーソナル情報に含まれる属性の中で他の背景知識(他の属性を含む)との組合せを基に個人を識別できる属性は、「準識別子」と呼ばれている。また、パーソナル情報に含まれる属性の中で、他人に知られたくない属性又はユーザが開示を望まない属性は、「センシティブ(sensitive)属性」と呼ばれている。
【0004】
例えば、プライバシー保護技術の一つである匿名化技術は、明示的なユーザ識別子を削除する。さらに、匿名化技術は、個人を識別できないように、準識別子を構成する属性の値を加工(例えば、曖昧化又は汎化)する。
【0005】
ただし、属性は、属性の値を区分するための階級が設定されている場合がある。階級が設定されている場合、属性の値は、階級内で匿名化される、つまり、階級を跨がないように匿名化されることが望ましい。そのため、階級は、属性の値を匿名化する場合の制約となる。
【0006】
そして、データの分析(例えば、医学分析)は、複数の属性の組合せを用いてデータ(パーソナル情報)を分析する。そのため、データの分析は、複数の属性の階級の組合せを用いて、パーソナル情報(データ)を分類する。以下の説明では、属性の階級の組合せを「セル(cell)」と呼ぶ。ただし、セルが含む階級は、1つ又は複数でもよい。そして、分類は、1つ又は複数のセルを含む。そして、データの分析は、セル又は分類を基にデータを分析する。
【0007】
例えば、最高血圧及び最低血圧は、医療関係のパーソナル情報の属性の一例である。これらの属性(最高血圧及び最低血圧)には、それぞれ、血圧値に対応した階級(例えば、血圧値の範囲)が定められている。そして、医学分析は、血圧の階級の組合せ(セル又は分類)を基に、血圧の属性の値を含むパーソナル情報を分類する。
【0008】
例えば、医療関係のパーソナル情報は、最高血圧の階級と最低血圧の階級との組合せ(セル又は分類)を基に、「正常血圧」「1度高血圧(軽症)」及び「2度高血圧(中等症)」と分類される。
【0009】
そして、医学分析の研究者は、一度分類されたデータ(パーソナル情報)を、さらに細粒度を高くして分析する場合がある。ここで、「細粒度」とは、データの分類の細かさのことである。
【0010】
例えば、最高血圧が高い場合の治療方法は、最低血圧が高い場合の治療方法と異なる。そのため、例えば、医学研究者は、細粒度の高いデータとして、「2度高血圧(中等症)」に分類された患者のデータの中から最低血圧が高い患者のデータを抽出し、抽出したデータを分析する。つまり、医学研究者は、分類「2度高血圧(中等症)」に含まれるデータを、属性「最高血圧」の2つの階級(「最高血圧が高い階級」及び「最高血圧が低い階級」)に分けて分析する。この場合、パーソナル情報は、設定された分類を維持するように匿名化される必要がある。
【0011】
そこで、センシティブ属性を含むパーソナル情報を匿名化し、かつ、匿名化後のパーソナル情報の分類を維持する技術が知られている(例えば、非特許文献1)。
【0012】
非特許文献1に記載の技術は、データの階級を保ちながら匿名化する技術の一つである。非特許文献1に記載に技術は、属性ごとに属性の階級である制約を設定する。そして、非特許文献1に記載に技術は、設定した階級(制約)の中で、属性の値を匿名化する。この匿名化を基に、非特許文献1に記載の技術は、匿名化後(汎化後)の属性の値の抽象度を制限する。さらに、非特許文献1に記載の技術は、各階級の上限と下限とを設定し、階級間を跨ぐ匿名化データの生成を防ぐ。
【0013】
また、匿名化に用いられる汎化手法の1つに、ローカルリコーディング(Local Re-coding)がある(例えば、非特許文献2を参照)。ローカルリコーディングとは、匿名化後のデータにおける情報損失が最小となるように、レコード(個別のデータ、例えば、ユーザごとのデータの組)ごとに、異なる値に加工する手法である。ここで、情報損失とは、匿名化における加工に基づく情報の損失である。情報損失は、情報の加工の度合いを示す指標でもある。情報損失の一例は、非特許文献2に記載されているNCP(Normalized Certainty Penalty)である。
【0014】
なお、一般的に、細粒度が高いデータは、情報損失が少ない。つまり、細粒度が高いデータは、有用性が高いデータである。
【発明を実施するための形態】
【0024】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【0025】
なお、各図面は、本発明の実施形態を説明するためのものである。ただし、本発明は、各図面の記載に限られるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明を、省略する場合がある。
【0026】
また、以下の説明に用いる図面において、本発明の説明に関係しない部分の構成については、記載を省略し、図示しない場合もある。
【0027】
また、以下の説明において、各実施形態の記憶部は、データを受信し、受信したデータを記憶するとして説明する。ただし、本発明の記憶部は、これに限る必要はない。例えば、各構成要素が、記憶部にデータを書き込んでも良い。
【0028】
まず、本実施形態の説明に用いるデータに関連する用語を整理しておく。
【0029】
「対象データ」とは、匿名化の対象となるデータである。例えば、対象データは、医療分析に用いられるパーソナル情報である。
【0030】
「属性」は、対象データに含まれる情報である。属性の一つの種類である準識別子は、本実施形態の匿名化の対象である。
【0031】
「階級」とは、属性の値の区分である。階級は、属性の値の匿名化の制約となる。
【0032】
「セル」とは、1つ又は複数の階級の組合せである。そのため、セルは、匿名化の制約の組合せである。
【0033】
「分類」とは、1つ又は複数のセルの組合せである。
【0034】
「匿名化済みデータ」とは、匿名化されたデータである。ただし、本発明の実施形態は、匿名化処理を繰り返すため、各匿名化処理において匿名化されたデータを匿名化済みデータと呼ぶ。
【0035】
<第1の実施形態>
次に、本発明における第1の実施形態に係る情報処理装置10について図面を参照して説明する。
【0036】
図1は、第1の実施形態に係る情報処理装置10の構成の一例を示すブロック図である。
【0037】
図1を参照すると、情報処理装置10は、匿名化対象データ記憶部100と、匿名化済みデータ記憶部200と、分類記憶部300と、匿名化実行部400と、結合制御部500とを含む。
【0038】
匿名化対象データ記憶部100は、情報処理装置10のおける匿名化の対象となるデータ(対象データ)を記憶する。なお、匿名化対象データ記憶部100は、予め、以下で説明する動作の前に対象データを記憶しておけば、対象データの記憶の方法及び記憶の時期に特に制限はない。例えば、以下の動作の先立ち、匿名化の依頼元が、匿名化対象データ記憶部100に対象データを送信しても良い。
【0039】
匿名化済みデータ記憶部200は、情報処理装置10が匿名化した匿名化済みデータを記憶する。
【0040】
分類記憶部300は、「分類(セルの組合せの集合)」を記憶する。さらに、分類記憶部300は、「階級」を記憶しても良い。なお、分類記憶部300は、予め、分類(及び階級)を記憶しておけば、記憶する方法及び記憶時期の特に制限はない。例えば、分類記憶部300は、各処理に先立ち、所定の装置から分類(及び階級)を受信しても良い。あるいは、分類記憶部300は、予め参照用のデータを参照して、各情報(階級及び分類)を算出し、記憶しても良い。
【0041】
さらに、分類記憶部300は、対象データセルと隣接セルとを記憶する。ここで、「対象データセル」とは、匿名化対象データ記憶部100が記憶する対象データに対応するセルである。また、「隣接セル」とは、対象データセルを含む分類に含まれるセルで、対象データセルに隣接するセルである。つまり、分類記憶部300は、対象データのセルに関する情報を記憶する。なお、分類記憶部300が対象データセルと隣接セルとを記憶する手法は、特に制限はない。例えば、分類記憶部300は、予め、図示しない算出部が匿名化対象データ記憶部100に記憶されている対象データと階級と分類とを基に算出した対象データセルと隣接セルとを記憶しても良い。あるいは、分類記憶部300は、図示しない対象データセルを提供した装置から、対象データセルと隣接セルとを受信し、記憶しても良い。
【0042】
そして、分類記憶部300は、これらの情報を、適宜、匿名化実行部400と結合制御部500とに出力する。
【0043】
匿名化実行部400は、匿名化対象データ記憶部100から対象データを受信する。そして、匿名化実行部400は、分類記憶部300に記憶されているセルを基に対象データを匿名化する。なお、分類が1つのセルを含む場合、匿名化実行部400は、分類を基に対象データを匿名化することになる。そして、匿名化実行部400は、匿名化済みデータを匿名化済みデータ記憶部200に送信する。
【0044】
匿名化実行部400は、より詳細には、次のような処理を実行する。
【0045】
まず、匿名化実行部400は、匿名化対象データ記憶部100から対象データを受信する。そして、匿名化実行部400は、分類記憶部300から対象データセルを受信する。そして、匿名化実行部400は、受信した対象データセルを基に、対象データを匿名化して、匿名化済みデータを生成する。
【0046】
匿名化実行部400は、匿名化済みデータを後ほど説明する結合制御部500に送信する。そして、匿名化実行部400は、結合制御部500からの第1の指示を基に、さらなる匿名化を実施する。例えば、この第1の指示は、結合して匿名化するセル(以下、「結合候補セル」と言う)の指示である。なお、結合制御部500からの指示は、後ほど詳細に説明する。
【0047】
結合制御部500から第1の指示を受信すると、匿名化実行部400は、第1の指示を基に対象データをさらに匿名化し、匿名化済みデータを生成する。そして、匿名化実行部400は、生成した匿名化済みデータを、結合制御部500に送信する。
【0048】
このように、匿名化実行部400は、結合制御部500から第1の指示を基に、対象データの匿名化を繰り返す。
【0049】
そして、匿名化実行部400は、結合制御部500からの第2の指示を基に、最終的な匿名化済みデータ生成し、匿名化済みデータ記憶部200に記憶する。例えば、この第2の指示は、最終的に結合して匿名化するセル(以下、「匿名化対象セル」と言う)の指示である。
【0050】
結合制御部500は、匿名化実行部400から受信した匿名化済みデータを基に、匿名化済みデータの匿名化の程度を示すスコアを算出する。ここで、「スコア」とは、匿名化済みデータの情報損失を示す値であり、情報損失が大きい場合に大きくなる値である。例えば、スコアは、対象データと匿名化済みデータとの類似の程度の逆数である。あるいは、スコアは、匿名化済みデータの加工の度合い(程度)を示す値である。なお、スコアは、匿名化済みデータと対象データとの類似度、及び、匿名化済みデータの加工の度合いを所定の重みづけして加えた合計値でも良い。
【0051】
そして、結合制御部500は、スコアを所定の値(基準値)と比較する。そして、スコアが基準値より大きい場合、つまり、情報損失が大きいデータがある場合、結合制御部500は、結合候補セルを選択する。そして、結合制御部500は、結合候補セルを匿名化実行部400に送信して、匿名化を依頼する。この結合候補セルと匿名化の依頼が、上記の第1の指示となる。
【0052】
さらに、結合制御部500は、新たな結合候補セルの選択できなくなった場合、匿名化対象セルを決定し、匿名化実行部400に匿名化を依頼する。匿名化対象セルと依頼が、上記の第2の指示となる。
【0053】
次に、図面を参照して本実施形態の動作について、さらに説明する。
【0054】
図2は、第1の実施形態に係る情報処理装置10の動作の一例を示すフローチャートである。
【0055】
まず、匿名化実行部400は、匿名化対象データ記憶部100から対象データを受信する。さらに、匿名化実行部400は、分類記憶部300から、対象データセルを受信する。そして、匿名化実行部400は、対象データを匿名化する(ステップS001)。ただし、最初の匿名化の場合、匿名化実行部400は、対象データセルを基に、対象データを匿名化する。ここで、対象データセルは、階級の組合せである。そのため、匿名化実行部400は、階級を跨がないように対象データを匿名化できる。そして、匿名化実行部400は、匿名化済みデータを、結合制御部500に送信する。
【0056】
結合制御部500は、受信した匿名化済みデータの匿名化(例えば、加工又はサプレッション)に基づく情報の変化量(加工の度合い)、及び/又は、匿名化前のデータ(つまり、対象データ)と匿名化済みデータの類似度とを算出する(ステップS002)。ここで、加工の度合いを示す値及び/又は類似度の値が、スコアである。すなわち、加工の度合いが大きいほど、スコアが大きい。あるいは、類似度が低いほど、スコアが大きい。
【0057】
なお、結合制御部500は、対象データを匿名化対象データ記憶部100から受信すれば良い。また、結合制御部500は、算出したスコアを保存してよい。
【0058】
そして、結合制御部500は、算出した値(スコア)を、所定の基準値と比較する(ステップS003)。
【0059】
全ての匿名化済みデータにおいてスコアが基準値未満の場合(ステップS003でYES)、結合制御部500は、ステップS005に進む。
【0060】
いずれかの匿名化済みデータのスコアが基準値以上の場合(ステップS003でNO)、結合制御部500は、基準値を超えたいずれかの匿名化済みデータに対応する対象データを分類記憶部300へ送信する。
【0061】
そして、結合制御部500は、分類記憶部300から、送信した対象データが所属する対象データセルと、対象データセルに隣接する隣接セルとを受信する。ここで、隣接セルは、対象データセルと階級が隣接しているセルである。また、隣接セルは、後ほど説明するとおり結合候補セルとなる。
【0062】
そして、結合制御部500は、隣接セルの中から結合候補セルを選択する(ステップS004)。そして、結合制御部500は、選択した結合候補セルと対応する対象データセルとを、匿名化実行部400に送信する。結合候補セルと対象データセルの送信は、第1の指示に相当する。なお、隣接セルが複数ある場合、結合制御部500は、所定の判断基準(例えば、対象データセルと隣接セル間の距離)を基に、いずれかの隣接セルを結合候補セルとして選択すれば良い。すなわち、結合制御部500は、対象データセルとの距離が最も小さい隣接セルを選択する。
【0063】
そして、情報処理装置10の処理は、ステップS001に戻る。
【0064】
匿名化実行部400は、対象データを匿名化する(S001)。ただし、繰り返し処理の場合、匿名化実行部400は、対象データにおける結合候補セルに対応するデータと対象データセルに対応するデータとを結合して対象データを匿名化する。より詳細には、匿名化実行部400は、対象データセルと結合候補セルとを結合して1つのセルとする。結合後のセルは、対象データセルと隣接セルとの階級を結合したセルとなる。そして、匿名化実行部400は、結合したセルに対応する対象データを匿名化した匿名化済みデータを作成する。つまり、匿名化実行部400は、結合したセルにおける階級を跨がないようにデータを匿名化する。
【0065】
このように、所定の基準値より大きなスコアとなる匿名化済みデータが属するセルは、結合して匿名化する対象となるセルである。
【0066】
そして、匿名化実行部400は、匿名化した匿名化済みデータを結合制御部500に送信する。
【0067】
結合制御部500は、受信した匿名化済みデータにおいて、既に説明した動作と同様の動作を基に、スコアを算出する(ステップS002)。つまり、結合制御部500は、結合候補セルを結合した場合のスコアを算出する。
【0068】
続いて、結合制御部500は、既に結合したセルに含まれない匿名化済みデータにおいて、スコアが基準値以上の匿名化後データがあるか否かを判定する(ステップS003)。つまり、結合制御部500は、隣接セルと結合して匿名化したセルに属するデータを除いたデータにおいて、スコアを判定する。
【0069】
なお、結合制御部500は、最初のスコアの計算結果を保存し、2回目以降の処理においては、保存したスコアを用いて処理を実行しても良い。あるいは、結合制御部500は、毎回ステップS002おいて、対象外のデータを除いて匿名化済みデータのスコアを計算しても良い。
【0070】
既に結合したセルに含まれない匿名化済みデータにおいてスコアが基準値以上のデータがない場合、つまり、結合対象となるセルのスコアが計算済みの場合(ステップS003でYES)、結合制御部500は、ステップS005に進む。
【0071】
スコアが基準値以上、かつ、既に選択したセルに含まれないデータある場合(ステップS003でNO)、結合制御部500は、基準値を超えたいずれかの匿名化済みデータに対応する対象データを分類記憶部300へ送信する。
【0072】
そして、結合制御部500は、上記と同様に、分類記憶部300から、送信したデータが所属する対象データセルと、対象データセルの隣接セルとを受信する。そして、結合制御部500は、隣接セルの中から結合候補セルを選択する(ステップS004)。そして、結合制御部500は、選択した結合候補セルと対象データセルとを、匿名化実行部400に送信する。
【0073】
そして、情報処理装置10の処理は、ステップS001に戻る
つまり、情報処理装置10は、スコアを超えたデータが属する全てのセルに対して、対象データセルと隣接セルとを結合した場合のスコアの算出を繰り返す。
【0074】
スコアが所定の基準値未満の場合又はスコアを計算済みの場合(ステップS003でYES)、結合制御部500は、セルを結合後に算出したスコアが最小となる結合候補セルを匿名化対象セルとして決定する(ステップS005)。つまり、結合制御部500は、最も情報損失が少ない結合候補セルを匿名化対象セルとして選択する。そして、結合制御部500は、選択した匿名対象セルと対応する対象データセルとを匿名化実行部400に送信し、匿名化を依頼する。この依頼は、上記の第2の指示である。
【0075】
ただし、ステップS003の最初の判定において全てのスコアが所定の基準未満の場合、結合制御部500は、匿名対象セルを選択しない。この場合、結合制御部500は、匿名化実行部400に、最初の匿名化処理の結果のデータを匿名化後データとするように依頼する。この場合、この依頼が、第2の指示となる。
【0076】
匿名化実行部400は、受信した匿名対象セルと対象データセルに対応する対象データを結合して匿名化し、匿名化済みデータを生成する。そして、匿名化実行部400は、匿名化済みデータを匿名化済みデータ記憶部200に記憶する(ステップS006)。なお、結合制御部500から、最初の匿名化の結果を匿名化済みデータとするとの依頼を受けた場合、匿名化実行部400は、最初の匿名化済みデータを匿名化済みデータ記憶部200に記憶する。
【0077】
このように、情報処理装置10は、情報損失が所定の値より大きいデータがある場合、最も情報損失の少ないセルの結合を選択して、対象データを匿名化する。ここで、情報損失が少ないデータは、細粒度が高いデータである。そのため、情報処理装置10は、細粒度の高い匿名化済みデータを生成できる。
【0078】
なお、情報処理装置10は、各対象データセルに対応して1回の処理を実行する。これは、各対象データセルに対応するデータは、どのデータを用いて処理しても、結果が同じためである。ただし、情報処理装置10は、スコアが所定の基準値を超える全てのデータに対して同様に処理しても良い。
【0079】
(効果の説明)
次に、本実施形態の効果について説明する。
【0080】
本実施形態の情報処理装置10は、データの属性の分類を維持しながら、細粒度の高い匿名化済みデータを算出するとの効果を提供できる。
【0082】
匿名化実行部400は、階級の組合せであるセルを基に対象データを匿名化する。そのため、情報処理装置10は、分類を維持できるためである。
【0083】
さらに、結合制御部500は、スコアが最少となる、つまり、情報損失が最少となる匿名化におけるセルの結合を選択する。そして、結合制御部500は、匿名化実行部400に、選択したセルの結合を用いた匿名化を指示する。つまり、匿名化実行部400は、情報損失を抑えながら匿名化できる。ここで、情報損失が小さい匿名化は、細粒度が高い匿名化である。つまり、情報処理装置10は、細粒度の高い匿名化を実現できるためである。
【0084】
(データ用いた動作の説明)
次に、スコアとして具体的な式と値を用いて、本実施形態の動作について説明する。
【0085】
まず、説明に用いるデータについて説明する。
【0086】
図3は、本説明に用いる対象データ110の一例を示す図である。対象データ110は、ユーザを特定するユーザID111と、最高血圧112と、最低血圧113と、既往症114とを含む。ここで、最高血圧112と最低血圧113は、分類に用いる属性である。つまり、最高血圧112と最低血圧113は、階級が設定されている。また、既往症114は、他人に知られたくない情報(センシティブ情報)である。なお、対象データ110は、匿名化対象データ記憶部100に記憶されている。
【0087】
図4は、本説明に用いる分類320の一例を示す図である。分類320は、分類の名称である分類名321と、セル322と、最高血圧の階級323と、最低血圧の階級324とを含む。ここで、セル322は、最高血圧の階級323と最低血圧の階級324とを含む。つまり、
図4に示す分類320を用いる匿名化は、最高血圧の階級323と最低血圧の階級324を含むセルを用いる匿名化となる。また、
図4に示す分類320は、2つのセルを含む分類である。例えば、分類1は、セル1とセル2とを含む。そのため、セル1は、セル2の隣接セルである。
【0088】
分類320は、分類記憶部300に記憶されている。
【0090】
なお、本実施形態の説明に用いる匿名性は、匿名性として一般的に用いられている「k−匿名性」を用いるとする。より具体的には、本実施形態の説明に用いる匿名性は、「k=2」である「2−匿名性」を用いるとする。ここで、「k−匿名性」とは、同じ準識別子を持つパーソナル情報が「k個」以上存在することを保証する。k−匿名性が保証されたパーソナル情報の集合は、同じ準識別子を持つパーソナル情報を、少なくとも「k個」含む。
【0091】
まず、匿名化実行部400は、対象データを匿名化する(S001)。ただし、最初の動作のため、匿名化実行部400は、対象データセルを基に、対象データを匿名化する。
【0092】
図5は、この場合のステップS001の動作の詳細に示したフローチャートである。
【0093】
まず、匿名化実行部400は、匿名化対象データ記憶部100から対象データ110を受信する(ステップS011)。
【0094】
次に、匿名化実行部400は、分類記憶部300からセル322を受信する(ステップS012)。今の場合、匿名化実行部400は、
図4に示すセル1ないしセル4を受信する。
【0095】
そして、匿名化実行部400は、受信したセル322に基づき、匿名化における属性ごとの階級を設定する(ステップS013)。例えば、匿名化実行部400は、最高血圧の階級として、「最高血圧<120」と、「120≦最高血圧<130」とを設定する。
【0096】
そして、匿名化実行部400は、設定した階級に基づき、階級を跨らないように対象データ110を匿名化する(ステップS014)。例えば、匿名化実行部400は、最高血圧の値が120を跨がないように対象データを匿名化する。
【0097】
図6は、ステップS014において匿名化された結果である匿名化済みデータ230を示す図である。匿名化済みデータ230は、ユーザの識別子であるユーザID231と、匿名化された最高血圧232と、匿名化された最低血圧233と、既往症234とを含む。
【0098】
図6において、ユーザAないしユーザCが、第1の匿名化グループ(セル3)に属数するデータである。ユーザD及びユーザEが、第2の匿名化グループ(セル4)に属するデータである。ユーザF及びユーザGが、第3の匿名化グループ(セル2)に属するデータである。ユーザHないしユーザJが、第4の匿名化グループ(セル1)に属するデータである。匿名化済みデータの匿名化済み属性(最高血圧と最低血圧)は、
図4に示す階級を満足している。
【0100】
次に、結合制御部500は、匿名化済みデータ230に対して次に示す数式1を用いてスコア(ここでは、情報損失(IL:Information Loss))を計算する(ステップS002)。
[数式1]
【0101】
ここで、「J」は情報損失(IL)である。「Π」は、積(直積)を表す。「n」は、属性の数である。「a
i」は、i番目の匿名化済みデータの属性の値である。「V
aimax」と「V
aimin」は、それぞれ、i番目の匿名化済み属性の値の最大値と最小値である。つまり、「(V
aimax−V
aimin)」は、i番目の匿名化済み属性における属性の値の範囲(幅)である。
【0102】
例えば、
図6に示すユーザAないしユーザCの情報損失は、「168=(129−122)×(84−60)」である。同様に、第2の匿名化グループに含まれるユーザD及びユーザFの情報損失は、「2=(125−123)×(87−86)」である。同様に、結合制御部500は、全てのユーザの情報損失を計算する。
【0103】
次に、結合制御部500は、計算した各ユーザの情報損失と所定の基準値(ここでは、「100」とする)とを比較する(ステップS003)。
【0104】
今の場合、情報損失が基準値を超えるユーザ(ユーザAないしユーザC)が存在する(ステップS003でNO)。そのため、結合制御部500は、以下の動作を実行する。
【0105】
結合制御部500は、ユーザAないしユーザCのいずれかを分類記憶部300に送信し、分類記憶部300からユーザAないしユーザCが所属する対象データセルが含まれる分類に含まれ、対象データセルに隣接する隣接セルを受信する。今の場合、ユーザAないしユーザCは、
図4に示す分類2のセル3に対応するデータである。つまり、対象データセルは、セル3である。そのため、隣接セルは、セル4となる。つまり、隣接セルは、「120≦最高血圧<130」の階級と「85≦最低血圧<90」の階級とを含む。結合制御部500は、結合候補セルとしてこの隣接セルを選択する(ステップS004)。なお、今の場合、隣接セルに対応するデータは、ユーザD及びユーザEである。
【0106】
そして、結合制御部500は、隣接セル(セル4)とユーザAないしユーザCが所属する対象データセル(セル3)とを匿名化実行部400に通知する。
【0107】
匿名化実行部400は、対象データ110を匿名化する(ステップS001)。繰り返し処理のため、匿名化実行部400は、隣接セル(セル4)と対象データセル(セル3)と結合したセルを用いて対象データ110を匿名化する。今の場合、セル3とセル4とを結合したセルは、分類2と同等となる。つまり、結合後のセルに含まれる階級は、最高血圧の階級の「120≦最高血圧<130」と、最低血圧の階級の「最低血圧<90」である。
【0108】
図7は、この場合の匿名化実行部400が、ステップS001において匿名化したユーザAないしユーザEの匿名化済みデータを示す図である。
【0109】
そして、結合制御部500は、匿名化済みデータの情報損失(IL)を計算する(ステップS002)。
【0110】
図7において、ユーザA−ユーザBの情報損失(IL)は、「10=(129−128)×(70−60)」である。同様に、ユーザCないしユーザEの情報損失は、「9=(125−122)×(87−84)」である。
【0111】
情報損失の計算の結果、セルの結合後の情報損失は、すべて基準値(100)より小さいため(ステップS003でYES)、結合制御部500は、匿名化対象セルを選択する(ステップS005)。今の場合、先ほど選択した隣接セルが、匿名化対象セルとなる。
【0112】
そして、匿名化実行部400は、上記の匿名化対象セルを用いて匿名化し、匿名化済みデータを生成し、匿名化済みデータ記憶部200に保存する(ステップS016)。
【0113】
この結果、情報処理装置10は、匿名化済みデータ260を算出する。
【0114】
図8は、最終的な匿名化済みデータ260を示す図である。
【0115】
最終的な匿名化済みデータ260は、ユーザの識別子であるユーザID261と、匿名化済みの最高血圧262と、匿名化済みの最低血圧263と、既往症264とを含む。匿名化済みデータ260は、匿名化済みデータ記憶部200に記憶される。
【0116】
図8に示す匿名化済みデータ260は、
図6に示す匿名化済みデータ230と比べ情報損失が小さい。つまり、情報処理装置10は、
図8に示す細粒度が高い匿名化済みデータ260を算出できた。
【0117】
(第1の変形例)
以上で説明した情報処理装置10は、次のように構成される。
【0118】
例えば、情報処理装置10の各構成部は、ハードウェア回路で構成されても良い。
【0119】
また、情報処理装置10は、各構成部をネットワーク又はバスを介して接続した複数の情報処理装置として構成されても良い。
【0120】
例えば、情報処理装置10は、各記憶部として、ネットワークを介して接続した外部記憶装置を用いて実現しても良い。
【0121】
図9は、第1の変形例に係る情報処理装置11の構成の一例を示すブロック図である。
【0122】
情報処理装置11は、
図1に示す匿名化対象データ記憶部100と、分類記憶部300と、匿名化済みデータ記憶部200とをネットワークを介して接続する外部も記憶装置を用いる。そのため、
図9に示す情報処理装置11は、これら記憶部の構成を含まない。
【0123】
ただし、本変形例に情報処理装置11は、情報処理装置10と同様の効果を実現できる。その理由は、情報処理装置11は、外部の記憶装置の情報を基に情報処理装置10と同様に動作できるためである。
【0124】
なお、
図9に示す情報処理装置11は、本実施形態の最小構成である。
【0125】
(第2の変形例)
また、情報処理装置10は、複数の構成部を1つのハードウェアで構成されても良い。
【0126】
また、情報処理装置10は、CPU(Central Processing Unit)と、ROM(Read Only Memory)と、RAM(Random Access Memory)とを含むコンピュータ装置として実現されても良い。情報処理装置10は、上記構成に加え、さらに、入出力接続回路(IOC:Input Output Circuit)と、ネットワークインターフェース回路(NIC:Network Interface Circuit)とを含むコンピュータ装置として実現されても良い。
【0127】
図10は、本変形例に係る情報処理装置60の構成の一例を示すブロック図である。
【0128】
情報処理装置60は、CPU610と、ROM620と、RAM630と、内部記憶装置640と、IOC650と、NIC680とを含み、コンピュータを構成している。
【0129】
CPU610は、ROM620からプログラムを読み込む。そして、CPU610は、読み込んだプログラムに基づいて、RAM630と、内部記憶装置640と、IOC650と、NIC680とを制御する。そして、CPU610を含むコンピュータは、これらの構成を制御し、
図1及び
図9に示す匿名化実行部400と結合制御部500としての各機能を実現する。CPU610は、各機能を実現する際に、RAM630又は内部記憶装置640を、プログラムの一時記憶として使用しても良い。
【0130】
また、CPU610は、プログラムを記憶したコンピュータ読み取り可能な記憶媒体700が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでも良い。あるいは、CPU610は、NIC680を介して、図示しない外部の装置からプログラムを受け取っても良い。さらに、CPU610は、読み込んだプログラム又は受け取ったプログラムをRAM630に保存し、RAM630に保存したプログラムを基に動作しても良い。
【0131】
ROM620は、CPU610が実行するプログラム及び固定的なデータを記憶する。ROM620は、例えば、P−ROM(Programmable-ROM)又はフラッシュROMである。
【0132】
RAM630は、CPU610が実行するプログラム及びデータを一時的に記憶する。RAM630は、例えば、D−RAM(Dynamic-RAM)である。
【0133】
内部記憶装置640は、情報処理装置60が長期的に保存するデータ及びプログラムを記憶する。また、内部記憶装置640は、CPU610の一時記憶装置として動作しても良い。また、内部記憶装置640は、
図1に示す匿名化対象データ記憶部100、匿名化済みデータ記憶部200、又は、分類記憶部300として動作しても良い。内部記憶装置640は、例えば、ハードディスク装置、光磁気ディスク装置、SSD(Solid State Drive)又はディスクアレイ装置である。
【0134】
ここで、ROM620と内部記憶装置640は、不揮発性の記憶媒体である。一方、RAM630は、揮発性の記憶媒体である。そして、CPU610は、ROM620、内部記憶装置640、又は、RAM630に記憶されているプログラムを基に動作可能である。つまり、CPU610は、不揮発性記憶媒体又は揮発性記憶媒体を用いて動作可能である。
【0135】
IOC650は、CPU610と、入力機器660及び表示機器670とのデータを仲介する。IOC650は、例えば、IOインターフェースカード又はUSB(Universal Serial Bus)カードである。
【0136】
入力機器660は、情報処理装置60の操作者からの入力指示を受け取る機器である。入力機器660は、例えば、キーボード、マウス又はタッチパネルである。
【0137】
表示機器670は、情報処理装置60の操作者に情報を表示する機器である。表示機器670は、例えば、液晶ディスプレイである。
【0138】
NIC680は、ネットワークを介して他の構成とのデータのやり取りを中継する。NIC680は、例えば、LAN(Local Area Network)カード又はPCM(Peripheral Component Interconnect)カードである。
【0139】
このように構成された情報処理装置60は、情報処理装置10と同様の効果を得ることができる。
【0140】
その理由は、情報処理装置60のCPU610が、プログラムに基づいて情報処理装置10と同様の機能を実現できるためである。
【0141】
<第2の実施形態>
次に、図面を参照して第2の実施形態について説明する。
【0142】
図11は、第2の実施形態の情報処理装置12の構成の一例を示すブロック図である。
【0143】
情報処理装置12は、第1の実施形態の情報処理装置10の構成に加え、距離計算部900を含む点で異なる。
【0144】
そのため、第1の実施形態と同様の構成及び動作の説明を省略し、距離計算部900に関連する構成及び動作について説明する。
【0145】
なお、情報処理装置12は、第1の実施形態と同様に、
図10に示すコンピュータを用いて構成されても良い。その場合、CPU610を含むコンピュータは、
図1に示す匿名化実行部400と結合制御部500に加え距離計算部900としての機能を実現する。
【0146】
距離計算部900は、対象データに含まれるデータ間の距離を計算する。ここで、データ間の距離とは、データ(レコード)に含まれる属性間の距離である。
【0147】
例えば、距離計算部900は、データの距離を次に示す数式2を用いて算出できる。
[数式2]
【0148】
ここで、「D」は、ユーザAのデータとユーザBのデータとの距離である。「V
Ai」と「V
Bi」は、それぞれ、ユーザAの属性iの値とユーザBの属性iの値である。なお、距離計算部900は、距離の計算にユーザAとユーザBの全ての属性を用いる必要はない。距離計算部900は、1つ又は一部の属性を用いて距離を計算しても良い。そのため、「n」は、距離計算部900が計算に用いる属性の数である。
【0149】
また、距離計算部900は、数式2とは異なる距離を用いても良い。例えば、距離計算部900は、距離として、各属性の差の絶対値の合計を用いてもよい。
【0150】
あるセルに対応するデータと他のセルに対応するデータとの距離が近い場合、それらのセルに対応するデータを結合する匿名化は、データの距離が遠いセルに対応するデータを結合する匿名化に比べ、匿名化済みデータの情報損失を少なくできる。また、データの距離が遠いセルを結合することは、情報損失を大きくするため、避けることが望ましい。
【0151】
そこで、本実施形態の結合制御部500は、距離計算部900を用いて、セルに対応するデータの距離を計算し、データ結合するセルを選択する。
【0152】
次に、本実施形態の動作について、図面を参照して説明する。
【0153】
図12は、本実施形態の情報処理装置12の動作の一例を示すフローチャートである。
【0154】
図12に示す動作は、
図2に示す第1の実施形態の動作に加え、ステップS010が追加となっている。
【0155】
そのため、
図2の同様の動作の説明を省略し、ステップS010について説明する。
【0156】
結合制御部500は、スコアが基準値以上の場合(ステップS003でNO)、距離計算部900を用いてスコアが基準値以上の対象データセルに属するデータと隣接セルに属するデータとの間の距離を計算する。そして、結合制御部500は、算出したデータ間の距離と所定の値(基準値)とを比較する(ステップS010)。ただし、距離計算部900は、距離を算出する対象データセルに属するデータと隣接セルに属するデータとに制限はない。例えば、距離計算部900は、距離として、対象データセルに属するデータと隣接セルに属するデータとの最小の距離を用いても良い。あるいは、距離計算部900は、距離として、対象データセルに属するデータの平均値と、隣接セルに属するデータと平均値との距離を用いても良い。
【0157】
そして、距離が基準値未満の場合(ステップS010がNO)、結合制御部500は、距離が基準値未満の隣接セルの中から結合候補セルを選択する(ステップS004)。以下、情報処理装置12は、第1に実施形態の情報処理装置10と同様に動作する。
【0158】
一方、距離が基準値未満でない場合(ステップS010でYES)、結合制御部500は、ステップS001に戻る。そして、以下、情報処理装置12は、第1に実施形態の情報処理装置10と同様に動作する。つまり、情報処理装置12は、所定の基準値以上離れたセルを結合候補としない。
【0159】
なお、結合制御部500は、繰り返しの動作の場合、計算済みのセルに関して、距離計算部900の処理を省略しても良い。
【0160】
具体的に値を用いてさらに動作を説明する。
【0161】
図13は、本説明に用いる対象データ170の一例を示す図である。対象データ170は、ユーザを識別するユーザID171と、最高血圧172と、最低血圧173と、既往症174とを含む。ここで、最高血圧172と最低血圧173は、距離の計算に用いる属性である。
【0162】
図14は、本説明に用いる
図13に示した対象データ170を匿名化した匿名化済みデータ280の一例を示す図である。匿名化済みデータ280は、ユーザを識別するユーザID281と、匿名化済みの最高血圧282と、匿名化済みの最低血圧283と、既往症284とを含む。
【0163】
また、距離の基準値は、「2」とする。つまり、距離の二乗の基準値は、「4」となる。
【0164】
図14を参照すると、セル間の距離の計算の対象となるデータは、ユーザCとユーザD、及び、ユーザFとユーザGである。
【0165】
ここで、数式2に各ユーザの最高血圧の値及び最低血圧の値を適用すると、ユーザCとユーザDの距離の二乗は、「2」となる。また、ユーザFとユーザGの距離の二乗は、「5」になる。
【0166】
ユーザCとユーザDとの距離は、基準値「2」以下である。そのため、対象セルと隣接セルが、ユーザAないしユーザCに対応するセルと、ユーザDないしユーザFに対応するセルの場合、情報処理装置12は、結合候補セルの選択の処理(ステップS004)に進む。
【0167】
一方、ユーザFとユーザGとの距離は、基準値「2」を超えている。そのため、対象セルと隣接セルが、ユーザDないしユーザFに対応するセルと、ユーザG及びユーザHに対応するセルの場合、情報処理装置12は、結合候補セルの選択の処理を実行しない。
【0168】
このように動作する本実施形態の情報処理装置12は、第1の実施形態の効果に加え、より適切な匿名化を実現するとの効果を得ることができる。
【0170】
本実施形態の結合制御部500は、距離計算部900を用いて、結合候補セルとして、対象データセルとの距離が所定の基準値より近いセルを選択するためである。
【0171】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成及び詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。