JPWO2012093522A1 - 匿名化装置 - Google Patents

匿名化装置 Download PDF

Info

Publication number
JPWO2012093522A1
JPWO2012093522A1 JP2012551795A JP2012551795A JPWO2012093522A1 JP WO2012093522 A1 JPWO2012093522 A1 JP WO2012093522A1 JP 2012551795 A JP2012551795 A JP 2012551795A JP 2012551795 A JP2012551795 A JP 2012551795A JP WO2012093522 A1 JPWO2012093522 A1 JP WO2012093522A1
Authority
JP
Japan
Prior art keywords
data
group
acquired
generalization
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012551795A
Other languages
English (en)
Other versions
JP5288066B2 (ja
Inventor
由起 豊田
由起 豊田
伊東 直子
直子 伊東
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2012551795A priority Critical patent/JP5288066B2/ja
Application granted granted Critical
Publication of JP5288066B2 publication Critical patent/JP5288066B2/ja
Publication of JPWO2012093522A1 publication Critical patent/JPWO2012093522A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Strategic Management (AREA)
  • Quality & Reliability (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

グループ間のデータ数の比較を可能とする。ユーザ情報を含むデータが記憶されたユーザ情報記憶部を参照し、複数のユーザのデータをユーザ情報に基づいてグルーピングすると所定の匿名性指標が満たされないグループである特異点グループを検出し、特異点グループ以外の各グループからデータを取得して、特異点グループのデータとともにユーザ情報を同一の値に汎化すると、全グループが匿名性指標を満たすように、匿名性指標に応じた所定規則に基づいて、各グループから取得するデータである取得データを選択し、特異点グループのデータと取得データとを、ユーザ情報を同一の値に汎化することにより匿名化データを生成し、特異点グループ以外の各グループの取得データ以外のデータとともに匿名化ユーザ情報記憶部に格納する。

Description

本発明は、匿名化装置に関する。
近年、個人情報の保護に対する関心が高まるにつれて、様々なプライバシー技術が研究されている。
例えば、非特許文献1には、k匿名性を満たすように匿名化を行う手法が開示されている。なお、k匿名性とは、データテーブル中の各タプルにおいて、そのタプルの持つデータ値情報(各属性値の組合せ)と同じデータ値情報をもつタプルが自分自身を含めてk個以上存在する状態のことをいう。
また、非特許文献2には、匿名化のためのローカルリコーディング(Local Recoding)という手法が開示されている。ローカルリコーディングとは、例えば年齢を5歳刻みで表示していたのを、一部分だけより粗く10歳刻みで表示する等、特定のデータについてのみカテゴリーを粗くすることである。
また、非特許文献3にも、ローカルリコーディングを用いた匿名化手法が開示されている。非特許文献3に開示された手法では、k匿名性のkを満たさない集合Gに対して、G∪G’がkを満たし、かつ最小となるような他の集合G’を1つ探してGとG’をマージすることが行われる。もし、GとG’とのマージ後の集合のデータ数が2k以上になった場合は、マージ後の集合が2つに分割される。
また、特許文献1には、個人情報の数が予め定められた数以上である集合に対して、個人情報の変更が生じた際に、変更後の個人情報が安全か否かを識別するための手法が開示されている。
L. Sweeney著,「Achieving k-anonymity privacy protection using generalization and suppression」,International Journal on Uncertainty, Fuzziness and Knowledge based Systems,2002年,p. 571-588 K. LeFevre他著,「Mondrian Multidimensional k-Anonymity」,Proceedings of the 22nd International Conference on Data Engineering,2006年,p. 25 Jian Xu他著,「Utility-Based Anonymization Using Local Recoding」,Proceedings of the 12th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining,2006年,p. 785-790
特開2009−181207号公報
ところで、非特許文献1に開示された手法では、k匿名性を保つために特異点集合は切り落される。なお、特異点集合とは、データ数が少ないために、匿名化を行ってもk匿名性が満たされない集合である。たしかに、切り落としを行うことでk匿名性を保つことは可能であるが、切り落とされた集合が統計情報に反映されないため、正確な統計情報を扱うことができない。また、特異点集合は切り落とされてしまうため、特異点集合に属するユーザに対して広告等の情報を配信を行うことができない。
また、非特許文献2に開示された手法では、特異点集合が所属するグループの抽象度が高くされる。しかし、抽象度を高くしてもk匿名性が満たされない場合は、データセット全体が「不明」(unknown)となり、データ歪曲度が大きくなってしまう。
また、非特許文献3に開示された手法では、マージ後のグループのデータ数がk匿名性を満たし、かつ最小になるように、特異点集合と一緒にマージする1つのグループが選択される。これにより、データ歪曲度を最小にすることができるが、データセット内の各グループのデータ数の大小関係や比率を把握することができない。また、グループのデータ数の時系列での変化を追うこともできない。
例えば、あるサービスの加入者のうち、時刻t0では東京に住んでいる人が100人、海外に住んでいる人が5人、時刻t1では東京に住んでいる人が200人、海外に住んでいる人が8人であるとする。ここで、k匿名性のkの値を10として、非特許文献3による匿名化の手法を説明する。
まず、時刻t0では、海外に住んでいる人のグループがk匿名性を満たしていないので、東京に住んでいる人のグループから5人分のデータを海外に住んでいる人のグループにマージして汎化が行われる。また、時刻t1では、東京に住んでいる人のグループから2人分のデータを海外に住んでいる人のグループにマージして汎化が行われる。これにより、海外に住んでいる人と一緒に汎化される東京に住んでいる人のデータ数が最小となり、データ歪曲の度合いを最小にすることができる。
しかし、時刻t0と時刻t1での東京に住んでいる人や海外に住んでいる人の増加量を把握することができない。具体的には、東京に住んでいる人のグループからは、海外に住んでいる人のグループの汎化のために時刻t0では5人分のデータが利用され、時刻t1では2人分のデータが利用されている。そのため、実際には、東京に住んでいる人は100人増加して海外に住んでいる人は3人増加したのにも関わらず、東京に住んでいる人は103人増加、海外に住んでいる人は増加なしとなってしまう。
また、特許文献1に開示されている手法では、同じレコード値をもつデータがある一定個数以上あった場合に「安全」と判定しているが、一定個数以上なかった場合の対応方法については考慮されていない。
本発明はこのような事情に鑑みてなされたものであり、特異点集合を含むデータを匿名化する際に、グループ間のデータ数の比較を可能とすることを目的とする。
本発明の一側面に係る匿名化装置は、ユーザ情報を含むデータが記憶されたユーザ情報記憶部を参照し、複数のユーザのデータをユーザ情報に基づいてグルーピングすると所定の匿名性指標が満たされないグループである特異点グループを検出する特異点検出部と、特異点グループ以外の各グループからデータを取得して、特異点グループのデータとともにユーザ情報を同一の値に汎化すると、全グループが匿名性指標を満たすように、匿名性指標に応じた所定規則に基づいて、各グループから取得するデータである取得データを選択する取得データ選択部と、特異点グループのデータと取得データとを、ユーザ情報を同一の値に汎化することにより匿名化データを生成し、特異点グループ以外の各グループの取得データ以外のデータとともに匿名化ユーザ情報記憶部に格納する汎化部と、を備える。
なお、本発明において、「部」とは、単に物理的手段を意味するものではなく、その「部」が有する機能をソフトウェアによって実現する場合も含む。また、1つの「部」や装置が有する機能が2つ以上の物理的手段や装置により実現されても、2つ以上の「部」や装置の機能が1つの物理的手段や装置により実現されても良い。
本発明によれば、特異点集合を含むデータを匿名化する際に、グループ間のデータ数の比較が可能となる。
第1の実施形態における匿名化システムの構成を示す図である。 ユーザデータの一例を示す図である。 匿名化ユーザデータの一例を示す図である。 汎化ツリーの一例を示す図である。 取得データ記憶部に記憶されるデータの一例を示す図である。 匿名化処理の一例を示すシーケンス図である。 匿名化処理の一例を示すフローチャートである。 匿名化処理の一例を示すフローチャートである。 第2の実施形態における匿名化システムの構成を示す図である。 汎化ツリーの一例を示す図である。 匿名化処理の一例を示すシーケンス図である。 ユーザデータの一例を示す図である。 第3の実施形態における匿名化システムの構成を示す図である。 匿名化処理の一例を示すシーケンス図である。 ユーザデータの一例を示す図である。 第4の実施形態における匿名化システムの構成を示す図である。 匿名化処理の一例を示すメインのフローチャートである。 処理対象として選択された項目に対する匿名化処理の一例を示すフローチャートである。 その他の項目に対する匿名化処理の一例を示すフローチャートである。 ユーザデータの一例を示す図である。 汎化ツリーの一例を示す図である。 匿名化処理の変形例を示すフローチャートである。
以下、図面を参照して本発明の一実施形態について説明する。
(第1の実施形態)
==構成==
図1は、第1の実施形態における匿名化システムの構成を示す図である。匿名化システムは、匿名化装置10、ユーザ情報記憶部12、及び匿名化ユーザ情報記憶部14を含んで構成されている。
匿名化装置10は、所定の匿名性指標が満たされるようにユーザ情報の匿名化を行う情報処理装置であり、例えば、CPUやメモリ、記憶装置を有するサーバを用いて構成されている。匿名化装置10は、複数台の情報処理装置を用いて構成されていてもよい。ここで、匿名化の対象となるユーザ情報とは、例えばクレジットカード会社が保有する氏名・年齢・住所・年収・延滞履歴等の情報である。なお、本実施形態では、所定の匿名性指標としてk匿名性が用いられることとする。k匿名性とは、匿名化対象の情報が同一のデータをグルーピングした際に、いずれのグループについてもデータ数がk個以上となることを保証するものである。
図1に示すように、匿名化装置10は、ユーザ情報記憶部12及び匿名化ユーザ情報記憶部14と通信可能に接続されている。なお、ユーザ情報記憶部12及び匿名化ユーザ情報記憶部14を匿名化装置10が備えることとしてもよい。
ユーザ情報記憶部12には、ユーザ識別子及びユーザ情報を含むユーザデータが記憶されている。図2は、ユーザ情報記憶部12に記憶されるユーザデータの一例を示している。図2の例では、ユーザ情報の項目として自宅最寄駅が設けられている。例えば、ユーザ識別子「User001」のユーザは、自宅最寄駅が「二子玉川」であることが示されている。なお、ユーザ情報の項目数は1つに限られず、2つ以上であってもよい。
匿名化ユーザ情報記憶部14には、ユーザ情報記憶部12に記憶されたユーザデータを匿名化したデータである匿名化ユーザデータが記憶される。図3は、匿名化ユーザ情報記憶部14に記憶される匿名化ユーザデータの一例を示している。図3の例では、匿名化ユーザデータには、ユーザ識別子及び自宅最寄駅に加えて、保存日時の項目が設けられている。図3の例では、ユーザ識別子には、元のユーザデータのユーザ識別子がそのまま設定されている。そして、自宅最寄駅には、k匿名性を満たすように、ユーザデータの自宅最寄駅を必要に応じて汎化した情報が設定されている。
例えば、所定の匿名性指標をk匿名性(k=4)とする。図2に示したユーザデータを自宅最寄駅でグルーピングすると、ユーザ識別子「User013」のグループは、データ数が1個となってしまい、k匿名性が満たされなくなってしまう。そのため、図3に示す例では、ユーザ識別子「User005」、「User006」、「User011」、「User012」、「User013」のユーザデータが1つのグループとされ、自宅最寄駅「二子玉川」及び「東北沢」が汎化されて「世田谷区」となっている。
なお、匿名化ユーザデータには、ユーザ識別子や保存日時の項目が無くてもよい。また、ユーザ識別子自体が秘匿性の高い情報である場合は、ユーザ識別子の代わりに、データ(レコード)を識別するためのデータ識別子が匿名化ユーザデータに含まれることとしてもよい。
図1に戻り、匿名化装置10は、汎化ツリー記憶部20、匿名化要求受付部22、特異点集合検索部24、取得データ選択部26、取得データ記憶部28、及び汎化部30を含んで構成されている。なお、汎化ツリー記憶部20及び取得データ記憶部28は、例えば、メモリや記憶装置等の記憶領域を用いて実現することができる。また、匿名化要求受付部22、特異点集合検索部24、取得データ選択部26、及び汎化部30は、例えば、メモリに記憶されたプログラムをCPUが実行することにより実現することができる。
汎化ツリー記憶部20は、ユーザ情報の汎化規則を記憶している。本実施形態では、汎化ツリー記憶部20には、データセットのデータが所属するグループの木構造が記憶されている。図4は、汎化ツリー記憶部20が記憶している汎化ツリーの一例を示している。図4の例では、「二子玉川」、「下北沢」、「東北沢」の上位グループが「世田谷区」であることが示されている。この汎化ツリーは、匿名化装置20においてユーザ情報の汎化が行われる際に用いられる。なお、汎化ツリーは複数種類記憶されていてもよい。
匿名化要求受付部22は、ユーザ情報記憶部12に記憶されているユーザデータの匿名化要求を受け付ける。なお、匿名化要求は、匿名化装置10の外部から入力されることとしてもよいし、匿名化装置10が備える入力装置を介して入力されることとしてもよい。匿名化要求受付部22は、匿名化要求を受け付けると、特異点集合検索部24に対して特異点集合の検索要求を送信する。
特異点集合検索部24は、ユーザ情報記憶部12に記憶されているユーザデータに含まれる特異点集合(特異点グループ)を検索する。ここで、特異点集合とは、ユーザ情報が同一のデータをグルーピングした際に、グループのデータ数がk個未満となるデータ集合である。具体的には、特異点集合検索部24は、汎化ツリー記憶部20に記憶されている汎化ツリーを取得し、取得した汎化ツリーに基づいてユーザ情報記憶部2に記憶されているユーザデータをグループ毎に分類し、グループのデータの数が、ある一定の値以下のグループである特異点集合を検索する。そして、特異点集合の検索結果は、取得データ選択部26へ送信される。
取得データ選択部26は、特異点集合検索部24で検索された特異点集合と一緒に上位グループに所属させるためのデータを選択する。具体的には、取得データ選択部26は、ユーザ情報記憶部12から、各グループのデータ数を取得し、特異点集合を上位グループに所属させるために必要なデータ数をグループ毎に計算する。ここで、特異点集合を上位グループに所属させるために必要なデータ数とは、特異点集合とともにユーザ情報を汎化ツリーに基づいて汎化することにより匿名性指標が満たされるようにするために必要なデータ数である。取得データ選択部26は、各グループから取得するデータを選択し、取得データ記憶部28へ記憶する。その後、取得データ選択部26は、汎化部30に対して汎化の実行を要求する。
ここで、特異点集合を上位グループに所属させるために必要なデータ数(m)の計算式として、例えば、以下の式1または式2を用いることができる。
m=(k/全グループのデータの総数)×各グループのデータ数 ・・・ (式1)
m=k/グループの数 ・・・ (式2)
なお、計算結果が整数ではない場合、四捨五入、切り上げ、切り捨て等の丸め処理が行われることとしてもよい。ただし、丸め処理が行われた場合、取得データ選択部26は、特異点集合がk匿名性を満たさなくならないように調整することとする。
取得データ記憶部28には、取得データ選択部26によって選択されたデータを示す情報が記憶される。具体的には、図5に示すように、取得データ記憶部28に記憶されるデータには、データ利用者識別子、取得データ識別子、算出式、汎化先、及び特異点集合識別子の項目が設けられている。ここで、データ利用者識別子は、匿名化装置10を利用する利用者を識別するための識別子である。また、取得データ識別子には、ユーザ情報記憶部12に記憶されているユーザデータを識別可能な情報が設定される。例えば、取得データ識別子には、取得データのユーザ識別子を設定することができる。また、算出式には、取得データ選択部26で取得データを選択する際に用いた式を示す情報が設定される。汎化先には、特異点集合検索部24で検索された特異点集合のデータと取得データが新しく所属する上位のグループを示す情報が設定される。特異点集合識別子には、取得データとともに汎化された特異点集合を識別可能な情報が設定される。例えば、特異点集合識別子には、特異点集合に含まれるデータのユーザ識別子を設定することができる。例えば、図5の例では、データ利用者識別子「TokumeiUser001」のデータ利用者からの匿名化要求に対して、式1を計算することにより、ユーザ識別子「User005」、「User006」のユーザデータが取得データとして選択されたことが示されている。また、特異点集合のデータと取得データが新しく所属する上位グループが「世田谷区」であることが示されている。また、ユーザ識別子「User005」、「User006」のユーザデータが、ユーザ識別子「User013」のユーザデータを含む特異点集合とともに汎化されたことが示されている。
汎化部30は、取得データ選択部26で選択されたデータと特異点集合検索部24で検索されたデータをマージし、ユーザ情報を汎化する。そして、汎化部30は、その他のグループのユーザデータも含んだ匿名化ユーザデータを匿名化ユーザ情報記憶部14に格納する。
==動作==
匿名化装置10における匿名化処理の一例について説明する。図6は、本実施形態における匿名化処理の一例を示すシーケンス図である。
まず、匿名化要求受付部22は、匿名化データ利用者から匿名化の要求を受け付けると、特異点集合検索部24に対してデータ利用者識別子と共に汎化要求を送信する(S601)。
汎化要求を受信した特異点集合検索部24は、汎化ツリー記憶部20から汎化ツリーを取得する(S602)。そして、特異点集合検索部24は、ユーザ情報記憶部12を参照し、特異点集合を検索する(S603)。特異点集合を検出した特異点集合検索部24は、取得データ選択部26に対して取得データ選択要求を送信する(S604)。
取得データ選択要求を受信した取得データ選択部26は、ユーザ情報記憶部12を参照し、ユーザデータが所属する各グループのデータ数とグループ数を取得する(S605)。各グループ毎のデータ数とグループ数を取得すると、取得データ選択部26は、取得データ記憶部28から、過去の取得データを取得する(S606)。また、取得データ選択部26は、特異点集合のユーザデータとともに汎化するために各グループから取得すべきデータの数を算出する(S607)。なお、データ数の計算式は、取得データ記憶部28に過去に用いられた計算式が記憶されている場合はその計算式が用いられる。データ数が算出されると、取得データ選択部26は、汎化に用いるデータを選択する(S608)。そして、取得データ選択部26は、新たに選択された取得データに関する情報を取得データ記憶部28に格納し(S609)、汎化部30に対して汎化処理の実行要求を送信する(S610)。
汎化処理の実行要求を受信すると、汎化部30は、汎化ツリー記憶部20から汎化ツリーを取得する(S611)。そして、汎化部30は、特異点集合のユーザデータと、取得データ選択部26によって選択されたユーザデータとをマージしてユーザ情報を汎化することにより、匿名化ユーザデータを生成する(S612)。汎化処理の完了後、汎化部30は、汎化されたグループ以外のグループも含んだ匿名化ユーザデータを匿名化ユーザ情報記憶部14に格納する(S613)。
なお、特異点集合が存在しない場合であっても、取得データ選択部26が、各グループから取得する取得データを選択し、汎化部30が、取得データをマージしてユーザ情報を汎化することにより匿名化ユーザデータを生成することも可能である。つまり、特異点集合が存在しない場合であっても、特異点集合の発生にそなえ、あらかじめ匿名化ユーザデータを生成しておくことができる。その後に発生する特異点集合は、この匿名化ユーザデータとマージして汎化することができる。
ここで、匿名化処理の具体例を説明する。なお、以下の説明では、ユーザ情報記憶部12には図2に示すユーザデータが格納され、汎化ツリー記憶部20には図4に示す汎化ツリーが格納されていることとする。また、k匿名性のkの値は4とする。
まず、匿名化要求受付部22は、匿名化データ利用者から匿名化要求を受け付けると、特異点集合検索部24に対してデータ利用者識別子「TokumeiUser001」と共に汎化要求を送信する(S601)。
特異点集合検索部24は、汎化ツリー記憶部20から汎化ツリーを取得する(S602)。図4に示すように、汎化ツリーは、親が「世田谷区」で子に「二子玉川」、「下北沢」、「東北沢」を持つことがわかる。なお、複数種類の汎化ツリーが汎化ツリー識別子と対応付けられて汎化ツリー記憶部20に記憶されていてもよい。この場合、特異点集合検索部24は、データ利用者識別子に応じて、利用する汎化ツリーを選択することとしてもよい。続いて、特異点集合検索部24は、ユーザ情報記憶部12を参照し、特異点集合を検索する(S603)。具体的には、特異点集合検索部24は、kが4未満となるデータ集合を検索する。図2より、自宅最寄駅が「二子玉川」のデータ数は「6」、自宅最寄駅が「下北沢」のデータ数は「6」、自宅最寄駅が「東北沢」のデータ数が「1」であるため、kが4未満となるデータは自宅最寄駅が「東北沢」のデータ、すなわち、ユーザ識別子「User013」のデータである。特異点集合「User013」を検出した特異点集合検出部24は、特異点集合を汎化するためのデータ数とデータ値を決定するために、取得データ選択部28に対して取得データ選択要求を送信する(S604)。
取得データ選択部26は、ユーザ情報記憶部12を参照し、各データが所属するグループ毎のデータ数とグループ数を取得する(S605)。図2に示すように、自宅最寄駅「二子玉川」のグループのデータ数は「6」、自宅最寄駅「下北沢」のグループのデータ数は「6」、グループ数は「二子玉川」、「下北沢」、「東北沢」の「3」となっている。続いて、取得データ選択部26は、取得データ記憶部28を参照し、データ利用者識別子「TokumeiUser001」に対する、前回の取得データを取得する(S606)。ここでは、データ利用者識別子「TokumeiUser001」に対応する取得データがなかったこととする。
続いて、取得データ選択部26は、各データから特異点集合の汎化に用いるデータ数を、式1または式2を用いて算出する(S607)。図2の例において、全グループのデータの総数は「6+6+1=13」であり、自宅最寄駅「二子玉川」のグループのデータ数は「6」、kは4である。よって、式1を用いる場合、自宅最寄駅「二子玉川」のグループから特異点集合の汎化のために取得するデータの数の計算は、m=(4/13)×6≒2となる。同様に、自宅最寄駅「下北沢」のグループから取得するデータ数も2と算出される。また、式2を用いる場合、グループ数は「3」、kは4であるため、m=4÷3≒2と算出される。
なお、匿名化ユーザデータを利用したいデータ利用者が、データの増加率を知りたい場合は式1を用い、データの増加量を知りたい場合は式2を用いればよい。式1と式2の利用の決定は、データ利用者が指定する。つまり、利用する式を指定する情報が匿名化要求に設定され、取得データ選択部26は、この情報で指定される式を用いて取得データ数の算出を行うことができる。
自宅最寄駅「二子玉川」のグループから取得するデータ数が「2」と算出されると、取得データ選択部26は、自宅最寄駅「二子玉川」のグループの6つのデータの中から、ユーザ識別子が「User005」、「User006」である2つのデータを取得データとして選択する(S608)。なお、グループの中から選択される取得データの選択方法は任意である。ただし、2回目以降の実行では前回選択したデータの中から選択される。すなわち、取得データ選択部26は、以前に取得されたデータに関する情報が取得データ記憶部28に記憶されている場合は、以前に取得されたデータの中から取得データを選択する。
ユーザ識別子「User005」、「User006」のデータが取得データとして選択されると、取得データ選択部26は、ユーザ識別子「User005」、「User006」のデータが所属するグループが「二子玉川」であると認識することができる。また、取得データ選択部26は、汎化ツリー記憶部20から取得した汎化ツリーにおいて、「二子玉川」の上位グループが「世田谷区」であると認識することができる。そこで、取得データ選択部26は、取得データ識別子「User005」、「User006」、取得データの数を算出する際に用いた算出式、汎化先「世田谷区」を、データ利用者識別子「TokumeiUser001」と共に記憶する(S609)。
同様に、自宅最寄駅「下北沢」のグループからも、例えば、ユーザ識別子「User011」、「User012」のデータが取得データとして選択される。そして、取得データ選択部26は、汎化部30に対して汎化処理の実行要求を送信する(S610)。
汎化処理の実行要求に応じて、汎化部30は汎化処理を実行する(S611,S612)。具体的には、取得データ「User005」、「User006」の自宅最寄駅は「二子玉川」であり、取得データ「User011」、「User012」の自宅最寄駅は「下北沢」であり、特異点集合である「User013」の自宅最寄駅は「東北沢」である。そして、図4の汎化ツリーによれば、「二子玉川」、「下北沢」、及び「東北沢」に共通の上位グループは「世田谷区」である。そこで、汎化部30は、これらのデータの自宅最寄駅を「世田谷区」と汎化することにより匿名化ユーザデータを生成する。そして、汎化部30は、自宅最寄駅「二子玉川」、「下北沢」のグループにおいて取得されなかったデータも含む匿名化ユーザデータを匿名化ユーザ情報記憶部14へ格納する(S613)。
このように匿名化を行うことにより、匿名化の対象となるデータ集合が時間と共に増加する場合に、データの増加量や増加率を正確に把握することが可能になる。すなわち、ある時刻におけるグループ間のデータ数の比較や異なる時刻で匿名化された同一グループのデータ数の変化の把握が可能となる。(第1の実施形態の変形例) さらに、図1に示した匿名化装置10の構成において、上述の匿名化処理とは異なる処理によって匿名化を行うことも可能である。例えば、図7及び図8に示すフローチャートに示される処理がその一例である。
まず、図7に示すフローチャートによる匿名化処理について説明する。この処理は、算出された取得データ数(m)のデータを取得してしまうとk匿名性が満たされなくなるグループが存在する場合を考慮したものである。なお、図7の匿名化処理の開始前に、図6に示した匿名化処理と同様に、取得データ数(m)の算出が行われていることとする。
取得データ数(m)を算出した取得データ選択部26は、各グループについて、グループのデータ数から、取得データ数(m)にkを加算した値を引いた場合の正負を判定する(S701)。
判定結果が0以上のグループについては、m個のデータが取得されてもk匿名性が満たされるため、取得データ選択部26は、m個のデータを取得データとして選択する(S702)。
一方、判定結果が負のグループについては、m個のデータが取得されるとk匿名性が満たされなくなるため、汎化部30は、判定結果が負になった複数のグループをマージする(S703)。ここで、判定結果が負になるグループには、特異点集合のグループも含まれる。そして、汎化部30は、取得データとして選択されたデータと、判定結果が負であるためマージされたグループのデータを全てマージしたグループに対して汎化処理を実行し、匿名化ユーザデータを生成する(S704)。
このような処理により、算出された取得データ数(m)のデータを取得してしまうとk匿名性が満たされなくなるグループが存在する場合に、匿名化後の全グループがk匿名性を満たすように匿名化を行うことができる。
なお、図7の処理では、上述のように、データ数が(m+k)個未満のグループにはk匿名性が満たされない特異点集合のグループも含まれている。また、図7の処理では、k匿名性を満たしてはいるが、データ数が(m+k)個未満であるグループからは全データが取得され、k匿名性を満たし、かつ、データ数が(m+k)個以上であるグループからはm個のデータが取得される。そして、取得されたデータは特異点集合のグループとともに汎化されることとなる。つまり、図7の処理においても、k匿名性を満たさない特異点集合が検出され、特異点集合以外の各グループからデータが取得されて特異点集合のデータとともに汎化されることにより、全グループがk匿名性を満たすように汎化が行われていると言うことができる。これは、以後に示す、(m+k)の判定を行う処理についても同様である。
次に、図8に示すフローチャートによる匿名化処理について説明する。この処理は、特異点集合に対して、算出されたデータ数(m)のデータを他のグループから追加してもk匿名性が満たされない場合を考慮したものである。なお、図8の匿名化処理の開始前に、図7に示した匿名化処理におけるデータ取得処理(S702)までが実行済みであることとする。
取得データ数(m)を算出した取得データ選択部26は、特異点集合のデータ数と算出した取得データ数(m)との差分の正負を判定する(S801)。
判定結果が0以上の場合は、汎化部30は、図7の場合と同様に、取得データと特異点集合のデータをマージして汎化を行い、匿名化ユーザデータを生成する(S802)。
一方、判定結果が負の場合は、汎化部30は、グループのデータ数が、特異点集合の判定基準となる値(k)と算出した取得データ数(m)の和を満たし、かつ、データ数が最小となるグループを検索する(S803)。そして、汎化部30は、検索されたグループと特異点集合のグループをマージする(S804)。さらに、汎化部30は、マージ後のデータ集合に対して各グループから取得されたデータをマージし、汎化処理を実行する(S802)。
このような処理により、特異点集合に対して、算出されたデータ数(m)のデータを他のグループから追加してもk匿名性が満たされない場合に、匿名化後の全グループがk匿名性を満たすように匿名化を行うことができる。
(第2の実施形態)
==構成==
図9は、第2の実施形態における匿名化システムの構成を示す図である。第2の実施形態における匿名化装置40は、第1の実施形態の匿名化装置10が備える構成に加えて、関連性検索部42を備えている。
関連性検索部42は、特異点集合検索部24で検索された特異点集合と関連性の高いデータ集合を検索する。そして、関連性検索部42は、検出したデータ集合と特異点集合とをマージして汎化することにより、k匿名性が満たされるかどうかを判定する。
ここで、関連性とは、汎化ツリーの階層構造に基づいて判断される指標であり、親戚度と表現することもできる。例えば、汎化ツリーにおいて親が共通のデータ集合は兄弟関係にあり、親の親が共通のデータ集合は従兄弟関係にある。そして、同一グループとして汎化した際に抽象度が低いほど関連性が高いこととなる。つまり、従兄弟関係にあるデータ集合よりも兄弟関係にあるデータ集合の方が関連性が高いと言える。
例えば、図10に示す汎化ツリーの場合、自宅最寄駅が「二子玉川」のデータ集合と「下北沢」のデータ集合とは兄弟関係にある。また、自宅最寄駅が「二子玉川」のデータ集合と「高田馬場」のデータ集合とは従兄弟関係にある。この場合、自宅最寄駅が「二子玉川」のデータ集合にとっては、自宅最寄駅が「高田馬場」のデータ集合よりも自宅最寄駅が「下北沢」のデータ集合の方が関連性が高い。
本実施形態では、取得データ選択部26は、特異点集合とマージして汎化する取得データを、関連性検索部42によって検索された、特異点集合と関連性の高いグループから選択する。
==動作==
匿名化装置40における匿名化処理の一例について説明する。図11は、本実施形態における匿名化処理の一例を示すシーケンス図である。
まず、匿名化要求受付部22は、匿名化データ利用者から匿名化の要求を受け付けると、特異点集合検索部24に対してデータ利用者識別子と共に汎化要求を送信する(S1101)。
汎化要求を受信した特異点集合検索部24は、汎化ツリー記憶部20から汎化ツリーを取得する(S1102)。そして、特異点集合検索部24は、ユーザ情報記憶部12を参照し、特異点集合を検索する(S1103)。特異点集合を検出した特異点集合検索部24は、関連性検索部42に対して、特異点集合との関連性の検索要求を送信する(S1104)。
関連性の検索要求を受信した関連性検索部42は、汎化ツリー記憶部20から汎化ツリーを取得する(S1105)。汎化ツリーを取得した関連性検索部42は、ユーザ情報記憶部12を参照し(S1106)、特異点集合のユーザ情報と同じ親となるユーザ情報を有するグループのデータ数を算出する(S1107)。そして、関連性検索部42は、特異点集合の親の全ての子データを汎化することによりk匿名性が満たされるかどうかを判定する(S1108)。なお、特異点集合の親の全ての子データを汎化してもk匿名性が満たされない場合は、k匿名性が満たされるデータ数となるまで汎化ツリーを上位にさかのぼり、取得データの選択対象とするグループを特定する。
以降のシーケンス(S1109〜S1118)は、第1の実施形態の図6で示したシーケンス(S604〜S613)と同様である。ただし、取得データ選択部26は、関連性検索部42において検索された、特異点集合とともに汎化されるとk匿名性が満たされ、かつ、特異点集合と関連性が最も高いグループを対象として取得データの選択を行う。
ここで、匿名化処理の具体例を説明する。なお、以下の説明では、ユーザ情報記憶部12には図12に示すユーザデータが格納され、汎化ツリー記憶部20には図10に示す汎化ツリーが格納されていることとする。また、k匿名性のkの値は4とする。
まず、匿名化要求受付部22は、匿名化データ利用者から匿名化の要求を受け付けると、特異点集合検索部24に対してデータ利用者識別子と共に汎化要求を送信する(S1101)。
汎化要求を受信した特異点集合検索部24は、汎化ツリー記憶部20から汎化ツリーを取得する(S1102)。そして、特異点集合検索部24は、ユーザ情報記憶部12を参照し、特異点集合を検索する(S1103)。図12より、自宅最寄駅が「二子玉川」のデータ数は「6」、自宅最寄駅が「下北沢」のデータ数は「8」、自宅最寄駅が「高田馬場」のデータ数は「5」、自宅最寄駅が「東北沢」のデータ数が「1」人であるため、kが4未満となるデータは自宅最寄駅が「東北沢」のデータ、すなわち、ユーザ識別子「User013」のデータである。特異点集合を検出した特異点集合検索部24は、関連性検索部42に対して、特異点集合との関連性の検索要求を送信する(S1104)。
関連性の検索要求を受信した関連性検索部42は、汎化ツリー記憶部20から汎化ツリーを取得する(S1105)。汎化ツリーを取得した関連性検索部42は、ユーザ情報記憶部12を参照し(S1106)、特異点集合「User013」の自宅最寄駅「東北沢」と同じ親となるデータ、すなわち、自宅最寄駅「二子玉川」、自宅最寄駅「下北沢」のデータ数を算出する(S1107)。図12より、自宅最寄駅「二子玉川」のデータ数は「6」、自宅最寄駅「下北沢」のデータ数は「8」となる。そして、関連性検索部42は、特異点集合の親である「世田谷区」の全ての子データを汎化することによりk匿名性が満たされるかどうかを判定する(S1108)。ここでは、同じ親「世田谷区」をもつデータの総数は「6+8+1=15」であり、k以上であるため「可能」と判定される。なお、「世田谷区」の全ての子データを汎化してもk匿名性が満たされない場合は、さらにその上の親である「東京23区」の配下の全てのデータを汎化することによりk匿名性が満たされるかどうか判定される。
ここでは、「世田谷区」の全ての子データを汎化することによりk匿名性が満たされると判定されたため、取得データ選択部26は、「世田谷区」の配下のグループから取得データを選択する。以降は第1の実施形態の場合と同様である。
このように、関連性の高いグループから取得データを選択することにより、特異点集合を汎化する際の抽象度を低くすることが可能となる。(第3の実施形態) ==構成== 図13は、第3の実施形態における匿名化システムの構成を示す図である。第3の実施形態における匿名化装置50は、第1の実施形態の匿名化装置10が備える構成に加えて、分解判断部52及び分解部54を備えている。
分解判断部52は、汎化された特異点集合を含むデータ集合を分解可能か否かを判断する。例えば、特異点集合や、特異点集合とマージされたグループにデータが追加された場合、特異点集合とのマージにより形成されたグループの一部を別のグループとして分解してもk匿名性が満たされることがある。分解判断部52は、このような分解が可能であるかどうかを判定する。
分解部54は、分解判断部52によって分解可能と判断された場合に、特異点集合と取得データのマージにより形成されていたグループを、特異点集合と取得データを要素とするグループと、その他のグループの2つに分解する。
==動作==
匿名化装置50における匿名化処理の一例について説明する。図14は、本実施形態における匿名化処理の一例を示すシーケンス図である。
なお、図14に示す処理の前に、図6に示した処理(S601〜S613)が実行されていることとする。そして、汎化処理を実行した汎化部30は、分解判断要求を分解判断部52に送信する(S1401)。
分解判断要求を受信した分解判断部52は、取得データ記憶部28を参照し、取得データ、算出式、及び特異点集合を確認する(S1402)。続いて、分解判断部52は、取得データとともに汎化された特異点集合が属するグループの現在のデータ数をユーザ情報記憶部12から取得する(S1403)。そして、分解判断部52は、以前に取得データとともに汎化された特異点集合が属するグループのデータ数が、式1で算出した取得データ数(m)とkとの和(m+k)以上であれば分解可能と判断する(S1404)。すなわち、特異点集合が属するグループにユーザデータが追加されたことにより、このグループからm個のデータを取得したとしてもk匿名性が満たされる状態となった場合には、分解可能であると判断される。
さらに、分解判断部52は、取得データが属する各グループについても、特異点集合が属するグループと同様に、分解可能性を判断する(S1403,S1404)。すなわち、分解判断部52は、取得データの中の各データについて、そのデータが属するグループのデータ数をユーザ情報記憶部12から取得し、グループのデータ数が(m+k)以上であれば分解可能と判断する。なお、グループの処理の順序は問わない。
そして、特異点集合が属するグループ及び取得データが属する全てのグループについて分解可能であると判断されると、分解判断部52は、分解要求を分解部54に送信する(S1405)。
分解部54は、分解要求に応じて分解を実行し(S1406)、分解後のグループで匿名化を行うことにより生成される匿名化ユーザデータを匿名化ユーザ情報記憶部14に格納する(S1407)。また、分解部54は、分解結果を取得データ記憶部28に反映する(S1408)。
なお、匿名化ユーザ情報記憶部14への格納処理(S1407)と取得データ記憶部28への格納処理(S1408)の順序は任意である。また、汎化処理と分解処理の順序についても任意である。
ここで、分解処理の具体例を説明する。なお、以前の時刻に図2に示すユーザデータから図3に示す匿名化ユーザデータが生成されたこととする。また、取得データ記憶部28は図5に示す状態であることとする。そして、現在のユーザデータは図15に示す状態であることとする。
汎化処理を実行した汎化部30は、分解判断要求を分解判断部52に送信する(S1401)。
分解判断要求を受信した分解判断部52は、取得データ記憶部28を参照し、取得データ、算出式、及び特異点集合を確認する(S1402)。具体的には、分解判断部52は、まず、取得データのユーザ識別子「User005」、「User006」、算出式(式1)、特異点集合のユーザ識別子「User013」を取得する。分解判断部52は、ユーザ識別子「User013」が属するグループである、自宅最寄駅「東北沢」のグループの現在のデータ数「6」をユーザ情報記憶部12から取得する(S1403)。そして、分解判断部52は、特異点集合が属するグループのデータ数「6」と(m+k)の比較を行う。いま、kの値は4、式1により算出されるmの値は2である。したがって、特異点集合が属するグループのデータ数は(m+k)以上であり、分解判断部52は、特異点集合が属するグループについて、分解可能と判断する(S1404)。
さらに、分解判断部52は、取得データ「User005」、「User006」が属するグループである、自宅最寄駅「二子玉川」のグループのデータ数「6」をユーザ情報記憶部12から取得する(S1403)。分解判断部52は、このグループについてもデータ数が(m+k)以上であるため、分解可能と判断する(S1404)。同様に、取得データ「User011」、「User012」が属するグループである、自宅最寄駅「下北沢」のグループに対しても分解判断が行われる。
そして、分解判断部52は、ユーザ識別子「User013」が属するグループとともに汎化される対象となっていた全てのグループについて分解可能であると判断すると、分解要求を分解部54に送信する(S1405)。
分解部54は、分解要求に応じて分解を実行する(S1406)。具体的には、ユーザ識別子「User005」、「User006」、「User011」、「User012」、「User013」のユーザデータを「世田谷区」と汎化していたものを、ユーザ識別子「User005」、「User006」、「User011」、「User012」、「User013」、「User014」のユーザデータの自宅最寄駅を「世田谷区」と汎化し、ユーザ識別子「User015」、「User016」、「User017」、「User018」のユーザデータについては自宅最寄駅を「東北沢」とする。つまり、分解によって、新たに自宅最寄駅「東北沢」のグループが生成される。
このように、以前の時刻においては特異点集合であったグループについて、データ数の増加によって汎化の必要がなくなった場合にグループを分割することができる。すなわち、上述の具体例でいえば、自宅最寄駅「東北沢」のグループは、以前はデータ数が「1」であり特異点集合であったため、他のグループの取得データとともに自宅最寄駅「世田谷区」のグループとして汎化されていた。その後、自宅最寄駅「東北沢」のデータ数が増加したため、分割により、あらたに自宅最寄駅「東北沢」のグループが生成される。これにより、データの抽象度を下げてデータ量を多くすることが可能になる。なお、汎化により生成された、自宅最寄駅「世田谷区」のグループは残されるため、同一グループのデータ数の変化を把握することができる。(第4の実施形態) ==構成== 図16は、第4の実施形態における匿名化システムの構成を示す図である。第4の実施形態における匿名化装置60は、第1の実施形態の匿名化装置10が備える構成に加えて、汎化順序決定部62を備えている。
汎化順序決定部62は、ユーザ情報記憶部12に記憶されているユーザデータのユーザ情報に複数の項目(属性)がある場合に、汎化する項目の順序を決定する。なお、汎化する項目の順序の決定方法は任意である。例えば、ランダムでもよいし、項目のとりうる値が大きい順でもよい。
==動作==
匿名化装置60における匿名化処理の一例について説明する。図17は、本実施形態における匿名化処理の一例を示すメインのフローチャートである。
匿名化要求を受信した匿名化要求受付部22は、汎化部30に対して汎化要求を送信する。汎化要求を受信した汎化部30は、汎化順序決定部62に対して、汎化順序の決定要求を送信する。汎化順序の決定要求を受信した汎化順序決定部62は、ユーザ情報記憶部12を参照し、ユーザ情報の項目の汎化順序を決定する(S1701)。汎化順序が決定されると、処理対象として選択された、すなわち、汎化順序が1番目として選択された項目に対する匿名化処理が実行される(S1702)。その後、その他の項目に対する匿名化処理が実行される(S1703)。
図18は、処理対象として選択された項目に対する匿名化処理の一例を示すフローチャートである。
汎化要求を受信した汎化部30は、汎化ツリー記憶部20から処理対象の項目の汎化ツリーを取得する。汎化ツリーを取得した汎化部30は、汎化ツリーの中で、下位グループを持つノード全てに対してループ(1)の処理を行う。なお、下位グループを持つノードの処理順序は、よりルートから深い階層を優先して実行することとする。ただし、同じ深さの階層のノードがある場合の順序は任意である。
取得データ選択部26は、ノードに紐づく下位グループのデータ数をそれぞれ算出し(S1801)、ノードに紐づく下位グループ全てについてループ(2)の処理を行う。
取得データ選択部26は、取得データ記憶部28を参照し、前回の取得データを確認する(S1802)。前回の取得データの確認をした取得データ選択部26は、今回の汎化における取得データの数を算出する(S1803)。なお、取得データの数の算出方法は第1の実施形態と同様である。そして、取得データ選択部26は、取得データの数(m)とkの値の和(m+k)を閾値として汎化判定を行う(S1804)。
判定結果が負のグループについては、m個のデータが取得されるとk匿名性が満たされなくなるため、汎化部30は、判定結果が負になったグループの全てのデータを汎化する(S1805)。一方、判定結果が0以上のグループについては、m個のデータが取得されてもk匿名性が満たされるため、汎化部30は、グループ中のm個のデータだけを汎化する(S1806)。なお、取得データ記憶部28に前回の取得データが記憶されている場合は、その中から上位グループに所属させるデータが選択される。また、前回の汎化時よりも取得データの数が増えた場合は、新規に増加したデータの中から取得データが選択される。新規に増加したデータは以前の匿名化ユーザデータに含まれないため、統計情報への影響を少なくするためである。その後、取得データ選択部26は、取得データに関する情報を取得データ記憶部28に格納する(S1807)。
図19は、その他の項目に対する匿名化処理の一例を示すフローチャートである。まず、汎化順序決定部62は、汎化順序に従って、次に汎化する項目を検索し(S1901)、検索により取得された項目が未処理であるかどうか確認する(S1902)。未処理の項目がない場合は処理は終了する。未処理の項目がある場合、次の汎化処理の対象として選択された項目について、1つ前の項目で汎化処理後の汎化ツリーのノードに対して、ループ(3)の処理が実行される。すなわち、図17と同様に、選択された項目に対する匿名化処理(S1903)及びその他の属性に対する匿名化処理(S1904)が実行される。
ここで、匿名化処理の具体例を説明する。なお、図20に示すように、ユーザ情報には自宅最寄駅及び年齢の2つの項目が存在することとする。また、汎化ツリー記憶部20には、図21に示す汎化ツリーが記憶されていることとする。そして、データの遷移は「差分」に着眼する(すなわち、式2を用いる)とし、kの値は4とする。
匿名化要求を受信した匿名化要求受付部22は、汎化部30に対して汎化要求を送信する。汎化要求を受信した汎化部30は、汎化順序決定部62に対して、汎化順序の決定要求を送信する。汎化順序の決定要求を受信した汎化順序決定部62は、ユーザ情報記憶部12を参照し、ユーザ情報の項目の汎化順序を決定する(S1701)。ここでは、汎化順序として、1番目が「自宅最寄駅」、2番目が「年齢」と決定されたとする。
汎化順序決定部62は、汎化順序が1番に決定された「自宅最寄駅」の汎化要求を汎化部30に送信する(S1702)。
汎化要求を受信した汎化部30は、汎化ツリー記憶部20から「自宅最寄駅」の汎化ツリーを取得する。汎化ツリーを取得した汎化部30は、下位グループを持つノード「世田谷区」、「目黒区」、「東京23区」に対して、「世田谷区」、「目黒区」、「東京23区」の順にループ(1)の処理を行う。
取得データ選択部26は、ユーザ情報記憶部12を参照し、「世田谷区」に紐づく下位グループ「二子玉川」、「下北沢」、「東北沢」のデータ数をそれぞれ「6」、「6」、「1」と算出する(S1801)。そして、取得データ選択部26は、下位グループ「二子玉川」、「下北沢」、「東北沢」の各々についてループ(2)の処理を行う。
取得データ選択部26は、取得データ記憶部28を参照し、前回の取得データを確認する(S1802)。ここでは、前回の取得データがなかったため、取得データ選択部26は、新たに取得データの数(m)を算出する(S1803)。なお、k=4であるため、m=4/3=1.333となる。そして、取得データ選択部26は、m+k=5.333を閾値として汎化判定を行う(S1804)。具体的には、自宅最寄駅が「二子玉川」のグループのデータ数は「6」であるため、6−5.333>0と判定される。したがって、取得データ選択部26は、自宅最寄駅が「二子玉川」のグループからm=1.333を切り上げた「2」個の取得データを選択する。例えば、取得データ選択部26は、ユーザ識別子「User001」、「User002」の2個のデータを取得データとして選択する。そして、汎化部30は、選択された取得データの自宅最寄駅を「世田谷区」に汎化する(S1805)。また、取得データ選択部26は、取得データに関する情報を取得データ記憶部28に記憶する(S1807)。
同様の処理が、「下北沢」及び「東北沢」についても実施される。なお、自宅最寄駅が「東北沢」のグループはデータ数が「1」であるため、汎化判定(S1804)の結果が負となり、グループ内の全てのデータの自宅最寄駅が「世田谷区」に汎化される。
汎化順序が1番目の項目である自宅最寄駅の汎化終了後、汎化順序決定部62は、汎化順序が2番目の項目である「年齢」の汎化要求を汎化部30に送信する(S1703)。汎化順序決定部62は、汎化順序に従って、次に汎化する項目を「年齢」と決定する(S1901)。汎化順序決定部62は、項目「年齢」が未処理であるかどうか確認し(S1902)未処理の項目であるため、項目「年齢」に対してループ(3)の処理を起動する。これにより、「自宅最寄駅」の汎化後に、さらに「年齢」の汎化を行うことができる。また、さらにその他の項目が存在する場合には、その項目に対して再帰的に匿名化処理が起動されることとなる(S1904)。
このように、匿名化対象のユーザデータのユーザ情報に複数の項目が存在する場合においても、k匿名性が満たされるように匿名化することが可能である。
なお、図18に示した処理において取得データの数を算出する際に(S1803)、全ての親グループのデータ数がk個以上となるように取得データ数を算出することとしてもよい。
例えば、図21に示すように、汎化ツリーが複数階層となっている場合では、「世田谷区」および「目黒区」に対してループ(1)の処理が行われた後に、「東京23区」に対してループ(1)の処理が行われる。このとき、「世田谷区」および「目黒区」に対してループ(1)の処理が行われた段階では、「世田谷区」および「目黒区」のグループはk匿名性を満たした状態となる。この後、「東京23区」に対してループ(1)の処理が行われる際に、「世田谷区」および「目黒区」のグループからデータが取得されると、「世田谷区」または「目黒区」のグループがk匿名性を満たさなくなる可能性がある。この場合、k匿名性を満たさなくなってしまうグループは、全てのデータが「東京23区」に汎化されてしまうこととなる。そのため、「東京23区」に対してループ(1)の処理が行われる際に取得されるデータ数を加味したうえで、「世田谷区」および「目黒区」のデータ数を決定することとしてもよい。
また、同一階層の親グループが複数存在する場合には、各親グループにおいて、下位グループからの取得データ数の割合が等しくなるように取得データの数を調整することとしてもよい。例えば、図18に示す処理の代わりに、図22に示す処理を実行することが可能である。
図22に示す処理では、まず、取得データ選択部26は、ユーザ情報記憶部12に格納されているユーザデータを汎化ツリーにマッピングする(S2201)。なお、マッピングとは、ユーザデータの各々が汎化ツリーで定義されたグループのいずれに該当するかを確認することである。そして、取得データ選択部26は、同じ深さの親グループを検索する(S2202)。ここで、親グループとは、下位に紐づくグループを有するグループのことであり、図21に示す汎化ツリーの場合であれば、「世田谷区」と「目黒区」が同じ深さの親グループとなる。そして、取得データ選択部26は、各親グループについて、下位グループから取得する取得データ数(合計値)を算出する。
続いて、取得データ選択部26は、親グループ間における取得データ数の差を計算する(S2204)。そして、取得データ数の差が所定の閾値(T)未満であれば、親グループ間における、下位グループからの取得データ数のばらつきが小さいと判定される。この場合、当初算出された数の取得データが下位グループから取得されることとなる。そして、汎化部30は、算出された数の取得データを下位グループから取得し、上位グループへの汎化を実行する(S2205)。なお、同じ深さの親グループが3つ以上存在する場合、取得データ数の差は、例えば、取得データ数の最大値と最小値の差や、分散を用いることができる。
一方、取得データ数の差が所定の閾値(T)以上であれば、親グループ間における、下位グループからの取得データ数のばらつきが大きいと判定される。この場合、取得データ選択部26は、下位グループから取得する取得データの割合が等しくなるように、取得データ数を調整する(S2206)。ここで、取得データ数の調整は、例えば、上位グループに汎化するデータ数が最小となり、かつ、k匿名性が満たされるように行われる。なお、下位グループによっては、全データが取得データとして選択される可能性もある。そして、汎化部30は、調整された数の取得データを下位グループから取得し、上位グループへの汎化を実行する(S2207)。
なお、ある親グループに紐づく下位グループのデータが全て取得データとなる場合は、この親グループにおける取得データの割合は考慮しなくてもよい。また、取得データの割合を親グループ間で等しくするのではなく、グループごとに重みづけを行うこととしてもよい。例えば、グループ配下の情報の重要度や情報量を考慮して、取得データの割合を調整することができる。
具体的には、例えば、図21に示す汎化ツリーのようにグループが形成されており、「世田谷区」配下の情報の方が「目黒区」配下の情報よりも重要度が高い場合を想定する。このとき、「世田谷区」および「目黒区」の下位グループから取得する取得データの割合を調整する際に、情報の重要度を考慮することができる。例えば、「世田谷区」および「目黒区」において、取得データの割合を単純に等しくするのではなく、「世田谷区」の取得データの割合を「目黒区」の取得データの割合よりも低くすることができる。例えば、取得データの割合が等しくなるように調整すると、「世田谷区」の取得データの割合が、例えば、50%から80%に変更されてしまう場合、情報の重要度を考慮し、「世田谷区」の取得データの割合を80%よりも低くすることができる。すなわち、グループ配下の情報の重要度を考慮して、取得データの割合を調整することとしてもよい。
また、例えば、「世田谷区」の取得データの割合が50%、「目黒区」の取得データの割合が80%である場合、この割合で「世田谷区」および「目黒区」の汎化を行うと、「世田谷区」の下位グループのデータ数は汎化前の50%となり、「目黒区」の下位グループのデータ数は汎化前の20%となる。そのため、「世田谷区」の下位グループと「目黒区」の下位グループとの間で、汎化後に残るデータ数の割合に大きな差が生じてしまい、グループ間のデータ数の比較精度が低下してしまう。つまり、「目黒区」の下位グループは情報量が小さく、価値が低くなってしまう。そこで、例えば、「目黒区」の下位グループの全てのデータを「目黒区」に汎化することとしてもよい。すなわち、グループ配下の情報の情報量を考慮して、取得データの割合を調整することとしてもよい。
なお、本実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更/改良され得るととともに、本発明にはその等価物も含まれる。
この出願は、2011年1月5日に出願された日本出願特願2011−000754を基礎とする優先権を主張し、その開示の全てをここに取り込む。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
本実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)ユーザ情報を含むデータが記憶されたユーザ情報記憶部を参照し、複数のユーザの前記データを前記ユーザ情報に基づいてグルーピングすると所定の匿名性指標が満たされないグループである特異点グループを検出する特異点検出部と、前記特異点グループ以外の各グループからデータを取得して、前記特異点グループのデータとともに前記ユーザ情報を同一の値に汎化すると、全グループが前記匿名性指標を満たすように、前記匿名性指標に応じた所定規則に基づいて、各グループから取得するデータである取得データを選択する取得データ選択部と、前記特異点グループのデータと前記取得データとを、前記ユーザ情報を同一の値に汎化することにより匿名化データを生成し、前記特異点グループ以外の各グループの前記取得データ以外のデータとともに匿名化ユーザ情報記憶部に格納する汎化部と、を備える匿名化装置。
(付記2)付記1に記載の匿名化装置であって、前記取得データ選択部により選択された前記取得データを示す情報を記憶する取得データ記憶部をさらに備え、前記取得データ選択部は、前記取得データ記憶部を参照し、以前に選択された取得データが存在する場合は、該取得データを前記取得データとして選択する、匿名化装置。
(付記3)付記1または2に記載の匿名化装置であって、前記取得データ選択部は、前記所定規則に基づいて、各グループのデータ数に応じた数の前記取得データを各グループから選択する、匿名化装置。
(付記4)付記1または2に記載の匿名化装置であって、前記取得データ選択部は、前記所定規則に基づいて、前記グループの数に応じた数の前記取得データを各グループから選択する、匿名化装置。
(付記5)付記3または4に記載の匿名化装置であって、前記取得データ選択部は、前記特異点グループのデータと前記取得データとから前記匿名化データを生成しても前記匿名性指標が満たされない場合は、さらに、他のグループの全てのデータを取得データとして選択する、匿名化装置。
(付記6)付記3または4に記載の匿名化装置であって、前記取得データ選択部は、さらに、前記取得データが取得されると前記匿名性指標が満たされなくなるグループの全てのデータを取得データとして選択する、匿名化装置。
(付記7)付記1〜6の何れか一項に記載の匿名化装置であって、前記取得データ選択部は、前記匿名化データのユーザ情報の抽象度が最も低くなるように前記取得データを選択する、匿名化装置。
(付記8)付記1〜7の何れか一項に記載の匿名化装置であって、前記取得データ選択部は、前記特異点グループが存在しない場合であっても、前記所定規則に基づいて各グループから取得する取得データを選択し、前記汎化部は、前記取得データ選択部によって選択された取得データのユーザ情報を同一の値に汎化することにより匿名化データを生成し、前記取得データ以外のデータとともに前記匿名化ユーザ情報記憶部に格納する、匿名化装置。
(付記9)付記1〜8の何れか一項に記載の匿名化装置であって、前記ユーザ情報記憶部を参照し、前記特異点グループであったグループのデータ数が前記匿名性指標を満たす数以上増加している場合は、該増加したデータはユーザ情報の値を汎化せずに前記匿名化ユーザ情報記憶部に格納する分割部をさらに備える、匿名化装置。
(付記10)付記1〜9の何れか一項に記載の匿名化装置であって、前記ユーザ情報が複数の項目を有する場合、該複数の項目について汎化を行う順序を決定する汎化順序決定部をさらに備え、前記特異点検出部、前記取得データ選択部、及び前記汎化部は、前記汎化順序決定部によって決定された順序にしたがって、汎化対象となる項目を順に選択し、選択された項目に対して、特異点グループの検出、取得データの選択、及び汎化を行う、匿名化装置。
10 匿名化装置
12 ユーザ情報記憶部
14 匿名化ユーザ情報記憶部
20 汎化ツリー記憶部
22 匿名化要求受付部
24 特異点集合検索部
26 取得データ選択部
28 取得データ記憶部
30 汎化部

Claims (10)

  1. ユーザ情報を含むデータが記憶されたユーザ情報記憶部を参照し、複数のユーザの前記データを前記ユーザ情報に基づいてグルーピングすると所定の匿名性指標が満たされないグループである特異点グループを検出する特異点検出部と、
    前記特異点グループ以外の各グループからデータを取得して、前記特異点グループのデータとともに前記ユーザ情報を同一の値に汎化すると、全グループが前記匿名性指標を満たすように、前記匿名性指標に応じた所定規則に基づいて、各グループから取得するデータである取得データを選択する取得データ選択部と、
    前記特異点グループのデータと前記取得データとを、前記ユーザ情報を同一の値に汎化することにより匿名化データを生成し、前記特異点グループ以外の各グループの前記取得データ以外のデータとともに匿名化ユーザ情報記憶部に格納する汎化部と、
    を備える匿名化装置。
  2. 請求項1に記載の匿名化装置であって、
    前記取得データ選択部により選択された前記取得データを示す情報を記憶する取得データ記憶部をさらに備え、
    前記取得データ選択部は、前記取得データ記憶部を参照し、以前に選択された取得データが存在する場合は、該取得データを前記取得データとして選択する、
    匿名化装置。
  3. 請求項1または2に記載の匿名化装置であって、
    前記取得データ選択部は、前記所定規則に基づいて、各グループのデータ数に応じた数の前記取得データを各グループから選択する、
    匿名化装置。
  4. 請求項1または2に記載の匿名化装置であって、
    前記取得データ選択部は、前記所定規則に基づいて、前記グループの数に応じた数の前記取得データを各グループから選択する、
    匿名化装置。
  5. 請求項3または4に記載の匿名化装置であって、
    前記取得データ選択部は、前記特異点グループのデータと前記取得データとから前記匿名化データを生成しても前記匿名性指標が満たされない場合は、さらに、他のグループの全てのデータを取得データとして選択する、
    匿名化装置。
  6. 請求項3または4に記載の匿名化装置であって、
    前記取得データ選択部は、さらに、前記取得データが取得されると前記匿名性指標が満たされなくなるグループの全てのデータを取得データとして選択する、
    匿名化装置。
  7. 請求項1〜6の何れか一項に記載の匿名化装置であって、
    前記取得データ選択部は、前記匿名化データのユーザ情報の抽象度が最も低くなるように前記取得データを選択する、
    匿名化装置。
  8. 請求項1〜7の何れか一項に記載の匿名化装置であって、
    前記取得データ選択部は、前記特異点グループが存在しない場合であっても、前記所定規則に基づいて各グループから取得する取得データを選択し、
    前記汎化部は、前記取得データ選択部によって選択された取得データのユーザ情報を同一の値に汎化することにより匿名化データを生成し、前記取得データ以外のデータとともに前記匿名化ユーザ情報記憶部に格納する、
    匿名化装置。
  9. 請求項1〜8の何れか一項に記載の匿名化装置であって、
    前記ユーザ情報記憶部を参照し、前記特異点グループであったグループのデータ数が前記匿名性指標を満たす数以上増加している場合は、該増加したデータはユーザ情報の値を汎化せずに前記匿名化ユーザ情報記憶部に格納する分割部をさらに備える、
    匿名化装置。
  10. 請求項1〜9の何れか一項に記載の匿名化装置であって、
    前記ユーザ情報が複数の項目を有する場合、該複数の項目について汎化を行う順序を決定する汎化順序決定部をさらに備え、
    前記特異点検出部、前記取得データ選択部、及び前記汎化部は、前記汎化順序決定部によって決定された順序にしたがって、汎化対象となる項目を順に選択し、選択された項目に対して、特異点グループの検出、取得データの選択、及び汎化を行う、
    匿名化装置。
JP2012551795A 2011-01-05 2011-11-15 匿名化装置 Active JP5288066B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012551795A JP5288066B2 (ja) 2011-01-05 2011-11-15 匿名化装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011000754 2011-01-05
JP2011000754 2011-01-05
JP2012551795A JP5288066B2 (ja) 2011-01-05 2011-11-15 匿名化装置
PCT/JP2011/076271 WO2012093522A1 (ja) 2011-01-05 2011-11-15 匿名化装置

Publications (2)

Publication Number Publication Date
JP5288066B2 JP5288066B2 (ja) 2013-09-11
JPWO2012093522A1 true JPWO2012093522A1 (ja) 2014-06-09

Family

ID=46457385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012551795A Active JP5288066B2 (ja) 2011-01-05 2011-11-15 匿名化装置

Country Status (4)

Country Link
US (1) US9076010B2 (ja)
JP (1) JP5288066B2 (ja)
CA (1) CA2815815C (ja)
WO (1) WO2012093522A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014073370A1 (ja) * 2012-11-12 2014-05-15 ソニー株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
JPWO2014185043A1 (ja) * 2013-05-15 2017-02-23 日本電気株式会社 情報処理装置、情報匿名化方法、及び、プログラム
JP6435978B2 (ja) * 2015-04-21 2018-12-12 トヨタ自動車株式会社 位置情報匿名化方法、移動情報匿名化方法、および装置
JP6409185B2 (ja) * 2016-01-06 2018-10-24 国際航業株式会社 個別基礎情報秘匿化プログラム、及び個別基礎情報秘匿化装置
BR112019005438A2 (pt) * 2016-09-21 2019-06-18 Mastercard International Inc método e sistema de dupla anonimização de dados
US10318763B2 (en) 2016-12-20 2019-06-11 Privacy Analytics Inc. Smart de-identification using date jittering
US10460115B2 (en) 2017-05-15 2019-10-29 International Business Machines Corporation Data anonymity
US10565399B2 (en) * 2017-10-26 2020-02-18 Sap Se Bottom up data anonymization in an in-memory database
US11907941B2 (en) 2018-01-04 2024-02-20 Micro Focus Llc Anonymization of data fields in transactions
US10810324B2 (en) * 2018-04-20 2020-10-20 At&T Intellectual Property I, L.P. Methods, systems and algorithms for providing anonymization
JP7168076B2 (ja) * 2019-05-21 2022-11-09 日本電信電話株式会社 情報処理装置、情報処理方法及びプログラム
JP7377664B2 (ja) * 2019-10-01 2023-11-10 株式会社日立製作所 データベース管理システム、および、データベース処理方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002084531A2 (en) * 2001-04-10 2002-10-24 Univ Carnegie Mellon Systems and methods for deidentifying entries in a data source
JP4956455B2 (ja) 2008-01-29 2012-06-20 株式会社日立製作所 情報管理装置、プログラム及び情報管理方法。
US8316054B2 (en) * 2008-09-22 2012-11-20 University Of Ottawa Re-identification risk in de-identified databases containing personal information
US8627483B2 (en) * 2008-12-18 2014-01-07 Accenture Global Services Limited Data anonymization based on guessing anonymity
CA2690788C (en) * 2009-06-25 2018-04-24 University Of Ottawa System and method for optimizing the de-identification of datasets
CN102473227B (zh) * 2009-07-31 2015-06-24 日本电气株式会社 信息管理设备、信息管理方法和信息管理程序
US20110113049A1 (en) * 2009-11-09 2011-05-12 International Business Machines Corporation Anonymization of Unstructured Data
US8682910B2 (en) * 2010-08-03 2014-03-25 Accenture Global Services Limited Database anonymization for use in testing database-centric applications

Also Published As

Publication number Publication date
US9076010B2 (en) 2015-07-07
WO2012093522A1 (ja) 2012-07-12
CA2815815A1 (en) 2012-07-12
US20140380498A1 (en) 2014-12-25
CA2815815C (en) 2015-05-12
JP5288066B2 (ja) 2013-09-11

Similar Documents

Publication Publication Date Title
JP5288066B2 (ja) 匿名化装置
US8676951B2 (en) Traffic reduction method for distributed key-value store
Meliou et al. Tracing data errors with view-conditioned causality
Dong et al. Data fusion: resolving conflicts from multiple sources
US20080140637A1 (en) Environment taxonomy
CN109983467B (zh) 用于匿名化数据集的系统和方法
Zakerzadeh et al. Delay-sensitive approaches for anonymizing numerical streaming data
US20170147652A1 (en) Search servers, end devices, and search methods for use in a distributed network
Xu et al. From latency, through outbreak, to decline: detecting different states of emergency events using web resources
Hidiroglou et al. Stratification of skewed populations: a comparison of optimisation‐based versus approximate methods
Zhang et al. A method for multi-attribute decision making applying soft rough sets
US11550792B2 (en) Systems and methods for joining datasets
KR101243056B1 (ko) 개체 식별 결과 검색 시스템 및 방법
KR101614890B1 (ko) 멀티 테넌시 이력 생성 방법, 이를 수행하는 멀티 테넌시 이력 생성 서버 및 이를 저장하는 기록매체
KR20160050930A (ko) 대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체
Liu et al. Parallelizing uncertain skyline computation against n‐of‐N data streaming model
Cai et al. A clustering-based privacy-preserving method for uncertain trajectory data
KR20190129474A (ko) 데이터 검색 장치 및 방법
KR20140135100A (ko) 시맨틱 매쉬업 기술을 이용한 프로그램 제공 방법
Lee et al. Fast mining of spatial frequent wordset from social database
Sakai et al. Division charts as granules and their merging algorithm for rule generation in nondeterministic data
KR20130076348A (ko) Foaf 데이터 관리 방법 및 장치
US9244921B2 (en) Altering relevancy of a document and/or a search query
US20160162572A1 (en) Alerting system based on newly disambiguated features
US20240137427A1 (en) Superposition-based content serving

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130520

R150 Certificate of patent or registration of utility model

Ref document number: 5288066

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150