(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024102721
(43)【公開日】2024-07-31
(54)【発明の名称】匿名化装置
(51)【国際特許分類】
G06F 21/62 20130101AFI20240724BHJP
【FI】
G06F21/62 354
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023006804
(22)【出願日】2023-01-19
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100124811
【弁理士】
【氏名又は名称】馬場 資博
(74)【代理人】
【識別番号】100088959
【弁理士】
【氏名又は名称】境 廣巳
(74)【代理人】
【識別番号】100097157
【弁理士】
【氏名又は名称】桂木 雄二
(74)【代理人】
【識別番号】100187724
【弁理士】
【氏名又は名称】唐鎌 睦
(72)【発明者】
【氏名】古川 諒
(57)【要約】
【課題】結合後に精度よく分析を行うことが可能な匿名化処理を行うことが難しい場合がある。
【解決手段】匿名化装置400は、所定のデータに対する匿名化処理を行うことで特定された、クラスタ間の境界を示す境界情報を取得する取得部421と、前記取得部421が取得した前記境界情報に基づいて自装置が有するデータを複数のクラスタに分割することで匿名化クラスタ集合を生成する分割部422と、を有する。
【選択図】
図12
【特許請求の範囲】
【請求項1】
所定のデータに対する匿名化処理を行うことで特定された、クラスタ間の境界を示す境界情報を取得する取得部と、
前記取得部が取得した前記境界情報に基づいて自装置が有するデータを複数のクラスタに分割することで匿名化クラスタ集合を生成する分割部と、
を有する
匿名化装置。
【請求項2】
請求項1に記載の匿名化装置であって、
前記分割部が分割した前記匿名化クラスタ集合に含まれるクラスタのうち所定の条件を満たすクラスタを統合または削除するクラスタ形成部を有する
匿名化装置。
【請求項3】
請求項2に記載の匿名化装置であって、
前記クラスタ形成部は、クラスタ内のデータ数に基づいて、クラスタを統合または削除する
匿名化装置。
【請求項4】
請求項2に記載の匿名化装置であって、
データには複数の組織が共通して有する共通準識別子と、固有準識別子とが含まれており、
前記クラスタ形成部は、前記共通準識別子と前記固有準識別子とに異なる重みを与えて算出するパラメータに基づいてクラスタの統合を行う
匿名化装置。
【請求項5】
請求項4に記載の匿名化装置であって、
前記クラスタ形成部は、前記共通準識別子に前記固有準識別子よりも大きい重みを与えて算出するパラメータに基づいてクラスタの統合を行う
匿名化装置。
【請求項6】
請求項1に記載の匿名化装置であって、
前記取得部は、複数の組織から取得したデータを結合した結果に対して匿名化処理を行うことで特定された、クラスタ間の境界を示す前記境界情報を取得する
匿名化装置。
【請求項7】
請求項1に記載の匿名化装置であって、
前記取得部は、自装置が有するデータのうちの少なくとも一部を含むデータに対する匿名化処理を行うことで特定された、クラスタ間の境界を示す境界情報を取得する
匿名化装置。
【請求項8】
情報処理装置が、
所定のデータに対する匿名化処理を行うことで特定された、クラスタ間の境界を示す境界情報を取得し、
取得した前記境界情報に基づいて自装置が有するデータを複数のクラスタに分割することで匿名化クラスタ集合を生成する
匿名化方法。
【請求項9】
情報処理装置に、
所定のデータに対する匿名化処理を行うことで特定された、クラスタ間の境界を示す境界情報を取得し、
取得した前記境界情報に基づいて自装置が有するデータを複数のクラスタに分割することで匿名化クラスタ集合を生成する
処理を実現するためのプログラム。
【請求項10】
複数の組織からデータを取得するデータ取得部と、
前記データ取得部が取得したデータを結合して匿名化処理を行う匿名化部と、
前記匿名化部による匿名化処理の結果に基づいて、クラスタ間の境界を示す境界情報を取得する境界情報取得部と、
を有する
決定装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、匿名化装置、匿名化方法、プログラム、決定装置に関する。
【背景技術】
【0002】
データ活用時のプライバシー保護などを目的として、K -匿名化などの匿名化処理が行われている。
【0003】
匿名化処理について記載された文献として、例えば、特許文献1がある。特許文献1には、顧客に関するデータベースを生成する複数の生成手段と、複数の生成手段により生成された複数のデータベースを結合する結合手段と、を備える情報処理システムが記載されている。特許文献1によると、結合手段は、各データベース間で共通する特徴である参照データが表す顧客の特徴が類似する特徴データ同士を結合するように、複数のデータベースを結合することを特徴としている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載されているような匿名加工情報の結合を行う場合、各組織で匿名化を行う際のクラスタの切り方が異なることなどを理由として、平均値が近いもののクラスタ全体としての類似性が低いものを結合してしまうおそれがある。このように類似性の低いクラスタ同士を結合してしまう結果、結合後の分析精度が低下するおそれがあった。例えば、以上のように、結合後に精度よく分析を行うことが可能な匿名化処理を行うことが難しい場合がある、という課題が生じていた。
【0006】
そこで、本発明は、上述した課題を解決することが可能な匿名化装置、匿名化方法、プログラム、決定装置を提供することを目的の一つとする。
【課題を解決するための手段】
【0007】
かかる目的を達成するため本開示の一形態である匿名化装置は、
所定のデータに対する匿名化処理を行うことで特定された、クラスタ間の境界を示す境界情報を取得する取得部と、
前記取得部が取得した前記境界情報に基づいて自装置が有するデータを複数のクラスタに分割することで匿名化クラスタ集合を生成する分割部と、
を有する
という構成をとる。
【0008】
また、本開示の他の形態である匿名化方法は、
情報処理装置が、
所定のデータに対する匿名化処理を行うことで特定された、クラスタ間の境界を示す境界情報を取得し、
取得した前記境界情報に基づいて自装置が有するデータを複数のクラスタに分割することで匿名化クラスタ集合を生成する
という構成をとる。
【0009】
また、本開示の他の形態であるプログラムは、
情報処理装置に、
所定のデータに対する匿名化処理を行うことで特定された、クラスタ間の境界を示す境界情報を取得し、
取得した前記境界情報に基づいて自装置が有するデータを複数のクラスタに分割することで匿名化クラスタ集合を生成する
処理を実現するためのプログラムである。
【0010】
また、本開示の他の形態である決定装置は、
複数の組織からデータを取得するデータ取得部と、
前記データ取得部が取得したデータを結合して匿名化処理を行う匿名化部と、
前記匿名化部による匿名化処理の結果に基づいて、クラスタ間の境界を示す境界情報を取得する境界情報取得部と、
を有する
という構成をとる。
【発明の効果】
【0011】
上述したような各構成によると、上述したような課題を解決することができる。
【図面の簡単な説明】
【0012】
【
図2】匿名化システムの全体の構成例を示す図である。
【
図3】境界決定装置の構成例を示すブロック図である。
【
図7】匿名化装置の構成例を示すブロック図である。
【
図9】境界決定装置の動作例を示すフローチャートである。
【
図10】匿名化装置の動作例を示すフローチャートである。
【
図11】本開示の第2の実施形態における匿名化装置のハードウェア構成例を示す図である。
【
図12】匿名化装置の構成例を示すブロック図である。
【
図13】決定装置の構成例を示すブロック図である。
【発明を実施するための形態】
【0013】
[第1の実施形態]
本開示の第1の実施形態について、
図1から
図10までを参照して説明する。
図1は、本発明の概要を説明するための図である。
図2は、匿名化システム100全体の構成例を示す図である。
図3は、境界決定装置200の構成例を示すブロック図である。
図4は、同意済みデータ241の一例を示す図である。
図5は、分割境界情報242の一例を示す図である。
図6は、匿名化処理の一例を示す図である。
図7は、匿名化装置300の構成例を示すブロック図である。
図8は、クラスタ形成処理の一例を示す図である。
図9は、境界決定装置200の動作例を示すフローチャートである。
図10は、匿名化装置300の動作例を示すフローチャートである。
【0014】
本開示の第1の実施形態においては、
図1で示すように、複数の組織それぞれにおいて自組織が有するデータを匿名化する匿名化処理を行う匿名化システム100について説明する。例えば、
図1で例示する場合、共通準識別子とA固有準識別子とを含むデータを組織Aが有しており、共通準識別子とB固有準識別子とを含むデータを組織Bが有している。また、組織Aが有するデータのうちの少なくとも一部と、組織Bが有するデータのうちの少なくとも一部について、個人情報であるデータを外部に開示したり他の組織が有するデータと結合したりすることについて同意が得られている。このような場合において、匿名化システム100は、同意が得られているデータを各組織から取得して結合したのち、匿名化処理を行う。また、匿名化システム100は、匿名化処理の結果に基づいて、匿名化処理により形成されるクラスタ間の境界を示す境界情報を取得する。その後、匿名化システム100は、境界情報を各組織に送信して、各組織において各組織が有するデータを対象にした匿名化処理を行う。例えば、以上のように、匿名化システム100においては、各組織が有するデータのうちの少なくとも一部である同意済みのデータに基づいて特定される境界情報に基づいて、同意が得られていないデータも含むデータについて匿名化処理を行う。なお、個人情報であるデータの開示や結合についての同意は、任意の方法で取得されてよい。
【0015】
また、後述するように、匿名化システム100に含まれる各組織は、境界情報を用いた匿名化処理を行った後、所定の条件を満たすクラスタ同士を統合することができる。例えば、境界情報を用いて自組織が有するデータを各クラスタに分割した場合、クラスタ内に存在するデータの数が所定値kを下回りk-匿名化の条件を満たさなくなる場合がある。このような場合、匿名化システム100は、クラスタ内のデータ数などに基づくクラスタ同士の統合を行う。これにより、クラスタ内のデータ数がk以上となり、k-匿名性を満たすことができる。換言すると、境界情報に基づく分割を行った後、必要に応じてクラスタ同士を統合することで、匿名化システム100は、境界情報に基づく匿名化を行いつつ、k-匿名性を確保することができる。なお、匿名化システム100は、クラスタの統合を行う代わりに、または、統合とともに、クラスタの削除を行うよう構成してもよい。また、上記所定値kは匿名化処理を行う際に用いる匿名化パラメータである。匿名化パラメータは、任意に設定されてもよいし、例えば、外部装置が有する匿名化パラメータなどに応じて設定されてもよい。
【0016】
なお、本開示において、準識別子とは、年齢、性別、生年月日など、組み合わせることで個人を特定可能な属性のことをいう。準識別子には、上記例示した以外の属性が含まれてもよい。また、共通準識別子とは、匿名化システム100に含まれる各組織が有するデータに共通して含まれる準識別子のことをいう。例えば、
図1で例示する場合、組織Aが有するデータと組織Bが有するデータに共通して含まれる準識別子が共通準識別子となる。また、固有準識別子とは、匿名化システム100に含まれる組織のうち一部の組織が有するデータにのみ含まれる準識別子のことをいう。例えば、
図1で例示する場合、組織Aが有するデータにA固有準識別子が含まれる一方で、組織Bが有するデータにはA固有準識別子は含まれていない。
【0017】
また、本開示においては、匿名化処理の方式として、特徴量空間にクラスタ間の境界を定めることができる方式を用いるものとする。換言すると、匿名化システム100は、重なりが生じないようにクラスタを形成することで匿名化処理を行う。例えば、クラスタ間の境界は、各軸に平行な線分の組み合わせにより定義される。このような方式は、モンドリアン方式などの局所的再符号化などにより実現してよい。なお、匿名化システム100は、上記例示した場合に限定されず、例えば、大域的再符号化などを行うことで匿名化を行ってもよい。
【0018】
図2は、匿名化システム100全体の構成例を示している。
図2を参照すると、例えば、匿名化システム100は、境界決定装置200と、匿名化装置300(匿名化装置300-A、匿名化装置300-B、……。以下、特に区別しない場合は匿名化装置300と表記する)と、を有している。例えば、
図2で例示する場合、組織Aが匿名化装置300-Aを有しており、組織Bが匿名化装置300-Bを有している。
図2で示すように、境界決定装置200と匿名化装置300とは、有線などにより互いに通信可能なよう接続されている。
【0019】
なお、匿名化システム100が有する構成は
図2で例示する場合に限定されない。例えば、匿名化システム100は、3つ以上の複数の匿名化装置300を有してもよいし、1つの匿名化装置300が複数の組織のデータに対して個別に匿名化処理を行うよう構成してもよい。また、匿名化装置300のうちの少なくとも一部が後述する境界決定装置200としての機能を有してもよい。匿名化システム100は、複数の境界決定装置200を有するなど上記例示した以外の変形例を有してもよい。
【0020】
境界決定装置200は、各匿名化装置300が有するデータのうち、外部に開示したり他の組織が有するデータと結合したりすることについて同意が得られているデータに基づいて境界情報を取得する情報処理装置である。例えば、境界決定装置200は、上記のような同意が得られているデータを各匿名化装置300から取得するとともに取得したデータを結合して匿名化処理を行うことに応じて、匿名化処理により形成されるクラスタ間の境界を示す境界情報を取得する。また、境界決定装置200は、取得した境界情報を各匿名化装置300に対して送信する。
【0021】
図3は、境界決定装置200の構成例を示している。
図3を参照すると、境界決定装置200は、主な構成要素として、例えば、操作入力部210と、画面表示部220と、通信I/F部230と、記憶部240と、演算処理部250と、を有している。
【0022】
なお、
図3では、1台の情報処理装置を用いて境界決定装置200としての機能を実現する場合について例示している。しかしながら、境界決定装置200は、例えば、クラウド上に実現されるなど、複数台の情報処理装置を用いて実現されてもよい。また、境界決定装置200は、操作入力部210や画面表示部220を有さないなど上記例示した構成の一部を含まなくてもよいし、上記例示した以外の構成を有してもよい。
【0023】
操作入力部210は、キーボード、マウスなどの操作入力装置からなる。操作入力部210は、境界決定装置200を操作する操作者の操作を検出して演算処理部250に出力する。
【0024】
画面表示部220は、LCD(Liquid Crystal Display、液晶ディスプレイ)などの画面表示装置からなる。画面表示部220は、演算処理部250からの指示に応じて、記憶部240に格納されている各種情報などを画面表示することができる。
【0025】
通信I/F部230は、データ通信回路などからなる。通信I/F部230は、通信回線を介して接続された外部装置との間でデータ通信を行う。
【0026】
記憶部240は、ハードディスクやメモリなどの記憶装置である。記憶部240は、演算処理部250における各種処理に必要な処理情報やプログラム243を記憶する。プログラム243は、演算処理部250に読み込まれて実行されることにより各種処理部を実現する。プログラム243は、通信I/F部230などのデータ入出力機能を介して外部装置や記録媒体から予め読み込まれ、記憶部240に保存されている。記憶部240で記憶される主な情報としては、例えば、同意済みデータ241、分割境界情報242などがある。
【0027】
同意済みデータ241は、各組織が有するデータのうち開示や結合について同意が得られているデータを含んでいる。換言すると、同意済みデータ241には、匿名化装置300-Aが有するデータのうちの少なくとも一部と、匿名化装置300-Bが有するデータのうちの少なくとも一部と、が含まれる。例えば、同意済みデータ241は、後述する取得部251が匿名化装置300からデータを取得することなどに応じて更新される。
【0028】
図4は、同意済みデータ241の一例を示している。本開示の場合、同意済みデータ241には、匿名化装置300-Aから取得したデータと、匿名化装置300-Bから取得したデータと、が含まれる。また、
図4を参照すると、同意済みデータ241では、例えば、各個人に割り振られたID(identification)などの任意の識別情報と、共通準識別子と、固有準識別子と、が関連づけられている。例えば、同意済みデータ241のうち匿名化装置300-Aから取得したデータには、識別情報と、共通準識別子と、A固有準識別子と、が含まれる。また、同意済みデータ241のうち匿名化装置300-Bから取得したデータには、識別情報と、共通準識別子と、B固有準識別子と、が含まれる。なお、同意済みデータ241には、氏名などの単独で個人を識別できる属性である識別子が含まれてもよい。
【0029】
分割境界情報242は、匿名化処理により形成されるクラスタ間の境界を示す境界情報を含んでいる。後述するように、境界情報は、クラスタに属する各属性の範囲を示すことなどによりクラスタ間の境界を示すことができる。例えば、分割境界情報242は、後述する境界情報取得部254が匿名化部253による同意済みデータ241を用いた匿名化処理の結果から境界情報を取得することなどに応じて更新される。
【0030】
図5は、分割境界情報242の一例を示している。
図5を参照すると、分割境界情報242では、例えば、クラスタIDなどクラスタを識別するための識別情報と、共通準識別子や固有準識別子などの各準識別子の範囲を示す情報と、が関連づけられている。例えば、
図5で例示するように、分割境界情報242は、各準識別子の範囲をクラスタごとに表形式で表したものであってよい。
【0031】
なお、分割境界情報242は、表形式以外の形式で各準識別子の範囲をクラスタごとに表していてもよい。また、分割境界情報242は、クラスタに属する各属性の範囲を示す代わりに、各分割軸の位置を示す情報などであってもよい。
【0032】
演算処理部250は、CPU(Central Processing Unit)などの演算装置とその周辺回路を有する。演算処理部250は、記憶部240からプログラム243を読み込んで実行することにより、上記ハードウェアとプログラム243とを協働させて各種処理部を実現する。演算処理部250で実現される主な処理部としては、例えば、取得部251、結合部252、匿名化部253、境界情報取得部254、境界情報送信部255などがある。
【0033】
なお、演算処理部250は、上述したCPUの代わりに、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、TPU(Tensor Processing Unit)、量子プロセッサ、マイクロコントローラ、又は、これらの組み合わせなどを有してもよい。
【0034】
取得部251は、開示や結合について同意が得られているデータを匿名化装置300から取得する。例えば、取得部251は、通信I/F部230を介して、匿名化システム100に含まれる各匿名化装置300から上記データを取得する。つまり、取得部251は、複数の匿名化装置300からデータを取得する。また、取得部251は、取得したデータを同意済みデータ241として記憶部240に格納する。
【0035】
結合部252は、取得部251が各匿名化装置300から取得したデータを結合する。例えば、結合部252は、同意済みデータ241に含まれる識別情報や共通準識別子などに基づいて、各匿名化装置300から取得したデータを結合する。
図1で例示するように、結合部252が各データを結合することで、各組織に対応する表から1つの表を生成することができる。
【0036】
例えば、各組織において同一または対応する識別情報が割り当てられている場合、結合部252は、識別子として機能する識別情報を用いた結合を行うことができる。換言すると、結合部252は、匿名化装置300-Aから取得したデータと匿名化装置300-Bから取得したデータとのうち同一の識別情報を有するデータを結合することができる。また、結合部252は、共通準識別子を用いた結合を行ってもよい。例えば、結合部252は、匿名化装置300-Aから取得したデータと匿名化装置300-Bから取得したデータとのうち共通準識別子がすべて一致するデータを結合することができる。また、同意済みデータ241に氏名などの識別子が含まれる場合、結合部252は、識別子を用いた結合を行ってもよい。例えば、結合部252は、上記例示した方法のいずれか、またはその組み合わせにより、各匿名化装置300から取得したデータを結合することができる。
【0037】
匿名化部253は、結合部252による結合済みのデータに対して、匿名化処理を行う。例えば、匿名化部253は、匿名化処理としてk-匿名化を行う。匿名化処理を行うことで、結合部252による結合済みのデータが複数のクラスタに分けられる。つまり、匿名化部253は、結合済みのデータに対して所定の匿名化処理を行うことで、複数のクラスタからなる第1の匿名化クラスタ集合を生成する。
【0038】
匿名化部253は、モンドリアン方式を用いたk-匿名化を行うことができる。例えば、匿名化部253は、各準識別子、つまり各属性についてクラスタにおける中央値を算出する。また、匿名化部253は、上記算出した中央値でデータを分割した場合の情報量損失の変化を算出する。一例として、匿名化部253は、中央値で分割した後の2つのクラスタにおける(最大値―最小値)/(属性の全長)の合計と、分割前のクラスタにおける(最大値―最小値)/(属性の全長)と、の間の差を情報量損失の差として算出する。その後、匿名化部253は、情報量損失の差が最も大きい属性を選択して、選択した属性の中央値でクラスタを分割する。
【0039】
図6で例示するように、匿名化部253は、所定の条件を満たすまで上述した方法を用いてクラスタを分割する処理を繰り返す。例えば、匿名化部253は、クラスタ内のデータ数がk個未満にならないように、各クラスタを分割する処理を繰り返すことができる。換言すると、匿名化部253は、新たに分割するとクラスタ内のデータ数がk個未満になってしまうという条件を満たすまでクラスタを分割する処理を繰り返すことができる。なお、新たな分割によりクラスタ内のデータ数がk個未満になる場合、匿名化部253は当該分割を行わずに処理を終了してよい。
【0040】
なお、匿名化部253が匿名化処理を行う際に用いる匿名化パラメータであるkは、例えば、max(2,第2のk・rate)とすることができる。ここで、rateは、同意が得られているデータのデータ全体に対する割合である。例えば、第1の匿名化クラスタを形成する際に用いる匿名化パラメータkは、後述する第2の匿名化クラスタを形成する際の匿名化パラメータkとrateとを乗算した値と、予め定められた所定の値である2と、のうち大きい方の値とすることができる。なお、第2の匿名化クラスタを形成する際の匿名化パラメータkは、例えば任意に設定されてよい。また、予め定められた所定の値は2以外であってもよい。
【0041】
境界情報取得部254は、匿名化部253による匿名化処理の結果に基づいて、クラスタ間の境界を示す境界情報を取得する。また、境界情報取得部254は、取得した境界情報を分割境界情報242として記憶部240に格納する。
【0042】
例えば、境界情報取得部254は、上述した匿名化処理で求めた第1の匿名化クラスタ集合に含まれる各クラスタを分割する各分割軸に基づいて、各クラスタにおける各準識別子の範囲を示す情報を境界情報として取得する。換言すると、境界情報取得部254は、匿名化処理の結果に基づいて、各クラスタに属する準識別子の範囲を示す情報である境界情報を取得する。なお、境界情報取得部254は、各分割軸の位置などを示す情報を境界情報として取得してもよい。
【0043】
境界情報送信部255は、境界情報取得部254が取得した境界情報を各匿名化装置300に対して送信する。例えば、境界情報送信部255は、通信I/F部230を介して境界情報を各匿名化装置300に対して送信することができる。
【0044】
以上が、境界決定装置200の構成例である。
【0045】
匿名化装置300は、境界決定装置200から受信した境界情報を用いた匿名化処理を行う情報処理装置である。また、匿名化装置300は、境界情報を用いて自装置が有するデータを各クラスタに分割した後、必要に応じてクラスタの統合や削除などを行うことができる。
【0046】
図7は、匿名化装置300の構成例を示している。
図7を参照すると、匿名化装置300は、主な構成要素として、例えば、操作入力部310と、画面表示部320と、通信I/F部330と、記憶部340と、演算処理部350と、を有している。
【0047】
なお、匿名化装置300は、境界決定装置200と同様に様々な変形例を採用することができる。例えば、匿名化装置300は、クラウド上に実現されるなど、複数台の情報処理装置を用いて実現されてもよい。また匿名化装置300は、操作入力部310や画面表示部320を有さないなど上記例示した構成の一部を含まなくてもよいし、上記例示した以外の構成を有してもよい。
【0048】
操作入力部310、画面表示部320、通信I/F部330の構成は、上述した操作入力部210、画面表示部220、通信I/F部230の構成と同様であってよい。
【0049】
記憶部340は、ハードディスクやメモリなどの記憶装置である。記憶部340は、演算処理部350における各種処理に必要な処理情報やプログラム343を記憶する。プログラム343は、演算処理部350に読み込まれて実行されることにより各種処理部を実現する。プログラム343は、通信I/F部330などのデータ入出力機能を介して外部装置や記録媒体から予め読み込まれ、記憶部340に保存されている。記憶部340で記憶される主な情報としては、例えば、個人データ341、分割境界情報342などがある。
【0050】
個人データ341は、自組織が有するデータを含んでいる。個人データ341には、開示や結合について同意が得られているデータのほか、開示や結合について同意が得られていないデータが含まれてよい。例えば、個人データ341は、通信I/F部330を介して外部装置から取得することや操作入力部310などを用いて入力することなどの方法を用いて予め取得されており、記憶部340に格納されている。
【0051】
例えば、個人データ341では、各個人に割り振られたIDなどの任意の識別情報と、共通準識別子と、自組織に対応する固有準識別子と、が関連づけられている。例えば、匿名化装置300-Aが有する個人データ341では、識別情報と、共通準識別子と、A固有準識別子と、が関連付けられている。また、匿名化装置300-Bが有する個人データ341では、識別情報と、共通準識別子と、B固有準識別子と、が関連付けられている。同意済みデータ241の場合と同様に、個人データ341には、氏名などの識別子が含まれてもよい。
【0052】
分割境界情報342は、境界決定装置200から取得した境界情報を含んでいる。例えば、分割境界情報342は、後述する分割境界情報取得部351が境界決定装置200から境界情報を取得することなどに応じて更新される。
【0053】
演算処理部350は、CPUなどの演算装置とその周辺回路を有する。演算処理部350は、記憶部340からプログラム343を読み込んで実行することにより、上記ハードウェアとプログラム343とを協働させて各種処理部を実現する。演算処理部350で実現される主な処理部としては、例えば、分割境界情報取得部351、分割部352、クラスタ形成部353などがある。
【0054】
なお、演算処理部350は、演算処理部250の場合と同様に、上述したCPUの代わりに、GPUなどを有してもよい。
【0055】
分割境界情報取得部351は、境界情報を境界決定装置200から取得する。例えば、分割境界情報取得部351は、通信I/F部330を介して、境界決定装置200が送信した境界情報を境界決定装置200から取得する。また、分割境界情報取得部351は、取得した境界情報を分割境界情報342として記憶部340に格納する。
【0056】
分割部352は、分割境界情報取得部351が取得した境界情報を用いた匿名化処理を行う。例えば、分割部352は、分割境界情報取得部351が取得した境界情報を用いて、個人データ341に含まれるデータを各クラスタに分割することで、第2の匿名化クラスタ集合を生成する。換言すると、分割部352は、境界情報に基づいて、同意が得られていないデータも含むデータを各クラスタに分割することで、第1の匿名化クラスタ集合とは異なる第2の匿名化クラスタ集合を生成する。
【0057】
例えば、上述したように、境界情報は、各クラスタに属する各準識別子の範囲を示している。そこで、分割部352は、境界情報に基づいて、個人データ341に含まれるデータを各クラスタに分割する。その結果、個人データ341に含まれる各データは、第2の匿名化クラスタ集合を形成する複数のクラスタのうちのいずれか1つのクラスタに属する。
【0058】
クラスタ形成部353は、分割部352による分割ののち、所定の条件を満たすクラスタを統合する。クラスタ形成部353がクラスタの統合を行うことで、クラスタ内のデータ数がk個以上であることが担保され、境界情報に基づく匿名化を行いつつk-匿名性を確保することができる。
【0059】
例えば、クラスタ形成部353は、クラスタ内のデータ数に基づいて、クラスタ同士を統合することができる。一例として、クラスタ形成部353は、データ数が所定値k未満のクラスタが存在しなくなるように、クラスタ同士の統合を行う。この際、クラスタ形成部353は、共通準識別子の分割具合が可能な限り劣化しないように、クラスタ同士の統合を行ってもよい。なお、クラスタ形成部353が統合を行う際に用いる匿名化パラメータkは、例えば任意に設定されてよい。
【0060】
例えば、
図8を参照すると、クラスタ形成部353は、クラスタ内に含まれるデータ数がk個未満のクラスタを列挙する。また、クラスタ形成部353は、任意の手法を用いて列挙したクラスタから一つを選択する。その後、クラスタ形成部353は、選択したクラスタと隣接する各クラスタに対して、統合により発生する情報量損失の変化をパラメータとして算出する。例えば、クラスタ形成部353は、匿名化部253が行った処理と同様に、統合前における各軸の(最大値―最小値)/(属性の全長)の合計と、統合後における(最大値―最小値)/(属性の全長)と、の間の差を算出することで、情報量損失の差を算出してよい。そして、クラスタ形成部353は、統合によりデータがk個以上になり、かつ、情報損失量の変化が最も小さいクラスタと統合する旨を決定してクラスタ同士を統合する。例えば、クラスタ形成部353は、データ数がk個未満のクラスタがなくなるまで、上述した方法を用いてクラスタを統合する処理を繰り返すことができる。
【0061】
なお、情報量損失を算出する際、クラスタ形成部353は、共通準識別子の属性と固有準識別子の属性とにそれぞれ重みを与えて情報損失量を算出してもよい。この際、クラスタ形成部353は、共通準識別子の属性と固有準識別子の属性とに異なる大きさの重みを与えて情報損失量を算出してもよい。例えば、クラスタ形成部353は、共通準識別子の属性の重みを固有準識別子の属性の重みよりも大きくすることができる。これにより、共通準識別子の変化が大きいクラスタとの統合を抑止することができる。なお、重みの大きさは任意に設定されてよい。
【0062】
また、クラスタ形成部353は、上述した統合処理の代わりに、または、統合処理とともに、クラスタの削除を行ってもよい。例えば、クラスタ形成部353は、データ数がk個未満のクラスタを削除するよう構成してもよい。なお、クラスタ形成部353が統合処理とクラスタの削除のいずれを実行するかは、任意の方法で決定されてよい。
【0063】
例えば以上のように、匿名化装置300は、匿名化処理として分割部352による分割を行う。また、匿名化装置300は、必要に応じて、匿名化処理としてクラスタ形成部353によるクラスタの統合や削除を行うことができる。このように、匿名化装置300は、境界情報に基づくデータの分割により第2の匿名化クラスタ集合を生成するとともに、必要に応じてクラスタ形成部353による第2の匿名化クラスタ集合の修正を行うことができるように構成されている。
【0064】
出力部354は、クラスタ形成部353による処理の結果などを出力する。例えば、出力部354は、画面表示部320にクラスタ形成部353による処理の結果を画面表示させたり、通信I/F部330を介して外部装置へと処理の結果を送信したりすることができる。
【0065】
以上が、匿名化装置300の構成例である。続いて、
図9、
図10を参照して、境界決定装置200と匿名化装置300の動作例について説明する。まず、
図9を参照して、境界決定装置200の動作例について説明する。
【0066】
図9は、境界決定装置200の動作例を示すフローチャートである。
図9を参照すると、取得部251は、他の組織が有するデータと結合することについて同意が得られているデータを匿名化装置300から取得する(ステップS101)。
【0067】
結合部252は、取得部251が各匿名化装置300から取得したデータを結合する(ステップS102)。例えば、結合部252は、同意済みデータ241に含まれる識別情報や共通準識別子などに基づいて、各匿名化装置300から取得したデータを結合する。
【0068】
匿名化部253は、結合部252による結合済みのデータに対して、匿名化処理を行う(ステップS103)。例えば、匿名化部253は、匿名化処理としてk-匿名化を行う。匿名化処理を行うことで、結合部252による結合済みのデータが複数のクラスタに分けられる。
【0069】
境界情報取得部254は、匿名化部253による匿名化処理の結果に基づいて、クラスタ間の境界を示す境界情報を取得する(ステップS104)。例えば、境界情報取得部254は、匿名化処理の結果に基づいて、各クラスタに属する準識別子の範囲を示す情報を境界情報として取得する。
【0070】
境界情報送信部255は、境界情報取得部254が取得した境界情報を各匿名化装置300に対して送信する(ステップS105)。
【0071】
以上が、境界決定装置200の動作例である。続いて、
図10を参照して、匿名化装置300の動作例について説明する。
【0072】
図10は、匿名化装置300の動作例を示すフローチャートである。
図10を参照すると、分割境界情報取得部351は、境界情報を境界決定装置200から取得する(ステップS201)。
【0073】
分割部352は、分割境界情報取得部351が取得した境界情報を用いて、個人データ341に含まれるデータを各クラスタに分割する(ステップS202)。換言すると、分割部352は、境界情報に基づいて、同意が得られていないデータも含むデータを各クラスタに分割する。
【0074】
クラスタ形成部353は、クラスタが所定の条件を満たすか否か確認する(ステップS203)。例えば、クラスタ形成部353は、所定の条件として、クラスタ内のデータ数が所定値k以上であるか否か確認する。
【0075】
データ数が所定値k未満のクラスタが存在する場合、クラスタ形成部353は、クラスタ同士の統合や削除が必要であると判断する(ステップS203、Yes)。これに応じて、クラスタ形成部353は、データ数が所定値k未満のクラスタが存在しなくなるように、クラスタ同士の統合や削除を行う(ステップS204)。この際、クラスタ形成部353は、共通準識別子の分割具合が可能な限り劣化しないように、クラスタ同士の統合を行ってもよい。一方、データ数が所定値k未満のクラスタが存在しない場合、クラスタ形成部353は、クラスタ同士の統合などが必要でないと判断する(ステップS203、No)。この場合、クラスタ形成部353は、クラスタを統合などする処理を終了する。
【0076】
以上が、匿名化装置300の動作例である。
【0077】
このように、匿名化装置300は、分割境界情報取得部351と、分割部352と、を有している。このような構成によると、分割部352は、同意済みのデータに基づいて特定されるクラスタ間の境界を示す境界情報に基づいて、自装置が有するデータを各クラスタに分割することができる。その結果、各匿名化装置300において、匿名化処理を行う際の粒度を出来る限り揃えることができる。つまり、結合する際ののりしろとなる共通準識別子などが出来る限り同じ粒度で匿名化されることになる。これにより、各匿名化装置300において匿名化処理を行った結果を結合した際などにおける分析精度を向上させることができる。
【0078】
また、匿名化装置300は、クラスタ形成部353を有している。このような構成によると、クラスタ形成部353は、クラスタが所定の条件を満たす場合にクラスタの統合や削除を行うことができる。クラスタ形成部353がクラスタの統合を行うことで、クラスタ内のデータ数がk以上であることが担保される。その結果、境界情報に基づく匿名化を行いつつk-匿名性を確保することができる。
【0079】
また、本開示の場合、クラスタ同士の統合を行う際に、共通準識別子の分割具合が可能な限り劣化しないように、クラスタの統合を行う。その結果、匿名化の際に発生する情報損失を出来る限り小さくすることができる。これにより、より各匿名化装置300において匿名化処理を行った結果を結合した際などにおける分析精度を向上させることができる。
【0080】
[第2の実施形態]
次に、本開示の第2の実施形態について、
図11から
図13までを参照して説明する。
図11は、匿名化装置400のハードウェア構成例を示す図である。
図12は、匿名化装置400の構成例を示すブロック図である。
図13は、決定装置500の構成例を示すブロック図である。
【0081】
本開示の第2の実施形態においては、自装置が有するデータに対する匿名化処理を行う情報処理装置である匿名化装置400の構成例について説明する。また、匿名化装置400が匿名化処理を行う際に用いる境界情報の決定を行う決定装置500の構成例について説明する。
図11は、匿名化装置400のハードウェア構成例を示している。
図11を参照すると、匿名化装置400は、一例として、以下のようなハードウェア構成を有している。
・CPU(Central Processing Unit)401(演算装置)
・ROM(Read Only Memory)402(記憶装置)
・RAM(Random Access Memory)403(記憶装置)
・RAM403にロードされるプログラム群404
・プログラム群404を格納する記憶装置405
・情報処理装置外部の記録媒体410の読み書きを行うドライブ装置406
・情報処理装置外部の通信ネットワーク411と接続する通信インタフェース407
・データの入出力を行う入出力インタフェース408
・各構成要素を接続するバス409
【0082】
また、匿名化装置400は、プログラム群404をCPU401が取得して当該CPU401が実行することで、
図12に示す取得部421、分割部422しての機能を実現することができる。なお、プログラム群404は、例えば、予め記憶装置405やROM402に格納されており、必要に応じてCPU401がRAM403などにロードして実行する。また、プログラム群404は、通信ネットワーク411を介してCPU401に供給されてもよいし、予め記録媒体410に格納されており、ドライブ装置406が該プログラムを読み出してCPU401に供給してもよい。
【0083】
なお、
図11は、匿名化装置400のハードウェア構成例を示している。匿名化装置400のハードウェア構成は上述した場合に限定されない。例えば、匿名化装置400は、ドライブ装置406を有さないなど、上述した構成の一部から構成されてもよい。また、CPU401は、第1の実施形態で例示したGPUなどであってもよい。
【0084】
取得部421は、所定のデータに対する匿名化処理を行うことで特定された、クラスタ間の境界を示す境界情報を取得する。例えば、取得部421は、複数の組織から取得したデータを結合した結果に対して匿名化処理を行うことで特定された、クラスタ間の境界を示す境界情報を取得することができる。
【0085】
分割部422は、取得部421が取得した境界情報に基づいて自装置が有するデータを複数のクラスタに分割することで匿名化クラスタ集合を生成する。
【0086】
このように、匿名化装置400は、取得部421と分割部422とを有している。このような構成によると、分割部422は、取得部421が取得した境界情報に基づいて自装置が有するデータを複数のクラスタに分割することで匿名化クラスタ集合を生成することができる。その結果、各匿名化装置400において、匿名化処理を行う際の粒度を出来る限り揃えることができる。これにより、各匿名化装置400において匿名化処理を行った結果を結合した際などにおける分析精度を向上させることができる。
【0087】
なお、上述した匿名化装置400は、当該匿名化装置400などの情報処理装置に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、匿名化装置400などの情報処理装置に、所定のデータに対する匿名化処理を行うことで特定された、クラスタ間の境界を示す境界情報を取得し、取得した境界情報に基づいて自装置が有するデータを複数のクラスタに分割することで匿名化クラスタ集合を生成する、処理を実現するためのプログラムである。
【0088】
また、上述した匿名化装置400などの情報処理装置により実行される匿名化方法は、情報処理装置が、所定のデータに対する匿名化処理を行うことで特定された、クラスタ間の境界を示す境界情報を取得し、取得した境界情報に基づいて自装置が有するデータを複数のクラスタに分割することで匿名化クラスタ集合を生成する、という方法である。
【0089】
上述した構成を有する、プログラム、又は、プログラムを記録したコンピュータが読み取り可能な記録媒体、又は、匿名化方法、の発明であっても、上述した匿名化装置400と同様の作用・効果を奏するために、上述した本開示の目的を達成することができる。
【0090】
また、匿名化装置400が取得する境界情報を取得する決定装置500や決定装置500が実行する決定方法、プログラムであっても、上述した場合と同様の目的を達成することができる。例えば、
図13を参照すると、決定装置500は、複数の組織からデータを取得するデータ取得部521と、データ取得部521が取得したデータを結合して匿名化処理を行う匿名化部522と、匿名化部522による匿名化処理の結果に基づいて、クラスタ間の境界を示す境界情報を取得する境界情報取得部523と、を有する。なお、決定装置500のハードウェア構成は、
図11を参照して説明した匿名化装置400が有する構成と同様であってよい。例えば、決定装置500は、記憶装置に格納されたプログラム群をCPUが取得して当該CPUが実行することなどにより、上述した各処理部を実現することができる。
【0091】
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における匿名化装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【0092】
(付記1)
所定のデータに対する匿名化処理を行うことで特定された、クラスタ間の境界を示す境界情報を取得する取得部と、
前記取得部が取得した前記境界情報に基づいて自装置が有するデータを複数のクラスタに分割することで匿名化クラスタ集合を生成する分割部と、
を有する
匿名化装置。
(付記2)
付記1に記載の匿名化装置であって、
前記分割部が分割した前記匿名化クラスタ集合に含まれるクラスタのうち所定の条件を満たすクラスタを統合または削除するクラスタ形成部を有する
匿名化装置。
(付記3)
付記2に記載の匿名化装置であって、
前記クラスタ形成部は、クラスタ内のデータ数に基づいて、クラスタを統合または削除する
匿名化装置。
(付記4)
付記2または付記3に記載の匿名化装置であって、
データには複数の組織が共通して有する共通準識別子と、固有準識別子とが含まれており、
前記クラスタ形成部は、前記共通準識別子と前記固有準識別子とに異なる重みを与えて算出するパラメータに基づいてクラスタの統合を行う
匿名化装置。
(付記5)
付記4に記載の匿名化装置であって、
前記クラスタ形成部は、前記共通準識別子に前記固有準識別子よりも大きい重みを与えて算出するパラメータに基づいてクラスタの統合を行う
匿名化装置。
(付記6)
付記1から付記5までのうちのいずれか1項に記載の匿名化装置であって、
前記取得部は、複数の組織から取得したデータを結合した結果に対して匿名化処理を行うことで特定された、クラスタ間の境界を示す前記境界情報を取得する
匿名化装置。
(付記7)
付記1から付記6までのうちのいずれか1項に記載の匿名化装置であって、
前記取得部は、自装置が有するデータのうちの少なくとも一部を含むデータに対する匿名化処理を行うことで特定された、クラスタ間の境界を示す境界情報を取得する
匿名化装置。
(付記8)
情報処理装置が、
所定のデータに対する匿名化処理を行うことで特定された、クラスタ間の境界を示す境界情報を取得し、
取得した前記境界情報に基づいて自装置が有するデータを複数のクラスタに分割することで匿名化クラスタ集合を生成する
匿名化方法。
(付記9)
情報処理装置に、
所定のデータに対する匿名化処理を行うことで特定された、クラスタ間の境界を示す境界情報を取得し、
取得した前記境界情報に基づいて自装置が有するデータを複数のクラスタに分割することで匿名化クラスタ集合を生成する
処理を実現するためのプログラム。
(付記10)
複数の組織からデータを取得するデータ取得部と、
前記データ取得部が取得したデータを結合して匿名化処理を行う匿名化部と、
前記匿名化部による匿名化処理の結果に基づいて、クラスタ間の境界を示す境界情報を取得する境界情報取得部と、
を有する
決定装置。
(付記11)
付記10に記載の決定装置であって、
前記境界情報取得部が取得した境界情報を匿名化装置に対して送信する送信部を有する
決定装置。
(付記12)
付記11に記載の決定装置であって、
前記匿名化部は、前記匿名化装置が匿名化処理を行う際に用いる匿名化パラメータに基づいて、自装置が匿名化処理を行う際に用いる匿名化パラメータを決定する
決定装置。
(付記13)
付記12に記載の決定装置であって、
前記匿名化部は、前記匿名化装置が匿名化処理を行う際に用いる匿名化パラメータに所定値を乗算した値と、予め定められた値と、のうちの大きい方の値を、自装置が匿名化処理を行う際に用いる匿名化パラメータとして決定する
決定装置。
(付記14)
情報処理装置が、
複数の組織からデータを取得し、
取得したデータを結合して匿名化処理を行い、
匿名化処理の結果に基づいて、クラスタ間の境界を示す境界情報を取得する
決定方法。
(付記15)
情報処理装置に、
複数の組織からデータを取得し、
取得したデータを結合して匿名化処理を行い、
匿名化処理の結果に基づいて、クラスタ間の境界を示す境界情報を取得する
処理を実現するためのプログラム。
(付記16)
複数の組織からデータを取得するデータ取得部と、前記データ取得部が取得したデータを結合して匿名化処理を行う匿名化部と、前記匿名化部による匿名化処理の結果に基づいて、クラスタ間の境界を示す境界情報を取得する境界情報取得部と、を有する決定装置と、
前記境界情報取得部が取得した前記境界情報を取得する情報取得部と、前記情報取得部が取得した前記境界情報に基づいて自装置が有するデータを複数のクラスタに分割することで匿名化クラスタ集合を生成する分割部と、を有する匿名化装置と、
を有する
匿名化システム。
【0093】
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【0094】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【0095】
100 匿名化システム
200 境界決定装置
210 操作入力部
220 画面表示部
230 通信I/F部
240 記憶部
241 同意済みデータ
242 分割境界情報
243 プログラム
250 演算処理部
251 取得部
252 結合部
253 匿名化部
254 境界情報取得部
255 境界情報送信部
300 匿名化装置
310 操作入力部
320 画面表示部
330 通信I/F部
340 記憶部
341 個人データ
342 分割境界情報
343 プログラム
350 演算処理部
351 分割境界情報取得部
352 分割部
353 クラスタ形成部
400 匿名化装置
401 CPU
402 ROM
403 RAM
404 プログラム群
405 記憶装置
406 ドライブ装置
407 通信インタフェース
408 入出力インタフェース
409 バス
410 記録媒体
411 通信ネットワーク
421 取得部
422 分割部
500 決定装置
521 データ取得部
522 匿名化部
523 境界情報取得部