(57)【要約】  グループ間のデータ数の比較を可能とする。ユーザ情報を含むデータが記憶されたユーザ情報記憶部を参照し、複数のユーザのデータをユーザ情報に基づいてグルーピングすると所定の匿名性指標が満たされないグループである特異点グループを検出し、特異点グループ以外の各グループからデータを取得して、特異点グループのデータとともにユーザ情報を同一の値に汎化すると、全グループが匿名性指標を満たすように、匿名性指標に応じた所定規則に基づいて、各グループから取得するデータである取得データを選択し、特異点グループのデータと取得データとを、ユーザ情報を同一の値に汎化することにより匿名化データを生成し、特異点グループ以外の各グループの取得データ以外のデータとともに匿名化ユーザ情報記憶部に格納する。
2012093522.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ情報を含むデータが記憶されたユーザ情報記憶部を参照し、複数のユーザの前記データを前記ユーザ情報に基づいてグルーピングすると所定の匿名性指標が満たされないグループである特異点グループを検出する特異点検出部と、
前記特異点グループ以外の各グループからデータを取得して、前記特異点グループのデータとともに前記ユーザ情報を同一の値に汎化すると、全グループが前記匿名性指標を満たすように、前記匿名性指標に応じた所定規則に基づいて、各グループから取得するデータである取得データを選択する取得データ選択部と、
前記特異点グループのデータと前記取得データとを、前記ユーザ情報を同一の値に汎化することにより匿名化データを生成し、前記特異点グループ以外の各グループの前記取得データ以外のデータとともに匿名化ユーザ情報記憶部に格納する汎化部と、
を備える匿名化装置。
【請求項２】
請求項１に記載の匿名化装置であって、
前記取得データ選択部により選択された前記取得データを示す情報を記憶する取得データ記憶部をさらに備え、
前記取得データ選択部は、前記取得データ記憶部を参照し、以前に選択された取得データが存在する場合は、該取得データを前記取得データとして選択する、
匿名化装置。
【請求項３】
請求項１または２に記載の匿名化装置であって、
前記取得データ選択部は、前記所定規則に基づいて、各グループのデータ数に応じた数の前記取得データを各グループから選択する、
匿名化装置。
【請求項４】
請求項１または２に記載の匿名化装置であって、
前記取得データ選択部は、前記所定規則に基づいて、前記グループの数に応じた数の前記取得データを各グループから選択する、
匿名化装置。
【請求項５】
請求項３または４に記載の匿名化装置であって、
前記取得データ選択部は、前記特異点グループのデータと前記取得データとから前記匿名化データを生成しても前記匿名性指標が満たされない場合は、さらに、他のグループの全てのデータを取得データとして選択する、
匿名化装置。
【請求項６】
請求項３または４に記載の匿名化装置であって、
前記取得データ選択部は、さらに、前記取得データが取得されると前記匿名性指標が満たされなくなるグループの全てのデータを取得データとして選択する、
匿名化装置。
【請求項７】
請求項１〜６の何れか一項に記載の匿名化装置であって、
前記取得データ選択部は、前記匿名化データのユーザ情報の抽象度が最も低くなるように前記取得データを選択する、
匿名化装置。
【請求項８】
請求項１〜７の何れか一項に記載の匿名化装置であって、
前記取得データ選択部は、前記特異点グループが存在しない場合であっても、前記所定規則に基づいて各グループから取得する取得データを選択し、
前記汎化部は、前記取得データ選択部によって選択された取得データのユーザ情報を同一の値に汎化することにより匿名化データを生成し、前記取得データ以外のデータとともに前記匿名化ユーザ情報記憶部に格納する、
匿名化装置。
【請求項９】
請求項１〜８の何れか一項に記載の匿名化装置であって、
前記ユーザ情報記憶部を参照し、前記特異点グループであったグループのデータ数が前記匿名性指標を満たす数以上増加している場合は、該増加したデータはユーザ情報の値を汎化せずに前記匿名化ユーザ情報記憶部に格納する分割部をさらに備える、
匿名化装置。
【請求項１０】
請求項１〜９の何れか一項に記載の匿名化装置であって、
前記ユーザ情報が複数の項目を有する場合、該複数の項目について汎化を行う順序を決定する汎化順序決定部をさらに備え、
前記特異点検出部、前記取得データ選択部、及び前記汎化部は、前記汎化順序決定部によって決定された順序にしたがって、汎化対象となる項目を順に選択し、選択された項目に対して、特異点グループの検出、取得データの選択、及び汎化を行う、
匿名化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、匿名化装置に関する。
【背景技術】
【０００２】
近年、個人情報の保護に対する関心が高まるにつれて、様々なプライバシー技術が研究されている。【０００３】
例えば、非特許文献１には、ｋ匿名性を満たすように匿名化を行う手法が開示されている。なお、ｋ匿名性とは、データテーブル中の各タプルにおいて、そのタプルの持つデータ値情報（各属性値の組合せ）と同じデータ値情報をもつタプルが自分自身を含めてｋ個以上存在する状態のことをいう。【０００４】
また、非特許文献２には、匿名化のためのローカルリコーディング（Local Recoding）という手法が開示されている。ローカルリコーディングとは、例えば年齢を５歳刻みで表示していたのを、一部分だけより粗く１０歳刻みで表示する等、特定のデータについてのみカテゴリーを粗くすることである。【０００５】
また、非特許文献３にも、ローカルリコーディングを用いた匿名化手法が開示されている。非特許文献３に開示された手法では、ｋ匿名性のｋを満たさない集合Ｇに対して、Ｇ∪Ｇ’がｋを満たし、かつ最小となるような他の集合Ｇ’を１つ探してＧとＧ’をマージすることが行われる。もし、ＧとＧ’とのマージ後の集合のデータ数が２ｋ以上になった場合は、マージ後の集合が２つに分割される。【０００６】
また、特許文献１には、個人情報の数が予め定められた数以上である集合に対して、個人情報の変更が生じた際に、変更後の個人情報が安全か否かを識別するための手法が開示されている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】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
【特許文献】
【０００８】
【特許文献１】特開２００９−１８１２０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、非特許文献１に開示された手法では、ｋ匿名性を保つために特異点集合は切り落される。なお、特異点集合とは、データ数が少ないために、匿名化を行ってもｋ匿名性が満たされない集合である。たしかに、切り落としを行うことでｋ匿名性を保つことは可能であるが、切り落とされた集合が統計情報に反映されないため、正確な統計情報を扱うことができない。また、特異点集合は切り落とされてしまうため、特異点集合に属するユーザに対して広告等の情報を配信を行うことができない。【００１０】
また、非特許文献２に開示された手法では、特異点集合が所属するグループの抽象度が高くされる。しかし、抽象度を高くしてもｋ匿名性が満たされない場合は、データセット全体が「不明」（unknown）となり、データ歪曲度が大きくなってしまう。【００１１】
また、非特許文献３に開示された手法では、マージ後のグループのデータ数がｋ匿名性を満たし、かつ最小になるように、特異点集合と一緒にマージする１つのグループが選択される。これにより、データ歪曲度を最小にすることができるが、データセット内の各グループのデータ数の大小関係や比率を把握することができない。また、グループのデータ数の時系列での変化を追うこともできない。【００１２】
例えば、あるサービスの加入者のうち、時刻ｔ０では東京に住んでいる人が１００人、海外に住んでいる人が５人、時刻ｔ１では東京に住んでいる人が２００人、海外に住んでいる人が８人であるとする。ここで、ｋ匿名性のｋの値を１０として、非特許文献３による匿名化の手法を説明する。【００１３】
まず、時刻ｔ０では、海外に住んでいる人のグループがｋ匿名性を満たしていないので、東京に住んでいる人のグループから５人分のデータを海外に住んでいる人のグループにマージして汎化が行われる。また、時刻ｔ１では、東京に住んでいる人のグループから２人分のデータを海外に住んでいる人のグループにマージして汎化が行われる。これにより、海外に住んでいる人と一緒に汎化される東京に住んでいる人のデータ数が最小となり、データ歪曲の度合いを最小にすることができる。【００１４】
しかし、時刻ｔ０と時刻ｔ１での東京に住んでいる人や海外に住んでいる人の増加量を把握することができない。具体的には、東京に住んでいる人のグループからは、海外に住んでいる人のグループの汎化のために時刻ｔ０では５人分のデータが利用され、時刻ｔ１では２人分のデータが利用されている。そのため、実際には、東京に住んでいる人は１００人増加して海外に住んでいる人は３人増加したのにも関わらず、東京に住んでいる人は１０３人増加、海外に住んでいる人は増加なしとなってしまう。【００１５】
また、特許文献１に開示されている手法では、同じレコード値をもつデータがある一定個数以上あった場合に「安全」と判定しているが、一定個数以上なかった場合の対応方法については考慮されていない。【００１６】
本発明はこのような事情に鑑みてなされたものであり、特異点集合を含むデータを匿名化する際に、グループ間のデータ数の比較を可能とすることを目的とする。
【課題を解決するための手段】
【００１７】
本発明の一側面に係る匿名化装置は、ユーザ情報を含むデータが記憶されたユーザ情報記憶部を参照し、複数のユーザのデータをユーザ情報に基づいてグルーピングすると所定の匿名性指標が満たされないグループである特異点グループを検出する特異点検出部と、特異点グループ以外の各グループからデータを取得して、特異点グループのデータとともにユーザ情報を同一の値に汎化すると、全グループが匿名性指標を満たすように、匿名性指標に応じた所定規則に基づいて、各グループから取得するデータである取得データを選択する取得データ選択部と、特異点グループのデータと取得データとを、ユーザ情報を同一の値に汎化することにより匿名化データを生成し、特異点グループ以外の各グループの取得データ以外のデータとともに匿名化ユーザ情報記憶部に格納する汎化部と、を備える。【００１８】
なお、本発明において、「部」とは、単に物理的手段を意味するものではなく、その「部」が有する機能をソフトウェアによって実現する場合も含む。また、１つの「部」や装置が有する機能が２つ以上の物理的手段や装置により実現されても、２つ以上の「部」や装置の機能が１つの物理的手段や装置により実現されても良い。
【発明の効果】
【００１９】
本発明によれば、特異点集合を含むデータを匿名化する際に、グループ間のデータ数の比較が可能となる。
【図面の簡単な説明】
【００２０】
【図１】第１の実施形態における匿名化システムの構成を示す図である。
【図２】ユーザデータの一例を示す図である。
【図３】匿名化ユーザデータの一例を示す図である。
【図４】汎化ツリーの一例を示す図である。
【図５】取得データ記憶部に記憶されるデータの一例を示す図である。
【図６】匿名化処理の一例を示すシーケンス図である。
【図７】匿名化処理の一例を示すフローチャートである。
【図８】匿名化処理の一例を示すフローチャートである。
【図９】第２の実施形態における匿名化システムの構成を示す図である。
【図１０】汎化ツリーの一例を示す図である。
【図１１】匿名化処理の一例を示すシーケンス図である。
【図１２】ユーザデータの一例を示す図である。
【図１３】第３の実施形態における匿名化システムの構成を示す図である。
【図１４】匿名化処理の一例を示すシーケンス図である。
【図１５】ユーザデータの一例を示す図である。
【図１６】第４の実施形態における匿名化システムの構成を示す図である。
【図１７】匿名化処理の一例を示すメインのフローチャートである。
【図１８】処理対象として選択された項目に対する匿名化処理の一例を示すフローチャートである。
【図１９】その他の項目に対する匿名化処理の一例を示すフローチャートである。
【図２０】ユーザデータの一例を示す図である。
【図２１】汎化ツリーの一例を示す図である。
【図２２】匿名化処理の変形例を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本発明の一実施形態について説明する。
【００２２】
（第１の実施形態）
＝＝構成＝＝
図１は、第１の実施形態における匿名化システムの構成を示す図である。匿名化システムは、匿名化装置１０、ユーザ情報記憶部１２、及び匿名化ユーザ情報記憶部１４を含んで構成されている。
【００２３】
匿名化装置１０は、所定の匿名性指標が満たされるようにユーザ情報の匿名化を行う情報処理装置であり、例えば、ＣＰＵやメモリ、記憶装置を有するサーバを用いて構成されている。匿名化装置１０は、複数台の情報処理装置を用いて構成されていてもよい。ここで、匿名化の対象となるユーザ情報とは、例えばクレジットカード会社が保有する氏名・年齢・住所・年収・延滞履歴等の情報である。なお、本実施形態では、所定の匿名性指標としてｋ匿名性が用いられることとする。ｋ匿名性とは、匿名化対象の情報が同一のデータをグルーピングした際に、いずれのグループについてもデータ数がｋ個以上となることを保証するものである。
【００２４】
図１に示すように、匿名化装置１０は、ユーザ情報記憶部１２及び匿名化ユーザ情報記憶部１４と通信可能に接続されている。なお、ユーザ情報記憶部１２及び匿名化ユーザ情報記憶部１４を匿名化装置１０が備えることとしてもよい。
【００２５】
ユーザ情報記憶部１２には、ユーザ識別子及びユーザ情報を含むユーザデータが記憶されている。図２は、ユーザ情報記憶部１２に記憶されるユーザデータの一例を示している。図２の例では、ユーザ情報の項目として自宅最寄駅が設けられている。例えば、ユーザ識別子「Ｕｓｅｒ００１」のユーザは、自宅最寄駅が「二子玉川」であることが示されている。なお、ユーザ情報の項目数は１つに限られず、２つ以上であってもよい。
【００２６】
匿名化ユーザ情報記憶部１４には、ユーザ情報記憶部１２に記憶されたユーザデータを匿名化したデータである匿名化ユーザデータが記憶される。図３は、匿名化ユーザ情報記憶部１４に記憶される匿名化ユーザデータの一例を示している。図３の例では、匿名化ユーザデータには、ユーザ識別子及び自宅最寄駅に加えて、保存日時の項目が設けられている。図３の例では、ユーザ識別子には、元のユーザデータのユーザ識別子がそのまま設定されている。そして、自宅最寄駅には、ｋ匿名性を満たすように、ユーザデータの自宅最寄駅を必要に応じて汎化した情報が設定されている。
【００２７】
例えば、所定の匿名性指標をｋ匿名性（ｋ＝４）とする。図２に示したユーザデータを自宅最寄駅でグルーピングすると、ユーザ識別子「Ｕｓｅｒ０１３」のグループは、データ数が１個となってしまい、ｋ匿名性が満たされなくなってしまう。そのため、図３に示す例では、ユーザ識別子「Ｕｓｅｒ００５」、「Ｕｓｅｒ００６」、「Ｕｓｅｒ０１１」、「Ｕｓｅｒ０１２」、「Ｕｓｅｒ０１３」のユーザデータが１つのグループとされ、自宅最寄駅「二子玉川」及び「東北沢」が汎化されて「世田谷区」となっている。
【００２８】
なお、匿名化ユーザデータには、ユーザ識別子や保存日時の項目が無くてもよい。また、ユーザ識別子自体が秘匿性の高い情報である場合は、ユーザ識別子の代わりに、データ（レコード）を識別するためのデータ識別子が匿名化ユーザデータに含まれることとしてもよい。
【００２９】
図１に戻り、匿名化装置１０は、汎化ツリー記憶部２０、匿名化要求受付部２２、特異点集合検索部２４、取得データ選択部２６、取得データ記憶部２８、及び汎化部３０を含んで構成されている。なお、汎化ツリー記憶部２０及び取得データ記憶部２８は、例えば、メモリや記憶装置等の記憶領域を用いて実現することができる。また、匿名化要求受付部２２、特異点集合検索部２４、取得データ選択部２６、及び汎化部３０は、例えば、メモリに記憶されたプログラムをＣＰＵが実行することにより実現することができる。
【００３０】
汎化ツリー記憶部２０は、ユーザ情報の汎化規則を記憶している。本実施形態では、汎化ツリー記憶部２０には、データセットのデータが所属するグループの木構造が記憶されている。図４は、汎化ツリー記憶部２０が記憶している汎化ツリーの一例を示している。図４の例では、「二子玉川」、「下北沢」、「東北沢」の上位グループが「世田谷区」であることが示されている。この汎化ツリーは、匿名化装置２０においてユーザ情報の汎化が行われる際に用いられる。なお、汎化ツリーは複数種類記憶されていてもよい。
【００３１】
匿名化要求受付部２２は、ユーザ情報記憶部１２に記憶されているユーザデータの匿名化要求を受け付ける。なお、匿名化要求は、匿名化装置１０の外部から入力されることとしてもよいし、匿名化装置１０が備える入力装置を介して入力されることとしてもよい。匿名化要求受付部２２は、匿名化要求を受け付けると、特異点集合検索部２４に対して特異点集合の検索要求を送信する。
【００３２】
特異点集合検索部２４は、ユーザ情報記憶部１２に記憶されているユーザデータに含まれる特異点集合（特異点グループ）を検索する。ここで、特異点集合とは、ユーザ情報が同一のデータをグルーピングした際に、グループのデータ数がｋ個未満となるデータ集合である。具体的には、特異点集合検索部２４は、汎化ツリー記憶部２０に記憶されている汎化ツリーを取得し、取得した汎化ツリーに基づいてユーザ情報記憶部２に記憶されているユーザデータをグループ毎に分類し、グループのデータの数が、ある一定の値以下のグループである特異点集合を検索する。そして、特異点集合の検索結果は、取得データ選択部２６へ送信される。
【００３３】
取得データ選択部２６は、特異点集合検索部２４で検索された特異点集合と一緒に上位グループに所属させるためのデータを選択する。具体的には、取得データ選択部２６は、ユーザ情報記憶部１２から、各グループのデータ数を取得し、特異点集合を上位グループに所属させるために必要なデータ数をグループ毎に計算する。ここで、特異点集合を上位グループに所属させるために必要なデータ数とは、特異点集合とともにユーザ情報を汎化ツリーに基づいて汎化することにより匿名性指標が満たされるようにするために必要なデータ数である。取得データ選択部２６は、各グループから取得するデータを選択し、取得データ記憶部２８へ記憶する。その後、取得データ選択部２６は、汎化部３０に対して汎化の実行を要求する。
【００３４】
ここで、特異点集合を上位グループに所属させるために必要なデータ数（ｍ）の計算式として、例えば、以下の式１または式２を用いることができる。
【００３５】
ｍ＝（ｋ／全グループのデータの総数）×各グループのデータ数  ・・・  （式１）
ｍ＝ｋ／グループの数  ・・・  （式２）
なお、計算結果が整数ではない場合、四捨五入、切り上げ、切り捨て等の丸め処理が行われることとしてもよい。ただし、丸め処理が行われた場合、取得データ選択部２６は、特異点集合がｋ匿名性を満たさなくならないように調整することとする。
【００３６】
取得データ記憶部２８には、取得データ選択部２６によって選択されたデータを示す情報が記憶される。具体的には、図５に示すように、取得データ記憶部２８に記憶されるデータには、データ利用者識別子、取得データ識別子、算出式、汎化先、及び特異点集合識別子の項目が設けられている。ここで、データ利用者識別子は、匿名化装置１０を利用する利用者を識別するための識別子である。また、取得データ識別子には、ユーザ情報記憶部１２に記憶されているユーザデータを識別可能な情報が設定される。例えば、取得データ識別子には、取得データのユーザ識別子を設定することができる。また、算出式には、取得データ選択部２６で取得データを選択する際に用いた式を示す情報が設定される。汎化先には、特異点集合検索部２４で検索された特異点集合のデータと取得データが新しく所属する上位のグループを示す情報が設定される。特異点集合識別子には、取得データとともに汎化された特異点集合を識別可能な情報が設定される。例えば、特異点集合識別子には、特異点集合に含まれるデータのユーザ識別子を設定することができる。例えば、図５の例では、データ利用者識別子「ＴｏｋｕｍｅｉＵｓｅｒ００１」のデータ利用者からの匿名化要求に対して、式１を計算することにより、ユーザ識別子「Ｕｓｅｒ００５」、「Ｕｓｅｒ００６」のユーザデータが取得データとして選択されたことが示されている。また、特異点集合のデータと取得データが新しく所属する上位グループが「世田谷区」であることが示されている。また、ユーザ識別子「Ｕｓｅｒ００５」、「Ｕｓｅｒ００６」のユーザデータが、ユーザ識別子「Ｕｓｅｒ０１３」のユーザデータを含む特異点集合とともに汎化されたことが示されている。
【００３７】
汎化部３０は、取得データ選択部２６で選択されたデータと特異点集合検索部２４で検索されたデータをマージし、ユーザ情報を汎化する。そして、汎化部３０は、その他のグループのユーザデータも含んだ匿名化ユーザデータを匿名化ユーザ情報記憶部１４に格納する。
【００３８】
＝＝動作＝＝
匿名化装置１０における匿名化処理の一例について説明する。図６は、本実施形態における匿名化処理の一例を示すシーケンス図である。
【００３９】
まず、匿名化要求受付部２２は、匿名化データ利用者から匿名化の要求を受け付けると、特異点集合検索部２４に対してデータ利用者識別子と共に汎化要求を送信する（Ｓ６０１）。
【００４０】
汎化要求を受信した特異点集合検索部２４は、汎化ツリー記憶部２０から汎化ツリーを取得する（Ｓ６０２）。そして、特異点集合検索部２４は、ユーザ情報記憶部１２を参照し、特異点集合を検索する（Ｓ６０３）。特異点集合を検出した特異点集合検索部２４は、取得データ選択部２６に対して取得データ選択要求を送信する（Ｓ６０４）。
【００４１】
取得データ選択要求を受信した取得データ選択部２６は、ユーザ情報記憶部１２を参照し、ユーザデータが所属する各グループのデータ数とグループ数を取得する（Ｓ６０５）。各グループ毎のデータ数とグループ数を取得すると、取得データ選択部２６は、取得データ記憶部２８から、過去の取得データを取得する（Ｓ６０６）。また、取得データ選択部２６は、特異点集合のユーザデータとともに汎化するために各グループから取得すべきデータの数を算出する（Ｓ６０７）。なお、データ数の計算式は、取得データ記憶部２８に過去に用いられた計算式が記憶されている場合はその計算式が用いられる。データ数が算出されると、取得データ選択部２６は、汎化に用いるデータを選択する（Ｓ６０８）。そして、取得データ選択部２６は、新たに選択された取得データに関する情報を取得データ記憶部２８に格納し（Ｓ６０９）、汎化部３０に対して汎化処理の実行要求を送信する（Ｓ６１０）。
【００４２】
汎化処理の実行要求を受信すると、汎化部３０は、汎化ツリー記憶部２０から汎化ツリーを取得する（Ｓ６１１）。そして、汎化部３０は、特異点集合のユーザデータと、取得データ選択部２６によって選択されたユーザデータとをマージしてユーザ情報を汎化することにより、匿名化ユーザデータを生成する（Ｓ６１２）。汎化処理の完了後、汎化部３０は、汎化されたグループ以外のグループも含んだ匿名化ユーザデータを匿名化ユーザ情報記憶部１４に格納する（Ｓ６１３）。
【００４３】
なお、特異点集合が存在しない場合であっても、取得データ選択部２６が、各グループから取得する取得データを選択し、汎化部３０が、取得データをマージしてユーザ情報を汎化することにより匿名化ユーザデータを生成することも可能である。つまり、特異点集合が存在しない場合であっても、特異点集合の発生にそなえ、あらかじめ匿名化ユーザデータを生成しておくことができる。その後に発生する特異点集合は、この匿名化ユーザデータとマージして汎化することができる。
【００４４】
ここで、匿名化処理の具体例を説明する。なお、以下の説明では、ユーザ情報記憶部１２には図２に示すユーザデータが格納され、汎化ツリー記憶部２０には図４に示す汎化ツリーが格納されていることとする。また、ｋ匿名性のｋの値は４とする。
【００４５】
まず、匿名化要求受付部２２は、匿名化データ利用者から匿名化要求を受け付けると、特異点集合検索部２４に対してデータ利用者識別子「ＴｏｋｕｍｅｉＵｓｅｒ００１」と共に汎化要求を送信する（Ｓ６０１）。
【００４６】
特異点集合検索部２４は、汎化ツリー記憶部２０から汎化ツリーを取得する（Ｓ６０２）。図４に示すように、汎化ツリーは、親が「世田谷区」で子に「二子玉川」、「下北沢」、「東北沢」を持つことがわかる。なお、複数種類の汎化ツリーが汎化ツリー識別子と対応付けられて汎化ツリー記憶部２０に記憶されていてもよい。この場合、特異点集合検索部２４は、データ利用者識別子に応じて、利用する汎化ツリーを選択することとしてもよい。続いて、特異点集合検索部２４は、ユーザ情報記憶部１２を参照し、特異点集合を検索する（Ｓ６０３）。具体的には、特異点集合検索部２４は、ｋが４未満となるデータ集合を検索する。図２より、自宅最寄駅が「二子玉川」のデータ数は「６」、自宅最寄駅が「下北沢」のデータ数は「６」、自宅最寄駅が「東北沢」のデータ数が「１」であるため、ｋが４未満となるデータは自宅最寄駅が「東北沢」のデータ、すなわち、ユーザ識別子「Ｕｓｅｒ０１３」のデータである。特異点集合「Ｕｓｅｒ０１３」を検出した特異点集合検出部２４は、特異点集合を汎化するためのデータ数とデータ値を決定するために、取得データ選択部２８に対して取得データ選択要求を送信する（Ｓ６０４）。
【００４７】
取得データ選択部２６は、ユーザ情報記憶部１２を参照し、各データが所属するグループ毎のデータ数とグループ数を取得する（Ｓ６０５）。図２に示すように、自宅最寄駅「二子玉川」のグループのデータ数は「６」、自宅最寄駅「下北沢」のグループのデータ数は「６」、グループ数は「二子玉川」、「下北沢」、「東北沢」の「３」となっている。続いて、取得データ選択部２６は、取得データ記憶部２８を参照し、データ利用者識別子「ＴｏｋｕｍｅｉＵｓｅｒ００１」に対する、前回の取得データを取得する（Ｓ６０６）。ここでは、データ利用者識別子「ＴｏｋｕｍｅｉＵｓｅｒ００１」に対応する取得データがなかったこととする。
【００４８】
続いて、取得データ選択部２６は、各データから特異点集合の汎化に用いるデータ数を、式１または式２を用いて算出する（Ｓ６０７）。図２の例において、全グループのデータの総数は「６＋６＋１＝１３」であり、自宅最寄駅「二子玉川」のグループのデータ数は「６」、ｋは４である。よって、式１を用いる場合、自宅最寄駅「二子玉川」のグループから特異点集合の汎化のために取得するデータの数の計算は、ｍ＝（４／１３）×６≒２となる。同様に、自宅最寄駅「下北沢」のグループから取得するデータ数も２と算出される。また、式２を用いる場合、グループ数は「３」、ｋは４であるため、ｍ＝４÷３≒２と算出される。
【００４９】
なお、匿名化ユーザデータを利用したいデータ利用者が、データの増加率を知りたい場合は式１を用い、データの増加量を知りたい場合は式２を用いればよい。式１と式２の利用の決定は、データ利用者が指定する。つまり、利用する式を指定する情報が匿名化要求に設定され、取得データ選択部２６は、この情報で指定される式を用いて取得データ数の算出を行うことができる。
【００５０】
自宅最寄駅「二子玉川」のグループから取得するデータ数が「２」と算出されると、取得データ選択部２６は、自宅最寄駅「二子玉川」のグループの６つのデータの中から、ユーザ識別子が「Ｕｓｅｒ００５」、「Ｕｓｅｒ００６」である２つのデータを取得データとして選択する（Ｓ６０８）。なお、グループの中から選択される取得データの選択方法は任意である。ただし、２回目以降の実行では前回選択したデータの中から選択される。すなわち、取得データ選択部２６は、以前に取得されたデータに関する情報が取得データ記憶部２８に記憶されている場合は、以前に取得されたデータの中から取得データを選択する。
【００５１】
ユーザ識別子「Ｕｓｅｒ００５」、「Ｕｓｅｒ００６」のデータが取得データとして選択されると、取得データ選択部２６は、ユーザ識別子「Ｕｓｅｒ００５」、「Ｕｓｅｒ００６」のデータが所属するグループが「二子玉川」であると認識することができる。また、取得データ選択部２６は、汎化ツリー記憶部２０から取得した汎化ツリーにおいて、「二子玉川」の上位グループが「世田谷区」であると認識することができる。そこで、取得データ選択部２６は、取得データ識別子「Ｕｓｅｒ００５」、「Ｕｓｅｒ００６」、取得データの数を算出する際に用いた算出式、汎化先「世田谷区」を、データ利用者識別子「ＴｏｋｕｍｅｉＵｓｅｒ００１」と共に記憶する（Ｓ６０９）。
【００５２】
同様に、自宅最寄駅「下北沢」のグループからも、例えば、ユーザ識別子「Ｕｓｅｒ０１１」、「Ｕｓｅｒ０１２」のデータが取得データとして選択される。そして、取得データ選択部２６は、汎化部３０に対して汎化処理の実行要求を送信する（Ｓ６１０）。
【００５３】
汎化処理の実行要求に応じて、汎化部３０は汎化処理を実行する（Ｓ６１１，Ｓ６１２）。具体的には、取得データ「Ｕｓｅｒ００５」、「Ｕｓｅｒ００６」の自宅最寄駅は「二子玉川」であり、取得データ「Ｕｓｅｒ０１１」、「Ｕｓｅｒ０１２」の自宅最寄駅は「下北沢」であり、特異点集合である「Ｕｓｅｒ０１３」の自宅最寄駅は「東北沢」である。そして、図４の汎化ツリーによれば、「二子玉川」、「下北沢」、及び「東北沢」に共通の上位グループは「世田谷区」である。そこで、汎化部３０は、これらのデータの自宅最寄駅を「世田谷区」と汎化することにより匿名化ユーザデータを生成する。そして、汎化部３０は、自宅最寄駅「二子玉川」、「下北沢」のグループにおいて取得されなかったデータも含む匿名化ユーザデータを匿名化ユーザ情報記憶部１４へ格納する（Ｓ６１３）。
【００５４】
このように匿名化を行うことにより、匿名化の対象となるデータ集合が時間と共に増加する場合に、データの増加量や増加率を正確に把握することが可能になる。すなわち、ある時刻におけるグループ間のデータ数の比較や異なる時刻で匿名化された同一グループのデータ数の変化の把握が可能となる。（第１の実施形態の変形例）  さらに、図１に示した匿名化装置１０の構成において、上述の匿名化処理とは異なる処理によって匿名化を行うことも可能である。例えば、図７及び図８に示すフローチャートに示される処理がその一例である。
【００５５】
まず、図７に示すフローチャートによる匿名化処理について説明する。この処理は、算出された取得データ数（ｍ）のデータを取得してしまうとｋ匿名性が満たされなくなるグループが存在する場合を考慮したものである。なお、図７の匿名化処理の開始前に、図６に示した匿名化処理と同様に、取得データ数（ｍ）の算出が行われていることとする。
【００５６】
取得データ数（ｍ）を算出した取得データ選択部２６は、各グループについて、グループのデータ数から、取得データ数（ｍ）にｋを加算した値を引いた場合の正負を判定する（Ｓ７０１）。
【００５７】
判定結果が０以上のグループについては、ｍ個のデータが取得されてもｋ匿名性が満たされるため、取得データ選択部２６は、ｍ個のデータを取得データとして選択する（Ｓ７０２）。
【００５８】
一方、判定結果が負のグループについては、ｍ個のデータが取得されるとｋ匿名性が満たされなくなるため、汎化部３０は、判定結果が負になった複数のグループをマージする（Ｓ７０３）。ここで、判定結果が負になるグループには、特異点集合のグループも含まれる。そして、汎化部３０は、取得データとして選択されたデータと、判定結果が負であるためマージされたグループのデータを全てマージしたグループに対して汎化処理を実行し、匿名化ユーザデータを生成する（Ｓ７０４）。
【００５９】
このような処理により、算出された取得データ数（ｍ）のデータを取得してしまうとｋ匿名性が満たされなくなるグループが存在する場合に、匿名化後の全グループがｋ匿名性を満たすように匿名化を行うことができる。
【００６０】
なお、図７の処理では、上述のように、データ数が（ｍ＋ｋ）個未満のグループにはｋ匿名性が満たされない特異点集合のグループも含まれている。また、図７の処理では、ｋ匿名性を満たしてはいるが、データ数が（ｍ＋ｋ）個未満であるグループからは全データが取得され、ｋ匿名性を満たし、かつ、データ数が（ｍ＋ｋ）個以上であるグループからはｍ個のデータが取得される。そして、取得されたデータは特異点集合のグループとともに汎化されることとなる。つまり、図７の処理においても、ｋ匿名性を満たさない特異点集合が検出され、特異点集合以外の各グループからデータが取得されて特異点集合のデータとともに汎化されることにより、全グループがｋ匿名性を満たすように汎化が行われていると言うことができる。これは、以後に示す、（ｍ＋ｋ）の判定を行う処理についても同様である。
【００６１】
次に、図８に示すフローチャートによる匿名化処理について説明する。この処理は、特異点集合に対して、算出されたデータ数（ｍ）のデータを他のグループから追加してもｋ匿名性が満たされない場合を考慮したものである。なお、図８の匿名化処理の開始前に、図７に示した匿名化処理におけるデータ取得処理（Ｓ７０２）までが実行済みであることとする。
【００６２】
取得データ数（ｍ）を算出した取得データ選択部２６は、特異点集合のデータ数と算出した取得データ数（ｍ）との差分の正負を判定する（Ｓ８０１）。
【００６３】
判定結果が０以上の場合は、汎化部３０は、図７の場合と同様に、取得データと特異点集合のデータをマージして汎化を行い、匿名化ユーザデータを生成する（Ｓ８０２）。
【００６４】
一方、判定結果が負の場合は、汎化部３０は、グループのデータ数が、特異点集合の判定基準となる値（ｋ）と算出した取得データ数（ｍ）の和を満たし、かつ、データ数が最小となるグループを検索する（Ｓ８０３）。そして、汎化部３０は、検索されたグループと特異点集合のグループをマージする（Ｓ８０４）。さらに、汎化部３０は、マージ後のデータ集合に対して各グループから取得されたデータをマージし、汎化処理を実行する（Ｓ８０２）。
【００６５】
このような処理により、特異点集合に対して、算出されたデータ数（ｍ）のデータを他のグループから追加してもｋ匿名性が満たされない場合に、匿名化後の全グループがｋ匿名性を満たすように匿名化を行うことができる。
【００６６】
（第２の実施形態）
＝＝構成＝＝
図９は、第２の実施形態における匿名化システムの構成を示す図である。第２の実施形態における匿名化装置４０は、第１の実施形態の匿名化装置１０が備える構成に加えて、関連性検索部４２を備えている。
【００６７】
関連性検索部４２は、特異点集合検索部２４で検索された特異点集合と関連性の高いデータ集合を検索する。そして、関連性検索部４２は、検出したデータ集合と特異点集合とをマージして汎化することにより、ｋ匿名性が満たされるかどうかを判定する。
【００６８】
ここで、関連性とは、汎化ツリーの階層構造に基づいて判断される指標であり、親戚度と表現することもできる。例えば、汎化ツリーにおいて親が共通のデータ集合は兄弟関係にあり、親の親が共通のデータ集合は従兄弟関係にある。そして、同一グループとして汎化した際に抽象度が低いほど関連性が高いこととなる。つまり、従兄弟関係にあるデータ集合よりも兄弟関係にあるデータ集合の方が関連性が高いと言える。
【００６９】
例えば、図１０に示す汎化ツリーの場合、自宅最寄駅が「二子玉川」のデータ集合と「下北沢」のデータ集合とは兄弟関係にある。また、自宅最寄駅が「二子玉川」のデータ集合と「高田馬場」のデータ集合とは従兄弟関係にある。この場合、自宅最寄駅が「二子玉川」のデータ集合にとっては、自宅最寄駅が「高田馬場」のデータ集合よりも自宅最寄駅が「下北沢」のデータ集合の方が関連性が高い。
【００７０】
本実施形態では、取得データ選択部２６は、特異点集合とマージして汎化する取得データを、関連性検索部４２によって検索された、特異点集合と関連性の高いグループから選択する。
【００７１】
＝＝動作＝＝
匿名化装置４０における匿名化処理の一例について説明する。図１１は、本実施形態における匿名化処理の一例を示すシーケンス図である。
【００７２】
まず、匿名化要求受付部２２は、匿名化データ利用者から匿名化の要求を受け付けると、特異点集合検索部２４に対してデータ利用者識別子と共に汎化要求を送信する（Ｓ１１０１）。
【００７３】
汎化要求を受信した特異点集合検索部２４は、汎化ツリー記憶部２０から汎化ツリーを取得する（Ｓ１１０２）。そして、特異点集合検索部２４は、ユーザ情報記憶部１２を参照し、特異点集合を検索する（Ｓ１１０３）。特異点集合を検出した特異点集合検索部２４は、関連性検索部４２に対して、特異点集合との関連性の検索要求を送信する（Ｓ１１０４）。
【００７４】
関連性の検索要求を受信した関連性検索部４２は、汎化ツリー記憶部２０から汎化ツリーを取得する（Ｓ１１０５）。汎化ツリーを取得した関連性検索部４２は、ユーザ情報記憶部１２を参照し（Ｓ１１０６）、特異点集合のユーザ情報と同じ親となるユーザ情報を有するグループのデータ数を算出する（Ｓ１１０７）。そして、関連性検索部４２は、特異点集合の親の全ての子データを汎化することによりｋ匿名性が満たされるかどうかを判定する（Ｓ１１０８）。なお、特異点集合の親の全ての子データを汎化してもｋ匿名性が満たされない場合は、ｋ匿名性が満たされるデータ数となるまで汎化ツリーを上位にさかのぼり、取得データの選択対象とするグループを特定する。
【００７５】
以降のシーケンス（Ｓ１１０９〜Ｓ１１１８）は、第１の実施形態の図６で示したシーケンス（Ｓ６０４〜Ｓ６１３）と同様である。ただし、取得データ選択部２６は、関連性検索部４２において検索された、特異点集合とともに汎化されるとｋ匿名性が満たされ、かつ、特異点集合と関連性が最も高いグループを対象として取得データの選択を行う。
【００７６】
ここで、匿名化処理の具体例を説明する。なお、以下の説明では、ユーザ情報記憶部１２には図１２に示すユーザデータが格納され、汎化ツリー記憶部２０には図１０に示す汎化ツリーが格納されていることとする。また、ｋ匿名性のｋの値は４とする。
【００７７】
まず、匿名化要求受付部２２は、匿名化データ利用者から匿名化の要求を受け付けると、特異点集合検索部２４に対してデータ利用者識別子と共に汎化要求を送信する（Ｓ１１０１）。
【００７８】
汎化要求を受信した特異点集合検索部２４は、汎化ツリー記憶部２０から汎化ツリーを取得する（Ｓ１１０２）。そして、特異点集合検索部２４は、ユーザ情報記憶部１２を参照し、特異点集合を検索する（Ｓ１１０３）。図１２より、自宅最寄駅が「二子玉川」のデータ数は「６」、自宅最寄駅が「下北沢」のデータ数は「８」、自宅最寄駅が「高田馬場」のデータ数は「５」、自宅最寄駅が「東北沢」のデータ数が「１」人であるため、ｋが４未満となるデータは自宅最寄駅が「東北沢」のデータ、すなわち、ユーザ識別子「Ｕｓｅｒ０１３」のデータである。特異点集合を検出した特異点集合検索部２４は、関連性検索部４２に対して、特異点集合との関連性の検索要求を送信する（Ｓ１１０４）。
【００７９】
関連性の検索要求を受信した関連性検索部４２は、汎化ツリー記憶部２０から汎化ツリーを取得する（Ｓ１１０５）。汎化ツリーを取得した関連性検索部４２は、ユーザ情報記憶部１２を参照し（Ｓ１１０６）、特異点集合「Ｕｓｅｒ０１３」の自宅最寄駅「東北沢」と同じ親となるデータ、すなわち、自宅最寄駅「二子玉川」、自宅最寄駅「下北沢」のデータ数を算出する（Ｓ１１０７）。図１２より、自宅最寄駅「二子玉川」のデータ数は「６」、自宅最寄駅「下北沢」のデータ数は「８」となる。そして、関連性検索部４２は、特異点集合の親である「世田谷区」の全ての子データを汎化することによりｋ匿名性が満たされるかどうかを判定する（Ｓ１１０８）。ここでは、同じ親「世田谷区」をもつデータの総数は「６＋８＋１＝１５」であり、ｋ以上であるため「可能」と判定される。なお、「世田谷区」の全ての子データを汎化してもｋ匿名性が満たされない場合は、さらにその上の親である「東京２３区」の配下の全てのデータを汎化することによりｋ匿名性が満たされるかどうか判定される。
【００８０】
ここでは、「世田谷区」の全ての子データを汎化することによりｋ匿名性が満たされると判定されたため、取得データ選択部２６は、「世田谷区」の配下のグループから取得データを選択する。以降は第１の実施形態の場合と同様である。
【００８１】
このように、関連性の高いグループから取得データを選択することにより、特異点集合を汎化する際の抽象度を低くすることが可能となる。（第３の実施形態）  ＝＝構成＝＝  図１３は、第３の実施形態における匿名化システムの構成を示す図である。第３の実施形態における匿名化装置５０は、第１の実施形態の匿名化装置１０が備える構成に加えて、分解判断部５２及び分解部５４を備えている。
【００８２】
分解判断部５２は、汎化された特異点集合を含むデータ集合を分解可能か否かを判断する。例えば、特異点集合や、特異点集合とマージされたグループにデータが追加された場合、特異点集合とのマージにより形成されたグループの一部を別のグループとして分解してもｋ匿名性が満たされることがある。分解判断部５２は、このような分解が可能であるかどうかを判定する。
【００８３】
分解部５４は、分解判断部５２によって分解可能と判断された場合に、特異点集合と取得データのマージにより形成されていたグループを、特異点集合と取得データを要素とするグループと、その他のグループの２つに分解する。
【００８４】
＝＝動作＝＝
匿名化装置５０における匿名化処理の一例について説明する。図１４は、本実施形態における匿名化処理の一例を示すシーケンス図である。
【００８５】
なお、図１４に示す処理の前に、図６に示した処理（Ｓ６０１〜Ｓ６１３）が実行されていることとする。そして、汎化処理を実行した汎化部３０は、分解判断要求を分解判断部５２に送信する（Ｓ１４０１）。
【００８６】
分解判断要求を受信した分解判断部５２は、取得データ記憶部２８を参照し、取得データ、算出式、及び特異点集合を確認する（Ｓ１４０２）。続いて、分解判断部５２は、取得データとともに汎化された特異点集合が属するグループの現在のデータ数をユーザ情報記憶部１２から取得する（Ｓ１４０３）。そして、分解判断部５２は、以前に取得データとともに汎化された特異点集合が属するグループのデータ数が、式１で算出した取得データ数（ｍ）とｋとの和（ｍ＋ｋ）以上であれば分解可能と判断する（Ｓ１４０４）。すなわち、特異点集合が属するグループにユーザデータが追加されたことにより、このグループからｍ個のデータを取得したとしてもｋ匿名性が満たされる状態となった場合には、分解可能であると判断される。
【００８７】
さらに、分解判断部５２は、取得データが属する各グループについても、特異点集合が属するグループと同様に、分解可能性を判断する（Ｓ１４０３，Ｓ１４０４）。すなわち、分解判断部５２は、取得データの中の各データについて、そのデータが属するグループのデータ数をユーザ情報記憶部１２から取得し、グループのデータ数が（ｍ＋ｋ）以上であれば分解可能と判断する。なお、グループの処理の順序は問わない。
【００８８】
そして、特異点集合が属するグループ及び取得データが属する全てのグループについて分解可能であると判断されると、分解判断部５２は、分解要求を分解部５４に送信する（Ｓ１４０５）。
【００８９】
分解部５４は、分解要求に応じて分解を実行し（Ｓ１４０６）、分解後のグループで匿名化を行うことにより生成される匿名化ユーザデータを匿名化ユーザ情報記憶部１４に格納する（Ｓ１４０７）。また、分解部５４は、分解結果を取得データ記憶部２８に反映する（Ｓ１４０８）。
【００９０】
なお、匿名化ユーザ情報記憶部１４への格納処理（Ｓ１４０７）と取得データ記憶部２８への格納処理（Ｓ１４０８）の順序は任意である。また、汎化処理と分解処理の順序についても任意である。
【００９１】
ここで、分解処理の具体例を説明する。なお、以前の時刻に図２に示すユーザデータから図３に示す匿名化ユーザデータが生成されたこととする。また、取得データ記憶部２８は図５に示す状態であることとする。そして、現在のユーザデータは図１５に示す状態であることとする。
【００９２】
汎化処理を実行した汎化部３０は、分解判断要求を分解判断部５２に送信する（Ｓ１４０１）。
【００９３】
分解判断要求を受信した分解判断部５２は、取得データ記憶部２８を参照し、取得データ、算出式、及び特異点集合を確認する（Ｓ１４０２）。具体的には、分解判断部５２は、まず、取得データのユーザ識別子「Ｕｓｅｒ００５」、「Ｕｓｅｒ００６」、算出式（式１）、特異点集合のユーザ識別子「Ｕｓｅｒ０１３」を取得する。分解判断部５２は、ユーザ識別子「Ｕｓｅｒ０１３」が属するグループである、自宅最寄駅「東北沢」のグループの現在のデータ数「６」をユーザ情報記憶部１２から取得する（Ｓ１４０３）。そして、分解判断部５２は、特異点集合が属するグループのデータ数「６」と（ｍ＋ｋ）の比較を行う。いま、ｋの値は４、式１により算出されるｍの値は２である。したがって、特異点集合が属するグループのデータ数は（ｍ＋ｋ）以上であり、分解判断部５２は、特異点集合が属するグループについて、分解可能と判断する（Ｓ１４０４）。
【００９４】
さらに、分解判断部５２は、取得データ「Ｕｓｅｒ００５」、「Ｕｓｅｒ００６」が属するグループである、自宅最寄駅「二子玉川」のグループのデータ数「６」をユーザ情報記憶部１２から取得する（Ｓ１４０３）。分解判断部５２は、このグループについてもデータ数が（ｍ＋ｋ）以上であるため、分解可能と判断する（Ｓ１４０４）。同様に、取得データ「Ｕｓｅｒ０１１」、「Ｕｓｅｒ０１２」が属するグループである、自宅最寄駅「下北沢」のグループに対しても分解判断が行われる。
【００９５】
そして、分解判断部５２は、ユーザ識別子「Ｕｓｅｒ０１３」が属するグループとともに汎化される対象となっていた全てのグループについて分解可能であると判断すると、分解要求を分解部５４に送信する（Ｓ１４０５）。
【００９６】
分解部５４は、分解要求に応じて分解を実行する（Ｓ１４０６）。具体的には、ユーザ識別子「Ｕｓｅｒ００５」、「Ｕｓｅｒ００６」、「Ｕｓｅｒ０１１」、「Ｕｓｅｒ０１２」、「Ｕｓｅｒ０１３」のユーザデータを「世田谷区」と汎化していたものを、ユーザ識別子「Ｕｓｅｒ００５」、「Ｕｓｅｒ００６」、「Ｕｓｅｒ０１１」、「Ｕｓｅｒ０１２」、「Ｕｓｅｒ０１３」、「Ｕｓｅｒ０１４」のユーザデータの自宅最寄駅を「世田谷区」と汎化し、ユーザ識別子「Ｕｓｅｒ０１５」、「Ｕｓｅｒ０１６」、「Ｕｓｅｒ０１７」、「Ｕｓｅｒ０１８」のユーザデータについては自宅最寄駅を「東北沢」とする。つまり、分解によって、新たに自宅最寄駅「東北沢」のグループが生成される。
【００９７】
このように、以前の時刻においては特異点集合であったグループについて、データ数の増加によって汎化の必要がなくなった場合にグループを分割することができる。すなわち、上述の具体例でいえば、自宅最寄駅「東北沢」のグループは、以前はデータ数が「１」であり特異点集合であったため、他のグループの取得データとともに自宅最寄駅「世田谷区」のグループとして汎化されていた。その後、自宅最寄駅「東北沢」のデータ数が増加したため、分割により、あらたに自宅最寄駅「東北沢」のグループが生成される。これにより、データの抽象度を下げてデータ量を多くすることが可能になる。なお、汎化により生成された、自宅最寄駅「世田谷区」のグループは残されるため、同一グループのデータ数の変化を把握することができる。（第４の実施形態）  ＝＝構成＝＝  図１６は、第４の実施形態における匿名化システムの構成を示す図である。第４の実施形態における匿名化装置６０は、第１の実施形態の匿名化装置１０が備える構成に加えて、汎化順序決定部６２を備えている。
【００９８】
汎化順序決定部６２は、ユーザ情報記憶部１２に記憶されているユーザデータのユーザ情報に複数の項目（属性）がある場合に、汎化する項目の順序を決定する。なお、汎化する項目の順序の決定方法は任意である。例えば、ランダムでもよいし、項目のとりうる値が大きい順でもよい。
【００９９】
＝＝動作＝＝
匿名化装置６０における匿名化処理の一例について説明する。図１７は、本実施形態における匿名化処理の一例を示すメインのフローチャートである。
【０１００】
匿名化要求を受信した匿名化要求受付部２２は、汎化部３０に対して汎化要求を送信する。汎化要求を受信した汎化部３０は、汎化順序決定部６２に対して、汎化順序の決定要求を送信する。汎化順序の決定要求を受信した汎化順序決定部６２は、ユーザ情報記憶部１２を参照し、ユーザ情報の項目の汎化順序を決定する（Ｓ１７０１）。汎化順序が決定されると、処理対象として選択された、すなわち、汎化順序が１番目として選択された項目に対する匿名化処理が実行される（Ｓ１７０２）。その後、その他の項目に対する匿名化処理が実行される（Ｓ１７０３）。
【０１０１】
図１８は、処理対象として選択された項目に対する匿名化処理の一例を示すフローチャートである。
【０１０２】
汎化要求を受信した汎化部３０は、汎化ツリー記憶部２０から処理対象の項目の汎化ツリーを取得する。汎化ツリーを取得した汎化部３０は、汎化ツリーの中で、下位グループを持つノード全てに対してループ（１）の処理を行う。なお、下位グループを持つノードの処理順序は、よりルートから深い階層を優先して実行することとする。ただし、同じ深さの階層のノードがある場合の順序は任意である。
【０１０３】
取得データ選択部２６は、ノードに紐づく下位グループのデータ数をそれぞれ算出し（Ｓ１８０１）、ノードに紐づく下位グループ全てについてループ（２）の処理を行う。
【０１０４】
取得データ選択部２６は、取得データ記憶部２８を参照し、前回の取得データを確認する（Ｓ１８０２）。前回の取得データの確認をした取得データ選択部２６は、今回の汎化における取得データの数を算出する（Ｓ１８０３）。なお、取得データの数の算出方法は第１の実施形態と同様である。そして、取得データ選択部２６は、取得データの数（ｍ）とｋの値の和（ｍ＋ｋ）を閾値として汎化判定を行う（Ｓ１８０４）。
【０１０５】
判定結果が負のグループについては、ｍ個のデータが取得されるとｋ匿名性が満たされなくなるため、汎化部３０は、判定結果が負になったグループの全てのデータを汎化する（Ｓ１８０５）。一方、判定結果が０以上のグループについては、ｍ個のデータが取得されてもｋ匿名性が満たされるため、汎化部３０は、グループ中のｍ個のデータだけを汎化する（Ｓ１８０６）。なお、取得データ記憶部２８に前回の取得データが記憶されている場合は、その中から上位グループに所属させるデータが選択される。また、前回の汎化時よりも取得データの数が増えた場合は、新規に増加したデータの中から取得データが選択される。新規に増加したデータは以前の匿名化ユーザデータに含まれないため、統計情報への影響を少なくするためである。その後、取得データ選択部２６は、取得データに関する情報を取得データ記憶部２８に格納する（Ｓ１８０７）。
【０１０６】
図１９は、その他の項目に対する匿名化処理の一例を示すフローチャートである。まず、汎化順序決定部６２は、汎化順序に従って、次に汎化する項目を検索し（Ｓ１９０１）、検索により取得された項目が未処理であるかどうか確認する（Ｓ１９０２）。未処理の項目がない場合は処理は終了する。未処理の項目がある場合、次の汎化処理の対象として選択された項目について、１つ前の項目で汎化処理後の汎化ツリーのノードに対して、ループ（３）の処理が実行される。すなわち、図１７と同様に、選択された項目に対する匿名化処理（Ｓ１９０３）及びその他の属性に対する匿名化処理（Ｓ１９０４）が実行される。
【０１０７】
ここで、匿名化処理の具体例を説明する。なお、図２０に示すように、ユーザ情報には自宅最寄駅及び年齢の２つの項目が存在することとする。また、汎化ツリー記憶部２０には、図２１に示す汎化ツリーが記憶されていることとする。そして、データの遷移は「差分」に着眼する（すなわち、式２を用いる）とし、ｋの値は４とする。
【０１０８】
匿名化要求を受信した匿名化要求受付部２２は、汎化部３０に対して汎化要求を送信する。汎化要求を受信した汎化部３０は、汎化順序決定部６２に対して、汎化順序の決定要求を送信する。汎化順序の決定要求を受信した汎化順序決定部６２は、ユーザ情報記憶部１２を参照し、ユーザ情報の項目の汎化順序を決定する（Ｓ１７０１）。ここでは、汎化順序として、１番目が「自宅最寄駅」、２番目が「年齢」と決定されたとする。
【０１０９】
汎化順序決定部６２は、汎化順序が１番に決定された「自宅最寄駅」の汎化要求を汎化部３０に送信する（Ｓ１７０２）。
【０１１０】
汎化要求を受信した汎化部３０は、汎化ツリー記憶部２０から「自宅最寄駅」の汎化ツリーを取得する。汎化ツリーを取得した汎化部３０は、下位グループを持つノード「世田谷区」、「目黒区」、「東京２３区」に対して、「世田谷区」、「目黒区」、「東京２３区」の順にループ（１）の処理を行う。
【０１１１】
取得データ選択部２６は、ユーザ情報記憶部１２を参照し、「世田谷区」に紐づく下位グループ「二子玉川」、「下北沢」、「東北沢」のデータ数をそれぞれ「６」、「６」、「１」と算出する（Ｓ１８０１）。そして、取得データ選択部２６は、下位グループ「二子玉川」、「下北沢」、「東北沢」の各々についてループ（２）の処理を行う。
【０１１２】
取得データ選択部２６は、取得データ記憶部２８を参照し、前回の取得データを確認する（Ｓ１８０２）。ここでは、前回の取得データがなかったため、取得データ選択部２６は、新たに取得データの数（ｍ）を算出する（Ｓ１８０３）。なお、ｋ＝４であるため、ｍ＝４／３＝１．３３３となる。そして、取得データ選択部２６は、ｍ＋ｋ＝５．３３３を閾値として汎化判定を行う（Ｓ１８０４）。具体的には、自宅最寄駅が「二子玉川」のグループのデータ数は「６」であるため、６−５．３３３＞０と判定される。したがって、取得データ選択部２６は、自宅最寄駅が「二子玉川」のグループからｍ＝１．３３３を切り上げた「２」個の取得データを選択する。例えば、取得データ選択部２６は、ユーザ識別子「Ｕｓｅｒ００１」、「Ｕｓｅｒ００２」の２個のデータを取得データとして選択する。そして、汎化部３０は、選択された取得データの自宅最寄駅を「世田谷区」に汎化する（Ｓ１８０５）。また、取得データ選択部２６は、取得データに関する情報を取得データ記憶部２８に記憶する（Ｓ１８０７）。
【０１１３】
同様の処理が、「下北沢」及び「東北沢」についても実施される。なお、自宅最寄駅が「東北沢」のグループはデータ数が「１」であるため、汎化判定（Ｓ１８０４）の結果が負となり、グループ内の全てのデータの自宅最寄駅が「世田谷区」に汎化される。
【０１１４】
汎化順序が１番目の項目である自宅最寄駅の汎化終了後、汎化順序決定部６２は、汎化順序が２番目の項目である「年齢」の汎化要求を汎化部３０に送信する（Ｓ１７０３）。汎化順序決定部６２は、汎化順序に従って、次に汎化する項目を「年齢」と決定する（Ｓ１９０１）。汎化順序決定部６２は、項目「年齢」が未処理であるかどうか確認し（Ｓ１９０２）未処理の項目であるため、項目「年齢」に対してループ（３）の処理を起動する。これにより、「自宅最寄駅」の汎化後に、さらに「年齢」の汎化を行うことができる。また、さらにその他の項目が存在する場合には、その項目に対して再帰的に匿名化処理が起動されることとなる（Ｓ１９０４）。
【０１１５】
このように、匿名化対象のユーザデータのユーザ情報に複数の項目が存在する場合においても、ｋ匿名性が満たされるように匿名化することが可能である。
【０１１６】
なお、図１８に示した処理において取得データの数を算出する際に（Ｓ１８０３）、全ての親グループのデータ数がｋ個以上となるように取得データ数を算出することとしてもよい。
【０１１７】
例えば、図２１に示すように、汎化ツリーが複数階層となっている場合では、「世田谷区」および「目黒区」に対してループ（１）の処理が行われた後に、「東京２３区」に対してループ（１）の処理が行われる。このとき、「世田谷区」および「目黒区」に対してループ（１）の処理が行われた段階では、「世田谷区」および「目黒区」のグループはｋ匿名性を満たした状態となる。この後、「東京２３区」に対してループ（１）の処理が行われる際に、「世田谷区」および「目黒区」のグループからデータが取得されると、「世田谷区」または「目黒区」のグループがｋ匿名性を満たさなくなる可能性がある。この場合、ｋ匿名性を満たさなくなってしまうグループは、全てのデータが「東京２３区」に汎化されてしまうこととなる。そのため、「東京２３区」に対してループ（１）の処理が行われる際に取得されるデータ数を加味したうえで、「世田谷区」および「目黒区」のデータ数を決定することとしてもよい。
【０１１８】
また、同一階層の親グループが複数存在する場合には、各親グループにおいて、下位グループからの取得データ数の割合が等しくなるように取得データの数を調整することとしてもよい。例えば、図１８に示す処理の代わりに、図２２に示す処理を実行することが可能である。
【０１１９】
図２２に示す処理では、まず、取得データ選択部２６は、ユーザ情報記憶部１２に格納されているユーザデータを汎化ツリーにマッピングする（Ｓ２２０１）。なお、マッピングとは、ユーザデータの各々が汎化ツリーで定義されたグループのいずれに該当するかを確認することである。そして、取得データ選択部２６は、同じ深さの親グループを検索する（Ｓ２２０２）。ここで、親グループとは、下位に紐づくグループを有するグループのことであり、図２１に示す汎化ツリーの場合であれば、「世田谷区」と「目黒区」が同じ深さの親グループとなる。そして、取得データ選択部２６は、各親グループについて、下位グループから取得する取得データ数（合計値）を算出する。
【０１２０】
続いて、取得データ選択部２６は、親グループ間における取得データ数の差を計算する（Ｓ２２０４）。そして、取得データ数の差が所定の閾値（Ｔ）未満であれば、親グループ間における、下位グループからの取得データ数のばらつきが小さいと判定される。この場合、当初算出された数の取得データが下位グループから取得されることとなる。そして、汎化部３０は、算出された数の取得データを下位グループから取得し、上位グループへの汎化を実行する（Ｓ２２０５）。なお、同じ深さの親グループが３つ以上存在する場合、取得データ数の差は、例えば、取得データ数の最大値と最小値の差や、分散を用いることができる。
【０１２１】
一方、取得データ数の差が所定の閾値（Ｔ）以上であれば、親グループ間における、下位グループからの取得データ数のばらつきが大きいと判定される。この場合、取得データ選択部２６は、下位グループから取得する取得データの割合が等しくなるように、取得データ数を調整する（Ｓ２２０６）。ここで、取得データ数の調整は、例えば、上位グループに汎化するデータ数が最小となり、かつ、ｋ匿名性が満たされるように行われる。なお、下位グループによっては、全データが取得データとして選択される可能性もある。そして、汎化部３０は、調整された数の取得データを下位グループから取得し、上位グループへの汎化を実行する（Ｓ２２０７）。
【０１２２】
なお、ある親グループに紐づく下位グループのデータが全て取得データとなる場合は、この親グループにおける取得データの割合は考慮しなくてもよい。また、取得データの割合を親グループ間で等しくするのではなく、グループごとに重みづけを行うこととしてもよい。例えば、グループ配下の情報の重要度や情報量を考慮して、取得データの割合を調整することができる。
【０１２３】
具体的には、例えば、図２１に示す汎化ツリーのようにグループが形成されており、「世田谷区」配下の情報の方が「目黒区」配下の情報よりも重要度が高い場合を想定する。このとき、「世田谷区」および「目黒区」の下位グループから取得する取得データの割合を調整する際に、情報の重要度を考慮することができる。例えば、「世田谷区」および「目黒区」において、取得データの割合を単純に等しくするのではなく、「世田谷区」の取得データの割合を「目黒区」の取得データの割合よりも低くすることができる。例えば、取得データの割合が等しくなるように調整すると、「世田谷区」の取得データの割合が、例えば、５０％から８０％に変更されてしまう場合、情報の重要度を考慮し、「世田谷区」の取得データの割合を８０％よりも低くすることができる。すなわち、グループ配下の情報の重要度を考慮して、取得データの割合を調整することとしてもよい。
【０１２４】
また、例えば、「世田谷区」の取得データの割合が５０％、「目黒区」の取得データの割合が８０％である場合、この割合で「世田谷区」および「目黒区」の汎化を行うと、「世田谷区」の下位グループのデータ数は汎化前の５０％となり、「目黒区」の下位グループのデータ数は汎化前の２０％となる。そのため、「世田谷区」の下位グループと「目黒区」の下位グループとの間で、汎化後に残るデータ数の割合に大きな差が生じてしまい、グループ間のデータ数の比較精度が低下してしまう。つまり、「目黒区」の下位グループは情報量が小さく、価値が低くなってしまう。そこで、例えば、「目黒区」の下位グループの全てのデータを「目黒区」に汎化することとしてもよい。すなわち、グループ配下の情報の情報量を考慮して、取得データの割合を調整することとしてもよい。
【０１２５】
なお、本実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更／改良され得るととともに、本発明にはその等価物も含まれる。
【０１２６】
この出願は、２０１１年１月５日に出願された日本出願特願２０１１−０００７５４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【０１２７】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１２８】
本実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）ユーザ情報を含むデータが記憶されたユーザ情報記憶部を参照し、複数のユーザの前記データを前記ユーザ情報に基づいてグルーピングすると所定の匿名性指標が満たされないグループである特異点グループを検出する特異点検出部と、前記特異点グループ以外の各グループからデータを取得して、前記特異点グループのデータとともに前記ユーザ情報を同一の値に汎化すると、全グループが前記匿名性指標を満たすように、前記匿名性指標に応じた所定規則に基づいて、各グループから取得するデータである取得データを選択する取得データ選択部と、前記特異点グループのデータと前記取得データとを、前記ユーザ情報を同一の値に汎化することにより匿名化データを生成し、前記特異点グループ以外の各グループの前記取得データ以外のデータとともに匿名化ユーザ情報記憶部に格納する汎化部と、を備える匿名化装置。
（付記２）付記１に記載の匿名化装置であって、前記取得データ選択部により選択された前記取得データを示す情報を記憶する取得データ記憶部をさらに備え、前記取得データ選択部は、前記取得データ記憶部を参照し、以前に選択された取得データが存在する場合は、該取得データを前記取得データとして選択する、匿名化装置。
（付記３）付記１または２に記載の匿名化装置であって、前記取得データ選択部は、前記所定規則に基づいて、各グループのデータ数に応じた数の前記取得データを各グループから選択する、匿名化装置。
（付記４）付記１または２に記載の匿名化装置であって、前記取得データ選択部は、前記所定規則に基づいて、前記グループの数に応じた数の前記取得データを各グループから選択する、匿名化装置。
（付記５）付記３または４に記載の匿名化装置であって、前記取得データ選択部は、前記特異点グループのデータと前記取得データとから前記匿名化データを生成しても前記匿名性指標が満たされない場合は、さらに、他のグループの全てのデータを取得データとして選択する、匿名化装置。
（付記６）付記３または４に記載の匿名化装置であって、前記取得データ選択部は、さらに、前記取得データが取得されると前記匿名性指標が満たされなくなるグループの全てのデータを取得データとして選択する、匿名化装置。
（付記７）付記１〜６の何れか一項に記載の匿名化装置であって、前記取得データ選択部は、前記匿名化データのユーザ情報の抽象度が最も低くなるように前記取得データを選択する、匿名化装置。
（付記８）付記１〜７の何れか一項に記載の匿名化装置であって、前記取得データ選択部は、前記特異点グループが存在しない場合であっても、前記所定規則に基づいて各グループから取得する取得データを選択し、前記汎化部は、前記取得データ選択部によって選択された取得データのユーザ情報を同一の値に汎化することにより匿名化データを生成し、前記取得データ以外のデータとともに前記匿名化ユーザ情報記憶部に格納する、匿名化装置。
（付記９）付記１〜８の何れか一項に記載の匿名化装置であって、前記ユーザ情報記憶部を参照し、前記特異点グループであったグループのデータ数が前記匿名性指標を満たす数以上増加している場合は、該増加したデータはユーザ情報の値を汎化せずに前記匿名化ユーザ情報記憶部に格納する分割部をさらに備える、匿名化装置。
（付記１０）付記１〜９の何れか一項に記載の匿名化装置であって、前記ユーザ情報が複数の項目を有する場合、該複数の項目について汎化を行う順序を決定する汎化順序決定部をさらに備え、前記特異点検出部、前記取得データ選択部、及び前記汎化部は、前記汎化順序決定部によって決定された順序にしたがって、汎化対象となる項目を順に選択し、選択された項目に対して、特異点グループの検出、取得データの選択、及び汎化を行う、匿名化装置。
【符号の説明】
【０１２９】
１０  匿名化装置
１２  ユーザ情報記憶部
１４  匿名化ユーザ情報記憶部
２０  汎化ツリー記憶部
２２  匿名化要求受付部
２４  特異点集合検索部
２６  取得データ選択部
２８  取得データ記憶部
３０  汎化部
【図１】
2012093522.tif 000003
【図２】
2012093522.tif 000004
【図３】
2012093522.tif 000005
【図４】
2012093522.tif 000006
【図５】
2012093522.tif 000007
【図６】
2012093522.tif 000008
【図７】
2012093522.tif 000009
【図８】
2012093522.tif 000010
【図９】
2012093522.tif 000011
【図１０】
2012093522.tif 000012
【図１１】
2012093522.tif 000013
【図１２】
2012093522.tif 000014
【図１３】
2012093522.tif 000015
【図１４】
2012093522.tif 000016
【図１５】
2012093522.tif 000017
【図１６】
2012093522.tif 000018
【図１７】
2012093522.tif 000019
【図１８】
2012093522.tif 000020
【図１９】
2012093522.tif 000021
【図２０】
2012093522.tif 000022
【図２１】
2012093522.tif 000023
【図２２】
2012093522.tif 000024
【国際調査報告】
2012093522.tif 000025
2012093522.tif 000026
2012093522.tif 000027
2012093522.tif 000028
2012093522.tif 000029