特許第6398724号(P6398724)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

<>
  • 特許6398724-情報処理装置、および、情報処理方法 図000005
  • 特許6398724-情報処理装置、および、情報処理方法 図000006
  • 特許6398724-情報処理装置、および、情報処理方法 図000007
  • 特許6398724-情報処理装置、および、情報処理方法 図000008
  • 特許6398724-情報処理装置、および、情報処理方法 図000009
  • 特許6398724-情報処理装置、および、情報処理方法 図000010
  • 特許6398724-情報処理装置、および、情報処理方法 図000011
  • 特許6398724-情報処理装置、および、情報処理方法 図000012
  • 特許6398724-情報処理装置、および、情報処理方法 図000013
  • 特許6398724-情報処理装置、および、情報処理方法 図000014
  • 特許6398724-情報処理装置、および、情報処理方法 図000015
  • 特許6398724-情報処理装置、および、情報処理方法 図000016
  • 特許6398724-情報処理装置、および、情報処理方法 図000017
  • 特許6398724-情報処理装置、および、情報処理方法 図000018
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6398724
(24)【登録日】2018年9月14日
(45)【発行日】2018年10月3日
(54)【発明の名称】情報処理装置、および、情報処理方法
(51)【国際特許分類】
   G06F 21/62 20130101AFI20180920BHJP
【FI】
   G06F21/62 354
【請求項の数】10
【全頁数】34
(21)【出願番号】特願2014-556398(P2014-556398)
(86)(22)【出願日】2014年1月6日
(86)【国際出願番号】JP2014000002
(87)【国際公開番号】WO2014109277
(87)【国際公開日】20140717
【審査請求日】2016年12月14日
(31)【優先権主張番号】特願2013-2715(P2013-2715)
(32)【優先日】2013年1月10日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100124154
【弁理士】
【氏名又は名称】下坂 直樹
(72)【発明者】
【氏名】高橋 翼
【審査官】 金木 陽一
(56)【参考文献】
【文献】 特開2012−022315(JP,A)
【文献】 米国特許出願公開第2014/0172854(US,A1)
【文献】 Chen, R., et al.,Publishing Set-Valued Data via Differential Privacy,In Proceedings of the VLDB Endowment,[online],2011年 8月,Vol. 4, No. 11,pp. 1087-1098,[retrieved on 2014-01-30.] Retrieved from the Internet,URL,http://www.cs.mcgill.ca/~noman/Papers/CMFDX11vldb.pdf
【文献】 HE, Y., et al.,Anonymization of Set-Valued Data via Top-Down, Local Generalization,In Proceedings of VLDB Endowment,[online],2009年 8月,Vol. 2, No. 1,pp. 934-945,[retrieved on 2018-02-28.] Retrieved from the Internet,URL,http://doi.org/10.14778/1687627.1687733
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
属性値を含むレコードの集合であるクラスタから、前記クラスタが所定の匿名性を満たすよう前記レコードに含まれる1つ又は複数の値を含むことができる集合値属性のうちの少なくとも一部の属性値が削除された匿名化状態のレコードの集合であるクラスタを表す情報を取得するクラスタ情報取得手段と、
前記クラスタ情報取得手段が取得した前記クラスタに含まれるレコードのオリジナルな状態に基づいて前記集合値属性のうちの削除された属性値から少なくとも一部の属性値を開示し、前記開示した属性値に基づいて、前記クラスタを、前記所定の匿名性を満たすクラスタに分割する集合値属性詳細化手段と、
を含む情報処理装置。
【請求項2】
前記集合値属性詳細化手段が、
前記分割後のクラスタに含まれるレコードにおいて前記削除された属性値のうち開示されていない属性値から少なくとも一部の属性値をさらに開示し、開示した属性値に基づいて、前記分割後のクラスタを、前記所定の匿名性を満たすクラスタにさらに分割する処理を繰り返す
請求項1に記載の情報処理装置。
【請求項3】
前記集合値属性詳細化手段が、
前記集合値属性詳細化手段が分割した前記クラスタが、前記所定の匿名性を満たすクラスタに分割できない場合、前記クラスタの所定の匿名性を維持したまま開示可能な属性値をさらに開示する
請求項1又は請求項2に記載の情報処理装置。
【請求項4】
前記レコードが前記集合値属性に加えて単一の値を含む単一値属性を含み、
単一値属性を基に、前記クラスタを、前記所定の匿名性を満たすクラスタに分割する単一値属性詳細化手段を
含む請求項1ないし請求項3のいずれか1項に記載の情報処理装置。
【請求項5】
前記集合値属性詳細化手段が、
開示される属性値の個数に基づいて、開示する属性値を選択する
請求項1ないし請求項4のいずれ1項に記載の情報処理装置。
【請求項6】
前記集合値属性詳細化手段が、
前記属性値の優先度に基づいて、開示する属性値を選択する
請求項1ないし請求項4のいずれか1項に記載の情報処理装置。
【請求項7】
前記レコードが含む属性において開示の対象となる属性を選択する詳細化属性選択手段をさらに含み、
前記詳細化属性選択手段が選択した属性が集合値属性の場合、前記集合値属性詳細化手段が、選択された集合値属性において削除された属性値のうち少なくとも一部の属性値を開示し、前記開示した属性値に基づいて、前記クラスタを分割する
請求項1ないし請求項4のいずれか1項に記載の情報処理装置。
【請求項8】
前記詳細化属性選択手段が、
前記レコードが有する属性の匿名化状態における情報損失の度合を表す指標を算出し、算出した指標に基づいて、前記詳細化の対象となる属性を選択する
請求項7に記載の情報処理装置。
【請求項9】
属性値を含むレコードの集合であるクラスタから、前記クラスタが所定の匿名性を満たすよう前記レコードに含まれる1つ又は複数の値を含むことができる集合値属性のうちの少なくとも一部の属性値が削除された匿名化状態のレコードの集合であるクラスタを表す情報を取得し、
取得した前記クラスタに含まれるレコードのオリジナルな状態に基づいて前記集合値属性のうちの削除された属性値から少なくとも一部の属性値を開示し、前記開示した属性値に基づいて、前記クラスタを、前記所定の匿名性を満たすクラスタに分割する、
情報処理方法。
【請求項10】
属性値を含むレコードの集合であるクラスタから、前記クラスタが所定の匿名性を満たすよう前記レコードに含まれる1つ又は複数の値を含むことができる集合値属性のうちの少なくとも一部の属性値が削除された匿名化状態のレコードの集合であるクラスタを表す情報を取得する処理と、
取得した前記クラスタに含まれるレコードのオリジナルな状態に基づいて、前記集合値属性のうちの削除された属性値から少なくとも一部の属性値を開示し、前記開示した属性値に基づいて、前記クラスタを、前記所定の匿名性を満たすクラスタに分割する処理と、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プライバシ情報を扱う情報処理装置に関する。
【背景技術】
【0002】
近年、様々なサービスにおいて、個人に関するプライバシ情報が、情報処理装置に蓄積されている。このようなプライバシ情報としては、例えば、個人の購買情報又は診療情報がある。例えば、診療報酬請求明細書であるレセプト([独:Rezept])は、患者や治療に関する属性(例えば、生年や性別、傷病名、薬剤名)を有するレコードからなるデータセットであり、情報処理装置に蓄積される。
【0003】
プライバシ保護の観点から、このようなプライバシ情報を、オリジナルな情報内容のままで公開又は利用されることは、好ましくない。
【0004】
ここで、生年や性別のような、個人を特徴づけ、それらの組合せから個人を特定する可能性のある属性は、「準識別子」と呼ばれる。また、傷病名や薬剤名などのように、他人に知られたくない属性は、「センシティブ属性(機微情報:Sensitive Attribute(SA)、又は、Sensitive Value(SV))」と呼ばれる。
【0005】
ここで、生年や性別のように、単一の値を含む属性は、「単一値属性」と呼ばれる。
【0006】
また、傷病名や薬剤名のように、1つの値を含んでも良く、複数の値(集合値)を含むこともできる属性は、「集合値属性」と呼ばれる。
【0007】
プライバシ情報を含むデータセットは、プライバシ侵害の懸念がなければ、二次活用の有益性が高い情報である。ここで、二次活用とは、プライバシ情報を、プライバシ情報を生成及び蓄積しているサービス事業者以外の第三者に対して提供し、情報の提供を受けた第三者が、その情報を利用することである。あるいは、二次活用とは、サービス事業者が、第三者に対してプライバシ情報を提供して、分析などのアウトソーシングを依頼することである。
【0008】
プライバシ情報の二次活用は、プライバシ情報の分析及び研究を促進し、分析結果および研究結果を用いてサービスを強化できる。さらに、プライバシ情報の二次活用は、第三者においても、プライバシ情報の持つ高い有益性を享受できる。
【0009】
例えば、第三者として、製薬会社が、想定し得る。製薬会社は、診療情報を基に、薬品の共起関係又は相関関係を分析できる。しかし、製薬会社にとって、診療情報の入手は、困難である。もし、診療情報を入手できれば、製薬会社は、薬品がどのように利用されているのかを知ることができ、さらに、薬品の効果を分析できる。
【0010】
しかしながら、プライバシ情報を含むデータセットは、プライバシ侵害の懸念から、積極的な二次活用がなされていない。
【0011】
例えば、サービス利用者を一意に識別するユーザ識別子(ユーザID(Identifier))と、1つ以上のセンシティブ情報とを含むレコードで構成されたデータセットが、サービス提供者の情報処理装置に蓄積されていると仮定する。もし、ユーザ識別子とセンシティブ情報とが第三者に提供されると、第三者は、ユーザ識別子を用いて、センシティブ情報に関するサービス利用者を特定できる。そのため、プライバシ侵害の問題が、発生し得る。
【0012】
また、複数のレコードで構成されたデータセットにおいて、各レコードに1つ以上の準識別子が付与されている場合について考える。この場合、準識別子の組み合わせを基に、データに関係する個人を特定できる可能性がある。すなわち、ユーザ識別子を取り除いたデータセットでも、準識別子の組合せに基づいて個人を特定できる場合、プライバシ侵害が、発生し得る。
【0013】
プライバシ情報のデータセットを、有用性を保ちながら、プライバシを保護した形態に変換する技術として、匿名化技術(Anonymization)が、知られている。
【0014】
匿名化技術に関連して、最もよく知られた匿名性指標である「k−匿名性(k-anonymity)」が、提案されている(例えば、非特許文献1を参照)。ここで、匿名化対象のデータセットに係るk−匿名性を充足させる技術は、"k−匿名化(k-anonymization)"と呼ばれる。このk−匿名化とは、同じ準識別子を有するレコードが匿名化対象のデータセットの中に少なくともk個以上存在するように、対象となる準識別子を変換する。なお、変換処理として、例えば、「一般化(Generalization)」又は「切り落とし(Suppression)」が、知られている。一般化とは、元の情報を、抽象化された情報に変換する処理である。また、切り落としとは、元の情報を削除する処理である。
【0015】
k−匿名化技術を利用する関連技術の1つとして、ユーザ端末から受信したデータを暗号化して格納し、復元したデータをk−匿名性を満たすよう加工して、サービス提供者サーバに送信する技術がある(例えば、特許文献1を参照)。
【0016】
また、k−匿名化技術を利用する他の関連技術として、類似する属性値を含むレコードの集合(以降、「クラスタ」と呼ぶ)を用いる手法が提案されている(例えば、特許文献2および非特許文献2を参照)。この手法は、類似する属性値を含むクラスタを逐次生成し、クラスタに含まれるレコードにおいて、一般化や切り落としを用いて共通の属性値を生成する。
【0017】
上述の特許文献1、特許文献2および非特許文献2に記載された関連技術は、単一値属性に対してk−匿名化を行う。
【0018】
ところが、複数のレコードで構成されたデータセットにおいて、各レコードに付与されているセンシティブ情報の組み合わせを基に、個人を特定できてしまう場合がある。すなわち、ユーザ識別子を取り除き、準識別子を匿名化したデータセットにおいても、センシティブ情報の組合せに基づいて個人を特定可能な場合がある。そのため、センシティブ情報の組合せに基づいても、プライバシ侵害が、発生し得る。このように、センシティブ属性も、準識別子と同様に個人特定の要因になり得る。したがって、センシティブ属性に対しても、準識別子と同様な扱いが必要となる。
【0019】
しかしながら、全てのセンシティブ情報をデータセットから取り除いてしまうと、情報の欠損が生じる。その結果、プライバシ情報を含むデータセットの有益性が失われる。例えば、全てのセンシティブ情報が取り除かれた診療情報のデータセットを用いる場合、ある傷病と他の傷病との相関関係や共起関係の分析は、難しい。
【0020】
そこで、このようなセンシティブ情報を表す集合値属性に対する匿名化技術が、提案されている(例えば、非特許文献3〜非特許文献6参照)。
【0021】
例えば、非特許文献3に記載された関連技術は、センシティブ情報に含まれるアイテム(属性値)の組合せに紐づくレコードの数がk個以上になるように、アイテムの「局所的な一般化(Local Recoding)」を行う。ここで、局所的な一般化とは、レコードごとにk−匿名化に必要な一般化の度合いを調整する手法である。局所的な一般化は、一般化の度合い(情報損失)を小さくできる。また、この関連技術は、一般化に、タクソノミー(taxonomy)を必要とする。さらに、この関連技術には、ある属性値が、レコードごとに異なる一般化された値に加工されるという、一般化の不均一が生じ、集計がしづらいという問題点があった。
【0022】
また、非特許文献4に記載された関連技術は、センシティブ情報に含まれるアイテムの組合せに紐づくレコードの数がk個以上になるように、アイテムの「大域的な一般化(Global Recoding)」を行う。ここで、大域的な一般化とは、ある属性値をどのような値に一般化するかを、データセット全体のk−匿名性および情報損失を加味して決定する手法である。例えば、傷病名という集合値属性の取り得る値に関して、図14のようなタクソノミーが存在すると仮定する。この関連技術は、所望の匿名性の充足に、あるレコードの傷病名属性に含まれる「A」という値を「神経系」に一般化する必要がある場合、データセット中のすべての傷病名「A」を「神経系」に一般化する。このように、この関連技術には、属性値の情報損失が大きくなりすぎるという問題点があった。
【0023】
また、非特許文献5に記載された関連技術は、センシティブ情報に含まれるアイテムの組合せに紐づくレコードの数がk個以上になるように、アイテムの「大域的な切り落とし(Global Suppression)」を行う。ここで、大域的な切り落としとは、ある属性値を削除するか否かを、データセット全体のk−匿名性および情報損失を加味して決定する手法である。この関連技術は、削除が決定した属性値を、データセット中に存在しないように削除する。そのため、この関連技術には、削除されるアイテム数が多くなりやすいという問題点があった。
【0024】
また、非特許文献6に記載された関連技術は、センシティブ情報に含まれるアイテムの組合せから紐づくレコードの数がk個以上になるように、アイテムの大域的な一般化および削除を行う。また、この関連技術は、一般化にタクソノミーを必要とする。この関連技術は、非特許文献4および非特許文献5に記載された技術よりも情報損失を小さくでき、且つ、非特許文献3に記載された技術で生じる一般化の不均一も生じない。
【先行技術文献】
【特許文献】
【0025】
【特許文献1】特開2011−180839号公報
【特許文献2】特開2012−003440号公報
【非特許文献】
【0026】
【非特許文献1】L. Sweeney, "k-anonymity: a model for protecting privacy", International Journal on Uncertainty, Fuzziness and Knowledge-Based Systems, Volume10、Issue 05, pp.555-570, October 2002.
【非特許文献2】K. LeFevre, D. DeWitt and R. Ramakrishnan, "Mondrian Multidimensional k-Anonymity", Data Engineering, 2006. ICDE ’06. Proceedings of the 22nd International Conference on Data Engineering, Page 25, April 2006.
【非特許文献3】Yeye He and Jeffrey F. Naughton, "Anonymization of set-valued data via top-down, local generalization", International Conference on Very Large Databases, Volume 2, Issue 1, pp.934-945, August 2009.
【非特許文献4】M. Terrovits, N. Mamoulis and P. Kalnis, "Privacy Preserving Anonymization of Set-valued Data", Proceedings of the VLDB, Volume 1, Issue 1, pp.115-125, August 2008
【非特許文献5】Y. Xu, K. Wang, A. Fu and P.S. Yu, "Anonymizing Transaction Databases for Publication", KDD 2008, Proceedings of the 14th ACM SIGKDD international conference on Knowledge discovery and data mining, pp.767-775.
【非特許文献6】Junqiang Liu and Ke Wang, "Anonymizing Transaction Data by Integrating Suppression and Generalization", Advances in Knowledge Discovery and Data Mining Lecture Notes in Computer Science Volume 6118, 2010, pp 171-180.
【発明の概要】
【発明が解決しようとする課題】
【0027】
しかし、上述した非特許文献6に記載の関連技術は、単一値属性及び集合値属性が混在するデータセットにおいて、タクソノミーが与えられていない集合値属性を、他の属性とスケーラブルに共存可能に匿名化することに適さないという問題点があった。
【0028】
ここで、「他の属性と共存可能」とは、他の属性に関する任意の匿名化処理と併用可能であることをいう。
【0029】
また、「スケーラブルに共存可能」とは、匿名化対象の属性数が増加した場合でも、匿名化で考慮すべき加工のパターン数が膨大にならない(組合せ爆発が生じない)ことをいう。
【0030】
なお、一般的に、最適なk−匿名化を実現しようとする場合、k−匿名性を充足し、且つ、k−匿名性の充足に必要となる加工(一般化や削除)の度合いが最小となる加工のパターンを抽出する必要がある。この場合、匿名化対象の属性数が増加すると、k−匿名性の充足、および、加工の度合いの最小化という少なくとも二つの指標を考慮する必要がある。そのため、匿名化の候補として考慮すべき加工パターン数の組合せ爆発が生じる。
【0031】
例えば、特許文献1および非特許文献2に記載された関連技術は、単一値属性を匿名化対象としている。そのため、特許文献1および非特許文献2には、匿名化対象として集合値属性が混在するケースは、記載されていない。
【0032】
また、非特許文献3〜非特許文献6に記載された関連技術は、1つの集合値属性を対象としている。そのため、非特許文献3〜非特許文献6には、他の単一値属性又は集合値属性が混在するケースについては、記載されていない。
【0033】
例えば、複数の単一値属性や集合値属性が混在するデータセットに対して、大域的な一般化や削除を行うと、情報損失が大きくなってしまうという問題が生じる。
【0034】
このように、非特許文献3〜非特許文献6に記載された集合値属性に対するk−匿名化技術は、必ずしも他の属性とスケーラブルに共存可能な技術ではなかった。
【0035】
なお、非特許文献2に記載された関連技術は、トップダウンアプローチを用いたk−匿名化を基に、複数の単一値属性を含むデータセットに対して、スケーラブルに共存可能な匿名化を行う。
【0036】
トップダウンアプローチを用いたk−匿名化は、まず、データセットを、最も一般化(すべての属性値が削除)された状態にする。その後、トップダウンアプローチを用いたk−匿名化は、k−匿名性を満たす範囲で、各属性の詳細化を繰り返す。このように、トップダウンアプローチを用いたk−匿名化は、データセットを、すべての属性の値を最も一般化された状態に初期化した後、段階的に、加工の度合いが小さくなるように詳細化を行う。
【0037】
そのため、トップダウンアプローチを用いたk−匿名化では、加工の度合いの最小化が、必ずしも実現されない。しかし、トップダウンアプローチを用いたk−匿名化では、加工の度合いを局所的に最小化した匿名化が、高速に実現される。
【0038】
また、トップダウンアプローチを用いたk−匿名化は、属性ごとに任意の匿名化処理を採用できる。そして、トップダウンアプローチを用いたk−匿名化は、一度の詳細化処理において、1つの属性を対象として、詳細化を行う。
【0039】
ただし、属性ごとの匿名化処理は、トップダウンアプローチである必要がある。このとき、トップダウンアプローチを用いたk−匿名化は、各属性の加工の度合いを小さくすることを考慮すればよい。そのため、トップダウンアプローチを用いたk−匿名化は、匿名化対象の属性数が増加しても、考慮すべき加工パターン数の組合せ爆発を生じない。
【0040】
また、トップダウンアプローチを用いたk−匿名化は、詳細化の結果、データセットがk−匿名性を充足しなくなった場合、属性の状態を詳細化の前の状態に戻す。
【0041】
このように、トップダウンアプローチを用いたk−匿名化は、複数の属性の詳細化処理をスケーラブルに共存させる。
【0042】
ここで、このような複数の属性に対するトップダウンアプローチのk−匿名化処理において、集合値属性に対してトップダウンアプローチの匿名化技術の適用には、次のような問題点があった。
【0043】
例えば、非特許文献3及び非特許文献6に記載された関連技術は、集合値属性に対するトップダウンアプローチの匿名化技術である。しかし、これらの関連技術は、他の属性に対する匿名化処理と共存させることを考慮していない。また、これらの関連技術は、対象の集合値属性にタクソノミーが与えられていることを前提とする。しかしながら、匿名化対象となる全ての集合値属性に対して、あらかじめタクソノミーが与えられているとは限らない。したがって、これらの関連技術は、タクソノミーが与えられていない集合値属性を、他の属性値とスケーラブルに共存可能に匿名化できないという問題点があった。
【0044】
また、トップダウンアプローチとは逆のアプローチとしてボトムアップアプローチを用いたk−匿名化が、知られている。ボトムアップアプローチを用いたk−匿名化は、削除に基づく情報損失を最小化するように、最適なレコードの組合せを用いて、k−匿名性を実現する。しかし、ボトムアップアプローチを用いたk−匿名化は、複数の属性を共存させた匿名化を行う場合、膨大な組合せの中からk−匿名性を充足し、且つ、情報損失の小さな状態の探索する必要があるため、匿名化処理に多くの時間を必要とする。
【0045】
本発明は、上述の問題点を解決するためになされたもので、単一値属性及び集合値属性が混在するデータセットにおいて、タクソノミーが与えられていない集合値属性を、他の属性と共存可能且つスケーラブルに処理する匿名化技術の提供を目的とする。
【課題を解決するための手段】
【0046】
本発明における一形態の情報処理装置は、属性値を含むレコードの集合であるクラスタから、前記クラスタが所定の匿名性を満たすよう前記レコードに含まれる1つ又は複数の値を含むことができる集合値属性のうちの少なくとも一部の属性値が削除された匿名化状態のレコードの集合であるクラスタを表す情報を取得するクラスタ情報取得手段と、前記クラスタ取得手段が取得した前記クラスタに含まれるレコードの前記集合値属性のうちの削除された属性値から少なくとも一部の属性値を開示し、前記開示した属性値に基づいて、前記クラスタを、前記所定の匿名性を満たすクラスタに分割する集合値属性詳細化手段と、を含む。
【0047】
また、本発明における一形態の情報処理方法は、属性値を含むレコードの集合であるクラスタから、前記クラスタが所定の匿名性を満たすよう前記レコードに含まれる1つ又は複数の値を含むことができる集合値属性のうちの少なくとも一部の属性値が削除された匿名化状態のレコードの集合であるクラスタを表す情報を取得し、取得した前記クラスタに含まれるレコードの前記集合値属性のうちの削除された属性値から少なくとも一部の属性値を開示し、前記開示した属性値に基づいて、前記クラスタを、前記所定の匿名性を満たすクラスタに分割する。
【0048】
また、本発明における一形態のプログラムを記録したコンピュータ読み取り可能な記録媒体は、属性値を含むレコードの集合であるクラスタから、前記クラスタが所定の匿名性を満たすよう前記レコードに含まれる1つ又は複数の値を含むことができる集合値属性のうちの少なくとも一部の属性値が削除された匿名化状態のレコードの集合であるクラスタを表す情報を取得する処理と、取得した前記クラスタに含まれるレコードの前記集合値属性のうちの削除された属性値から少なくとも一部の属性値を開示し、前記開示した属性値に基づいて、前記クラスタを、前記所定の匿名性を満たすクラスタに分割する処理と含むプログラムを、コンピュータ装置に実行させる。
【発明の効果】
【0049】
本発明は、単一値属性および集合値属性が混在するデータセットにおいて、タクソノミーが与えられていない集合値属性を、他の属性と共存可能且つスケーラブルに処理する匿名化技術を提供できる。
【図面の簡単な説明】
【0050】
図1図1は、本発明における第1の実施形態に係る情報処理装置の構成の一例を示すブロック図である。
図2図2は、第1の実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
図3図3は、第1の実施形態に係る情報処理装置の動作の一例を説明するフローチャートである。
図4図4は、第2の実施形態に係る情報処理装置の構成の一例を示すブロック図である。
図5図5は、第2の実施形態に係る情報処理装置の動作の一例を説明するフローチャートである。
図6図6は、第2の実施形態に係る匿名化対象となるデータセットの一例を示す図である。
図7図7は、第2の実施形態に係る段階的な匿名化処理において、集合値属性の匿名化状態の変遷の一例を示す図である。
図8図8は、第3の実施形態に係る情報処理装置の構成の一例を示すブロック図である。
図9図9は、第3の実施形態に係る情報処理装置の動作の一例を説明するフローチャートである。
図10図10は、第3の実施形態に係る匿名化状態保持部に保持されるクラスタ情報の一例を示す図である。
図11図11は、第3の実施形態に係る詳細化属性選択部において算出される情報損失の指標の一例を示す図である。
図12図12は、第4の実施形態に係る情報処理装置の構成の一例を示すブロック図である。
図13図13は、第4の実施形態に係る情報処理装置の動作の一例を説明するフローチャートである。
図14図14は、関連技術の匿名化処理で用いられるタクソノミーの一例を示す図である。
【発明を実施するための形態】
【0051】
(第1の実施形態)
本発明のおける第1の実施形態としての情報処理装置1の機能の一例のブロック構成を図1に示す。図1において、情報処理装置1は、クラスタ情報取得部11と、集合値属性詳細化部12とを含む。
【0052】
また、情報処理装置1のハードウェア構成の一例を図2に示す。図2に示すように、情報処理装置1は、CPU(Central Processing Unit)1001と、RAM(Random Access Memory)1002と、ROM(Read Only Memory)1003とを含むコンピュータ装置を用いて構成可能である。さらに、情報処理装置1は、図2に示すハードディスク等の記憶装置1004を含んだコンピュータ装置を用いても構成可能である。この場合、クラスタ情報取得部11および集合値属性詳細化部12は、ROM1003および記憶装置1004に記憶されたプログラムおよび各種データをRAM1002に読み込んで実行するCPU1001に基づいて構成される。なお、情報処理装置1およびその各機能ブロックを構成するハードウェア構成は、上述の構成に限定されない。
【0053】
クラスタ情報取得部11は、匿名化状態のレコード(レコード群)を含むクラスタを表す情報を取得する。ここで、匿名化状態のレコード群とは、レコード群が所定の匿名性を満たすように、集合値属性の少なくとも一部の属性値が削除された状態の1つ以上のレコードである。そのため、以下の説明において、レコード群は、レコードが1つの場合も含む。また、ここで、「属性値の削除」とは、属性値が、オリジナルの値から、匿名化されて値を特定できない状態に変更されることである。
【0054】
なお、オリジナルな状態の各レコードは、図示しない外部または内部の記憶装置に記憶されているものとする。ここで、オリジナルな状態とは、集合値属性が取る属性値が削除されずに元の値のままである状態をいう。
【0055】
また、集合値属性とは、1つ又は複数の属性値を含むことができる属性をいう。例えば、「薬剤名」という属性は、個人のレセプトを表す情報を格納するレコードにおいて、1つ又は複数の薬剤名を表す属性値を含むことができるため、集合値属性である。
【0056】
また、所定の匿名性とは、例えば、非特許文献1に記載されたk−匿名性でもよい。あるいは、所定の匿名性は、プライバシ情報を含むレコード群が、プライバシ情報に関連する個人を特定可能でない状態であることを示すその他の匿名性の指標でもよい。
【0057】
また、クラスタ情報取得部11に取得されるクラスタを表す情報は、クラスタに属するレコードへの参照情報と、クラスタに含まれる各レコードの集合値属性に共通の属性値である共通属性値のリストとを含んでもよい。ここで、共通属性値とは、各レコードの集合値属性において開示されている属性値である。
【0058】
ここで、「開示」とは、属性値を、匿名化された状態から匿名化前の状態に戻すことである。つまり、「開示」とは、属性値をオリジナルな値に戻すことである。そのため、「開示されていない属性値」とは、匿名化された状態の属性値である。
【0059】
集合値属性詳細化部12は、対象のクラスタにおいて集合値属性の削除された属性値のうち少なくとも一部の属性値を、開示する。そして、集合値属性詳細化部12は、開示した属性値に基づいて、対象のクラスタを、所定の匿名性を満たすクラスタに分割する。つまり、集合値属性詳細化部12は、開示した属性値に基づいて、対象のクラスタを、所定の匿名性を満たすクラスタを含む複数のクラスタに分割する。
【0060】
このように、集合値属性詳細化部12は、匿名化された属性値の少なくとも一部を開示し、クラスタを分割する。以下、集合値属性詳細化部12のこれらの動作をまとめて、「詳細化」と言う。
【0061】
具体的には、集合値属性詳細化部12は、対象のクラスタが分割可能である場合、属性値を開示し、クラスタを分割する。例えば、所定の匿名性としてk−匿名性が採用されている場合、集合値属性詳細化部12は、対象のクラスタのレコード数がk(kは2以上の整数)より多いか否かに基づいて、対象のクラスタが分割可能であるか否かを判断可能である。また、集合値属性詳細化部12は、対象のクラスタが分割可能であるか否かの判断に、他の指標を用いてもよい。例えば、集合値属性詳細化部12は、対象のクラスタにおける集合値属性の削除された属性値のうち、開示すると分割の基準となり得る属性値が存在するか否かに基づいて、分割可能であるか否かを判断してもよい。また、例えば、分割に基づき新しく生成されるクラスタ数がp(pは2以上の整数)個と定められている場合、集合値属性詳細化部12は、対象のクラスタに属するレコード数がp×k以上である場合に、分割可能であると判断してもよい。また、集合値属性詳細化部12は、複数の指標を組み合わせて、対象のクラスタが分割可能であるか否かを判断してもよい。
【0062】
そして、集合値属性詳細化部12は、対象のクラスタが分割可能である場合、対象のクラスタに含まれる各レコードのオリジナルな状態に基づいて、開示する属性値を選択する。例えば、集合値属性詳細化部12は、開示される属性値の個数(アイテム数)に基づいて、開示する属性値を選択してもよい。例えば、集合値属性詳細化部12は、開示されるアイテム数が、他の属性値より多い属性値を選択してもよい。そのようなアイテム数は、オリジナルな状態のレコード群におけるその属性値の出現頻度に相当する。また、集合値属性詳細化部12は、レコード間の類似性に基づいて、開示する属性値を選択してもよい。例えば、集合値属性詳細化部12は、その属性値の開示に基づきレコード間の類似性が高くなる属性値を選択してもよい。また、集合値属性詳細化部12は、あらかじめ属性値に設定された優先度に基づいて、開示する属性値を選択してもよい。また、集合値属性詳細化部12は、匿名化に基づく情報損失が小さくなることに直接的または間接的に繋がるその他の指標に基づいて、開示する属性値を選択してもよい。
【0063】
そして、集合値属性詳細化部12は、開示した属性値に基づいて、以下のようにして、対象のクラスタを、所定の匿名性を満たすクラスタに分割する。
【0064】
例えば、集合値属性詳細化部12は、対象のクラスタを、開示した属性値が集合値属性を含むレコード群からなるクラスタと、開示した属性値が集合値属性を含まないレコード群からなるクラスタとに分割してもよい。
【0065】
あるいは、例えば、集合値属性詳細化部12は、オリジナルな属性値の共起関係を用いた類似度に基づいて、対象のクラスタをp個のクラスタに分割してもよい。この場合、集合値属性詳細化部12は、例えば、k−means法を用いた類似度に基づいて、クラスタに分割すればよい。そして、この場合、集合値属性詳細化部12は、p個の各クラスタの集合値属性において、共通の属性値を開示すればよい。
【0066】
以上のように構成された情報処理装置1の動作について、図3を参照して説明する。
【0067】
まず、クラスタ情報取得部11は、所定の匿名性を満たすクラスタを表す情報を取得する(ステップS1)。ここで、前述のように、所定の匿名性を満たすクラスタは、クラスタに属するレコード群が所定の匿名性を満たすように、各レコードの集合値属性の少なくとも一部の属性値が削除された匿名化状態のレコード群からなるクラスタである。
【0068】
次に、集合値属性詳細化部12は、ステップS1で取得された情報の示すクラスタが、所定の匿名性を満たすクラスタに分割可能であるか否かを判断する(ステップS2)。例えば、前述のように、集合値属性詳細化部12は、対象のクラスタに含まれるレコード数がkより多いか否かに基づいて判断してもよい。
【0069】
ここで、対象のクラスタが分割可能でないと判断した場合、情報処理装置1は、動作を終了する。
【0070】
一方、対象のクラスタが分割可能であると判断した場合、集合値属性詳細化部12は、対象のクラスタの集合値属性において削除されている属性値のうち少なくとも一部の属性値を開示する。そして、集合値属性詳細化部12は、開示した属性値に基づいて、対象のクラスタを、所定の匿名性を満たすクラスタに分割する(ステップS3)。
【0071】
例えば、前述のように、集合値属性詳細化部12は、詳細化されるアイテム数又は属性値にあらかじめ設定された優先度に基づいて、開示する属性値を選択してもよい。この場合、集合値属性詳細化部12は、対象のクラスタを、開示した属性値を含むレコード群からなるクラスタと、含まないレコード群からなるクラスタとに分割してもよい。あるいは、前述のように、集合値属性詳細化部12は、オリジナルな属性値の共起関係を用いた類似性に基づいて、対象のクラスタをp個のクラスタに分割し、p個の各クラスタにおいて共通の属性値を開示してもよい。
【0072】
そして、集合値属性詳細化部12は、分割後の所定の匿名性を満たす各クラスタを表す情報を生成する。例えば、前述のように、集合値属性詳細化部12は、分割後の所定の匿名性を満たす各クラスタについて、クラスタに属するレコードへの参照情報と、クラスタにおける共通属性値のリストとを含む情報を生成してもよい。このようにして生成される分割後の所定の匿名性を満たす各クラスタは、同じ集合値属性に対するさらなる匿名化処理の対象又は他の属性に対する他の匿名化処理の対象として提供可能である。
【0073】
以上で、情報処理装置1は、動作を終了する。
【0074】
次に、本発明の第1の実施形態の効果について述べる。
【0075】
本発明の第1の実施形態としての情報処理装置は、単一値属性および集合値属性が混在するデータセットにおいて、タクソノミーが与えられていない集合値属性を、他の属性と共存可能かつスケーラブルに匿名化できる。
【0076】
その理由は、次のとおりである。まず、クラスタ情報取得部が、所定の匿名性を満たすクラスタを表す情報を取得する。そして、集合値属性詳細化部が、取得したクラスタに含まれる匿名化状態のレコードにおいて集合値属性の削除された属性値のうち少なくとも一部の属性値を選択して開示する。そして、集合値属性詳細化部が、開示した属性値に基づいて、対象のクラスタを、所定の匿名性を満たすクラスタに分割するからである。
【0077】
このように、本実施形態は、集合値属性の少なくとも一部の属性値が削除されて所定の匿名性を満たすクラスタを、削除された属性値のうち少なくとも一部の開示を基に所定の匿名性を満たすクラスタに分割する。つまり、本実施形態は、トップダウンアプローチを用いた集合値属性の匿名化処理を行う。したがって、本実施形態は、分割後の所定の匿名性を満たす各クラスタを、同じ集合値属性に対するさらなる匿名化処理の対象又は他の属性に対する他の匿名化処理の対象として提供できる。また、本実施形態は、トップダウンアプローチの匿名化処理に、タクソノミーを必要としない。したがって、本実施形態は、複数の属性が混在するデータセットに対するトップダウンアプローチを用いる匿名化処理において、タクソノミーが与えられていない集合値属性に対する匿名化処理に適用可能である。
【0078】
(第2の実施形態)
次に、本発明に係る第2の実施形態について図面を参照して詳細に説明する。なお、本実施形態の説明において参照する各図面において、第1の実施形態と同様の構成および動作のステップには同一の符号を付して本実施形態における詳細な説明を省略する。
【0079】
まず、第2の実施形態に係る情報処理装置2の機能ブロック構成を図4に示す。図4において、情報処理装置2は、第1の実施形態の情報処理装置1に対し、クラスタ情報取得部11に替えてクラスタ情報取得部21と、集合値属性詳細化部12に替えて集合値属性詳細化部22とを含む。さらに、情報処理装置2は、匿名化済データセット生成部23と、匿名化状態保持部24とを含む。情報処理装置2は、この点が、第1の実施形態の情報処理装置1と異なる。
【0080】
なお、匿名化状態保持部24は、クラスタ情報取得部21、集合値属性詳細化部22、および、匿名化済データセット生成部23間で、送信及び受信される情報を一時的に保持する機能ブロックである。そして、匿名化状態保持部24は、本発明における、クラスタ情報取得部、集合値属性詳細化部、および、匿名化済データセット生成部の一実施形態の一部分を構成する。
【0081】
また、情報処理装置2は、図2を参照して説明した第1の実施形態の情報処理装置1と同様のハードウェア要素を含むコンピュータ装置に用いて構成しても良い。この場合、匿名化済データセット生成部23は、ROM1003および記憶装置1004に記憶されたプログラムおよび各種データをRAM1002に読み込んで実行するCPU1001を用いて構成される。また、匿名化状態保持部24は、記憶装置を用いて構成される。なお、情報処理装置2およびその各機能ブロックを構成するハードウェア構成は、上述の構成に限定されない。
【0082】
また、図4において、情報処理装置2は、情報処理装置2の外部に設けられた匿名化対象データセット記憶部91および匿名化済データセット記憶部92に接続されている。
【0083】
匿名化対象データセット記憶部91は、匿名化対象のデータセットを記憶している。匿名化対象のデータセットは、オリジナルな情報内容の公開又は利用が好ましくない個人情報を含むレコード(レコード群)を含んで構成される。また、匿名化対象の各レコードは、少なくとも1つ以上の集合値属性を含むレコードである。匿名化対象データセット記憶部91は、匿名化対象の各レコードのオリジナルな状態を保持している。
【0084】
匿名化済データセット記憶部92は、匿名化対象データセット記憶部91に記憶される匿名化対象のデータセットに情報処理装置2を用いた匿名化処理が施された匿名化済データセットを記憶する。
【0085】
クラスタ情報取得部21は、匿名化対象のデータセットの各レコードにおいて、匿名化対象の集合値属性の匿名化状態が初期化されたクラスタを表す情報を、取得する。ここで、匿名化状態が初期化されたクラスタとは、匿名化対象のデータセットに含まれる全てのレコードにおいて、匿名化対象とする集合値属性が最も一般化された状態のクラスタでもよい。最も一般化された状態とは、例えば、集合値属性の全ての属性値が他の属性値と区別がつかない情報に変換された状態でもよい。あるいは、例えば、最も一般化された状態とは、集合値属性の全ての属性値が削除された状態でもよい。
【0086】
また、クラスタ情報取得部21は、初期化されたクラスタを表す情報を、匿名化状態保持部24に保持する。前述のように、クラスタを表す情報は、そのクラスタに含まれるレコードへの参照情報と、そのクラスタにおける共通属性値を表す情報とを含む。例えば、クラスタ情報取得部21は、初期化されたクラスタを表す情報として、匿名化対象のデータセットの全てのレコードへの参照情報と、全ての属性値の上位概念を表す共通属性値とを、匿名化状態保持部24に保持してもよい。この場合、全てのレコードにおける集合値属性は、その全ての属性値の削除が、全ての属性値の上位概念を表す値への変換となる。
【0087】
集合値属性詳細化部22は、第1の実施形態における集合値属性詳細化部12と同様に構成される。そして、集合値属性詳細化部22は、初期化されたクラスタが分割可能である場合、初期化されたクラスタにおける集合値属性を詳細化および分割する。さらに、集合値属性詳細化部22は、分割後のクラスタが所定の匿名性を満たすクラスタに分割可能な間、分割を繰り返す。詳細には、集合値属性詳細化部22は、分割後の各クラスタの集合値属性において、削除されている属性値の少なくとも一部の属性値を開示する。そして、集合値属性詳細化部22は、開示した属性値に基づいて、分割後の各クラスタを、所定の匿名性を満たすクラスタに、さらに、分割すればよい。
【0088】
なお、集合値属性詳細化部22は、対象のクラスタが分割可能でない場合でも、対象のクラスタに所定の匿名性を維持したまま開示可能な属性値があれば、その属性値を開示してもよい。
【0089】
また、集合値属性詳細化部22は、匿名化対象のデータセットに含まれる各レコードの匿名化状態を匿名化状態保持部24に保持しながら、上述のような集合値属性の詳細化およびクラスタの分割を繰り返す。例えば、集合値属性詳細化部22は、匿名化状態保持部24の参照結果を基に、初期化されたクラスタにおける集合値属性を詳細化し、クラスタを分割する。そして、集合値属性詳細化部22は、分割後の各クラスタについて、クラスタに含まれるレコードへの参照情報と、クラスタの集合値属性において開示されている属性値(すなわち、共通属性値)を表す情報とを保持するように、匿名化状態保持部24を更新する。そして、集合値属性詳細化部22は、集合値属性の詳細化およびクラスタの分割を繰り返す度に、匿名化状態保持部24に保持されたクラスタを表す情報を更新すればよい。なお、対象のクラスタの分割に基づき、所定の匿名性を満たすクラスタの他に、所定の匿名性を満たさないクラスタが生成された場合、集合値属性詳細化部22は、そのようなクラスタについて、匿名化状態保持部24に情報を保持しないでよい。
【0090】
匿名化済データセット生成部23は、匿名化状態保持部24に保持された各クラスタを表す情報に基づいて、匿名化済データセットを生成し、匿名化済データセット記憶部92に出力する。匿名化済データセットとは、匿名化対象のデータセットを構成するレコード群が所定の匿名性を満たすよう匿名化されたデータセットである。具体的には、匿名化済データセット生成部23は、匿名化対象のデータセットに含まれる各レコードについて、そのレコードが属するクラスタにおいて開示された共通属性値を含めたデータセットを生成すればよい。
【0091】
以上のように構成された情報処理装置2の動作について、図5を参照して説明する。
【0092】
まず、クラスタ情報取得部21は、匿名化対象のデータセットについて、匿名化状態が初期化されたクラスタを表す情報を取得する(ステップS11)。そして、クラスタ情報取得部21は、初期化されたクラスタを表す情報を、匿名化状態保持部24に保持する。
【0093】
次に、集合値属性詳細化部22は、第1の実施形態と同様に、対象のクラスタが、所定の匿名性を満たすクラスタに分割可能であるか否かを判断する(ステップS2)。
【0094】
ここで、分割可能と判断した場合、集合値属性詳細化部22は、第1の実施形態と同様に、対象のクラスタにおける集合値属性を詳細化し、対象のクラスタを分割する(ステップS3)。そして、集合値属性詳細化部22は、分割後の各クラスタについて、クラスタに属するレコードへの参照情報と、クラスタにおける共通属性値を表す情報とを、匿名化状態保持部24に保持する。
【0095】
集合値属性詳細化部22は、ステップS3の後、ステップS2に戻る。そして、ステップS2において再度分割可能と判断した場合、集合値属性詳細化部22は、匿名化状態保持部24に保持された情報が示すクラスタを対象として、ステップS3の処理を繰り返す。
【0096】
つまり、分割可能との判断の場合、集合値属性詳細化部22は、ステップS2〜S3の処理を繰り返す。
【0097】
一方、ステップS2において、対象のクラスタが分割可能でないと判断された場合、情報処理装置2は、ステップS2〜S3の繰り返し処理を終了し、次のステップ(ステップS4)に進む。なお、このとき、集合値属性詳細化部22は、対象のクラスタについて所定の匿名性を維持したまま開示可能な属性値がある場合、その属性値を開示してから次のステップに進んでもよい。
【0098】
次に、匿名化済データセット生成部23は、匿名化状態保持部24を基に、匿名化済データセットを生成し、匿名化済データセット記憶部92に出力する(ステップS14)。具体的には、匿名化済データセット生成部23は、匿名化対象のデータセットに含まれる各レコードについて、そのレコードが属するクラスタにおいて開示された共通属性値を含めたデータセットを生成する。
【0099】
以上で、情報処理装置2は、動作を終了する。
【0100】
次に、情報処理装置2の動作の具体例について説明する。ここでは、図6に示すデータセットを匿名化対象とする。図6は、薬剤名という集合値属性を有するレコード群のデータセットを示している。
【0101】
また、図6に示したデータセットの匿名化状態の変遷を、図7に示す。図7において、1〜9行目は、図6に示す9つのレコードの集合値属性「薬剤名」について、その匿名化状態の変遷を示している。なお、図7に示す「薬剤名」の列は、各レコードの集合値属性「薬剤名」のオリジナルな属性値を表している。
【0102】
<初期状態>
まず、クラスタ情報取得部21は、図6に示したデータセットから、初期化されたクラスタを表す情報を取得する(ステップS11)。図7では、「初期状態」の列は、初期化されたクラスタにおける各レコードの集合値属性「薬剤名」を表している。この例では、初期化されたクラスタは、9つのレコードを含み、各レコードの集合値属性「薬剤名」のオリジナルな属性値が全て削除された、最も一般化された状態となっている。なお、図7において、削除された属性値及び属性値の集合は、"*"という記号で表されている。言い換えると、この例では、集合値属性の属性値の集合は、"*"という記号で表される最も上位概念の値に一般化された状態となっている。この一般化に基づき、各レコードは、その集合値属性「薬剤名」に、どのアイテムがいくつ存在していたかが識別不可能な状態となる。そして、クラスタ情報取得部21は、匿名化状態保持部24に、初期化されたクラスタを表す情報として、9つのレコードに対する参照情報と、9つのレコードの「薬剤名」における共通属性値である"*"を表す情報とを保持する。
【0103】
続いて、集合値属性詳細化部22は、以下で説明するように、イテレーション1からイテレーション4まで、集合値属性の詳細化およびクラスタの分割を繰り返す。図7において、「イテレーション1」〜「イテレーション4」の各列は、各イテレーション(反復:iteration)における各レコードの集合値属性「薬剤名」の状態を表している。
【0104】
<イテレーション1>
まず、集合値属性詳細化部22は、匿名化状態保持部24に保持されている情報の示すクラスタが分割可能であるか否かを判断する。
【0105】
ただし、以下の説明では、k−匿名性における「k」の値を「2」と仮定する。
【0106】
匿名化状態保持部24に保持されている初期化されたクラスタを表す情報は、k=2より多い9つのレコードを含む。そこで、集合値属性詳細化部22は、対象のクラスタが分割可能であると判断する(ステップS2でYes)。
【0107】
次に、集合値属性詳細化部22は、初期化されたクラスタにおいて集合値属性「薬剤名」の削除されている属性値のうち属性値「a」を選択して開示する。
【0108】
具体的には、集合値属性詳細化部22は、例えば、次のように動作する。
【0109】
最も出現頻度が高い属性値は、開示されるアイテム数が最も多い。そこで、集合値属性詳細化部22は、各レコードの集合値属性「薬剤名」のオリジナルな属性値の参照を基に、9つのレコードにおいて最も出現頻度が高い属性値「a」を選択し、開示する。そして、集合値属性詳細化部22は、対象のクラスタを、属性値「a」を含むレコード群からなるクラスタ(以降、クラスタ1aと記載する)と、「a」を含まないレコード群からなるクラスタ(以降、クラスタ1bと記載する)とに分割する(ステップS3)。
【0110】
図7では、「イテレーション1」の列の1〜4行目が、クラスタ1aのレコード群を示す。また、「イテレーション1」の列の5〜9行目が、クラスタ1bのレコード群を示す。
【0111】
この時点で、匿名化状態保持部24には、クラスタ1aを表す情報として、1〜4行目のレコードに対する参照情報と、共通属性値"a,*"を表す情報とが保持される。また、クラスタ1bを表す情報として、5〜9行目のレコードに対する参照情報と、共通属性値"*"を表す情報とが、匿名化状態保持部24に保持される。
【0112】
<イテレーション2>
次に、集合値属性詳細化部22は、匿名化状態保持部24に保持されているクラスタ1aを表す情報について分割可能であるか否かを判断する。ここで、クラスタ1aを表す情報は、k=2より多い4つのレコードを含む。そこで、集合値属性詳細化部22は、クラスタ1aが分割可能であると判断する(ステップS2でYes)。
【0113】
ここで、クラスタ1aの4つのレコードの集合値属性「薬剤名」において、属性値「a」以外で最も出現頻度が高い属性値の1つが、「d」である。そこで、集合値属性詳細化部22は、クラスタ1aにおいて集合値属性「薬剤名」の削除されている属性値のうち、属性値「d」を選択して、開示する。そして、集合値属性詳細化部22は、クラスタ1aを、属性値「d」を含むレコード群(以降、クラスタ2aと記載する)と、「d」を含まないレコード群(以降、クラスタ2bと記載する)とに分割する(ステップS3)。
【0114】
図7では、「イテレーション2」の列の1行目と3行目が、クラスタ2aのレコード群を示す。また、「イテレーション2」の列の2行目と4行目が、クラスタ2bのレコード群を示す。
【0115】
また、集合値属性詳細化部22は、匿名化状態保持部24に保持されている他のクラスタ1bを表す情報についても分割可能であるか否かを判断する。クラスタ1bを表す情報は、k=2より多い5つのレコードを含む。そこで、集合値属性詳細化部22は、クラスタ1bが分割可能であると判断する(ステップS2でYes)。
【0116】
ここで、クラスタ1bの5つのレコードの集合値属性「薬剤名」において、最も出現頻度が高い属性値の1つが、「e」である。そこで、集合値属性詳細化部22は、クラスタ1bにおいて集合値属性「薬剤名」の削除されている属性値のうち、属性値「e」を選択して、開示する。そして、集合値属性詳細化部22は、クラスタ1bを、属性値「e」を含むレコード群(以降、クラスタ2cと記載する)と、「e」を含まないレコード群(以降、クラスタ2dと記載する)とに分割する(ステップS3)。
【0117】
図7では、「イテレーション2」の列の6行目、7行目と9行目が、クラスタ2cのレコード群を示す。また、「イテレーション2」の列の5行目と8行目が、クラスタ2dのレコード群を示す。
【0118】
この時点で、匿名化状態保持部24には、クラスタ2aを表す情報として、1行目と3行目のレコードに対する参照情報と、共通属性値 "a,d,*" を表す情報とが保持される。また、クラスタ2bを表す情報として、2行目と4行目のレコードに対する参照情報と、共通属性値"a,*"を表す情報とが保持される。また、クラスタ2cを表す情報として、6行目、7行目と9行目のレコードに対する参照情報と、共通属性値 "e,*" を表す情報とが保持される。また、クラスタ2dを表す情報として、5行目と8行目のレコードに対する参照情報と、共通属性値"*"を表す情報とが保持される。
【0119】
<イテレーション3>
次に、集合値属性詳細化部22は、匿名化状態保持部24に保持されているクラスタ2aを表す情報について、分割可能であるか否かを判断する。ここで、クラスタ2aは、2つのレコードを含み、k=2より多いレコードを含まない。そこで、集合値属性詳細化部22は、クラスタ2aが分割可能でないと判断する(ステップS2でNo)。したがって、集合値属性詳細化部22は、クラスタ2aについて、これ以上分割しない。
【0120】
また、集合値属性詳細化部22は、匿名化状態保持部24に保持されているクラスタ2bを表す情報について、分割可能であるか否かを判断する。クラスタ2bは、2つのレコードを含み、k=2より多いレコードを含まない。そこで、集合値属性詳細化部22は、クラスタ2bが分割可能でないと判断する(ステップS2でNo)。ただし、クラスタ2bは、クラスタ2bのk−匿名性を維持したまま開示可能な属性値"f"を含む。したがって、集合値属性詳細化部22は、クラスタ2bについて、分割は行わないが、属性値"f"を開示する。
【0121】
また、集合値属性詳細化部22は、匿名化状態保持部24に保持されているクラスタ2cを表す情報について、分割可能であるか否かを判断する。クラスタ2cは、k=2より多い3つのレコードを含む。しかし、クラスタ2cは、分割の基準となり得る属性値を含まない。そこで、集合値属性詳細化部22は、クラスタ2cが分割可能でないと判断する(ステップS2でNo)。ただし、クラスタ2cは、クラスタ2cのk−匿名性を維持したまま開示可能な属性値"x"を含む。したがって、集合値属性詳細化部22は、クラスタ2cについて、分割は行わないが、属性値"x"を開示する。
【0122】
また、集合値属性詳細化部22は、匿名化状態保持部24に保持されているクラスタ2dを表す情報について、分割可能であるか否かを判断する。クラスタ2dは、2つのレコードを含み、k=2より多いレコードを含まない。そこで、集合値属性詳細化部22は、クラスタ2dが分割可能でないと判断する(ステップS2でNo)。ただし、クラスタ2dは、クラスタ2dのk−匿名性を維持したまま開示可能な属性値"b"を含む。したがって、集合値属性詳細化部22は、クラスタ2dについて、分割は行わないが、属性値"b"を開示する。
【0123】
この時点で、匿名化状態保持部24において、クラスタ2aを表す情報は、更新されない。また、クラスタ2bの共通属性値を表す情報が、"a,f,*"に更新される。さらに、クラスタ2cの共通属性値を表す情報が、"e,x,*"に更新される。さらに、クラスタ2dの共通属性値を表す情報が、"b,*"に更新される。
【0124】
<イテレーション4>
次に、集合値属性詳細化部22は、匿名化状態保持部24に保持されているクラスタ2a〜2dを表す情報について、イテレーション3と同様に分割可能でないと判断する(ステップS2でNo)。
【0125】
ただし、クラスタ2bは、クラスタ2bのk−匿名性を維持したままさらに開示可能な属性値"g"を含む。したがって、集合値属性詳細化部22は、クラスタ2bについて、分割は行わないが、属性値"g"を開示する。
【0126】
また、クラスタ2dは、クラスタ2dのk−匿名性を維持したまま開示可能な属性値"c"が含まれている。したがって、集合値属性詳細化部22は、クラスタ2dについて、分割は行わないが、属性値"c"を開示する。
【0127】
この時点で、匿名化状態保持部24では、クラスタ2aおよびクラスタ2cを表す情報は、更新されない。また、クラスタ2bの共通属性値を表す情報が、"a,f,g,*"に更新される。また、クラスタ2dの共通属性値を表す情報が、"b,c,*"に更新される。
【0128】
次に、集合値属性詳細化部22は、匿名化状態保持部24に保持されているクラスタ2a〜2dを表す情報のそれぞれについて、分割可能でなく(ステップS2でNo)、これ以上開示可能な属性値もないので、次のステップに進む。
【0129】
<匿名化済データセットの生成>
このようにしてクラスタの詳細化および分割が収束(完了)すると、匿名化済データセット生成部23は、最終的(図7では、イテレーション4)に生成された各クラスタの情報に基づいて、匿名化済データセットを生成する。具体的には、匿名化済データセット生成部23は、図6に示した1〜9行目の各レコードの集合値属性「薬剤名」に、図7のイテレーション4に示した共通属性値を含めた匿名化済データセットを生成する。例えば、匿名化済データセット生成部23は、1行目のレコードについて、集合値属性「薬剤名」に共通属性値の「a,d」を含めて、匿名化状態とする。なお、匿名化済データセット生成部23は、共通属性値として記録した"*"を、匿名化済のレコードに含めてもよく、含めなくてもよい。
【0130】
また、匿名化前後の各レコードにおいて集合値属性に含まれる属性数を維持したい場合、匿名化済データセット生成部23は、各レコードの集合値属性「薬剤名」に、開示した属性値に加え、開示しなかった属性値の個数の「最も上位概念の属性値」を含めてもよい。ここで、最も上位概念の属性値とは、例えば、図7に示す"*"である。例えば、図7の3行目のレコードは、集合値属性「薬剤名」として、5つの薬剤名を含む。そこで、匿名化済データセット生成部23は、3行目をレコードの集合値属性「薬剤名」の“*”を加え、“a,d,*,*,*”として匿名化済データセットを生成してもよい。
【0131】
以上で、情報処理装置2の動作の具体例の説明を終了する。
【0132】
次に、本発明の第2の実施形態の効果について述べる。
【0133】
第2の実施形態としての情報処理装置は、単一値属性および集合値属性が混在するデータセットにおいて、タクソノミーが与えられていない集合値属性を、他の属性と共存可能かつスケーラブルに処理しながら、有益性の高い匿名化済データセットを生成できる。
【0134】
その理由は、クラスタ情報取得部が、匿名化対象のデータセットから全てのレコードの集合値属性の匿名化状態が初期化されたクラスタを表す情報を取得する。そして、集合値属性詳細化部が、初期化されたクラスタにおいて、属性値を開示して所定の匿名性を満たすクラスタに分割し、分割後の各クラスタについて、さらに属性を開示して所定の匿名性を満たすクラスタへの分割を繰り返すからである。そして、匿名化済データセット生成部が、分割後のクラスタを表す情報において開示されている共通属性値に基づいて、匿名化済データセットを生成するからである。
【0135】
このように、本実施形態は、トップダウンアプローチを用いた段階的な属性値の開示を用いて集合値属性の匿名化処理を行う。このような詳細化処理は、局所的な削除(あるいは局所的な開示)を用いた匿名化処理といえる。つまり、匿名化処理に基づいて削除される属性値は、局所的に抑えられる。そのため、局所的な削除(又は局所的な開示)を用いる匿名化処理は、削除される属性値の個数が少ない。
【0136】
他方、本発明に関連する大域的な削除(又は、大域的な開示)を用いる匿名化処理は、所定の匿名性を充足するために一部のレコードのアイテムの削除が必要な場合でも、すべてのレコードから対象となるアイテムを削除する。その結果、これらの匿名化処理は、本実施形態に比べ、多くのアイテムを削除する。
【0137】
このように、本実施形態は、所定の匿名性を満たすため削除される属性値の個数を削減し、開示される属性値の個数を多くする匿名化処理が実現可能である。
【0138】
また、本実施形態は、局所的な処理のため、集合値属性を段階的に匿名化する処理において、高い収束性が期待できる。その結果、本実施形態は、集合値属性に対してタクソノミーが存在しない場合でも、他の属性の匿名化処理と共存可能な段階的な削除処理を用いた匿名化処理を実現し、より有益性の高い匿名化済データセットを生成可能である。
【0139】
(第3の実施形態)
次に、本発明の第3の実施形態について図面を参照して詳細に説明する。本実施形態では、本発明に関連する一般的な関連技術では独立して提案されてきた単一値属性の匿名化と、集合値属性の匿名化とを統一的に処理する例について説明する。なお、本実施形態の説明において参照する各図面において、第1および第2の実施形態と同様の構成および同様に動作するステップには同一の符号を付して、本実施形態における詳細な説明を省略する。
【0140】
まず、第3の実施形態に係る情報処理装置3の構成の一例のブロック構成を図8に示す。
【0141】
図8において、情報処理装置3は、第2の実施形態の情報処理装置2に対して、クラスタ情報取得部21に替えてクラスタ情報取得部31を含み、さらに、詳細化属性選択部35と、単一値属性詳細化部36とを含む点が異なる。
【0142】
ここで、情報処理装置3は、図2を参照して説明した第1の実施形態の情報処理装置1と同様のハードウェア要素を含むコンピュータ装置を用いて構成可能である。この場合、詳細化属性選択部35と、単一値属性詳細化部36とは、ROM1003および記憶装置1004に記憶されたプログラムおよび各種データをRAM1002に読み込んで実行するCPU1001を用いて構成される。
【0143】
なお、情報処理装置3およびその各機能ブロックを構成するハードウェア構成は、上述の構成に限定されない。
【0144】
また、図8において、情報処理装置3は、第2の実施形態の情報処理装置2と同様に、外部の匿名化対象データセット記憶部91および匿名化済データセット記憶部92に接続されている。
【0145】
クラスタ情報取得部31は、匿名化対象のデータセットに含まれる全てのレコードにおいて、匿名化対象の各属性の匿名化状態が初期化されたクラスタを表す情報を取得する。
【0146】
ここで、クラスタ情報取得部31に取得された初期化されたクラスタにおいて各レコードの属性が取る値は、最も一般化された状態である。ただし、最も一般化された状態は、属性ごとに異なってもよい。
【0147】
例えば、タクソノミーのない集合値属性の属性値は、全ての属性値の上位概念である"*"を表す情報に一般化されていてもよい。また、単一値属性である性別という属性の属性値は、"男"および"女"の上位概念である"Any"を表す情報に一般化されていてもよい。また、単一値属性である生年という属性の属性値は、データセット中のすべての生年の値の範囲(例えば、"1970−2001")を表す情報に一般化されていてもよい。また、タクソノミーのある集合値属性の属性値は、タクソノミーのルートノードの値に一般化されていてもよい。
【0148】
詳細化属性選択部35は、詳細化の対象となる属性を選択する。
【0149】
例えば、詳細化属性選択部35は、情報損失の大きさ、優先度の順位、又は、それらの組合に基づく指標を基に、詳細化の対象とする属性を選択する。
【0150】
あるいは、詳細化属性選択部35は、その他の任意の基準に基づいて、詳細化の対象となる属性を選択してもよい。例えば、詳細化属性選択部35は、属性の匿名化状態における情報損失の度合を表す指標に基づいて、詳細化の対象とする属性を選択してもよい。ここで、情報損失の度合を表す指標として、例えば、NCP(Normalized Certainty Penalty)値がある。詳細化属性選択部35は、各属性についてNCP値を算出し、NCP値の最も大きい属性を選択してもよい。
【0151】
また、詳細化属性選択部35は、レコードの識別困難さの指標としてのDM(Discernibility Metric)値を用いて、詳細化の対象となる属性を選択してもよい。また、詳細化属性選択部35は、各属性の詳細化に基づいて得られる情報の利得を表す値を算出し、最も利得の大きな属性を選択してもよい。また、詳細化属性選択部35は、属性の絶対的な又は相対的な優先度に基づいて、最も優先度が高い属性を選択してもよい。
【0152】
また、詳細化属性選択部35は、属性毎に異なる指標に基づいて、詳細化の対象となる属性を選択してもよい。この場合、詳細化属性選択部35は、各属性について、それぞれの指標となる値を算出後、それぞれの指標値に正規化等の処理を施して比較可能とする。そして、詳細化属性選択部35は、比較可能な指標値を基に、詳細化の対象とする属性を選択すればよい。
【0153】
その他、詳細化属性選択部35は、各属性にあらかじめ付与された順序に基づいて、詳細化の対象となる属性を選択してもよい。
【0154】
例えば、詳細化属性選択部35は、次の式(1)および式(2)に基づいて、集合値属性αに対するNCP値を算出できる。以降、集合値属性に対するNCP値を、NCPSVとも記載する。「NCPSV=0」は、すべての属性値が削除されずに残っている状態(オリジナルの状態)を表す。「NCPSV=1」は、すべての属性値が削除されている状態を表す。そして、NCPSVは、レコード中の属性値が削除されると値が大きくなり、開示されると値が小さくなる。

【0155】

式(1)は、i番目のレコードの集合値属性αに対するNCPSVを導出する。ここで、r[α]は、i番目のレコードの集合値属性αのオリジナルの値を表す。例えば、図6に示したデータセットにおいて、r[薬剤名]は、{a,b,d}である。また、|r[α]|は、r[α]の要素数(属性値の個数)を表す。例えば、図6の例では、|r[薬剤名]|は、「3」である。また、r'[α]は、少なくとも一部の属性値が開示(または削除)された状態の集合値属性αの値を表す。例えば、図7に示すイテレーション1では、r'[薬剤名]は、{a}である。
【0156】
式(2)は、あるレコード群における集合値属性αのNCPSVが、全レコードのNCPSVの総和であることを示している。
【0157】
また、詳細化属性選択部35は、詳細化の対象として選択した属性を、適切な詳細化処理を担当する機能ブロックに通知する。例えば、詳細化の対象として集合値属性を選択した場合、詳細化属性選択部35は、集合値属性の詳細化およびクラスタの分割を、集合値属性詳細化部22に通知する。また、例えば、詳細化の対象として単一値属性を選択した場合、詳細化属性選択部35は、その単一値属性の詳細化およびクラスタの分割を、後述の単一値属性詳細化部36に通知する。
【0158】
単一値属性詳細化部36は、単一値属性の属性値を、一般化された状態から詳細化し、対象となるクラスタを所定の匿名性を満たすクラスタに分割する。また、単一値属性詳細化部36は、集合値属性詳細化部22と同様に、分割後のクラスタを表す情報を、匿名化状態保持部24に保持する。
【0159】
なお、単一値属性詳細化部36は、一般的なトップダウンアプローチを用いた単一値属性の詳細化手法を用いても良い。例えば、単一値属性詳細化部36は、グループの分割手法又はクラスタリング手法を用いても良い。なお、一部の属性のタクソノミーが存在する場合、単一値属性詳細部36は、タクソノミーに基づく子状態への分割手法を用いても良い。あるいは、単一値属性詳細化部36は、例えば、ある属性値を含む/含まない、又は、ある属性値よりも大きい/小さいという指標を用いても良い。さらに、単一値属性詳細化部36は、上記の分割手法と指標との組み合わせを用いて、単一値属性を詳細化して複数のクラスタに分割してもよい。
【0160】
ただし、単一値属性詳細化部36は、分割後の新しいクラスタが、所定の匿名性(例えば、k−匿名性)を満たすようにレコードを分割する。
【0161】
なお、単一値属性詳細化部36は、分割を基にどのクラスタにも属さないレコードが生じた場合、そのレコードへの参照情報を匿名化状態保持部24に保持しなくてもよい。
【0162】
また、所定の匿名性としてk−匿名性を採用している場合、単一値属性詳細化部36は、レコード数がk未満のクラスタを生成した場合、そのクラスタに関する情報を、匿名化状態保持部24に保持しなくてもよい。
【0163】
以上のように構成された情報処理装置3の動作について、図9を参照して説明する。
【0164】
まず、クラスタ情報取得部31は、匿名化対象データセット記憶部91を参照し、初期化されたクラスタを表す情報を取得する(ステップS21)。例えば、前述のように、クラスタ情報取得部31は、匿名化対象のデータセットを構成する全てのレコードにおいて、各属性の属性値が最も一般化された状態のクラスタを表す情報を取得してもよい。そして、クラスタ情報取得部31は、初期化されたクラスタを表す情報を、匿名化状態保持部24に保持する。
【0165】
次に、集合値属性詳細化部22は、第1の実施形態と同様に、対象のクラスタが、所定の匿名性を満たすクラスタに分割可能か否かを判断する(ステップS2)。
【0166】
ここで、対象のクラスタが分割可能であると判断した場合、詳細化属性選択部35は、詳細化の対象とする属性を選択する(ステップS23)。例えば、前述のように、詳細化属性選択部35は、各属性のNCP値を算出し、NCP値の最も大きい属性を詳細化の対象として選択してもよい。このとき、詳細化属性選択部35は、集合値属性に上述の式(1)および(2)を用いてNCPSVを算出し、属性値を選択してもよい。
【0167】
次に、詳細化属性選択部35は、ステップS23で選択した属性が、集合値属性であるか、単一値属性であるかを判断する(ステップS24)。
【0168】
ここで、属性が集合値属性であると判断された場合、集合値属性詳細化部22は、第2の実施形態と同様に、対象のクラスタの集合値属性を詳細化し、対象のクラスタを分割し、分割後のクラスタを表す情報を匿名化状態保持部24に保持する(ステップS3)。
【0169】
このとき、集合値属性詳細化部22は、対象のクラスタにおける集合値属性の詳細化および対象のクラスタの分割を複数回実施してもよい。その際、例えば、集合値属性詳細化部22は、所定の自然数(V)個のアイテムが開示されるまで、対象のクラスタの集合値属性の詳細化および対象のクラスタの分割を繰り返してもよい。また、集合値属性詳細化部22は、データセット中の総レコード数に対する所定比率(β%)のレコード数のアイテムが開示されるまで、対象のクラスタにおける集合値属性の詳細化および対象のクラスタの分割を繰り返してもよい。また、集合値属性詳細化部22は、情報損失又は情報利得の指標が所定の閾値を超える又は下回るまで、対象のクラスタにおける集合値属性の詳細化および対象のクラスタの分割を繰り返してもよい。また、集合値属性詳細化部22は、分割に基づいて生成された2つ以上の新たなクラスタのうち一部のクラスタに対して、集合値属性の詳細化および分割を繰り返してもよい。
【0170】
一方、ステップS24において、属性が単一値属性であると判断された場合、単一値属性詳細化部36は、単一値属性の詳細化を基に、対象となるクラスタを、所定の匿名性を満たすクラスタに分割する(ステップS25)。そして、単一値属性詳細化部36は、分割後のクラスタを表す情報を、匿名化状態保持部24に保持する。例えば、単一値属性詳細化部36は、前述の手法及び指標の組み合わせを用いて、詳細化した単一値属性を基に、クラスタを複数の新しいクラスタに分割すればよい。
【0171】
ステップS2に戻り、対象のクラスタが分割可能と判断された場合、情報処理装置3は、匿名化状態保持部24に保持された情報が示す各クラスタを対象として、ステップS23からステップS3またはS25までの処理を繰り返す。
【0172】
また、ステップS2において、対象のクラスタが分割可能でないと判断された場合、情報処理装置3は、分割処理を終了し、ステップS26に進む。
【0173】
ここで、匿名化状態保持部24に記録されるクラスタを表す情報の一例を図10に示す。
図10では、例えば、クラスタ識別子が1のクラスタは、共通属性値として、「生年」という単一値属性について"1970−1979"、「性別」という単一値属性について"ANY"との値を保持している。さらに、クラスタ識別子が1のクラスタは、「薬剤名」という集合値属性について“ビオフェルミン(登録商標),タミフル(登録商標)”、「傷病名」という集合値属性について"インフルエンザ"との値を保持している。
【0174】
分割処理が収束(終了)したら、匿名化済データセット生成部23は、匿名化状態保持部24を参照して、匿名化済データセットを生成する(ステップS26)。具体的には、匿名化済データセット生成部23は、匿名化対象のデータセットに含まれる各レコードの各属性に、そのレコードが属するクラスタの共通属性値を含めたレコードを生成すればよい。
【0175】
以上で、情報処理装置3は、動作を終了する。
【0176】
次に、ステップS23において算出される指標の一例であるNCPSVの具体例を、図7図11を参照して説明する。図11は、図6に示したデータセットについて、図7を用いて説明した分割処理を進めた場合のステップS23において算出される集合値属性「薬剤名」のNCPSVの一例を示している。
【0177】
例えば、図7の「初期状態」の列に示したように、初期状態では、各レコードにおいて集合値属性「薬剤名」の属性値は、全て削除された状態である。この場合、詳細化属性選択部35は、式(1)に基づき、各レコードについて「NCPSV(r[薬剤名])=1」を算出する。図11の「初期状態」の列は、初期状態における各レコードのNCPSV(r[薬剤名])を示す。そして、詳細化属性選択部35は、式(2)に基づき、「初期状態」のNCPSV(薬剤名)を、各レコードのNCPSVの総和である「9」と算出する。
【0178】
そして、図7に示すように、詳細化属性選択部35は、集合値属性「薬剤名」を詳細化の対象として選択したと仮定する。すると、集合値属性詳細化部22は、第2の実施形態と同様に、初期状態におけるクラスタの集合値属性を詳細化し、クラスタを分割する。そして、この動作の結果、各レコードの集合値属性「薬剤名」の匿名化状態は、図7の「イテレーション1」に示すようになる。
【0179】
例えば、図7の1行目のレコードでは、集合値属性「薬剤名」における属性値「a」は、開示されている。一方、「a」以外の属性値は、削除されたままである。そこで、詳細化属性選択部35は、式(1)に基づき、「NCPSV(r[薬剤名])=2/3」を算出する。ここで、"/"は、除算を表す。
【0180】
同様に、詳細化属性選択部35は、他の各行のレコードについても、式(1)に基づき、NCPSV(r[薬剤名])を算出する。図11の「イテレーション1」の列は、図7の「イテレーション1」の状態における各レコードのNCPSV(r[薬剤名])を示す。そして、詳細化属性選択部35は、式(2)に基づき、「イテレーション1」の状態でのNCPSV(薬剤名)を、「2/3+2/3+4/5+4/5+1+1+1+1+1(=7+14/15≒7.9)」と算出する。
【0181】
さらに、詳細化属性選択部35は、図7に示すように、集合値属性「薬剤名」を詳細化の対象として選択したと仮定する。すると、集合値属性詳細化部22は、第2の実施形態と同様に、イテレーション1で生成された各クラスタを詳細化および分割する。そして、各レコードの集合値属性「薬剤名」の匿名化状態は、図7に示す「イテレーション2」になる。図11の「イテレーション2」の列は、このときの各行のレコードについて、式(1)に基づいて算出されたNCPSV(r[薬剤名])を示している。そして、詳細化属性選択部35は、式(2)に基づき、「イテレーション2」の状態でのNCPSV(薬剤名)を、「1/3+2/3+3/5+4/5+1+2/3+2/3+1+2/3(=6.4)」と算出する。
【0182】
さらに、詳細化属性選択部35は、図7に示すように、集合値属性「薬剤名」を詳細化の対象として選択したと仮定する。すると、各レコードの集合値属性「薬剤名」の匿名化状態は、図7の「イテレーション3」に示すようになる。そして、「イテレーション3」の状態におけるNCPSV(r[薬剤名])は、図11の「イテレーション3」の列に示したものとなる。そして、詳細化属性選択部35は、式(2)に基づき、「イテレーション3」の状態でのNCPSV(薬剤名)を、「4+1/30≒4.0」と算出する。
【0183】
さらに、詳細化属性選択部35は、図7に示すように、集合値属性「薬剤名」を詳細化の対象として選択したと仮定する。すると、各レコードの集合値属性「薬剤名」の匿名化状態は、図7の「イテレーション4」に示すようになる。そして、「イテレーション4」の状態におけるNCPSV(r[薬剤名])は、図11の「イテレーション4」の列に示したものとなる。そして、詳細化属性選択部35は、式(2)に基づき、「イテレーション4」の状態でのNCPSV(薬剤名)を、「2+2/3≒2.7」と算出する。
【0184】
このように、詳細化属性選択部35は、属性の詳細化およびクラスタの分割毎に、詳細化した属性について算出したNCP値を基に、詳細化の対象とする属性を選択可能である。
【0185】
なお、本実施形態において、詳細化属性選択部35は、各属性のNCP値として、匿名化対象のデータセットに含まれる各レコードにおけるその属性のNCP値の総和を算出した。しかし、詳細化属性選択部35は、これに限る必要はない。例えば、詳細化属性選択部35は、クラスタ毎に各属性のNCP値を算出してもよい。この場合、詳細化属性選択部35は、対象のクラスタに含まれるレコードの属性のNCP値の総和を、クラスタにおける属性のNCP値として、算出してもよい。
【0186】
また、本実施形態の説明において、集合値属性詳細化部22は、詳細化の対象として選択された属性が集合値属性であった場合、集合値属性の詳細化およびクラスタの分割として、第2の実施形態と同様に動作するとして説明した。しかし、集合値属性詳細化部22の動作は、これに限る必要はない。例えば、詳細化の対象として選択された集合値属性にタクソノミーが定義されている場合、集合値属性詳細化部22は、タクソノミーが定義された集合値属性に対する一般的なトップダウンアプローチの匿名化処理を用いてもよい。例えば、集合値属性詳細化部22は、非特許文献3に記載された関連技術を用いてもよい。
【0187】
次に、本発明の第3の実施形態の効果について述べる。
【0188】
第3の実施形態の情報処理装置は、タクソノミーが与えられていない集合値属性が混在する複数の属性を有するデータセットに対して、各属性に対する匿名化処理を共存させた統一的な匿名化処理を実現できる。
【0189】
その理由は、次のとおりである。まず、詳細化属性選択部が、匿名化対象のデータセットが有する属性のうち、詳細化の対象とする属性を選択する。そして、選択した属性値が集合値属性である場合、集合値属性詳細化部が、集合値属性を詳細化して対象のクラスタを所定の匿名性を満たすクラスタに分割する。また、選択した属性値が単一値属性である場合、単一値属性詳細化部が、単一値属性を詳細化して対象のクラスタを所定の匿名性を満たすクラスタに分割するからである。
【0190】
さらに、詳細化属性選択部が、詳細化後の各属性の匿名化状態に基づいて、詳細化の対象とする属性を選択する。そして、選択した属性値が集合値属性であるか単一値属性であるかに基づいて、集合値属性詳細化部または単一値属性詳細化部が、属性の詳細化およびクラスタの分割を繰り返すからである。
【0191】
このように、本実施形態は、複数の属性が混在したデータセットにおいて、タクソノミーの与えられていない集合値属性に対する匿名化処理として、第1又は第2の実施形態の匿名化処理を採用する。そのため、本実施形態は、単一値属性および集合値属性に対する匿名化処理を共存させた統一的な処理を実現可能である。
【0192】
(第4の実施形態)
次に、本発明の第4の実施形態について図面を参照して詳細に説明する。
【0193】
本実施形態は、第3の実施形態において詳細化の対象とする属性を選択する際に用いた指標を、より効率的に算出する。なお、本実施形態の説明において参照する各図面において、第1から第3の実施形態と同様の構成および同様に動作するステップには同一の符号を付して、本実施形態における詳細な説明を省略する。
【0194】
まず、第4の実施形態に係る情報処理装置4の構成の一例のブロック構成を図12に示す。
【0195】
図12において、情報処理装置4は、第3の実施形態の情報処理装置3に対して、詳細化属性選択部35に替えて詳細化属性選択部45を含む点が異なる。ここで、情報処理装置4は、図2を参照して説明した第1の実施形態の情報処理装置1と同様のハードウェア要素を含むコンピュータ装置を用いて構成可能である。なお、情報処理装置4およびその各機能ブロックを構成するハードウェア構成は、上述の構成に限定されない。
【0196】
詳細化属性選択部45は、第3の実施形態の詳細化属性選択部35と同様に、NCP値に基づいて、詳細化の対象となる属性を選択する。
【0197】
ただし、詳細化属性選択部45は、第3の実施形態の詳細化属性選択部35に対して、NCP値の算出手法が異なる。
【0198】
第3の実施形態の詳細化属性選択部35は、各レコードにおける集合値属性のNCPSVに基づいて、各属性のNCPSVを算出した。例えば、式(1)および式(2)を用いる場合、第3の実施形態の詳細化属性選択部35は、各属性のNCPSVの算出に、レコード毎のオリジナルの属性値の個数および開示されている属性値の個数を必要とした。したがって、レコード数がNのとき、計算コストO(N)が、NCP値の算出毎に生じる。さらに、計算結果を記憶しておくために、O(N)の空間が、必要となる。ここで、記号Oは、計算量に用いられるランダウ記号(オーダー記号)である。
【0199】
さらに、c個の集合値属性がある場合、O(cN)の空間が必要となる。さらに、レコードは、レコード毎に異なる属性値を持つ。そのため、計算の度に、どの属性値が開示されているかの検索処理が、必要となる。
【0200】
そこで、本実施形態の詳細化属性選択部45は、集合値属性に含まれるオリジナルの属性値の個数の1レコード当たりの平均値と、集合値属性において開示されている属性値の総数とに基づいて、集合値属性の情報損失の度合を表す指標を算出する。
【0201】
例えば、詳細化属性選択部45は、次式(3)に基づいて、集合値属性のNCP‘SVを算出する。
【0202】
ここで、M(α)は、対象のレコード群において、属性αについて開示されている属性値の総数を表す。例えば、図7に示した「イテレーション1」の列において、属性「薬剤名」について開示されている属性値の総数M(薬剤名)は、属性値aが4つ開示されているので「4」である。
【0203】
また、y(α)は、属性αの属性値の個数の1レコードあたりの平均(平均アイテム数)を表す。例えば、図6に示したデータセットにおいて、平均アイテム数y(薬剤名)は、「(3+3+5+5+3+3+3+2+3)/9≒3.3」である。
【0204】
なお、既に記載しているとおり、Nは、レコード数である。
【0205】
このように、本実施形態の詳細化属性選択部45は、レコード群の属性αに含まれる属性値のうち、いくつの属性値が削除されているかを表す値を、属性αの情報損失の度合の指標としている。式(3)では、M(α)以外の変数は、すべて定数となる。したがって、詳細化属性選択部45が記憶しておくべき情報の数は、集合値属性の数cであり。つまり、詳細化属性選択部45は、O(c)の空間コストで情報を記憶できる。また、計算の度にレコード毎に検索が必要となる値は、存在しない。そのため、検索コストは、大幅に低減される。
【0206】
さらに、式(3)を用いると、詳細化属性選択部45は、1つの属性値が開示される度に、定数項である1/y(α)を引き算すればよく、集合値属性のNCPSVを逐次的に導出できる。
【0207】
以上のように構成された情報処理装置4の動作について、図13を参照して説明する。
【0208】
図13において、クラスタ情報取得部31は、まず、第3の実施形態の情報処理装置3と同様に、初期化されたクラスタを表す情報を取得する(ステップS21)。
【0209】
次に、詳細化情報選択部44は、対象となるデータセットが有する各集合値属性について、平均アイテム数を算出する(ステップS31)。具体的には、詳細化情報選択部44は、平均アイテム数として、対象のレコード群においてその集合値属性が取る属性値の総数/全レコード数を算出すればよい。
【0210】
次に、詳細化属性選択部45は、第3の実施形態の情報処理装置3と同様に、対象のクラスタが分割可能であるか否かを判断する(ステップS2)。
【0211】
ここで、対象のクラスタが分割可能であると判断した場合、詳細化属性選択部45は、詳細化の対象となる属性を選択する(ステップS33)。このとき、詳細化属性選択部45は、式(3)に、その集合値属性の平均アイテム数と、その集合値属性において開示されている属性値の総数とを適用して、集合値属性の情報損失の度合を表す指標NCPSVを算出する。
【0212】
これ以降、情報処理装置4は、第3の実施形態と同様に動作する。つまり、情報処理装置4は、ステップS33で選択した属性値が集合値属性であるか単一値属性であるかに基づいて、集合値属性詳細化部22又は単一値属性詳細化部36を用いて、属性の詳細化及びクラスタ分割を実行する(ステップS24〜S25、S3)。
【0213】
そして、情報処理装置4は、分割不可能になるまで、ステップS2、S33、S24〜S25、S3を繰り返す。そして、属性の詳細化およびクラスタの分割が収束する(完了)と、匿名化済データセット生成部23は、第3の実施形態と同様に、匿名化状態保持部24を参照して匿名化済データセットを生成する(ステップS26)。
【0214】
以上で、情報処理装置4は動作を終了する。
【0215】
次に、本発明の第4の実施形態の効果について述べる。
【0216】
第4の実施形態に係る情報処理装置は、タクソノミーが与えられていない集合値属性が混在する複数の属性を有するデータセットに対して、各属性に対する匿名化処理を共存させた統一的な処理を、より高速に実行できる。
【0217】
その理由は、次のとおりである。まず、詳細化属性選択部が、予め、データセットにおける各集合値属性に含まれるオリジナルの属性値数の1レコード当たりの平均値を求めておく。そして、詳細化属性選択部が、段階的な匿名化処理を行う際に、各集合値属性の情報損失の度合を表す指標を、その集合値属性の平均アイテム数と、その集合値属性において開示されている属性値の総数とに基づいて算出するからである。この動作を基に、詳細化属性選択部は、レコード毎のNCPSVの総和を基づいて集合値属性のNCPSVを算出する場合に比較し、集合値属性の情報損失の度合を表す指標を高速に算出できる。その結果、本実施形態に係る情報処理装置は、匿名化処理の各段階において詳細化の対象とする属性の選択処理に必要となる計算コストおよび空間コストを削減できる。
【0218】
なお、第3および第4の実施形態において、詳細化属性選択部は、NCP値を用いて、詳細化の対象の属性を選択するとして説明した。しかし、各実施形態の詳細化属性選択部は、NCP値とは異なる指標又は指標の組み合わせに基づいて、詳細化の対象の属性を選択してもよい。
【0219】
また、上述した各実施形態において、情報処理装置または各機能ブロックは、例えば、集積回路で構成された専用装置を用いて構成されてもよい。
【0220】
また、上述した各実施形態は、上記で説明した情報処理装置の動作をCPUが実行するためのプログラムを、コンピュータ読み取り可能に格納した記憶媒体から、図示しない記憶媒体読み取り装置を用いて読み出し、実行してもよい。この場合、本発明は、係るプログラムのコード或いは記憶媒体を含んで構成される。
【0221】
また、上述した各実施形態は、適宜、組み合わせて実施されても良い。
【0222】
以上、実施形態(及び実施例)を参照して本願発明を説明したが、本願発明は上記実施形態(及び実施例)に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0223】
この出願は、2013年1月10日に出願された日本出願特願2013−002715を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【0224】
また、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0225】
(付記1)
属性値を含むレコードの集合であるクラスタから、前記クラスタが所定の匿名性を満たすよう前記レコードに含まれる1つ又は複数の値を含むことができる集合値属性のうちの少なくとも一部の属性値が削除された匿名化状態のレコードの集合であるクラスタを表す情報を取得するクラスタ情報取得手段と、
前記クラスタ取得手段が取得した前記クラスタに含まれるレコードの前記集合値属性のうちの削除された属性値から少なくとも一部の属性値を開示し、前記開示した属性値に基づいて、前記クラスタを、前記所定の匿名性を満たすクラスタに分割する集合値属性詳細化手段と、
を含む情報処理装置。
【0226】
(付記2)
前記集合値属性詳細化手段が、
前記分割後のクラスタに含まれるレコードにおいて前記削除された属性値のうち開示されていない属性値から少なくとも一部の属性値をさらに開示し、開示した属性値に基づいて、前記分割後のクラスタを、前記所定の匿名性を満たすクラスタにさらに分割する処理を繰り返す
付記1に記載の情報処理装置。
【0227】
(付記3)
前記集合値属性詳細化手段が、
前記集合値属性詳細化手段が分割した前記クラスタが、前記所定の匿名性を満たすクラスタに分割できない場合、前記クラスタの所定の匿名性を維持したまま開示可能な属性値をさらに開示する
付記1又は付記2に記載の情報処理装置。
【0228】
(付記4)
前記レコードが前記集合値属性に加えて単一の値を含む単一値属性を含み、
単一値属性を基に、前記クラスタを、前記所定の匿名性を満たすクラスタに分割する単一値属性詳細化手段を
含む付記1ないし付記3のいずれか1項に記載の情報処理装置。
【0229】
(付記5)
前記集合値属性詳細化手段が、
開示される属性値の個数に基づいて、開示する属性値を選択する
付記1ないし付記4のいずれ1項に記載の情報処理装置。
【0230】
(付記6)
前記集合値属性詳細化手段が、
前記属性値の優先度に基づいて、開示する属性値を選択する
付記1ないし付記4のいずれか1項に記載の情報処理装置。
【0231】
(付記7)
前記レコードが含む属性において開示の対象となる属性を選択する詳細化属性選択手段をさらに含み、
前記詳細化属性選択手段が選択した属性が集合値属性の場合、前記集合値属性詳細化手段が、選択された集合値属性において削除された属性値のうち少なくとも一部の属性値を開示し、前記開示した属性値に基づいて、前記クラスタを分割する
付記1ないし付記4のいずれか1項に記載の情報処理装置。
【0232】
(付記8)
前記詳細化属性選択手段が、
前記レコードが有する属性の匿名化状態における情報損失の度合を表す指標を算出し、算出した指標に基づいて、前記詳細化の対象となる属性を選択する
付記7に記載の情報処理装置。
【0233】
(付記9)
前記詳細化属性選択手段が、
前記レコード群が有する各集合値属性について、レコード毎に前記指標を算出し、前記各レコードの前記指標に基づいて、前記レコード群における該集合値属性に関する前記指標を算出する
付記7に記載の情報処理装置。
【0234】
(付記10)
前記詳細化属性選択手段が、
前記集合値属性のオリジナルの属性値の個数の1レコードあたりの平均値と、前記レコード群の前記集合値属性において開示されている属性値の総数とに基づいて、前記レコード群における前記集合値属性に関する前記指標を算出する
付記7に記載の情報処理装置。
【0235】
(付記11)
前記集合値属性詳細化手段が分割したクラスタを表す情報に基づいて、前記レコードの集合を前記所定の匿名性を満たすよう匿名化された匿名化済データセットを生成する匿名化済データセット生成手段をさらに含む
付記1ないし付記10のいずれか1つに記載の情報処理装置。
【0236】
(付記12)
属性値を含むレコードの集合であるクラスタから、前記クラスタが所定の匿名性を満たすよう前記レコードに含まれる1つ又は複数の値を含むことができる集合値属性のうちの少なくとも一部の属性値が削除された匿名化状態のレコードの集合であるクラスタを表す情報を取得し、
取得した前記クラスタに含まれるレコードの前記集合値属性のうちの削除された属性値から少なくとも一部の属性値を開示し、前記開示した属性値に基づいて、前記クラスタを、前記所定の匿名性を満たすクラスタに分割する、
情報処理方法。
【0237】
(付記13)
属性値を含むレコードの集合であるクラスタから、前記クラスタが所定の匿名性を満たすよう前記レコードに含まれる1つ又は複数の値を含むことができる集合値属性のうちの少なくとも一部の属性値が削除された匿名化状態のレコードの集合であるクラスタを表す情報を取得する処理と、
取得した前記クラスタに含まれるレコードの前記集合値属性のうちの削除された属性値から少なくとも一部の属性値を開示し、前記開示した属性値に基づいて、前記クラスタを、前記所定の匿名性を満たすクラスタに分割する処理と、
をコンピュータ装置に実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【符号の説明】
【0238】
1、2、3、4 情報処理装置
11、21、31 クラスタ情報取得部
12、22 集合値属性詳細化部
23 匿名化済データセット生成部
24 匿名化状態保持部
35、45 詳細化属性選択部
36 単一値属性詳細化部
91 匿名化対象データセット記憶部
92 匿名化済データセット記憶部
1001 CPU
1002 RAM
1003 ROM
1004 記憶装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14