(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-31
(45)【発行日】2023-08-08
(54)【発明の名称】データ処理装置、データ処理方法及びプログラム
(51)【国際特許分類】
G06F 16/28 20190101AFI20230801BHJP
G06F 21/62 20130101ALI20230801BHJP
【FI】
G06F16/28
G06F21/62 345
(21)【出願番号】P 2019116675
(22)【出願日】2019-06-24
【審査請求日】2022-03-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】小栗 秀暢
【審査官】早川 学
(56)【参考文献】
【文献】特開2014-092967(JP,A)
【文献】特開2008-027072(JP,A)
【文献】米国特許出願公開第2016/0292455(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
複数のデータベースのそれぞれを構成する属性項目のうちの2つの属性項目の組ごとに、当該2つの属性項目に関してデータベースに記憶されている値の集合に基づいて、当該2つの属性項目の関連性の強さを示す指標の値を計算する計算部と、
前記各属性項目をノードとし、前記指標の値に基づいて関連が有ると判定される属性項目間が当該値を重みとするエッジによって接続されるグラフ構造を表現する情報を生成する生成部と、
前記グラフ構造において特定の属性項目に係るノードを始点とする1以上の経路を探索する探索部と、
前記経路に含まれるノードに対応する属性項目に関して記憶されている値を変更する変更部と、
を有することを特徴とするデータ処理装置。
【請求項2】
前記生成部は、同じデータベースを構成する2つの属性項目に対しては、当該2つの属性項目が同じデータベースに属することを示すエッジによって接続される前記グラフ構造を表現する情報を生成する、
ことを特徴とする請求項1記載のデータ処理装置。
【請求項3】
前記変更部は、前記経路に含まれるエッジの重みの総和が大きい経路から順に、当該経路に含まれるノードに対応する属性項目に関して記憶されている値を変更す
る、
ことを特徴とする請求項1又は2記載のデータ処理装置。
【請求項4】
前記変更部は、前記エッジの重みの大きさに応じて、当該エッジに接続されるノードに係る属性項目に関してデータベースに記憶されている値の変化の度合いを変える、
ことを特徴とする請求項3記載のデータ処理装置。
【請求項5】
前記変更部は、差分プライバシーによって前記値を変更し、前記エッジの重みの大きさに応じて差分プライバシーによるノイズ量を変える、
ことを特徴とする請求項4記載のデータ処理装置。
【請求項6】
複数のデータベースのそれぞれを構成する属性項目のうちの2つの属性項目の組ごとに、当該2つの属性項目に関してデータベースに記憶されている値の集合に基づいて、当該2つの属性項目の関連性の強さを示す指標の値を計算し、
前記各属性項目をノードとし、前記指標の値に基づいて関連が有ると判定される属性項目間が当該値を重みとするエッジによって接続されるグラフ構造を表現する情報を生成
し、
前記グラフ構造において特定の属性項目に係るノードを始点とする1以上の経路を探索し、
前記経路に含まれるノードに対応する属性項目に関して記憶されている値を変更する、
処理をコンピュータが実行することを特徴とするデータ処理方法。
【請求項7】
複数のデータベースのそれぞれを構成する属性項目のうちの2つの属性項目の組ごとに、当該2つの属性項目に関してデータベースに記憶されている値の集合に基づいて、当該2つの属性項目の関連性の強さを示す指標の値を計算し、
前記各属性項目をノードとし、前記指標の値に基づいて関連が有ると判定される属性項目間が当該値を重みとするエッジによって接続されるグラフ構造を表現する情報を生成
し、
前記グラフ構造において特定の属性項目に係るノードを始点とする1以上の経路を探索し、
前記経路に含まれるノードに対応する属性項目に関して記憶されている値を変更する、
処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置、データ処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、企業や行政機関、医療施設などにおいて、パーソナルデータは業務の遂行に欠かせないものとなっている。多くのパーソナルデータには、機微情報や金融情報など、漏洩すると個人に対して大きな影響を与えるデータから、性別や年齢など、比較的どのような人に対しても提供するデータが混在している。そのような機微性が混在しているデータは扱いが難しく、企業の現場などでは使用しにくい。
【0003】
そこで、多くの企業では、例えばクレジットカード等の金融情報はPCI DSS(Payment Card Industry Data Security Standard)などの厳重に管理された区間の中に保存し、分析データや売上集計データなどは別個に抽出、加工した「派生データ(Derived data)」として利用されている。
【0004】
この方式は、機微性の高い個人情報を安全に保管し、各個別のデータ利用を可能とする優れた方式であるが、多くの派生データが社内に散在してしまい、管理が困難である。
【0005】
派生データの課題としては、(1)保管場所が一般事業領域であるため安全性が低い、(2)派生データの再結合により元データの復元が可能となる、という問題がある。この2点の問題はセキュリティだけでなく、企業の法令対応として大きな課題である。
【0006】
2018年のEU GDPR(General Data Protection Regulation)の施行に伴い、企業やサービスが保持するパーソナルデータには、削除の要件が明確化された。具体的にはパーソナルデータの削除権、または忘れられる権利(Right to erasure, or right to be forgotten)。又はデータの同意期限の終了による削除などが存在する。
【0007】
これらの法令では、個人が自らに関するデータの削除を要求した場合、自らに関する個人データを削除させる権利、当該データのさらなる拡散を停止させる権利、及び、第三者に対し、当該データのあらゆるリンク、コピー又は複製を削除させる権利などが認められている。また、削除要求に応じないと法律違反となり、多額の制裁金が課される可能性がある。
【0008】
本法令は、当該データのコピーや複製も対象であり、「あらゆる合理的措置」を採用してデータの削除が行われなければならない。しかし、「法によって取扱いが要求されている法的義務を遵守するのに必要な場合」は、データが保持されても良い。すなわち、決済報告書や事後安全性確保や追跡のためのデータ保持は可能とされている。
【先行技術文献】
【特許文献】
【0009】
【文献】特開2016-45535号公報
【文献】国際公開第2016/067566号
【文献】特開2011-100116号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
通常の企業では、1次的なデータであるマスタデータのみを削除し、派生データを削除しないことでリスクを残し、業務を継続するが、その場合ではデータの削除が不完全であると認識され、状況が外部に伝えられた場合には、当局から指導・制裁等が与えられる可能性がある。
【0011】
一方、データを徹底的に削除した場合は、他の業務との関連性の問題が発生する。例えば、販売商品を機械学習にかけている場合、複数人に関する派生データを削除することで精度が低下する、または、業務ソフトウェアの不整合が発生する可能性がある。
【0012】
したがって、データの削除を要求された側にとって、どの範囲まで保護の対象(すなわち、削除の対象)とすべきかを判断するのが困難な状況にある。
【0013】
そこで、一側面では、本発明は、データに関する保護範囲の特定を支援することを目的とする。
【課題を解決するための手段】
【0014】
一つの態様では、データ処理装置は、複数のデータベースのそれぞれを構成する属性項目のうちの2つの属性項目の組ごとに、当該2つの属性項目に関してデータベースに記憶されている値の集合に基づいて、当該2つの属性項目の関連性の強さを示す指標の値を計算する計算部と、前記各属性項目をノードとし、前記指標の値に基づいて関連が有ると判定される属性項目間が当該値を重みとするエッジによって接続されるグラフ構造を表現する情報を生成する生成部と、を有する。
【発明の効果】
【0015】
一側面として、データに関する保護範囲の特定を支援することができる。
【図面の簡単な説明】
【0016】
【
図1】本発明の実施の形態の概要を説明するための図である。
【
図2】本発明の実施の形態におけるデータ処理装置10のハードウェア構成例を示す図である。
【
図3】本発明の実施の形態におけるデータ処理装置10の機能構成例を示す図である。
【
図4】データ処理装置10が実行する処理手順の一例を説明するためのフローチャートである。
【
図6】接続可能性配列Lが表現するグラフ構造の例を示す図である。
【
図7】グラフ構造が示す属性項目間の関係を説明するための図である。
【
図8】ノイズ量の範囲を調整するための実験を説明するための図である。
【
図9】ノイズ量の範囲を調整するための実験の結果を示す図である。
【
図10】グラフ構造の経路の探索処理の処理手順の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【0017】
以下、図面に基づいて本発明の実施の形態を説明する。
図1は、本発明の実施の形態の概要を説明するための図である。
図1に示されるように、本実施の形態では、企業Eの商品の購入者(以下、「顧客」という。)のうちの或る顧客からの個人情報の削除要求に対し、データ処理装置10は、当該顧客に関する個人情報を含みうるデータベースA
1、データベースA
2、データベースA
3の中から、当該顧客に関するデータ(レコード)について削除と同等の加工処理を実行する。この際、データ処理装置10は、加工処理の対象とされるデータについて業務上の有用性がなるべく損なわれないように加工を行う。なお、削除と同等の加工処理とは、各データベースの属性項目の結合等により、削除要求元の個人情報が復元できない状態にすることをいう。
【0018】
本実施の形態において、データベースA1は、顧客の購入履歴を記憶するデータベースである。したがって、データベースA1のレコードは、顧客による1回の買い物ごとに増加する。データベースA1の各レコードは、「ID」、「Name」、「Price」及び「Item」等の属性項目を有する。「ID」は、顧客の識別情報である。「Name」は、顧客の氏名である。「Price」は、顧客が購入した商品の価格(合計値)である。「Item」は、顧客が購入した商品の名前及び個数である。すなわち、「Item」には、顧客が購入した商品の名前が列記される。なお、3番目のレコードの「Item」の値である「Choco×6」は、6個の「Choco」が購入されたことを示す。
【0019】
データベースA2は、顧客ごとに購入金額の集計結果を記憶するデータベースであり、例えば、企業Eの経理部において管理される。したがって、データベースA2のレコード数は、顧客数に一致する。データベースA2の各レコードは、「PusID」及び「Sum」等の属性項目を含む。「PusID」は、「ID」が仮名(かめい)化されたIDである。「Sum」は、購入金額の集計結果である。
【0020】
データベースA3は、顧客ごとに購入した商品の個数の集計結果を記憶するデータベースであり、例えば、企業Eの企画部において管理される。したがって、データベースA3のレコード数は、顧客数に一致する。データベースA3の各レコードは、「PusID」及び「ItemNum」等の属性項目を含む。「PusID」は、データベースA2の「PusID」に一致する。「ItemNum」は、購入した商品の個数の集計結果である。
【0021】
なお、
図1において、データベースA
2及びA
3のデータ(レコード)は、データベースA
1のデータ(レコード)から派生したデータである。すなわち、データベースA
2及びA
3のデータ(レコード)は、データベースA
1のデータを集計又は分析することにより得られるデータである。斯かる相対的な関係において、データベースA
1のデータは、顧客の購入行為に応じて直接的に発生するマスタデータ(1次データ)に相当し、データベースA
2及びA
3のデータは、派生データ(2次データ)に相当する。なお、派生データからさらに派生するデータ(3次以降のデータ)が存在してもよい。
【0022】
なお、顧客からの削除要求は散発的に発生することを想定する。一人の顧客からの削除要求のたびにデータ処理装置10がデータの加工処理を実行するのは非効率なので、本実施の形態のデータ処理装置10は、周期的なタイミング又は削除要求が所定数に達したタイミング(以下、「加工タイミング」という。)の到来に応じて、複数の削除要求に対する加工処理をまとめて実行するとする。但し、削除要求のたびに加工処理が実行されてもよい。
【0023】
図2は、本発明の実施の形態におけるデータ処理装置10のハードウェア構成例を示す図である。
図2のデータ処理装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
【0024】
データ処理装置10での処理を実現するプログラムは、記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0025】
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってデータ処理装置10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
【0026】
なお、記録媒体101の一例としては、CD-ROM、DVDディスク、又はUSBメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置102の一例としては、HDD(Hard Disk Drive)又はフラッシュメモリ等が挙げられる。記録媒体101及び補助記憶装置102のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
【0027】
図3は、本発明の実施の形態におけるデータ処理装置10の機能構成例を示す図である。
図3において、データ処理装置10は、設定情報入力部11、接続可能性計算部12、グラフ構造生成部13、経路探索部14及びデータ加工部15等を有する。これら各部は、データ処理装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。
【0028】
設定情報入力部11は、予め設定されている情報(以下、「設定情報」という。)を入力する。例えば、設定情報は、補助記憶装置102等に記憶されていてもよい。
【0029】
接続可能性計算部12は、各データベースの属性項目のうちの相互に属するデータベースが異なる2つの属性項目の組ごとに、当該組に係る2つの属性項目について、一方から他方を復元できる可能性の強さ(すなわち、関連性の強さ)を示す指標の値(以下、「接続可能性」という。)を計算する。接続可能性は、2つの属性項目のそれぞれについてデータベースに記憶されている値に基づいて計算される。
【0030】
グラフ構造生成部13は、各属性項目間の接続可能性を示す2次元配列(以下、「接続可能性配列L」という。)を生成する。接続可能性配列Lは、行方向及び列方向のそれぞれに各属性項目が割り当てられた表形式の情報であり、各行及び各列の値(すなわち、接続可能性配列Lの要素の値)が当該行に係る属性項目と当該列に属性項目との接続可能性を示す。なお、接続可能性配列Lは、属性項目をノードとし、接続可能性を重みとするエッジを含むグラフ構造を表現する情報であるといえる。
【0031】
経路探索部14は、接続可能性配列Lが表現するグラフ構造について1以上の経路を探索する。
【0032】
データ加工部15は、経路探索部14によって探索された各経路について、当該経路が含むエッジの接続可能性の総和(合計値)を計算し、当該合計値が相対的に大きい経路から順に、当該経路の中で接続可能性が大きいエッジに接続しているノードに対応する属性項目について、データベースに記憶されている値を加工(変更)する。
【0033】
以下、データ処理装置10が実行する処理手順について説明する。
図4は、データ処理装置10が実行する処理手順の一例を説明するためのフローチャートである。
【0034】
加工タイミングが到来すると、設定情報入力部11は、設定情報を入力する(S101)。設定情報とは、加工対象の派生データ群の属性項目の中で、個人の特定性が有り、かつ、加工できない(削除できない)属性項目(以下、「削除不可属性」という。)を示す情報である。削除不可属性は、例えば、予め運用者によって選択される。なお、削除不可属性は、複数選択されてもよい。以下、削除不可属性のリストを「削除不可属性リストS」という。例えば、本実施の形態では、削除不可属性リストS={a(1,1)}であるとする。すなわち、1つの属性項目a(1,1)が、削除不可属性として設定されていることとする。
【0035】
続いて、接続可能性計算部12は、相互に属するデータベースが異なる全ての2つの属性項目の組ごとに、当該組に係る2つの属性項目について接続可能性を計算する(S102)。
【0036】
接続可能性としては、2つの属性項目のそれぞれに関してデータベースに記憶されている値の集合の一致率(部分一致率)、例えば、集合同士のJaccard係数などが用いられる。したがって、或る属性項目a(n,m)∈Anに含まれる値がv(n,m)であり、異なる属性項目a’(n’,m’)に含まれる値がv’(n’,m’)とであるとすると、属性項目a(n,m)と属性項目a’(n’,m’)との接続可能性R(a(n,m),a’(n’,m’))は、以下の式で表される。
【0037】
【0038】
本実施の形態では、接続可能性R(a(n,m),a’(n’,m’))>0である状態を2つの属性項目が接続可能な状況であると定義する。
【0039】
なお、上記は、2つの属性項目の双方の値が数値である場合に有効である。2つの属性項目の双方の値がIDや名称等のカテゴリ(数値によってカテゴリが表現される場合も含む)である場合、或る属性項目a(n,m)∈Anに含まれる値の集合がs(n,m)であり、異なる属性項目a’(n’,m’)に含まれる値の集合がs’(n’,m’)とであるとすると、属性項目a(n,m)と属性項目a’(n’,m’)との接続可能性R(a(n,m),a’(n’,m’))は、以下の式で表される。
【0040】
【0041】
本実施の形態では、接続可能性R(a(n,m),a’(n’,m’))>0である状態を2つの属性項目が接続可能な状況であると定義する。
【0042】
但し、数値の属性項目同士及びカテゴリの属性項目同士のいずれの場合においても、a(n,m)とa’(n’,m’)が、同じ元G={A1,A2,A3}に含まれる場合(すなわち、同じデータの属性項目である場合)、R(a(n,m),a’(n’,m’))=nullとする。したがって、実質の計算回数の最大長は|G|である。
【0043】
また、A1とA2、又はA1とA3との間で関連が有りそうな2つの属性項目であって、一方がカテゴリであり他方が数値である場合には、A1について変換データを作成した上で、当該2つの属性項目について式(1)に基づいて接続可能性が計算されてもよい。本実施の形態は、A1の「Item」をIDごとの「Item」の個数に変換し、変換後の値の集合と、A3の「ItemNum」とについて、式(1)が用いられて「Item」と「ItemNum」との接続可能性が計算されてもよい。
【0044】
続いて、グラフ構造生成部13は、接続可能性計算部12による計算結果に基づき接続可能性配列Lを生成する(S103)。
【0045】
図5は、接続可能性配列Lの構成例を示す図である。
図5に示されるように、接続可能性配列Lは、各行及び各列に、本実施の形態における複数の全てのデータベースの全ての属性項目が割り当てられている。或る行及び或る列に対する要素の値は、当該行の属性項目と当該列の属性項目との間の接続可能性を示す数値である。但し、双方が同じ要素に対しては「-」が設定される。なお、上記したように同じデータ(同じデータベース)を構成する属性項目間の接続可能性は「null」とされる。したがって、接続可能性配列Lにおいて、同じデータ(同じデータベース)を構成する属性項目間の要素に対しては「null」が設定される。当該要素に対して接続可能性がnullとされることにより、接続可能性配列Lは、単に、属性項目間の接続可能性を表現するだけでなく、同じデータ(同じデータベース)に含まれる属性項目の集合を区別可能な情報となる。換言すれば、「null」は、同じデータ(同じデータベース)に属する属性項目の集合を区別するための符号である。
【0046】
なお、接続可能性配列Lは、各属性項目をノードとし、接続可能性が0より大きい又はnullであるノード間がエッジで接続されたグラフ構造を表現する。
【0047】
図6は、接続可能性配列Lが表現するグラフ構造の例を示す図である。
図6に示されるように、各エッジは、当該エッジによって接続される属性項目間の接続可能性を重みとして有する。なお、
図6において、接続可能性がnullであるエッジ(すなわち、同じ元に含まれる属性項目間のエッジ)は破線によって示されている。
【0048】
図6において、「Price」と「Sum」との関係、及び「Item」と「ItemNum」との関係は、
図7に示されるように、「Sum」が「Price」から派生した属性項目(「Sum」は、「Price」のIDごとの集計結果)であり、「ItemNum」が「Item」から派生した属性項目(「ItemNum」は、「Item」の個数のIDごとの集計結果)であることを示す。
【0049】
なお、グラフ構造生成部13は、接続可能性配列Lをユーザが参照可能なように出力(表示装置への表示、又は補助記憶装置102への保存等)してもよい。又は、グラフ構造生成部13は、接続可能性配列Lに基づいて
図6に示されるグラフを示す図形を生成し、当該図形を出力してもよい。いずれの場合であっても、ユーザは、削除と同様の加工を行うべき範囲を把握することができる。すなわち、データに関する保護範囲の特定を支援することができる。具体的には、
図6の例では、「Item」と「Sum」、「Price」と「ItemNum」、及びデータベースA2の「PsuID」とデータベースA3の「PsuID」との接続可能性が高いことが分かる。すなわち、これら各2つの属性項目の少なくともいずれか一方の値を加工しないと、元のデータが復元される可能性が高いことが分かる。そこで、ユーザは、例えば、データベースA1の「Item」及び「Price」と、データベースA2の「PusID」とについて、個人情報の削除要求元の各顧客に対する値を加工すべきことを判断してもよい。
【0050】
続いて、経路探索部14は、接続可能性配列Lが表現するグラフ構造について、削除不可リストSに含まれる各削除不可属性を始点とした場合の経路の探索処理を実行する(S104)。
【0051】
ステップS104では、探索された経路ごとに、当該経路が通るノードの履歴(以下、「ノード履歴h」という。)と、当該経路が通る各エッジの重み(接続可能性)の履歴(以下、「探索済みエッジp」という。)とが得られる。以下、経路ごとのノード履歴hの集合を「ノード履歴集合H」といい、経路ごとの探索済みエッジpの集合を「探索済みエッジ集合P」という。本実施の形態では、例えば、以下のようなノード履歴集合H及び探索済みエッジ集合Pが得られる。
ノード履歴集合H=(h1,...,hl)=[{a(1,1),a(1,2),a(1,3),a(2,2),a(2,1),a(3,1),a(3,2),a(1,4)},...]
探索済みエッジ集合P=(p1,...,pl)=[{null,null,1.0,null,1.0,null,1.0},...]
なお、ノード履歴集合H内の1つの{}が、1つのノード履歴hに対応する。同様に、探索済みエッジ集合P内の1つの{}が、1つの探索済みエッジpに対応する。
【0052】
続いて、データ加工部15は、探索済みエッジ集合Pに含まれる、未処理の探索済みエッジpの中で、要素の合計値が最大である探索済みエッジpを特定する(S105)。以下、特定された探索済みエッジpを「探索済みエッジpMax」という。なお、未処理の探索済みエッジpとは、ステップS106以降について未処理の探索済みエッジpをいう。したがって、要素の合計値が大きい探索済みエッジpから順に、ステップS106以降が実行される。これは、データ接続可能性の合計値が大きい経路の方がプライバシー侵害が大きく発生すると考え、データ接続可能性の合計値が大きい経路について、プライバシー保護処理の優先度を高めるためである。
【0053】
続いて、データ加工部15は、探索済みエッジpMaxに含まれる未処理の要素(エッジ)の中で、値(接続可能性)が最大である要素(エッジ)を特定する(S106)。同じ最大値が複数有る場合には、いずれかの最大値がランダムに選択されればよい。以下、特定された要素に係るエッジを「対象エッジ」という。
【0054】
続いて、データ加工部15は、対象エッジに対応する属性項目を特定する(S107)。対象エッジに対応する属性項目とは、対象エッジによって接続される2つの属性項目のうち、探索済みエッジpMaxに係る経路において始点に近い方の属性項目をいう。当該属性項目は、ノード履歴集合Hにおいて、「対象エッジの順番-1」番目のノードを探索することで特定可能である。以下、特定された属性項目を「対象属性項目」という。
【0055】
続いて、データ加工部15は、対象属性項目に関して、データベースに記憶されている値であって、個人情報の削除要求元の各顧客に対する値について、対象エッジの接続可能性に応じた加工処理(プライバシー保護処理)を実行する(S108)。例えば、削除要求元の顧客が10人であれば、当該10人分のデータについて加工が行われる。対象エッジの接続可能性に応じた加工処理とは、当該接続可能性に応じて加工レベル又は保護レベル(値の変化の度合い(変化量))を変更した加工処理をいう。
【0056】
ここで加工処理とは、データを削除した処理と同様に、元データに復元できないレベルまでデータの値を変化させることで、データの削除と同様の効果を得ることができる処理をいう。斯かる加工処理の主な一例として、削除、仮名化、匿名化、ノイズ付与がある。したがって、ステップS108では、削除、仮名化、匿名化及びノイズ付与のいずれかによって、対象属性項目の値が加工(変更)されてもよい。
【0057】
削除は、値そのものを削除してしまう処理をいう。
【0058】
仮名化とは、復元不能なSHA1やMD5ハッシュ関数等を用いて元データを書き換える手法である。例えば、仮名化によれば、“山田太郎”→“DEFAB53EF918B84FF”等に変換される。この場合、“DEFAB53EF918B84FF”から“山田太郎”に復元できないため、データ(“山田太郎”)を削除したことと同様の効果を得ることができる。
【0059】
匿名化とは、例えばk-匿名化など、個人を一意に絞り込めなくなるまで属性項目の値を加工する手法である。元データに特徴的な値がある場合、元データを残したままだと個人が再識別できる可能性がある。そのため、一般化処理などを行って個人を識別不能な状態とする。例えば(山田太郎,男,30才),(山田次郎,男,20才)とういうデータを、(-,男,25才),(-,男,25才)に変換することで、変換後のデータは、個人を特定できないデータとなる。また、数値の属性項目については、平均値に加工されることで、全体のデータの整合性を確保(全体のデータの平均値の変化を回避)することができる。なお、k-匿名化を採用する場合には、kの大きさが、対象エッジの接続可能性に応じて定められればよい。例えば、当該接続可能性が大きいほど、kの値が大きくされてもよい。
【0060】
ノイズ付与について説明する。上記のような匿名化は単純な属性項目については利用できるが、トランザクションデータのような複雑な属性項目を持つデータについては不向きであることが知られている。例えば、Suica(登録商標)の履歴データを用いた調査によると2駅程度の利用状況が判明することで個人が再識別されることが知られている。そのような場合にはノイズ付与が好適である。
【0061】
属性項目の値に対するノイズ付与の方式としては、Pk-匿名化や差分プライバシー(局所差分プライバシー)などの手法が知られている。特に、ε-差分プライバシーは、計算式におけるεの値を小さくすることによって、ノイズ量(値の変化の度合い又は変化量)が大きくなるという性質を有する。また、局所差分プライバシーという技術によって、散発的に削除権の実行依頼者が現れた場合においても、長期間においては有用性を保つ手法が提案されている。
【0062】
そこで、本実施の形態では、加工処理としてノイズ付与を採用する場合、属性項目同士の接続可能性を用いてノイズ量を調整する(例えば、ε-差分プライバシーにおけるεを調整する。)。本実施の形態における接続可能性は、或る属性項目同士のそれぞれの値群が、どれだけ部分一致しているのかを示す指標である。そのため、同じ値が含まれている量が多い属性項目同士の方が、接続できるリスクが大きくなる。
【0063】
本実施の形態では、以下の式によってεの値(すなわち、ひいてはノイズ量)を調整する。
ε=n(1-rx)
但し、rx=1の場合、ε=z
但し、rxは、対象エッジの接続可能性である。また、nは、ノイズ量の範囲を調整する調整係数である。更に、zは、最もノイズ付与量が大きくなる値である。すなわち、接続可能性rxが1の場合には、εが0となってしまう。そこで、上記では、接続可能性rxが1の場合には、最もノイズ付与量が多くなる値がεに設定されることを示す。
【0064】
ここで、ノイズの範囲について、本願発明者が行った実験について説明する。
図8は、ノイズ量の範囲を調整するための実験を説明するための図である。実験では、ある属性項目(「Sum」)について2人分のデータx,yを取り出し、その関係性がx>yであった場合に、ノイズを付与した後の関係性がx<yになれば、元データに復元できないと考える。この関係性が変化する割合を示したのがPr[x’≦y’]、10000回の施行を行った際に、1万回の中でPr[x≦y]が一回でも発生した率が、Pr[∀(x’≦y’)]である。
【0065】
図9は、ノイズ量の範囲を調整するための実験の結果を示す図である。
図9には、x,yに対して差分プライバシーノイズを付与した際に、有意なレベルのノイズが付与されたレベルを検証した例である。
【0066】
図9によると、ε=1では有意なノイズは付与されず、ε=10^-2~10^-5程度のノイズを付与することで、元データに復元できないレベルのノイズが付与されていることが分かる。すなわち、実験においては、10^-5以下にεを設定した場合、ある値の区別がつく可能性が完全にランダムになることが分かる。そこで、接続可能性=1の場合はε=10^-5(すなわち、z=10^-5)と設定されてもよい。
【0067】
続いて、データ加工部15は、探索済みエッジpMaxについて、未処理の要素の有無を判定する(S109)。未処理の要素が有る場合(S109でYes)、ステップS106以降が繰り返される。すなわち、加工は、対象エッジによって接続される2つのノードに対応する2つの属性項目の双方ではなく、始点に近い一方に対してのみ行われる。一方のみに対して行われれば、当該2つの属性項目の接続可能性を復元不能な程度に低下させつつ、他方の属性項目の値の有用性が損なわれるのを回避できると考えられるからである。具体的には、
図6の例では、a
(1,3)の「Item」とa
(2,2)の「Sum」との接続可能性が1.0であるが、a
(1,1)の「ID」を始点とした場合、「Item」の値のみが加工対象とされる。同様に、a
(1,4)の「Price」とa
(3,2)の「ItemNum」とについては、「Price」の値のみが加工対象とされる。同様に、a
(2,1)の「PsuID」とa
(3,1)の「PsuID」とについては、a
(2,1)の値のみが加工対象とされる。
【0068】
なお、本実施の形態では、当該2つの属性項目のうち、始点から近い方が加工対象とされる例を説明したが、始点から遠い方が加工対象とされてもよい。また、当該2つの属性項目の双方が加工対象とされてもよい。
【0069】
一方、未処理の要素が無い場合(S109でNo)、データ加工部15は、探索済みエッジ集合Pの中に、ステップS106以降について未処理の探索済みエッジpが有るか否かを判定する(S110)。未処理の探索済みエッジpが有る場合(S110でYes)、ステップS105以降が繰り返される。未処理の探索済みエッジpが無い場合(S110でNo)、
図4の処理手順が終了する。
【0070】
続いて、ステップS104の詳細について説明する。
図10は、グラフ構造の経路の探索処理の処理手順の一例を説明するためのフローチャートである。
【0071】
ステップS201において、経路探索部14は、変数iに1を代入する。変数iは、探索中の経路の順番を示す変数である。ここで、経路ごとにノード履歴h及び探索済みエッジpが生成(探索)されるため、変数iは、生成対象のノード履歴h(以下、「ノード履歴hi」という。)の順番及び生成対象の探索済みエッジp(以下、「探索済みエッジpi」という。)の順番を示す変数であるともいえる。
【0072】
続いて、経路探索部14は、削除不可属性リストSからランダムに一つの要素(属性項目)を取得する。ランダムであるため、過去に取得された要素と同じ要素が取得されてもよい。取得された要素は、aに代入される。
【0073】
続いて、経路探索部14は、aをノード履歴hiの最後尾に追加する(S202)。なお、ノード履歴hiに関して初めてステップS202が実行される場合(すなわち、aが始点の場合)、aが追加される前のノード履歴hiは空である。
【0074】
続いて、経路探索部14は、接続可能性配列Lを参照して、aの横探索リスト及び縦探索リストを取得する(S204)。aの横探索リストとは、接続可能性配列L(
図5)におけるaの行において、値が空以外の要素を
図5における左から右へ探索することで得られるリストをいう。aの横探索リストとは、接続可能性配列L(
図5)におけるaの列において、値が空以外の要素を
図5における下から上に探索することで得られるリストをいう。
【0075】
例えば、aが、始点としての属性項目a(1,1)であれば、横探索リスト及び縦探索リストは、以下の通りである。
横探索リスト=(-,null,null,null,0,0,0,0)
縦探索リスト=(-)
また、aが、属性項目a(1,4)であれば、横探索リスト及び縦探索リストは、以下の通りである。
横探索リスト=(-,0,0,0,0)
縦探索リスト=(-,null,null,null)
続いて、経路探索部14は、取得された横探索リスト及び縦探索リストの組の中から、ノード履歴hiに存在しない属性項目であって、有効な値(null又は0より大きい値)に対応する属性項目をランダムに選択する(S205)。ここで、横探索リストの中から該当する属性項目が選択される場合、当該属性項目は、ランダムに選択された有効な値が属する列に対応する属性項目である。一方、縦探索リストの中から該当する属性項目が選択される場合、当該属性項目は、ランダムに選択された有効な値が属する行に対応する属性項目である。
【0076】
該当する値が選択された場合(該当する値が存在した場合)(S206でYes)、経路探索部14は、当該値を探索済みエッジpiの末尾に追加する(S207)。なお、探索済みエッジpiについて初めてステップS207が実行される場合、当該値が追加される前の探索済みエッジpiは、空である。
【0077】
続いて、経路探索部14は、当該値に対応する属性項目をaに代入する(S208)。すなわち、当該属性項目によってaが書き換えられる。なお、当該値に対応する属性項目とは、当該値が横探索リストから選択された場合には、当該値の列に対応する属性項目をいい、当該値が縦探索リストから選択された場合には、当該値の行に対応する属性項目をいう。続いて、新たなaについてステップS203以降が実行される。
【0078】
一方、該当する値が選択されなかった場合(該当する値が存在しない場合)(S206でNo)、経路探索部14は、iが所定回数に達したか否かを判定する(S209)。所定回数とは、予め設定された経路の探索回数をいう。iが所定回数未満である場合(S209でNo)、経路探索部14は、iに1を加算して(S210)、ステップS202以降を繰り返す。iが所定回数に達した場合(S209でYes)、経路探索部14は、
図10の処理手順を終了する。
【0079】
なお、
図10の処理手順は、他の公知の経路探索アルゴリズムによって代替されてもよい。
【0080】
上述したように、本実施の形態によれば、属性項目間の接続可能性を示す接続可能性配列Lによって、加工すべき範囲を明確化することができる。したがって、データに関する保護範囲の特定を支援することができる。
【0081】
また、差分プライバシーによって加工が行われる場合、接続可能性に応じてノイズ量が変えられるため、データの有用性が維持される可能性を高めることができる。
【0082】
また、本実施の形態によれば、グラフ構造の経路探索によって個人特定性の高い経路が抽出され、個人特定性の高い経路が優先的に処理されるため、作業効率を高めることができる。
【0083】
なお、本実施の形態では、2つの属性項目の組について片方向の(1つの)接続可能性が計算される例について説明したが、両方向の接続可能性が計算されるようにしてもよい。すなわち、2つの属性項目について一方の属性項目から他方の属性項目への接続可能性と、他方の属性項目から一方の属性項目への接続可能性が異なる場合が考慮されてもよい。
【0084】
なお、本実施の形態において、接続可能性計算部12は、計算部の一例である。グラフ構造生成部13は、生成部の一例である。経路探索部14は探索部の一例である。データ加工部15は、変更部の一例である。
【0085】
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【0086】
以上の説明に関し、更に以下の項を開示する。
(付記1)
複数のデータベースのそれぞれを構成する属性項目のうちの2つの属性項目の組ごとに、当該2つの属性項目に関してデータベースに記憶されている値の集合に基づいて、当該2つの属性項目の関連性の強さを示す指標の値を計算する計算部と、
前記各属性項目をノードとし、前記指標の値に基づいて関連が有ると判定される属性項目間が当該値を重みとするエッジによって接続されるグラフ構造を表現する情報を生成する生成部と、
を有することを特徴とするデータ処理装置。
(付記2)
前記生成部は、同じデータベースを構成する2つの属性項目に対しては、当該2つの属性項目が同じデータベースに属することを示すエッジによって接続される前記グラフ構造を表現する情報を生成する、
ことを特徴とする付記1記載のデータ処理装置。
(付記3)
前記グラフ構造において特定の属性項目に係るノードを始点とする1以上の経路を探索する探索部と、
前記経路に含まれるエッジの重みの総和が大きい経路から順に、当該経路に含まれるノードに対応する属性項目に関して記憶されている値を変更する変更部と、
を有することを特徴とする付記1又は2記載のデータ処理装置。
(付記4)
前記変更部は、前記エッジの重みの大きさに応じて、当該エッジに接続されるノードに係る属性項目に関してデータベースに記憶されている値の変化の度合いを変える、
ことを特徴とする付記3記載のデータ処理装置。
(付記5)
前記変更部は、差分プライバシーによって前記値を変更し、前記エッジの重みの大きさに応じて差分プライバシーによるノイズ量を変える、
ことを特徴とする付記4記載のデータ処理装置。
(付記6)
複数のデータベースのそれぞれを構成する属性項目のうちの2つの属性項目の組ごとに、当該2つの属性項目に関してデータベースに記憶されている値の集合に基づいて、当該2つの属性項目の関連性の強さを示す指標の値を計算し、
前記各属性項目をノードとし、前記指標の値に基づいて関連が有ると判定される属性項目間が当該値を重みとするエッジによって接続されるグラフ構造を表現する情報を生成する、
処理をコンピュータが実行することを特徴とするデータ処理方法。
(付記7)
前記生成する処理は、同じデータベースを構成する2つの属性項目に対しては、当該2つの属性項目が同じデータベースに属することを示すエッジによって接続される前記グラフ構造を表現する情報を生成する、
ことを特徴とする付記6記載のデータ処理方法。
(付記8)
前記グラフ構造において特定の属性項目に係るノードを始点とする1以上の経路を探索し、
前記経路に含まれるエッジの重みの総和が大きい経路から順に、当該経路に含まれるノードに対応する属性項目に関して記憶されている値を変更する、
を処理を前記コンピュータが実行することを特徴とする付記6又は7記載のデータ処理方法。
(付記9)
前記変更する処理は、前記エッジの重みの大きさに応じて、当該エッジに接続されるノードに係る属性項目に関してデータベースに記憶されている値の変化の度合いを変える、
ことを特徴とする付記8記載のデータ処理方法。
(付記10)
前記変更する処理は、差分プライバシーによって前記値を変更し、前記エッジの重みの大きさに応じて差分プライバシーによるノイズ量を変える、
ことを特徴とする付記9記載のデータ処理方法。
(付記11)
複数のデータベースのそれぞれを構成する属性項目のうちの2つの属性項目の組ごとに、当該2つの属性項目に関してデータベースに記憶されている値の集合に基づいて、当該2つの属性項目の関連性の強さを示す指標の値を計算し、
前記各属性項目をノードとし、前記指標の値に基づいて関連が有ると判定される属性項目間が当該値を重みとするエッジによって接続されるグラフ構造を表現する情報を生成する、
処理をコンピュータに実行させることを特徴とするプログラム。
(付記12)
前記生成する処理は、同じデータベースを構成する2つの属性項目に対しては、当該2つの属性項目が同じデータベースに属することを示すエッジによって接続される前記グラフ構造を表現する情報を生成する、
ことを特徴とする付記11記載のプログラム。
(付記13)
前記グラフ構造において特定の属性項目に係るノードを始点とする1以上の経路を探索し、
前記経路に含まれるエッジの重みの総和が大きい経路から順に、当該経路に含まれるノードに対応する属性項目に関して記憶されている値を変更する、
を処理を前記コンピュータに実行させることを特徴とする付記11又は12記載のプログラム。
(付記14)
前記変更する処理は、前記エッジの重みの大きさに応じて、当該エッジに接続されるノードに係る属性項目に関してデータベースに記憶されている値の変化の度合いを変える、
ことを特徴とする付記13記載のプログラム。
(付記15)
前記変更する処理は、差分プライバシーによって前記値を変更し、前記エッジの重みの大きさに応じて差分プライバシーによるノイズ量を変える、
ことを特徴とする付記14記載のプログラム。
【符号の説明】
【0087】
10 データ処理装置
11 設定情報入力部
12 接続可能性計算部
13 グラフ構造生成部
14 経路探索部
15 データ加工部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
B バス